You are on page 1of 783

Reele de calculatoare

Ediia a treia
revizuit

Andrew S. Tanenbaum
Universitatea Vrijie Amsterdam, Olanda

ACKRA
1998 Computer Press AGORA http://www.agora.ro

Traducere:
Colectivul de coordonare: prof. dr. ing. Valentin Cristea prof. dr. ing. Irina Athanasiu prof. dr. ing. Eugenia Kalisz Colectivul de traductori: prof. dr. ing. Nicolae Tpu prof. dr. ing. Trandafir Moisa ing. Vlad Vieru prep. ing. Anca Bucur as. ing. Gavril Godza as. ing. Bogdan Costinescu prep. ing. Bogdan Panghe prep. ing. Florin Teodorescu prep. ing. Andrei Rare as. ing. Ion Bica as. ing. Matei Rpeanu prep. ing. Monica Dulgheru prep. ing. Monica Pietroanu ing. tefan Rusen ing. Florentina Popovici prep. ing. Mihaela ncu ing. Liviu Ristoscu Pregtire, design, producie: Adrian Pop Editat de Computer Press AGORA s.r.l., 1998 4300 Tg. Mure, Str. T. Vladimirescu 63/1, Tel: +40-(0)65-166516 Sub licen Prentice-Hall, Inc. dup: Computer Networks, 3rd ed. eAndrew S. Tanenbaum 1996 by Prentice-Hall PTR, Prentice-Hall, Inc., A Simon & Schuster Company, Upper Saddle River, New Jersey 07458 Tiprit n Romnia, la INFOPRESS SA, 4150 Odorheiul Secuiesc, Str. Victoriei 12, Tel: +40-(0)66-218283

ISBN:973-97706-3-0
Toate drepturile sunt rezervate. Nici o parte a acestei cri nu poate fi reprodus, ntr-o form sau printr-un mijloc oarecare, fr permisiunea scris a editorului. letan.

Reele de calculatoare
Ediia a treia
revizuit

Pentni Suzanne, Barbara, Maivin, i micul Bram

Alte titluri de mare succes ale lui Andrew S. Tanenbaum:


Sisteme de operare: proiectare i implementare, ediia a doua
Acest text despre sisteme de operare, devenit clasic, este singura carte ce acoper att principiile sistemelor de operare ct i aplicaiile acestora la un sistem real. Sunt tratate n detaliu toate subiectele tradiionale legate de sistemele de operare. n plus, principiile sunt ilustrate cu grij de MINIX, un sistem de operare gratuit, de tip UNIX, pentru calculatoare personale. A doua ediie, care este ateptat la finele lui 1996, se va ocupa de noul sistem MINIX 2.0, bazat pe POSIX. La fel ca prima ediie, cartea va conine un listing de cod surs MINIX. O noutate a ediiei a doua este un CD-ROM gratuit pentru fiecare carte, CD-ROM ce conine sistemul MINIX complet (cod binar i surs).

Sisteme de operare moderne


Acest text de mare succes prezint fundamentele att pentru sistemele uniprocesor ct i pentru cele distribuite. Tanenbaum trateaz temele tradiionale ce cuprind procese, gestiunea memoriei i sisteme de fiiere, dar i probleme de baz ale sistemelor distribuite, incluznd modelul client-server. apelul de proceduri la distan, fire de control al execuiei i sisteme de fiiere distribuite. Acest ghid practic folosete UNIX, MS-DOS, Mach i Amoeba pentru a ilustra conceptele sistemelor de operare.

Sisteme de operare distribuite


Acest text acoper conceptele fundamentale ale sistemelor de operare distribuite. Subiectele principale includ comunicaia i sincronizarea, procese i procesoare, memorii comune distribuite, sisteme de fiiere distribuite, sau sisteme distribuite de timp real. Principiile calculului distribuit sunt ilustrate n patru studii de caz detaliate ce folosesc Mach, Amoeba, Chorus i mediile de operare DCE.

Organizarea structurat a calculatoarelor, ediia a treia


Acest text fundamental abordeaz arhitectura calculatoarelor ca pe o serie de niveluri. La baz este hardware-ul: tranzistori, pori, registre, sumatoare i alte circuite. Apoi vine nivelul microprogramat. Mai sus, este nivelul mainii convenionale, cu instruciunile sale ADD, MOVE, JUMP i altele. Deasupra acestuia este sistemul de operare, care adaug faciliti noi cum sunt gestiunea fiierelor i memoria virtual. Ultimul capitol se ocup cu dou probleme avansate: calculatoare paralele i proiectarea mainilor RISC.

CUPRINS

PREFAA 1. INTRODUCERE
1.1 UTILIZRILE REELELOR DE CALCULATOARE 3 1.1.1 1.1.2 1.1.3 Reele pentru firme 3 Reele pentru oameni 4 Aspecte sociale 6

XV 1

1.2 HARDWARE-UL REELEI 7 1.2.1 1.2.2 1.2.3 1.2.4 Reele locale 8 Reele metropolitane 10 Reele larg rspndite geografic 11 Reele radio 13

1.3 PROGRAMELE DE REEA 15 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 Ierarhiile de protocoale 16 Probleme de proiectare a nivelurilor 19 Interfee i servicii 21 Servicii orientate pe conexiuni i servicii fr conexiuni 22 Primitive de serviciu 23 Relaia dintre servicii i protocoale 25

vi

CUPRINS

1.4 MODELE DE REFERIN 26 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 Modelul de referin OSI 26 Modelul de referin TCP/IP 32 O comparaie ntre modelele de referin OSI i TCP 35 O critic a modelului i protocoalelor OSI 37 O critic a modelului de referin TCP/IP 40

1.5 EXEMPLE DE REELE 41 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 Novell NetWare 41 ARPANET-ul 43 NSFNET 46 Internet-ul 48 Prototipuri gigabit 50

1.6 EXEMPLE DE SERVICII PENTRU COMUNICAII DE DATE 52 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 SMDS - Serviciu de Date Comutat Multimegabit 52 Reele X.25 54 Retransmiterea cadrelor 55 ISDN de band larg i ATM 56 Comparaii ntre servicii 61

1.7 STANDARDIZAREA REELELOR 61 1.7.1 1.7.2 1.7.3 Who's Who n lumea telecomunicaiilor 62 Who's Who n lumea standardelor internaionale 64 Who's Who n lumea standardelor Internet 65

1.8 RESTUL CRII N REZUMAT 66 1.9 REZUMAT 67

2. NIVELUL FIZIC
2.1 BAZELE TEORETICE ALE COMUNICRII DE DATE 71 2.1.1 2.1.2 2.1.2 2.2 Analiza Fourier 71 Semnalele limitate de banda de frecven 72 Viteza Maxim de Transfer de Date a unui Canal 75

71

MEDIUL DE TRANSMISIE 76

CUPRINS

vii

2.2.1 2.2.2 2.2.3 2.2.4 2.2.5

Mediul Magnetic 76 Cablul Torsadat 76 Cablu Coaxial n Band de Baz 77 Cabluri coaxiale de band larg 78 Fibre optice 80

2.3 COMUNICAIILE FR FIR 86 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.4 Spectrul electromagnetic 87 Transmisia radio 89 Transmisia prin microunde 90 Undele infraroii i milimetrice 91 Transmisia de undelor luminoase 92

SISTEMUL TELEFONIC 93 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 Structura Sistemului Telefonic 94 Politica din domeniul telefonic 97 Buclele locale 99 Trunchiuri i multiplexare 108 Comutarea 120

2.5 ISDN DE BANP LARG 128 2.5.1 2.5.2 2.5.3 2.5.4 Servicii ISDN 129 Arhitectura sistemului ISDN 129 Interfaa ISDN 131 Perspectivele N-ISDN 132

2.6 ISDN DE BAND LARG I ATM 133 2.6.1 2.6.2 2.6.3 Circuitele virtuale n comparaie cu circuitele comutate 133 Transmisia n reelele ATM 135 Comutatoare ATM 136

2.7 RADIO CELULAR 144 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 Sisteme pager 144 Telefoane fr fir 145 Telefoane celulare analogice 146 Telefoane celulare digitale 150 Servicii de comunicaii personale 151

2.8 SATELII DE COMUNICAIE 152

viii

CUPRINS

2.8.1 2.8.2 2.8.3

Satelii geosincroni 152 Satelii de joas altitudine 155 Satelii yersus Fibre Optice 156

2.9 REZUMAT 157

3. NIVELUL LEGTUR DE DATE


3.1.1 3.1.2 3.1.3 3.1.4 Servicii oferite nivelului reea 164 ncadrarea 166 Controlul erorilor 169 Controlul fluxului 170

163

3.1 ASPECTE ALE PROIECTRII NIVELULUI LEGTUR DE DATE 163

3.2 DETECTAREA I CORECTAREA ERORILOR 170 3.2.1 3.2.2 Coduri corectoare de erori 171 Coduri detectoare de erori 173

3.3 PROTOCOALE ELEMENTARE PENTRU LEGTURA DE DATE 177 3.3.1 3.3.2 3.3.3 Un protocol simplex fr restricii 180 Un protocol simplu Stop-and-Wait (pas-cu-pas) 182 Un protocol simplex pentru un canal cu zgomote 184

3.4 PROTOCOALE CU FEREASTR GLISANT 187 3.4.1 3.4.2 3.4.3 Un protocol cu fereastr glisant de un bit 189 Un protocol de revenire cu n pai (Go Back n) 192 Un protocol cu repetare selectiv 197

3.5 SPECIFICAREA I VERIFICAREA PROTOCOALELOR 202 3.5.1 3.5.2 Modele de tip automat finit 202 Modele de tip reea Petri 206

3.6 EXEMPLE DE PROTOCOALE ALE LEGTURII DE DATE 208 3.6.1 3.6.2 3.6.3 3.6.4 3.6.5 HDLC - Controlul de nivel nalt al legturii de date 208 Nivelul legtura de date n Internet 211 SLIP - Serial Line IP 212 PPP - Point-to-Point Protocol (protocol punct-la-punct) 213 Nivelul legtura de date la ATM 217

CUPRINS

ix

3.7 REZUMAT 220

4. SUBNIVELUL DE ACCES LA MEDIU


4.1 PROBLEMA ALOCRII CANALULUI 226 4.1.1 4.1.2 Alocarea static a canalului n reelele LAN i MAN 226 Alocarea dinamic a canalului n reelele LAN i MAN 227

225

4.2 PROTOCOALE CU ACCES MULTIPLU 228 4.2.1 4.2.2 4.2.3 4.2.4 4.2.5 4.2.6 4.2.7 ALOHA228 Protocoale cu acces multiplu i detecie de purttoare 232 Protocoale fr coliziuni 235 Protocoale cu conflict limitat 237 Protocoale cu acces multiplu cu divizarea frecvenei 240 Protocoale pentru reele LAN fr fir 243 Radioul celular digital 246

4.3 STANDARDUL IEEE 802 PENTRU LANURI I MAN-URI 255 4.3.1 4.3.2 4.3.3 4.3.4 4.3.5 4.3.6 Standardul IEEE 802.3 i ETHERNET 255 Standardul IEEE 802.4: LAN de tip jeton pe magistral 266 Standardul IEEE 802.5: LAN de tip jeton pe inel 271 Comparaie ntre 802.3, 802.4 i 802.5 278 Standardul IEEE 802.6: Magistral dual cu coad distribuit 279 Standardul IEEE 802.2: Controlul legturii logice 280

4.4 PUNI 282 4.4.1 4.4.2 4.4.3 4.4.4 4.4.5 Puni de la 802.x la 8O2.y 284 Puni transparente 287 Puni cu dirijare de la surs 291 Compararea punilor 802 293 Puni aflate la distan 294

4.5 LANURI DE MARE VITEZ 295 4.5.1 4.5.2 4.5.3 4.5.4 FDDI295 Ethernet rapid 298 HIPPI- Interfaa paralel de mare vitez 301 Canalul de fibr optic 302

CUPRINS 4.6 REELE DE SATELII 303 4.6.1 4.6.2 4.6.3 4.6.4 4.6.5 Interogare 304 ALOHA.305 FDM306 TDM 306 CDMA 308

4.7 REZUMAT 309

5. NIVELUL REEA
5.1 CERINELE DE PROIECTARE ALE NIVELULUI REEA 315 5.1.1 5.1.2 5.1.3 Servicii furnizate nivelului transport 315 Organizarea intern a nivelului reea 318 Comparaie ntre subretele bazate pe circuite virtuale i datagrame 319

315

5.2 ALGORITMI DE DIRIJARE 321 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7 5.2.8 5.2.9 5.2.10 Principiul optimalitii 322 Dirijarea pe calea cea mai scurt 323 Inundarea 325 Dirijarea bazat pe flux 327 Dirijare cu vectori distan 329 Dirijarea folosind starea legturilor 333 Dirijare ierarhic 339 Dirijarea pentru calculatoare gazd mobile 340 Dirijarea prin difuzare 343 Dirijarea cu trimitere multipl (multicast) 345

5.3 ALGORITMI PENTRU CONTROLUL CONGESTIEI 347 5.3.1 5.3.2 5.3.4 5.3.5 5.3.6 5.3.7 5.3.8 5.3.9 Principii generale ale controlului congestiei 349 Politici pentru prevenirea congestiei 350 Specificarea fluxului 357 Controlul congestiei n subreelele bazate pe circuite virtuale 358 Pachete de oc 359 mprtierea ncrcrii 363 Controlul fluctuaiilor 364 Controlul congestiei la transmisia multicast 364

5.3.3 . Formarea traficului 352

CUPRINS

xi

5.4 INTERCONECTAREA REELELOR 367 5.4.1 5.4.2 5.4.3 5.4.4 5.4.5 5.4.6 5.4.7 Prin ce difer reelele 370 Circuite virtuale concatenate 371 Interconectarea reelelor fr conexiuni 372 Trecerea prin tunel 374 Dirijarea n reele interconectate 375 Fragmentarea 377 Ziduri de protecie 380

5.5 NIVELUL REEA N INTERNET 382 5.5.1 5.5.2 5.5.3 5.5.4 5.5.5 5.5.6 5.5.7 5.5.8 5.5.9 5.5.10 Protocolul IP 383 Adrese IP 386 Subretele 387 Protocoale de control n Internet 389 Protocolul de dirijare folosit de porile interioare: OSPF 393 Protocolul de dirijare pentru pori externe: BGP 398 Trimiterea multipl n Internet 399 IP mobil 400 CIDR - Dirijarea fr clase ntre domenii 402 IPv6 405

5.6 NIVELUL REEA N REELE ATM 416 5.6.1 5.6.2 5.6.3 5.6.4 5.6.5 5.6.6 5.6.7 5.6.8 Formatele celulelor 417 Stabilirea conexiunii 419 Dirijarea i comutarea 421 Categorii de servicii 424 Calitatea serviciului 426 Modelarea traficului i politici de trafic 429 Controlul congestiei 433 LAN-uri ATM 436

5.7 REZUMAT 438

6. NIVELUL TRANSPORT
6.1 SERVICIILE OFERITE DE NIVELUL TRANSPORT 445 6.1.1 6.1.2 Servicii furnizate nivelurilor superioare 445 Calitatea unui serviciu 447

445

xii 6.1.3

CUPRINS Primitivele serviciilor de transport 448

6.2 NOIUNI DE BAZ DESPRE PROTOCOALELE DE TRANSPORT 453 6.2.1 Adresarea 454 6.2.2 Stabilirea unei conexiuni 457 6.2.3 Eliberarea conexiunii 452 6.2.4 Controlul fluxului i memorarea temporar (buffering) 466 6.2.5 Multiplexarea 470 6.2.6 Refacerea dup cdere 471 63 UN PROTOCOL SIMPLU DE TRANSPORT 473 6.3.1 6.3.2 6.3.3 Primitivele serviciului aies ca exemplu 473 Entitatea de transport aleas ca exemplu 475 Exemplul vzut ca un automat finit 482

6 A PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP) 485 6.4. Modelul Serviciului TCP 485 6.4.2 Protocolul TCP 487 6.4.3 Antetul segmentului TCP 488 6.4.4 Administrarea conexiunii TCP 491 6.4.5 Politica TCP de Transmisie a datelor 495
O.^T.'iJ wsJiil.i'wiUi VVj-ilg^OLlwi Iii i ' v f T7O

6.4.7 6.4.8 6.4.9

Administrarea contorului de timp n TCP 504 UDP 504 TCP i UDP fr fir 504

5 PROTOCOALE AAL DE NIVEL ATM 506

6.5.1

Structura nivelului de adaotare ATM 508


ii.

6.5.2 AAL 1 509 6.5.3 AAL 2 510 6.5.4 AAL 3/4 511 6.5.5 AAL 5 514
6.5.6 6.5.7 O comparaie a protocoalelor AAL 515 SSCOP - protocol orientat pe conexiuni, specific serviciului 516

6,6 ELEMENTE DE PERFORMAN 516 6.6.1 Probleme de performan n reelele de calculatoare 517 6.6.2 Msurarea performanelor reelei 519 6.6.3 Proiectarea de sistem pentru performane superioare 522

CUPRINS 6.6.4 6.6.5 Prelucrarea rapid a TPDU-urilor 525 Protocoale pentru reele gigabit 529

6.7 REZUMAT 532

\ NIVELUL APLICAIE
7.1 SECURITATEA REELEI 537 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.1.6 7.1.7 Criptografia tradiional 539 Dou principii criptografice fundamentale 545 Algoritmi cu Cheie Secret 546 Algoritmi cu Cheie Public 555 Protocoale de Autentificare 559 Semnturi Digitale 570 \ Implicaii sociale 577

537

7.2 DNS - SISTEMUL NUMELOR DE DOMENII 577 7.2.1 Spaiul de nume DNS 578 7.2.2 nregistrri de resurse 580 7.2.3 Servere de nume 583 73 SNMP 7.3.1 7.3.2 7.3.3 7.3.4 7.3.5 - PROTOCOL SIMPLU DE ADMINISTRARE A REELEI 585 Modelul SNMP 586 ASN.l - Notaia sintactic abstract 1 588 SMI - Structura informaiei de administrare 593 MIB - Baza de informaii de administrare 595 Protocolul SNMP 596

7.4 POTA ELECTRONIC 597 7.4.1 Arhitectur si servicii 598 7.4.2 Agentul utilizator 600 7.4.3 Formatele mesajelor 604 7.4.4 Transfer de mesaje 610 7.4.5 Confidenialitatea potei electronice 615 7.5 TIRI USENET 621 7.5.1 7.5.2 USENET din punctul de vedere al utilizatorului 621 Cum este implementat USENET 625

xiv

CUPRINS

7.6 WORLD WIDE WEB 630 7.6.1 7.6.2 7.6.3 7.6.4 7.6.5 Aspectele privind clientul 631 Aspecte privind serverul 634 Scrierea unei pagini de Web n HTML 640 Java 654 Regsirea informaiilor pe Web 666

7.7 MULTIMEDIA 669 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 Audio 669 Video 672 Compresia datelor 675 Video la Cerere 687 MBone - Coloana vertebral pentru trimitere multipl 699

7.8 REZUMAT 702

8. BIBLIOGRAFIE I RECOMANDRI DE LECTUR


8.1 SUGESTII PENTRU LECTURI VIITOARE 709
8.1.1 8.1.2 8.1.3 8.1.4 8.1.5 8.1.6 8.1.7 Lucrri introductive i generale 710 Nivelul fizic 711 Nivelul legtur de date 712 Subnivelul de control al accesului la mediu 712 Nivelul reea 713 Nivelul transport 714 Nivelul aplicaiei 714

709

8.2 BIBLIOGRAFIE N ORDINE ALFABETIC 716

DICIONAR INDEX

737 761

PREFAA

Aceast carte este acum la a treia ediie. Fiecare ediie a corespuns unei etape diferite n modul de utilizare a reelelor de calculatoare. Cnd a aprut prima ediie, n 1980, reelele erau o curiozitate academic. n 1988, cnd a aprut a doua ediie, reelele erau folosite de universiti i de marile firme. Cnd a aprut a treia ediie n 1996, reelele de calculatoare, n special Intemet-ul rspndit n ntreaga lume, au devenit o realitate zilnic pentru milioane de oameni. Mai mult, echipamentele i programele de reea s-au schimbat complet de cnd a aprut a doua ediie. n 1988, aproape toate reelele se bazau pe cablul de cupru. Acum, multe se bazeaz pe fibr optic i comunicaie fr fir. Reelele particulare, cum este SNA, au devenit mult mai puin importante dect reelele publice, n special Internet-ul. Protocoalele OS1 au disprut n tcere i protocolul TCP/IP a devenit dominant. De fapt, opernd att de multe schimbri, cartea a fost rescris aproape n ntregime. Dei Cap. 1 are aceeai funcie introductiv pe care o avea i n ediia a doua, cuprinsul a fost complet revzut i actualizat. De exemplu, n loc de a centra cartea pe modelul OSI cu apte niveluri, se folosete un model hibrid cu cinci niveluri, introdus n Cap. 1. Dei acesta nu este identic cu modelul TCP/IP, principial este mult mai apropiat de modelul TCP/IP dect de modelul OSI folosit n ediia a doua. De asemenea, noile exemple funcionale folosite de la un capt la cellalt al crii - Internet-ul i reelele ATM - sunt prezentate aici, mpreun cu unele reele gigabit i alte reele rspndite. xv

xvi

PREFA

n Cap. 2 accentul s-a mutat de la cablul de cupru la fibra optic i comunicaia fr fir, acestea fiind tehnologiile viitorului. n decada care a trecut, sistemul telefonic a devenit aproape n ntregime digital, astfel c o mare parte din materialul referitor la el a fost rescris, cu adugarea unui material nou despre ISDN de band larg. Ordinea discuiei despre nivelul legtur de date i subnivelul MAC a fost inversat, deoarece experiena cu studenii a artat c ei neleg mai bine subnivelul MAC dup ce au studiat nivelul legtur de date. Exemplele de protocoale prezentate acolo au fost pstrate, deoarece s-au dovedit foarte populare, dar au fost rescrise n C. S-au adugat materiale noi despre nivelul legtur de date la Internet i ATM. Principiile subnivelului MAC din Cap. 4 au fost revizuite pentru a reflecta noile protocoale, incluznd multiplexarea cu divizarea lungimii de und, LAN-uri fr fir i radioul digital. Discuiile despre puni au fost revizuite i s-a adugat o parte nou despre LAN-uri de mare vitez. Cei mai muli dintre algoritmii de dirijare din Cap. 5 au fost nlocuii cu unii mai moderni, incluznd dirijarea dup vectorul distanelor i dirijarea dup starea legturilor. Seciunile despre controlul congestiei au fost refcute complet i materialul despre exemplele practice, Internet i ATM, este n ntregime nou. Cap. 6 trateaz n continuare nivelul transport, dar i aici au avut loc schimbri importante, n primul rnd adugarea unei mari cantiti de material nou despre Internet, ATM i performanele reelei. Cap. 7, despre nivelul aplicaie, este acum cel mai lung capitol din carte. Materialul despre securitatea reelei i-a dublat lungimea i s-au adugat materiale noi despre DNS, SNMP, e-mail, USENET, World Wide Web, HTML, Java, multimedia, video la cerere i Mbone. Dintre cele 395 de figuri din a treia ediie, 276 (70 la sut) sunt complet noi, iar unele dintre celelalte au fost revizuite. Dintre cele 370 de trimiteri la literatura de specialitate, 281 (76 la sut) sunt la cri i articole care au aprut dup publicarea ediiei a doua. Dintre acestea, peste 100 sunt la lucrri publicate numai n 1995 i 1996. Prin urmare, probabil c 75 la sut din ntreaga carte este complet nou i pri din cele 25 de procente rmase au fost revizuite n amnunt. Deoarece aceasta este efectiv o carte nou, coperta a fost redesena pentru a se evita confuzia cu ediia a doua. Crile despre calculatoare sunt pline de acronime. Cea de fa nu este o excepie. Cnd vei termina de citit aceast carte, toate cele ce urmeaz ar trebui s sune familiar: AAL, AMPS, ARP, ASN, ATM, BGP, CDMA, CDPD, CSMA, DQDB, DNS, FAQ, FDM, FTP, FTTC, FTTH, GSM, HDLC, HEC, HIPP, IAB, ICMP, IDEA, IETF, IPv6, ISO, ITU, LATA, MAC, MACA, MAN, MIB, MIME, NAP, NNTP, NSA, NSAP, OSI, OSPF, PCM, PCN, PCS, PEM, PGP, PPP, PSTN, PTT, PVC, QAM, RARP, RFC, RSA, SABME, SAP, SAR, SDH, SDLC, SHA, SMI, SNA, SNMP, SNRME, SPX, TCP, UDP, VHF, VLFS VSAT, WARC, WDM, WWV i WWW. Dar nu v ngrijorai. Fiecare va fi definit cu grij nainte de a fi utilizat.

PREFA

xvii

Pentru a ajuta instructorii n folosirea acestei cri ca text pentru curs, autorul a pregtit trei materiale ajuttoare pentru predare: Un manual cu soluiile problemelor. Fiiere PostScript coninnd toate figurile (pentru producerea de transparente) Un simulator (scris n C) pentru exemplele de protocoale din Cap. 3. Manualul cu soluii este disponibil la Prentice Hali (dar numai pentru instructori). Fiierul cu figuri i simulatorul sunt disponibile prin World Wide Web. Pentru a le obine, v rog s v uitai la pagina personal a autorului: http:llwww.cs.vu.dhustj. Cartea a fost editat* n Times Roman, folosind Troff, care, dup toi aceti ani, este nc singura soluie posibil. Dei Troff nu este aa modern ca sistemele WYSIWYG, cititorul este invitat s compare calitatea acestei cri cu alte cri produse de sisteme WYSIWYG. Singura concesie pe care am fcut-o PC-urilor i editrii cu ajutorul calculatoarelor personale este c, pentru prima dat, figurile au fost produse folosind Adobe Illustrator, n loc s fie desenate pe hrtie. De asemenea, pentru prima dat, cartea a fost produs n ntregime electronic. Rezultatul PostScript de la Troff a fost trimis prin Internet la tipografie unde s-a realizat filmul pentru producerea matrielor. Nici o copie intermediar pe hrtie nu a fost tiprit i fotografiat, aa cum se face n mod normal. Multe persoane m-au ajutat n timpul lucrului la a treia ediie. A dori n mod deosebit s-mi exprim mulumirile ctre Chase Bailey, Saniya Ben Hassen, Nathaniel Borenstein, Ron Cocchi, Dave Crocker, Wiebren de Jonge, Cari Ellison, M. Rasit Eskicioglu, John Evans, Mario Gerla, Mike Goguen, Paul Green, Dick Grune, Wayne Hathaway, Franz Hauck, Jack Holtzman, Gerard Holtzmann, Philip Homburg, Peter Honeyman, Raj Jain, Dave Johnson, Charie Kaufman, Vinary Kumar, Jorg Liebeherr, Paul Mockapetris, Carol Orange, Craig Partridge, Charlie Perkins, Thomas Powell, Greg Sharp, Arme Steegstra, George Swallow, Mark Taylor, Peter van der Linden, Hans van Staveren, Maarten van Steen, Kees Verstoep, Stephen Walters, Michael Weintraub, Joseph Wilkes i Stephen Wolff. Mulumiri speciale Radiei Perlman pentru multe sugestii utile. Studenii mei au ajutat i ei n multe moduri. A dori s-i evideniez pe Martijn Bot, Wibert de Graaf, Flavio del Porno i Amold de Wit pentru asistena acordat. Editorul meu de la Prentice Hali, Mary Franz m-a aprovizionat cu mai multe materiale pentru citit dect am consumat n cei 10 ani anteriori. Ea mi-a fost de asemenea de ajutor n numeroase alte feluri, mici, medii, mari i colosale. Editorul meu de producie, Camille Trentacoste, m-a nvat despre oameni de zpad, cldiri cu 8 etaje, fax [sic] i alte articole importante, n timp ce executa servicii utile si se confrunta cu un Autor Nzuros si un orar ncrcat. n sfrit, am ajuns la persoanele cele mai importante. Suzanne, Barbara, Marvin i chiar i micul Bram au mai trecut prin aceast procedur nainte. Au suportat-o cu infinit rbdare i cu mare amabilitate. Le mulumesc. ANDREW S. TANENBAUM

* este vorba de ediia original, publicat la Prentice-Hall International, Inc. (n.t.)

INTRODUCERE
Fiecare din ultimele trei secole a fost dominat de o anumit tehnologie. Secolul al XVIII-lea a fost secolul marilor sisteme mecanice care au nsoit Revoluia Industrial. Secolul al XlX-lea a nsemnat era mainilor cu aburi. In secolul XX, tehnologia cheie este legat de colectarea, prelucrarea i distribuirea informaiei. Printre alte realizri, am asistat la instalarea reelelor telefonice mondiale, la invenia radioului i a televiziunii, la naterea i creterea nemaivzut a industriei de calculatoare i la lansarea sateliilor de comunicaii. Datorit progresului tehnologic rapid, aceste domenii converg n ritm alert, iar diferenele ntre colectarea, transportul, stocarea i prelucrarea informaiei dispar pe zi ce trece. Organizaii cu sute de birouri rspndite pe o arie geografic larg se ateapt s poat examina n mod curent printr-o simpl apsare de buton chiar i echipamentele lor cele mai ndeprtate. Pe msur ce posibilitile noastre de a colecta, prelucra i distribui informaia cresc tot mai mult, cererea pentru o prelucrarea i mai sofisticat a informaiei crete i mai rapid. Dei industria de calculatoare este tnr n comparaie cu alte industrii (de exemplu, construcia de automobile i transportul aerian), domeniul calculatoarelor a cunoscut un progres spectaculos ntr-un timp scurt. In primele decenii de existen sistemele de calcul erau foarte centralizate, de obicei n interiorul unei singure ncperi. Adesea, aceast ncpere avea perei de sticl prin care vizitatorii se puteau holba la marea minune electronic dinuntru. O companie de mrime mijlocie sau o universitate ar fi putut avea unul sau dou calculatoare, n timp ce instituiile mari aveau cel mult cteva zeci. Ideea c n mai puin de 20 de ani calculatoare la fel de puternice, mai mici dect un timbru potal, vor fi produse pe scar larg n milioane de exemplare prea desprins dintr-un scenariu tiinifico-fantastic.

INTRODUCERE

CAP. 1

ntreptrunderea dintre domeniul calculatoarelor i cel al comunicaiilor a avut o influen profund asupra modului n care sunt organizate sistemele de calcul. Conceptul de centru de calcul" - n accepiunea sa de camer unde exist un calculator mare la care utilizatorii vin s-i ruleze programele - este total depit. Vechiul model al unui singur calculator care servete problemelor de calcul ale organizaiei a fost nlocuit de un model n care munca este fcut de un numr mare de calculatoare separate, dar interconectate. Aceste sisteme se numesc reele de calculatoare. Proiectarea i organizarea acestor reele reprezint subiectul acestei cri. Pe parcursul crii vom folosi termenul reea de calculatoare" pentru a desemna o colecie interconectat de calculatoare autonome. Se spune despre dou calculatoare c sunt interconectate dac sunt capabile s schimbe informaie ntre ele. Conectarea nu se face neaprat printr-un cablu de cupru; pot fi folosite n acest scop fibre optice, microunde sau satelii de comunicaii. Impunnd calculatoarelor cerina de a fi autonome, dorim s excludem din definiia noastr sistemele n care exist o relaie clar de tip master/slave. Dac un calculator poate s porneasc, s opreasc sau s controleze n mod forat un altul, atunci calculatoarele nu sunt autonome. Un sistem cu o unitate de control i mai multe uniti aservite nu este o reea; aa cum nu este o reea nici un calculator mare cu imprimante i terminale aflate la distan. n literatura de specialitate, se face deseori confuzie ntre o reea de calculatoare i un sistem distribuit. Deosebirea esenial este c, ntr-un sistem distribuit, existena mai multor calculatoare autonome e transparent pentru utilizator. Acesta poate tasta o comand pentru a executa un program i programul se va executa. Este sarcina sistemului de operare s aleag procesorul cel mai potrivit, apoi s gseasc i s transfere toate fiierele de intrare ctre respectivul procesor i s depun rezultatele n locul corespunztor. Cu alte cuvinte, utilizatorul unui sistem distribuit nu este contient c exist mai multe procesoare; sistemul arat ca un singur procesor virtual. Alocarea lucrrilor pe procesoare i a fiierelor pe discuri, transferul de fiiere ntre locul unde ele sunt stocate i locul unde sunt necesare, orice alt funcie de sistem - toate acestea trebuie s se execute automat. ntr-o reea, utilizatorii trebuie s se conecteze explicit la o anumit main, s comande explicit execuia proceselor la distan, s transfere explicit fiierele i, n general, s personalizeze toat administrarea reelei. ntr-un sistem distribuit nu este nimic de fcut n mod explicit; totul este realizat automat de ctre sistem, fr cunotina utilizatorilor. De fapt, un sistem distribuit este un sistem de programe construit peste o reea. Programele asigur reelei un grad mare de coeziune i transparen. De aceea, diferena major ntre o reea i un sistem distribuit nu apare la nivel de echipamente, ci de programe (n special la nivelul sistemului de operare). Nu mai puin adevrat este faptul c ntre cele dou subiecte exist o suprapunere considerabil. De exemplu, att sistemele distribuite ct i reelele de calculatoare au nevoie s transfere fiiere. Diferena se refer la cine invoc transferul: sistemul sau utilizatorul. Dei aceast carte are n vedere n primul rnd reelele, multe din subiectele abordate sunt importante i n sistemele distribuite. Pentru mai multe informaii despre sistemele distribuite, a se vedea (Coulouris .a., 1994; Mullender, 1993; i Tanenbaum, 1995).

SEC. 1.1

UTILIZRILE REELELOR DE CALCULATOARE

1.1 UTILIZRILE REELELOR DE CALCULATOARE


nainte de examinarea n detaliu a problemelor tehnice, merit s artm de ce sunt oamenii interesai de reelele de calculatoare i la ce pot fi ele folosite.
1.1.1 Reele pentru firme

Multe organizaii dispun de un numr semnificativ de calculatoare, aflate deseori ia distan unul de altul. De exemplu, o firm cu multe fabrici poate avea n fiecare unitate de producie cte un calculator pe care se ine evidena inventarului, se monitorizeaz productivitatea i se calculeaz salariile angajailor. La nceput, fiecare din aceste calculatoare putea lucra izolat de celelalte, dar, la un moment dat, managerii au decis s le conecteze ntre ele pentru a putea extrage i corela informaii despre ntreaga firm. n termeni mai generali, subiectul se refer la mprirea resurselor, iar scopul este de a face toate programele, echipamentele i n special datele disponibile pentru oricine din reea, indiferent de localizarea fizic a resursei i a utilizatorului. Cu alte cuvinte, simplul fapt c un utilizator se ntmpl s fie la 1000 km distan de datele sale nu trebuie s l mpiedice s foloseasc respectivele date ca i cum ele ar fi locale. Acest obiectiv poate fi sintetizat spunnd c reprezint o ncercare de a distruge tirania geografiei". Un al doilea scop este asigurarea unei fiabiliti mari prin accesul ia mai multe echipamente de stocare alternative. De exemplu, fiierele pot fi copiate pe dou sau trei maini, astfel nct, dac una din ele nu este disponibil (datorit unei defeciuni hardware), pot fi utilizate celelalte copii. n plus, prezena mai multor procesoare nseamn c, dac un procesor se defecteaz, celelalte pot s preia i s duc la bun sfrit, fie i cu performane reduse, activitatea respectivului procesor. Pentru domeniile militar i bancar, controlul traficului aerian, sigurana reactoarelor nucleare i multe alte asemenea aplicaii, posibilitatea de a nu ntrerupe operarea unor echipamente n eventualitatea unor probleme hardware este de maxim importan.
Maina ciien Procesul | client " ] Maina server

Procesu

j
!

,
- Reea

1 1

Cerere
Rspuns_____

Fig. 1-1. Modelul client-server. Un alt scop este economisirea banilor. Calculatoarele mici au un raport pre/calitate mult mai bun dect cele mari. Sistemele mari de calcul (calculatoare de mrimea unei camere) sunt cam de zece ori mai rapide dect calculatoarele personale, dar cost de o mie de ori mai mult. Acest dezechilibru i-a determinat pe muli proiectani s construiasc sisteme formate din calculatoare

INTRODUCERE

CAP. 1

personale, cte unul pentru fiecare utilizator, datele din reea fiind pstrate pe unul sau mai multe servere de fiiere partajate. In acest model utilizatorii sunt numii clieni, iar ntregul aranjament poart numele de model client-server. Acest model este ilustrat n Fig. 1-1. n modelul client-server comunicarea ia, n general, forma unui mesaj de cerere prin care clientul solicit serverului executarea unei anumite aciuni. Serverul execut cererea i trimite rspunsul napoi clientului. n mod uzual exist un numr mare de clieni i un numr mic de servere. Un alt scop al conectrii n reele este scalabilitatea: posibilitatea ca, odat cu volumul de munc, s creasc treptat i performana sistemului prin adugarea de noi procesoare. n cazul sistemelor mari de calcul centralizate, atunci cnd sistemul este ncrcat el trebuie nlocuit cu un sistem mai mare, operaie ce presupune de obicei costuri mari i multe neplceri pentru utilizatori, n modelul client-server pot fi adugai clieni i servere noi pe msur ce este nevoie de ei. n sfrit, punerea n funciune a unei reele de calculatoare servete i unui scop care nu are de-a face aproape deloc cu tehnologia. O reea de calculatoare poate furniza un mediu de comunicare puternic ntre angajai aflai la mare deprtare unii de alii. Folosind o reea, este uor ca dou sau mai multe persoane care triesc n locuri diferite s scrie mpreun un raport. Cnd un angajat schimb ceva ntr-un document din reea, ceilali pot vedea schimbarea imediat, fr a mai atepta cteva zile o scrisoare n acest scop. Cooperarea ntre grupuri de oameni aflai la distane mari unii fa de alii - un lucru imposibil nainte - devine n acest fel simpl. Pe termen lung, utilizarea reelelor pentru a asigura comunicarea interuman se va dovedi, probabil, mai important dect scopuri tehnice de genul creterii fiabilitii. 1.1.2 Reele pentru oameni Motivaiile prezentate mai sus pentru construirea reelelor de calculatoare au o natur esenial economic i tehnologic. Dac ar fi disponibile la preuri acceptabile sisteme de calcul suficient de mari i de puternice, atunci majoritatea firmelor ar decide pur i simplu s i pstreze datele pe acestea i s pun la dispoziia angajailor terminale conectate la ele. n anii 70 i la nceputul anilor '80, cele mai multe companii lucrau n acest mod. Reelele de calculatoare au devenit populare abia cnd reelele formate din calculatoare personale au oferit un uria avantaj pre/performan asupra sistemelor mari de calcul. n anii 1990, reelele de calculatoare au nceput s furnizeze servicii la domiciliu pentru persoane particulare. Aceste servicii, ca i motivele pentru care sunt folosite, se deosebesc n mare msur de modelul eficienei colective" descris n seciunea precedent. Vom scoate acum n eviden trei dintre cele mai fascinante lucruri care au nceput s se petreac: 1. Accesul la informaie de la distan. 2. Comunicaiile interpersonale. 3. Divertismentul interactiv. Accesul informaiei la distan va lua forme multiple. O aplicaie deja actual privete accesul la instituii financiare. Muli oameni i pltesc electronic taxele i i administreaz electronic conturile bancare i investiiile. A devenit de asemenea popular practica de a face cumprturi de

SEC. 1.1

UTILIZRILE REELELOR DE CALCULATOARE

la domiciliu, cu posibilitatea de a inspecta cataloagele on-line a mii de firme. Unele din aceste cataloage vor permite curnd ca, printr-un simplu clic pe numele oricrui produs, s vizionm imediat o prezentare video a produsului respectiv. Presa va fi disponibil n direct i va fi personalizat. Va fi posibil s comunici unui ziar c te intereseaz tot ce este legat de politicieni corupi, incendii, scandaluri n lumea celebritilor i epidemii, n schimb fotbal - nu, mulumesc. Noaptea, n timp ce dormi, ziarul va fi adus pe discul calculatorului tu sau va fi tiprit pe imprimanta ta laser. Pe o scar restrns acest serviciu exist deja. Urmtorul pas dup ziare (plus reviste i publicaii tiinifice) este biblioteca digital n direct. n funcie de costul, mrimea i greutatea calculatoarelor blocnotes, crile tiprite ar putea s devin simboluri ale trecutului. Scepticii ar trebui s ia aminte la efectul pe care tiparul 1-a avut asupra manuscriselor medievale. O alt aplicaie din aceast categorie este accesul la sisteme de informaii similare actualului World Wide Web. Web-ul conine informaii despre arte, afaceri, gtit, politic, sntate, istorie, hobby-uri, recreere, tiin, sport, cltorii i multe alte domenii prea numeroase chiar i pentru a fi doar menionate. Toate aceste aplicaii presupun interaciuni ntre o persoan i o baz de date aflat la distan. O a doua categorie larg de utilizri ale reelei se va referi la interaciunile ntre persoane - este vorba n primul rnd de replica secolului XXI la telefonul din secolul al XlX-lea. Pota electronic, sau e-mail-ul, este deja folosit frecvent de milioane de oameni i, n scurt timp, va conine n mod
A

curent, pe lng text, secvene audio i video. In schimb, va dura ceva mai mult pn cnd se va pune la punct nglobarea mirosului n mesaje. Pota electronic n timp real va permite utilizatorilor aflai la distan s comunice fr nici o ntrziere, fiind posibil eventual chiar s se vad i s se aud unul pe cellalt. Aceast tehnologie face posibile ntlnirile virtuale, numite videoconferine, ntre oameni care se gsesc n diferite locuri pe glob. Se spune uneori c are loc o competiie ntre transport i comunicaii, iar ctigtorul, indiferent cine va fi, va prelua i rolul jucat pn acum de ctre domeniul nvins, ntlnirile virtuale ar putea fi folosite pentru educaie la distan, pentru a cere sfaturi medicale de la specialiti aflai la deprtare i pentru alte numeroase aplicaii. Grupurile de interese de pe tot globul, cu discuii privind orice subiect imaginabil, fac deja parte din realitatea cotidian a unei anumite categorii de persoane, iar aceast categorie va crete pn la dimensiunile ntregii omeniri. Discuiile, n care o persoan trimite un mesaj i toi ceilali abonai ai grupului de interes pot s-1 citeasc, se deruleaz n toate stilurile posibile, putnd fi la fel de bine extrem de amuzante sau de ptimae. A treia categorie avut n vedere este divertismentul, care reprezint o industrie uria, n continu cretere. n acest domeniu aplicaia de cel mai mare succes (cea care poate s influeneze tot restul) se numete video la cerere. Este plauzibil ca peste vreo zece ani s putem selecta orice film sau program de televiziune realizat vreodat n orice ar i acesta s fie disponibil pe ecranul nostru imediat. Filmele noi ar putea deveni interactive: spectatorul ar fi ntrebat n anumite momente ce continuare a povestirii alege (s-1 ucid MacBeth pe Duncan sau s atepte o ocazie mai bun?), fiind prevzute scenarii alternative pentru toate cazurile. De asemenea, televiziunea n direct s-ar putea desfura interactiv, cu telespectatori care particip la concursuri, care aleg ctigtorul dintre concurenii preferai i aa mai departe. Pe de alt parte, poate c nu sistemul de video la cerere, ci jocurile vor reprezenta aplicaia de maxim succes. Exist deja jocuri pentru mai multe persoane cu simulare n timp real, de exemplu

INTRODUCERE

CAP. 1

v-ai ascunsea ntr-o nchisoare virtual sau simulatoare de zbor n care juctorii unei echipe ncearc s-i doboare pe cei din echipa advers. Dac animaia este tridimensional, n timp real i de calitate fotografic, atunci avem un fel de realitate virtual global i partajat. Pe scurt, posibilitatea combinrii de informaii, comunicare i divertisment va da natere, cu siguran, unei uriae industrii noi, bazat pe reelele de calculatoare. 1.1.3 Aspecte sociale

Introducerea pe scar larg a reelelor va ridica noi probleme sociale, etice i politice (Laudon, 1995). Vom meniona pe scurt cteva dintre ele; un studiu exhaustiv ar necesita cel puin o carte. O aplicaie popular a multor reele sunt grupurile de interese sau sistemele de informare n reea (BBS-urile), unde oamenii pot schimba mesaje cu persoane avnd preocupri similare. Atta vreme ct este vorba de subiecte tehnice sau de pasiuni precum grdinritul, nu sunt motive s apar multe probleme. Problemele se ivesc n cazul grupurilor de interese care iau n discuie subiecte delicate sau extrem de disputate, cum ar fi politica, religia sau sexul. Atitudinile exprimate n cadrul acestor grupuri pot fi considerate ofensatoare de ctre anumii oameni. Mai mult chiar, nu este obligatoriu ca mesajele s se limiteze la text. Fotografii color de nalt rezoluie i chiar scurte clipuri video pot fi acum transmise cu uurin prin reelele de calculatoare. Unii oameni au o atitudine neutr (triete i las-m s triesc"), dar alii consider c trimiterea anumitor materiale (de exemplu, pornografia n care sunt implicai copii) este pur i simplu inacceptabil. Din aceast cauz, dezbaterea este foarte aprins. Unii oameni au dat n judecat operatori de reea, pretinznd c ei sunt responsabili pentru informaia care circul, exact ca n cazul ziarelor i revistelor. Rspunsul inevitabil este c reeaua e ca o companie de telefoane sau ca un oficiu potal i nu poate controla ceea ce discut utilizatorii si. Mai mult chiar, dac operatorii reelei ar cenzura mesajele, atunci probabil c ei ar putea terge orice fr a exista nici cea mai mic posibilitate de a-i da n judecat, nclcnd astfel dreptul utilizatorilor la exprimare liber. Nu este, probabil, hazardat s afirmm c aceast dezbatere va continua mult timp. O alt disput animat are n atenie drepturile angajailor n raport cu drepturile patronilor. Multe persoane citesc i scriu pot electronic la serviciu. Directorii unor firme au pretins c ar avea dreptul s citeasc i eventual s cenzureze mesajele angajailor, inclusiv mesajele trimise dup orele de lucru de la terminalele de acas. Numai c nu toi angajaii agreeaz aceast idee (Sipior i Ward, 1995). Dar chiar admind c directorii au o astfel de putere asupra angajailor, exist o relaie similar si ntre universiti si studeni? Dar ntre licee si elevi? n 1994 Universitatea Carneeie-Mellon a hotrt s blocheze mesajele care veneau de la grupuri de interese legate de sex pe motivul c materialele nu erau potrivite pentru minori (adic pentru cei civa studeni care nu aveau nc 18 ani). Disputa izvort din aceast decizie va dura ani ntregi. Reelele de calculatoare ofer posibilitatea de a trimite mesaje anonime. In anumite situaii aa ceva este de dorit. De exemplu, reprezint un mijloc pentru studeni, soldai, angajai, ceteni de a trage un semnal de alarm - fr team de represalii - n cazul comportamentului ilegal al profesorilor, ofierilor, directorilor sau politicienilor. Pe de alt parte, n Statele Unite i n

SEC. 1.2

HARDWARE-UL REELEI

majoritatea democraiilor, legea asigur n mod explicit dreptul unei persoane acuzate de a-i chema acuzatorul n faa Curii. Acuzaiile anonime nu pot servi drept prob. Pe scurt, reelele de calculatoare, asemenea industriei tipografice cu 500 de ani n urm, permit cetenilor obinuii s-i lanseze opiniile prin mijloace diferite i ctre audiene diferite fa de cele de pn acum. Aceast libertate nou descoperit aduce cu ea probleme nerezolvate de ordin social, politic i moral. Soluia acestor probleme este lsat cititorului drept exerciiu.

1.2

HARDWARE-UL REELEI

A venit acum timpul s ne ndreptm atenia de la aplicaiile i problemele sociale ale interconectrii la aspectele tehnice care intervin n proiectarea reelelor. Dei nu exist o taxonomie general acceptat n care pot fi ncadrate toate reelele de calculatoare, sunt extrem de importante dou criterii: tehnologia de transmisie i scara la care opereaz reeaua. Vom examina pe rnd fiecare din aceste aspecte. n principal exist dou tipuri de tehnologii de transmisie: 1. Reele cu difuzare. 2. Reele punct-la-punct. Reelele cu difuzare au un singur canal de comunicaii care este partajat de toate mainile din reea. Orice main poate trimite mesaje scurte, numite n anumite contexte pachete, care sunt primite de toate celelalte maini. Un cmp de adres din pachet specific maina creia i este adresat pachetul. La recepionarea unui pachet, o main controleaz cmpul de adres. Dac pachetul i este adresat, maina 11 prelucreaz; dac este trimis pentru o alt main, pachetul este ignorat. S considerm, ca analogie, c cineva se afl la captul unui coridor cu multe ncperi i strig Watson, vino aici: Am nevoie de tine." Dei pachetul poate fi primit (auzit) de mult lume, numai Watson va rspunde. Ceilali pur i simplu l ignor. Un alt exemplu ar fi un aeroport unde se anun c toi pasagerii zborului 644 sunt rugai s se prezinte la poarta 12. Distana ntre procesoare 0.1 m 1m 10 m 100 m 1 km 10 km 100 km 1,000 km 10,000 km Procesoare situate n aceeai Piac de circuite j Sistem Camer Cldire Campus Ora Tar Continent Planet Reea de larg rspndire geografic intern et-ui Reea metropolitan Reea iocai ! Exempu Main de tip flux de date Muiticalculator

Fig. 1-2. Clasificarea procesoarelor interconectate n funcie de distan.

INTRODUCERE

CAP. 1

Sistemele cu difuzare permit n general i adresarea unui pachet ctre toate destinaiile, prin folosirea unui cod special n cmpul de adres. Un pachet transmis cu acest cod este primit i prelucrat de toate mainile din reea. Acest mod de operare se numete difuzare. Unele sisteme cu difuzare suport de asemenea transmisia la un subset de maini, operaie cunoscut sub numele de trimitere multipl. Una din schemele posibile este s se rezerve un bit pentru a indica trimiterea multipl. Restul de n -1 bii de adres pot forma un numr de grup. O main se poate abona" la orice grup sau la toate grupurile. Un pachet trimis unui anumit grup va ajunge la toate mainile abonate la grupul respectiv. Prin contrast, reelele punct-la-punct dispun de numeroase conexiuni ntre perechi de maini individuale. Pentru a ajunge de la surs la destinaie pe o reea de acest tip, un pachet s-ar putea s fie nevoit s treac prin una sau mai multe maini intermediare. Deseori sunt posibile trasee multiple, de diferite lungimi, de aceea algoritmii de dirijare joac n reelele punct-la-punct un rol important. Ca o regul general (dei exist numeroase excepii), reelele mai mici, localizate geografic, tind s utilizeze difuzarea, n timp ce reelele mai mari sunt de obicei punct-la-punct. Un criteriu alternativ pentru clasificarea reelelor este mrimea lor. n Fig. 1-2 este prezentat o clasificare a sistemelor cu procesoare multiple dup mrimea lor fizic. Prima categorie o reprezint mainile de tip flux de date, calculatoare cu grad ridicat de paralelism dispunnd de mai multe uniti funcionale care lucreaz la acelai program. Urmeaz apoi multicalculatoarele, sisteme care comunic transmind mesaje pe magistrale foarte scurte i foarte rapide. Dincolo de multicalculatoare sunt adevratele reele, calculatoare care comunic prin schimbul de mesaje pe cabluri mai lungi. Acestea pot fi mprite n reele locale, reele metropolitane i reele larg rspndite geografic. n sfrit, prin conectoreajajdQu sau mai .multe. rejtele rezul_o inter-reea. Internet-ul este un exemplu bine cunoscut de inter-reea. Distana este un criteriu de clasificare important, pentru c, la scri diferite, sunt folosite tehnici diferite. n aceast carte ne vom ocupa numai de reelele adevrate i de interconectarea lor. Prezentm mai jos o scurt introduce n subiectul echipamentelor de reea. 1.2.1 Reele locale Reelele locale (Local Area Networks), denumite n general LAN-uri, sunt reele private localizate ntr-o singur cldire sau ntr-un campus de cel mult civa kilometri. Ele sunt frecvent utilizate pentru a conecta calculatoarele personale i staiile de lucru din birourile companiilor i fabricilor, n scopul de a partaja resurse (imprimante, de exemplu) i de a schimba informaii. LANurile se disting de alte tipuri de reele prin trei caracteristici: (1) mrime, (2) tehnologie de transmisie i (3) topologie. LAN-urile au dimensiuni restrnse, ceea ce nseamn c timpul de transmisie n cazul cel mai defavorabil este limitat i cunoscut dinainte. Cunoscnd aceast limit, este posibil s utilizm anumite tehnici de proiectare care altfel nu ar fi fost posibile. Totodat, se simplific administrarea reelei. LAN-urile utilizeaz frecvent o tehnologie de transmisie care const dintr-un singur cablu la care sunt ataate toate mainile, aa cum erau odat cablurile telefonice comune n zonele rurale. LAN-urile tradiionale funcioneaz la viteze cuprinse ntre 10 i 100 Mbps, au ntrzieri mici (zeci de microsecunde) i produc erori foarte puine. LAN-urile mai noi pot opera la viteze mai mari, pn la sute de megabii/sec. n aceast carte vom pstra tradiia i

SEC. 1.2

HARDWARE-UL REELEI

vom msura vitezele de transmisie pe linii n megabii/sec (Mbps), nu n megabytes/sec 30 (MB/sec). Un megabit reprezint 1,000,000 bii, nu 1,048,576 (2 ) bii.

-Calcuiator

'Cablu
(a)

Calculator

(b)

Fig. 1-3. Dou reele cu difuzare, (a) Magistral, (b) Inel. Pentru LAN-urile cu difuzare sunt posibile diverse topologii^ Figura 1-3 prezint dou dintre ele. ntr-o reea cu magistral (cu cablu liniar), n fiecare moment una dintre maini este mater i are dreptul s transmit. Restul mainilor nu pot transmite. Cnd dou sau mai multe maini vor s transmit simultan, este necesar un mecanism de arbitrare. Mecanismul de arbitrare poate fi centralizat sau distribuit. De exemplu, IEEE 802.3, popular num'it Ethernet , este o reea cu difuzare bazat pe magistral cu control descentralizat, lucrnd la 10 sau 100 Mbps. Calculatoarele dintr-un Ethernet pot transmite oricnd doresc; dac dou sau mai multe pachete se ciocnesc, fiecare calculator ateapt o perioad de timp aleatorie i apoi ncearc din nou. Un al doilea tip de reea cu difuzare este reeaua n inel. ntr-un inel fiecare bit se propag independent de ceilali, fr s atepte restul pachetului cruia i aparine. n mod tipic, fiecare bit navigheaz pe circumferina ntregului inel ntr-un interval de timp n care se transmit doar civa bii, de multe ori nainte chiar ca ntregul pachet s fi fost transmis. Ca n orice alt sistem cu difuzare, este nevoie de o regul pentru a arbitra accesele simultane la inel. Pentru aceasta se utilizeaz diferite metode, care vor fi discutate n carte mai trziu. IEEE 802.5 (inelul cu jeton de la IBM) este un LAN popular de tip inel, care opereaz la 4 i la 16 Mbps. Reelele cu difuzare pot fi n continuare mprite n staticei dinamice, n funcie de modul de alocare al canalului. O metod tipic de alocare static ar fi s divizm timpul n intervale discrete i s rulm un algoritm round-robin, lsnd fiecare main s emit numai atunci cnd i vine rndul. Alocarea static irosete capacitatea canalului atunci cnd o main nu are nimic de transmis n cuanta de timp care i-a fost alocat, astfel c majoritatea sistemelor ncearc s aloce canalul dinamic (la cerere). Metodele de alocare dinamic pentru un canal comun sunt fie centralizate, fie descentralizate. n cazul metodei centralizate de alocare a canalului exist o singur entitate, de pild o unitate de arbitrare a magistralei, care determin cine urmeaz la rnd. Poate face acest lucru acceptnd cereri i lund o decizie conform unui algoritm intern. n cazul metodei descentralizate de alocare a canalului nu exist o entitate central; fiecare main trebuie s hotrasc pentru ea nsi dac s

INTRODUCERE

CAP. 1

transmit sau nu. S-ar putea crede c n acest fel se ajunge totdeauna la haos, dar lucrurile nu stau aa. Vom studia mai trziu numeroi algoritmi proiectai s refac ordinea dintr-un potenial haos. Cellalt tip de LAN-uri este construit cu linii punct-la-punct. Liniile individuale leag o main specificat cu o alt main specificat. Un astfel de I A N reprezint o reea larg rspndit geografic n miniatur. Vom vedea aceste reele ceva mai trziu. 1.2.2 Reele metropolitane

O reea metropolitan (Metropolitan Area Neirork), sau MN (plural: MAN-uri, nu MEN') este, n linii mari, o versiune extins de LAN' i utilizeaz n mod normai tehnologii similare cu aceasta. O reea metropolitan se poate ntinde pe zona ocupat de un grup de birouri nvecinate sau pe suprafaa unui ntreg ora i poate fi att privat ct i public. Un MAN poate suporta att date ct i voce i poate chiar s aib legturi cu reeaua local de televiziune prin cablu. Un MAN' dispune numai de un cablu sau dou, fr s conin elemente de comutare care deviaz pachetele pe una din cele cteva posibile linii de ieire. Nefiind necesar comutarea, proiectarea este mai simpl. Motivul principal pentru care MAN-urile figureaz ca o categorie special const n adoptarea unui standard specific, standard care este acum implementat. Acesta se numete DQDB (Bistrbuted Queue Bua! Bus - magistral dual cu coad distribuit) sau. pentru cei care prefer numerele, 802.6 (numrul standardului EEE care o definete). DQDB const din dou magistrale (cabluri) unidirecionale la care sunt conectate toate calculatoarele, aa cum este artat n Fig. 1-4. Fiecare magistral are un capt de distribuie (head-end) - un dispozitiv care iniiaz activitatea de transmisie. Traficul destinat unui calculator din dreapta ransmitorului folosete magistrala de sus. Traficul ctre utilizatorii din stnga folosete magistrala de jos.
Sensu! fluxului pe magistrala A

Magistrala A

Cecuaor -

Magistrala B

<

Sensu! fluxului pe magistrala B

Fig. 1-4. Arhitectura reelei metropolitane DQDB Un aspect cheie pentru un MAN este prezena unui mediu de difuzare (n cazul lui 802.6, dou cabluri) la care sunt ataate toate calculatoarele. Acesta simplific mult proiectarea n comparaie cu alte tipuri de reele. Vom discuta mai detaliat DQDB n Cap. 4.

* n original MANS no MEN (n.t.

SEC. 1.2

HARDWARE-UL REELEI

11

1.2.3 Reele larg rspndite geografic O reea larg rspndit geografic (Wide Area Network), sau WAN, acoper o arie geografic ntins - deseori o ar sau un continent ntreg. Reeaua conine o colecie de maini utilizate pentru a executa programele utilizatorilor (adic aplicaii). n concordan cu termenul uzual, vom numi aceste maini gazde. Uneori este folosit n literatur termenul de sistem final. Gazdele sunt conectate printr-o sobreea de comunicaie sau, pe scurt, subreea. Sarcina subreelei este s transporte mesajele de la gazd la gazd, exact aa cum sistemul telefonic transmite cuvintele de la vorbitor la asculttor. Prin separarea aspectelor de pur comunicaie ale reelei (subreelei) de aspectele referitoare la aplicaii (gazde), proiectarea ntregii reele se simplific mult. n majoritatea reelelor larg rspndite geografic, subreeaua este format din dou componente distincte: liniile de transmisie i elementele de comutare. Liniile de transmisie (numite i circuite, canale, sau trunchiuri) transport biii ntre maini. Elementele de comutare sunt calculatoare specializate, folosite pentru a conecta dou sau mai multe linii de transmisie. Cnd sosesc date pe o anumit linie, elementul de comutare trebuie s aleag o nou linie pentru a retransmite datele mai departe. Din pcate, nu exist nici o terminologie standard pentru denumirea acestor calculatoare. Folosind diveri termeni, ele pot fi numite, de exemplu, noduri de comutare a pachetelor, sisteme intermediare, sau comutatoare de date. Noi vom folosi ca termen generic pentru aceste calculatoare de comutare cuvntul rater. Cititorul trebuie s tie, totui, c nu exist un consens asupra terminologiei. Conform acestui model, prezentat n Fig. 1-5, fiecare gazd este n general conectat la un LAN n care exist un rater. n anumite cazuri, ns, o gazd poate fi legat direct cu un ruter. Colecia de linii de comunicaie i de rutere (dar nu i gazdele) formeaz subreeaua.
Subreea Ruter

Gazd

Fig. 1-5. Relaia dintre gazde i subreea. Merit s facem o scurt divagaie n jurul termenului de subreea". Iniial, singura sa accepiune se referea la colecia ruterelor i liniilor de comunicaie care mutau pachetele de la gazda surs la gazda destinaie. Totui, civa ani mai trziu, cuvntul a mai cptat un al doilea neles, n conjuncie cu adresarea reelelor (pe care o vom discuta n Cap. 5). De aceea, termenul conine o anumit ambiguitate. Din nefericire, nu exist o alternativ larg acceptat pentru nelesul

12

INTRODUCERE

CAP.l

su iniial, drept care noi vom folosi acest termen, cu unele rezerve, n ambele sensuri. Din context, va fi totdeauna clar care din ele este subneles. n cazul celor mai multe WAN-uri, reeaua conine numeroase cabluri sau linii telefonice, fiecare din ele legnd o pereche de rutere. Dac dou rutere nu mpart un acelai cablu, dar doresc s comunice, atunci ele trebuie s fac acest lucru indirect, prin intermediul altor rutere. Cnd un pachet este transmis de la un ruter la altul prin intermediul unuia sau mai multor rutere, pachetul este primit n ntregime de fiecare ruter intermediar, este reinut acolo pn cnd linia de ieire cerut devine liber i apoi este retransmis. O subreea care funcioneaz pe acest principiu se numete subreea punct-ia-punct, subreea memoreaz-iretraesmite sau subreea cu comutare de pachete. Aproape toate reelele larg rspndite geografic (excepie fcnd cele care utilizeaz satelii) au subretele memoreaz-i-retransmite. Cnd pachetele sunt mici i au aceeai mrime, ele sunt adesea numite celule. Atunci cnd se folosete o subreea punct-la-punct, o problem important de proiectare se refer la alegerea topologiei de interconectare a ruterelor. Figura 1-6 prezint cteva topologii posibile. Reelele locale proiectate astfel folosesc de obicei topologii simetrice. Din contr, reelele larg rspndite geografic au, n mod tipic, topologii neregulate.

(b)

(c)

Fig. 1-6. Cteva topologii posibile pentru o subreea punct-la-punct. (a) Stea. (b) Inel. (c) Arbore, (d) Complet, (e) Inele intersectate. (f) Neregulat. O a doua posibilitate pentru un WAN este utilizarea unui satelit sau a unui sistem radio terestru. Fiecare ruter are o anten cu care poate s recepteze i s emit. Toate ruterele pot auzi semnalul de la satelit, iar n unele cazuri, ele pot auzi totodat i transmisiile de la rutere ctre satelit.

SEC 1.2

HARDWARE-UL REELEI

13

Uneori ruterele sunt conectate la o reea punct-la-punct i numai unele dintre ele au antene de satelit. Reelele de satelii sunt n mod inerent reele cu difuzare i se utilizeaz mai ales atunci cnd proprietatea de difuzare este important. 1.2.4 Reele radio Calculatoarele mobile, aa cum sunt blocnotesurile sau asistenii personali digitali (PDA-urile), reprezint segmentul din industria tehnicii de calcul cu dezvoltarea cea mai rapid. Muli posesori ai acestor calculatoare au la birou sisteme legate la LAN-uri i WAN-uri i vor s se conecteze la acestea, chiar i atunci cnd se afl n locuri deprtate de cas sau pe drum. Deoarece legturile prin fir sunt imposibile n maini i avioane, interesul pentru reelele radio este foarte puternic. In aceast seciune vom face o scurt introducere n acest subiect. (Not: prin seciune nelegem poriunile din carte notate printr-un numr cu trei cifre, de genul 1.2.4) Comunicaiile digitale fr fir nu reprezint, de fapt, o idee nou. nc din 1901, fizicianul italian Guglielmo Marconi a realizat legtura ntre un vapor i un punct de pe coast folosind telegraful fr fir i codul Morse (punctele i liniile sunt, n definitiv, binare). Sistemele radio moderne au performane mai bune, dar ideea fundamental a rmas aceeai. Informaii suplimentare despre aceste sisteme pot fi gsite n (Grag i Wilkes, 1996; i Pahlavan .a., 1995). Reelele radio au numeroase utilizri. Biroul portabil reprezint una dintre ele. Oamenii aflai pe drum doresc adesea s foloseasc echipamentele lor electronice portabile pentru a trimite i primi faxuri i pot electronic, pentru a citi fiiere aflate la distan, pentru a se conecta la distan si aa mai departe. i doresc s fac aa ceva din orice loc de pe uscat, ap sau aer. Reelele radio sunt de mare importan pentru parcurile de camioane, taxiuri i autobuze, ca i pentru echipele de intervenie care trebuie s menin contactul cu baza. Reelele radio pot fi de asemenea utile pentru echipele de intervenie n locuri de dezastru (incendii, inundaii, cutremure etc.) unde sistemul telefonic a fost distrus. Calculatoarele aduse la faa locului pot s trimit mesaje, s nregistreze informaii i aa mai departe. n sfrit, reelele radio sunt importante pentru armat. Dac trebuie s faci fa n cel mai scurt timp unui rzboi care se poate desfura oriunde n lume, atunci probabil c nu este o idee bun s te bazezi pe infrastructura de reele existent la faa locului. Este mai bine s-i aduci propria reea.
Fr fir
Nu Nu Da Da

Mobif
Nu Da Nu Da

Aplicaii Staii de lucru staionare ntr-un birou Folosirea unui calculator portabil ntr-un hotel sau pentru inspecia trenurilor LAN-uri instalate n cldiri mai vechi, fr fire Birouri mobile; PDA-uri pentru inventarierea magaziei

Fig. 1-7. Combinaii de reele fr fir i tehnic de calcul mobil. Dei reelele fr fir i echipamentele de calcul mobile sunt adesea nrudite, ele nu sunt identice (a se vedea Fig. 1-7). Calculatoarele portabile comunic uneori cu ajutorul firelor. Dac ntr-un hotel un turist racordeaz un calculator mobil la mufa de telefon, acesta este un exemplu de mobilitate fr reea radio. Un alt exemplu se refer la o persoan care poart cu sine un calculator mobil n timp ce inspecteaz, pentru probleme tehnice, un tren. n acest caz, n spatele calculatorului poate foarte bine s atrne un fir lung (ca la aspirator).

14

INTRODUCERE

CARI

Pe de alt parte, unele calculatoare fr fir nu sunt portabile. Un exemplu important de acest tip se refer la o firm care posed o cldire mai veche, fr reele de cabluri instalate, i care dorete s i conecteze calculatoarele. Instalarea unui LAN fr fir poate s nu necesite mare lucru, n afar de cumprarea unei mici cutii cu componente electronice i de montarea unor antene. Aceast soluie poate fi mai puin costisitoare dect instalarea cablurilor n cldire. Dei LAN-urile fr fir sunt uor de instalat, ele au i unele dezavantaje. Capacitatea lor tipic este de l-2Mbps, ceea ce este mult mai puin dect n cazul LAN-urilor cu fir. De asemenea, rata de erori este adesea mai mare, iar transmisiile ntre diferite calculatoare pot interfera unele cu altele. Dar exist, desigur, i aplicaii cu adevrat mobile, fr fir, ncepnd cu biroul portabil i terminnd cu persoanele care fac inventarul uriui magazin folosind PDA-uri. n multe aeroporturi aglomerate, angajaii companiilor de nchiriat maini lucreaz n parcri cu calculatoare portabile fr fir. Ei introduc n calculator numrul de nmatriculare al fiecrei maini returnate, iar portabilele lor, care au nglobat o imprimant, apeleaz calculatorul central, primesc informaii despre nchirierea respectivei maini i elibereaz factura de plat pe loc. Aplicaii autentice ale tehnicii de calcul mobile sunt discutate mai pe larg n (Forman i Zahorjan, 1994). Reelele fr fir exist n multe forme. Unele universiti instaleaz deja n campusuri antene care permit studenilor s stea sub copaci i s consulte cataloagele bibliotecilor. n acest caz, calculatoarele comunic cu LAN-urile fr fir direct n form digital. O alt posibilitate este utilizarea unui telefon celular (adic portabil), mpreun cu un modem analogic tradiional. n numeroase orae sunt acum disponibile serviciile celulare digitale directe, numite CDPD (Cellular Digital Packet Data - pachete de date celulare digitale). Vom studia aceste servicii n Cap. 4.
Ruter zburtor

'v / ' T"^ ^< Calculator r M .. x * . t J::^\ ^\ portabil O legtur telefonic ^ \ _ _ _ > pentru fiecare calculator (a)

'

L A N i*"\ ^\ t__^. \. cablat ^-^ J S >

(b)

Fig. 1-8. (a) Calculatoare mobile individuale, (b) Un LAN zburtor. n sfrit, este posibil s avem diverse combinaii de reele cu i fr fir. De exemplu, n Fig. 18(a) este desenat un avion n care mai muli pasageri folosesc modemuri i telefoane pentru a suna la birou. Fiecare convorbire este independent de celelalte. O opiune mult mai eficient este, ns, LAN-ul zburtor din Fig. l-8(b). n acest caz, fiecare scaun este echipat cu un conector Ethernet, la care pasagerii pot s-i racordeze calculatoarele. La bordul avionului exista un singur rutei?. Acesta menine n fiecare moment o legtur radio cu un ruter aflat la sol, ruter care se schimb pe parcursul zborului. Configuraia respectiv' nu reprezint altceva dect un LAN tradiional, cu deosebirea c legtura sa cu lumea exterioar este asigurat de o conexiune radio n loc de o linie fizic.

SEC. 1.3

PROGRAMELE DE REEA

15

Mult lume crede despre calculatoarele portabile fr fir c reprezint valul viitorului. Dar, n acelai timp, s-a fcut auzit cel puin o prere contrar. Bob Metcalfe, inventatorul Ethernet-ului, a scris urmtoarele: Calculatoarele mobile fr fir sunt ca bile mobile fr evi - nite olie de noapte portabile. Ele vor fi ceva comun n vehicule, pe antiere i la concerte rock. Sfatul meu este s v racordai cabluri n cas i s rmnei acolo" (Metcalfe, 1995). Vor urma cei mai muli sfatul lui Metcalfe? Timpul ne va rspunde. n lume exist multe reele, cu echipamente i programe diverse. Persoanele conectate la o anumit reea doresc adesea s comunice cu persoane racordate la alta. Aceast cerin impune conectarea unor reele diferite, de multe ori incompatibile, ceea ce uneori se realizeaz utiliznd maini numite porii (gateways). Acestea realizeaz conectarea i asigur translatrile necesare, att n termeni de hardware ct i de software. O colecie de reele interconectate este numit interreea sau internei O form comun de inter-reea este o colecie de LAN-uri conectate printr-un WAN. De fapt, dac am nlocui eticheta subreea" din Fig. 1-5 prin WAN", n figur nu ar mai trebui schimbat nimic altceva. n acest caz, singura diferen real ntre o subreea i un WAN se refer la prezena gazdelor. Dac sistemul din interiorul curbei nchise conine numai rutere, atunci este o subreea. Dac el conine att rutere, ct i gazde cu utilizatori proprii, atunci este un WAN. Pentru a evita confuziile, luai v rog not c termenul internet" va fi totdeauna folosit n aceast carte ntr-un sens generic. Prin contrast, Internet-ul (a se remarca folosirea lui I mare) reprezint un internet mondial specific, care este utilizat pe larg pentru a conecta universiti, birouri guvernamentale, firme i, n ultima vreme, persoane particulare. Vom avea multe de spus n aceast carte att despre internet ct i despre Internet. Deseori se produc confuzii ntre subretele, reele i inter-reele. Termenul de subreea este mai potrivit n contextul unei reele larg rspndite geografic, unde se refer la colecia de rutere i linii de comunicaie aflate n proprietatea operatorului de reea - de exemplu, o firm ca America Online sau CompuServe. Ca o analogie, sistemul telefonic const din centrale telefonice de comutare, care sunt conectate ntre ele prin linii de mare vitez i sunt legate la domicilii i birouri prin linii de vitez sczut. Aceste linii i echipamente, deinute i ntreinute de ctre compania telefonic, formeaz subreeaua sistemului telefonic. Telefoanele propriu-zise (care corespund n aceast analogie gazdelor) nu sunt o parte a subreelei. Combinaia dintre o subreea i gazdele sale formeaz o reea. n cazul unui LAN, reeaua este format din cablu i gazde. Aici nu exist cu adevrat o subreea. O inter-reea se formeaz atunci cnd se leag ntre ele reele diferite. Din punctul nostru de vedere, legarea1 unui LAN i a unui WAN sau legarea a dou LAN-uri formeaz o inter-reea, dar nu exist un consens asupra terminologiei din acest domeniu.

13

PROGRAMELE DE REEA

In proiectarea primelor reele de calculatoare, s-a acordat atenie n primul rnd echipamentelor, iar programele au fost gndite ulterior. Aceast strategie nu mai este valabil. Programele de reea sunt acum foarte structurate. n seciunile urmtoare vom examina unele detalii ale tehnicii de structurare a programelor. Metoda descris aici formeaz punctul de sprijin al ntregii cri i ea va aprea mai departe n repetate rnduri.

16

INTRODUCERE

CAP.l

13.1 Ierarhiile de protocoale

Pentru a reduce din complexitatea proiectrii, majoritatea reelelor sunt organizate sub forma unei serii de straturi sau niveluri, fiecare din ele construit peste cel de dedesubt. Numrul de niveluri, numele fiecrui nivel, coninutul i funcia sa variaz de la reea la reea. Oricum, n toate reelele, scopul fiecrui nivel este s ofere anumite servicii nivelurilor superioare, protejndu-le totodat de detaliile privitoare la implementarea efectiv a serviciilor oferite. Nivelul n d e pe o main converseaz cu nivelul n de pe alt main. Regulile i conveniile utilizate n conversaie sunt cunoscute sub numele de protocolul nivelului n. n principal, un protocol reprezint o nelegere ntre prile care comunic, asupra modului de realizare a comunicrii. Ca o analogie, atunci cnd o femeie este prezentat unui brbat, ea poate hotr s-i ntind brbatului mna. La rndul su, brbatul poate decide fie s-i strng, fie s-i srute mna, decizie care depinde, s spunem, dac femeia este o avocat american care a venit la o ntlnire de afaceri sau este o prines european prezent la un bal. nclcarea protocolului va face comunicarea mai dificil, dac nu chiar imposibil. n Fig. 1-9 este ilustrat o reea cu cinci niveluri. Entitile care conin niveluri corespunztoare de pe maini diferite se numesc egale. Cu alte cuvinte, entitile egale sunt cele care comunic folosind protocolul.
Gazda 1 Nivel 5 Interfaa 4/5; Nivel 4 Interfaa 3/4' Nivel 3 Interfaa 2/3 ' Nivel 2 Interfaa 1/2'
1

Protocolul nivelului 5

Gazda 2 Nivel 5
L

Protocolul nivelului 4

Nivel 4
L f

Protocolul nivelului 3

- Nivel 3

Protocolul nivelului 2

Nivel 2
ti

Nivel 1
i 1

Protocolul nivelului 1

Nivel 1

Mediu fizic

Fig. 1-9. Niveluri, protocoale i interfee n realitate, nici un fel de date nu sunt transferate direct de pe nivelul n al unei maini pe nivelul n al altei maini. Fiecare nivel transfer datele i informaiile de control nivelului imediat inferior, pn cnd se ajunge la nivelul cel mai de jos. Sub nivelul 1 se afl mediul fizic prin care se produce

SEC. 1.3

PROGRAMELE DE REEA

17

comunicarea efectiv. n Fig. 1-9, comunicarea virtual este reprezentat prin linii punctate, iar comunicarea fizic prin linii continue. ntre dou niveluri adiacente exist o interfa. Interfaa definete ce ofer nivelul de jos ctre nivelul de sus. Cnd proiectanii de reea decid cte niveluri s includ ntr-o reea i ce are de fcut fiecare din ele, unul din considerentele cele mai importante se refer la definirea de interfee clare ntre niveluri. Aceasta presupune ca, la rndul su, fiecare nivel s execute o colecie specific de funcii clar definite. Pe lng minimizarea volumului de informaii care trebuie transferate ntre niveluri, interfeele clare permit totodat o mai simpl nlocuire a implementrii unui nivel cu o implementare complet diferit (de exemplu, toate liniile telefonice se nlocuiesc prin canale de satelit). Aa ceva este posibil, pentru c tot ceea ce i se cere noii implementri este s furnizeze nivelului superior exact setul de servicii pe care ii oferea vechea implementare. O mulime de niveluri i protocoale este numit arhitectur de reea. Specificaia unei arhitecturi trebuie s conin destule informaii pentru a permite unui proiectant s scrie programele sau s construiasc echipamentele necesare fiecrui nivel, astfel nct nivelurile s ndeplineasc corect protocoalele corespunztoare. Nici detaliile de implementare i nici specificaiile interfeelor nu fac parte din arhitectur, deoarece acestea sunt ascunse n interiorul mainilor i nu sunt vizibile din afar. Nu este necesar nici mcar ca interfeele de pe mainile dintro reea s fie aceleai - cu condiia, ns, ca fiecare main s poat utiliza corect toate protocoalele. O list de protocoale utilizate de ctre un anumit sistem, cte un protocol pentru fiecare nivel, se numete stiv de protocoale. Arhitecturiie de reea, stivele de protocoale i protocoalele propriuzise constituie principalele subiecte ale acestei cri. O analogie poate ajuta la explicarea ideii de comunicare multinivel. maginai-v doi filosofi (procesele egale de la nivelul 3), unul din ei vorbind limbile urdu i englez, iar cellalt vorbind chineza i franceza. Deoarece filosofii nu cunosc o limb comun, fiecare din ei angajeaz cte un translator (procesele egale de la nivelul 2), iar fiecare translator contacteaz la rndul su o secretar (procesele egale de la nivelul 1). Filosoful 1 dorete s comunice partenerului afeciunea sa pentru oiyctolagus cuniculus. Pentru aceasta, el trimite un mesaj (n englez) prin interfaa 2/3 ctre translatorul su, cruia i spune urmtoarele cuvinte: I like rabbits"1 (ceea ce este ilustrat n Fig. 1-10). Translatorii s-au neles asupra unei limbi neutre, olandeza, aa c mesajul este convertit n Ik hou van konijnen." Alegerea limbii reprezint protocolul nivelului 2 i este la latitudinea proceselor pereche de pe acest nivel. n continuare, translatorul nmneaz mesajul secretarei, care l trimite, de exemplu, prin fax (protocolul nivelului 1). Cnd mesajul este primit, el este tradus n francez i trimis prin interfaa 2/3 ctre filosoful 2. Observai c, atta timp ct interfeele nu se modific, fiecare protocol este complet independent de celelalte. Dac doresc, translatorii pot schimba olandeza cu alt limb, s spunem finlandeza, cu condiia ca amndoi s se neleag asupra acestui lucru i ca nici unul din ei s nu i modifice interfaa cu nivelul 1 sau cu nivelul 3. n mod similar, secretarele pot nlocui faxul cu pota electronic sau cu telefonul fr a deranja (sau mcar a informa) celelalte niveluri. Fiecare proces poate aduga anumite informaii suplimentare destinate numai procesului su pereche. Aceste informaii nu sunt transmise n sus, ctre nivelul superior.

Propoziia nseamn " mi plac iepurii." (n.t.)

18

INTRODUCERE
Adresa A

CAP. 1
Adresa B

Mesaj

Filozof

! J'aime ' \ \ las | | ! aoip.s I i

Informaie pentru transiatorui Translator aflat ia distant

L: Dutch; j !k hou | j van || konijnerj |

Informaie pentru secretara afiat !a distan

I Fax # Secretara !_L_Ditch

'"hoiT~
^onijner! i

Fig. 1-10. Arhitectura filosof-translaior-si

retara.

S considerm acum un exemplu mai tehnic: cum se realizeaz comunicarea ia ultimul, nivel din reeaua cu cinci niveluri din Fig. 1-11. O aplicaie care se execut n nivelul 5 produce un mesaj M si l furnizeaz nivelului 4 pentru a-i transmite. Nivelul 4 insereaz im antei n iaa mesajului, pentru a identifica respectivul mesaj i paseaz rezultatul nivelului 3. Antetul include informaii de control, de exemplu numere de ordine care ajut nivelul 4 de pe maina destinaie s livreze mesajele n ordinea corect n cazul n care nivelurile inferioare nu pstreaz aceast ordine. Pe unele niveluri, antetele conin de asemenea cmpuri de control pentru mrime, timp i alte informaii. In numeroase reele nu exist nici o limit cu privire la mrimea mesajelor transmise n protocolul nivelului 4, dar exist aproape ntotdeauna o limit impus de protocolul nivelului 3. n consecin, nivelul 3 trebuie s sparg mesajele primite n uniti mai mici, pachete, atand fiecrui pachet un antet specific nivelului 3. n acest exemplu, M este descompus n dou pri, Mi i M->. Nivelul 3 decide ce linie de transmisie s utilizeze i trimite pachetele nivelului 2. Nivelul 2 adaug nu numai cte un antet pentru fiecare bucat, ci i o ncheiere, dup care furnizeaz unitatea rezultant nivelului 1 pentru a o transmite fizic. n maina receptoare mesajul este trimis n sus, din nivel n nivel, pe parcurs fiind eliminate succesiv toate antetele. Nici un antet corespunztor nivelurilor sub n nu este transmis n sus nivelului n.

SEC. 1.3

PROGRAMELE DE REEA

19

Nivel 5

Protocolul nivelului 5

Protocolul nivelului 4 Protocolul 3 H3 H, H, M, Protocolul nivelului 2 H3 H.

H3 M2

2 H2 H3

H, H, M,

H2 H3 H4 M, T2

H2 H3 M 2 T2

Main surs

Main destinaie

Fig. 1-11. Exemplu de flux de informaii pentru suportul comunicrii virtuale la nivelul 5. Ceea ce este important de neles n Fig. 1-11 este 5|atia_djntt;e_ comunicaia virtual i cea efectiv i diferena ntre protocoale i interfee. De exemplu, procesele egale de la nivelul 4 i imagineaz conceptual comunicarea ca realizndu-se pe orizontal", utiliznd protocolul nivelului 4. Dei fiecare din ele are, probabil, o procedur de genul TrimitenCealaltParte i o alta PrimeteDinCealaltParte, aceste proceduri nu comunic de fapt cu cealalt parte, ci cu nivelurile inferioare prin interfaa 3/4. Abstractizarea proceselor pereche este crucial pentru proiectarea ntregii reele. Cu ajutorul ei, aceast sarcin practic imposibil poate fi descompus n probleme de proiectare mai mici, rezolvabile, i anume proiectarea nivelurilor individuale. Dei Seciunea 1-3 este intitulat Programele de reea", merit s subliniem c nivelurile inferioare dintr-o ierarhie de protocoale sunt implementate frecvent n hardware sau n firmware. Nu e mai puin adevrat c aici intervin algoritmi compleci, chiar dac ei sunt nglobai (parial sau n totalitate) n hardware. 1.3.2 Probleme de proiectare a nivelurilor O parte din problemele cheie care apar la proiectarea reelelor de calculatoare sunt prezente n mai multe niveluri. Vom meniona pe scurt unele probleme mai importante. Fiecare nivel are nevoie de un mecanism pentru a identifica emitorii i receptorii. Dat fiind c o reea cuprinde n mod normal numeroase calculatoare, iar o parte dintre acestea dein mai multe

20

INTRODUCERE

CAP. 1

procese, este necesar o modalitate prin care un proces de pe o anumit main s specifice cu cine dorete s comunice. Ca o consecin a destinaiilor multiple, pentru a specifica una dintre ele, este necesar o form de adresare. Un alt set de decizii de proiectare se refer la regulile pentru transferul de date. n unele sisteme datele circul ntr-un singur sens (comunicare simplex). n altele datele pot circula n orice sens, dar nu simultan (comunicare semi-duplex). n sfrit, n alte sisteme datele circul n ambele sensuri simultan (comunicare duplex integral). Protocolul trebuie, de asemenea, s determine^ cjorcanale logice le corespunde conexiunea i care sunt prioritile acestora. Multe reele dispun de cel puin dou canale logice pe conexiune, unul pentru date normale i unul pentru date urgente. Deoarece circuitele fizice de comunicaii nu sunt perfecte, controlul erorilor este o problem important. Se cunosc multe coduri detectoare i corectoare de erori, dar ambele capete ale conexiunii trebuie s se neleag asupra codului utilizat. n plus, receptorul trebuie s aib cum s-i spun emitorului care mesaje au fost primite corect i care nu. Nu toate canalele de comunicaii pstreaz ordinea mesajelor trimise. Pentru a putea trata o eventual pierdere a secvenierii, protocolul trebuie s furnizeze explicit receptorului informaia necesar pentru a putea reconstitui ordinea corect a fragmentelor. O soluie evident este s se numeroteze fragmentele, dar aceast soluie nc nu rezolv problema fragmentelor care sosesc n ordine incorect. O problem ce intervine la fiecare nivel se refer la evitarea situaiei n care un emitor rapid trimite unui receptor lent date la vitez prea mare. Au fost propuse diverse rezolvri i ele vor fi discutate mai trziu. Unele dintre acestea presupun o anumit reacie, direct sau indirect, prin care receptorul l informeaz pe emitor despre starea sa curent. Altele limiteaz viteza de transmisie a emitorului la o valoare stabilit de comun acord cu receptorul. O alt problem care apare la cteva niveluri privete incapacitatea tuturor proceselor de a accepta mesaje de lungime arbitrar. Acest fapt conduce la mecanisme pentru a dezasambla, a transmite i apoi a reasambla mesajele. O problem asemntoare apare atunci cnd procesele insist s transmit datele n uniti att de mici, nct transmiterea lor separat este ineficient. n aceast situaie, soluia este s se asambleze mpreun mai multe mesaje mici destinate aceluiai receptor i s se dezasambleze la destinaie mesajul mare obinut astfel. Atunci cnd este neconvenabil sau prea costisitor s se aloce conexiuni separate pentru fiecare pereche de procese comunicante, nivelul implicat n comunicare poate hotr s utilizeze aceeai conexiune pentru mai multe conversaii independente. Atta timp ct aceast mutiplexare i demultiplexare se realizeaz transparent, ea poate fi utilizat de ctre orice nivel. Multiplexarea este necesar, de exemplu, n nivelul fizic, unde traficul pentru toate conexiunile trebuie s fie transmis prin cel mult cteva circuite fizice. Atunci cnd exist mai multe ci ntre surs i destinaie, trebuie ales un anumit drum. Uneori aceast decizie trebuie mprit pe dou sau mai multe niveluri. De exemplu, este posibil ca trimiterea unor date de la Londra la Roma s necesite att o decizie la nivel nalt pentru alegerea ca ar de tranzit a Franei sau a Germaniei - n funcie de legile lor de protejare a secretului datelor - ct i o decizie de nivel sczut pentru alegerea unuia din multele trasee posibile, pe baza traficului curent.

SEC. 1.3 1.3.3 Interfee i servicii

PROGRAMELE DE REEA

21

Fiecare nivel are rolul de a furniza serviciile necesare nivelului de deasupra sa. n aceast seciune, vom examina mai n detaliu ce anume este un serviciu. Dar mai nti vom introduce civa termeni. Ele^menele ^civg.dinJiecsrejnjyel sunt numite frecvent entiti. O entitate poate fi o entitate software (aa cum este un proces) sau o entitate hardware (aa cum este un cip de intrare/ieire inteligent). Entitile corespunztoare aceluiai nivel, dar aflate pe maini diferite, se numesc entiti egale. Entitile de la nivelul n implementeaz un serviciu utilizat de nivelul n + 1. n acest caz nivelul n se numete furnizor de servicii, iar nivelul n + 1 se numete utilizator de servicii. Nivelul n poate utiliza serviciile nivelului n -1 pentru a furniza propriile sale servicii. El poate oferi cteva clase de servicii, de exemplu comunicare rapid, costisitoare i comunicare lent, ieftin. Serviciile sunt disponibile n SAP-uri (Service Access Points - puncte de acces la servicii). SAPurile nivelului n sunt locurile unde nivelul n + 1 poate avea acces la serviciile oferite. Fiecare SAP are o_adres_care l identific n mod unic. Ca lucrurile s fie mai clare: SAP-urile din sistemul telefonic sunt soclurile la care se pot racorda telefoanele modulare, iar adresele SAP-urilor sunt numerele de telefon corespunztoare acestor socluri. Similar, n sistemul potal adresele SAP-urilor sunt adresele strzilor i numerele csuelor potale. Pentru a trimite o scrisoare, trebuie s cunoti adresa SAP-ului destinatarului. Pentru ca dou niveluri s schimbe ntre ele informaie, trebuie s fie convenit un set de reguli referitoare la interfa. Aa cum este ilustrat n Fig. 1-12, n cazul unei interfee tipice, entitatea de la nivelul n + 1 paseaz nivelului n, prin intermediul SAP-ului, un IDU (Interface Data Unit unitate de date de interfa). Acest IDU const dintr-un SDU (Service Data Unit - unitate de date de servicii) i nite informaii de control. SDU reprezint informaia transmis prin reea ctre entitatea pereche i apoi n sus ctre nivelul n + 1. Informaia de control (de exemplu, numrul de octei din SDU) este necesar pentru a ajuta nivelul de mai jos s-i ndeplineasc sarcina, dar nu face parte din datele propriu-zise. * .? A ,. r~
SAP = Service Access Point (punct de acces la servicii) IDU = Interface Data Unit (unitate de date de interfa) SDU = Service Data Unit (unitate de date de servicii) PDU = Protocol Data Unit (unitate de date de protocol) = Interface Control Information (informaie de control a interfeei) N-PDU " Entitile de pe nivelul N fac schimb de N-PDU-uri *- n protocolul nivelului N

Nivel N+1

Interfa

Nivel N

Antet

Fig. 1-12. Relaia dintre niveluri la o interfa.

Pentru a transfera SDU-ul, entitatea din nivelul n poate fi nevoit s l fragmenteze n cteva buci, fiecare din acestea primind cte un antet i fiind trimis sub forma unui PDU

22

INTRODUCERE

CAP. 1

(Protocol Data Unit - unitate de date a protocolului) separa, ca un pachet. Antetele PDU-urilor sunt folosite de entitile egale pentru a realiza protocolul pereche corespunztor. Ele identific ce PDU-uri conin date i ce PDU-uri conin informaii de control, furnizeaz numere de secveniere i aa mai departe.
1.3.4 Servicii orientate pe conexiuni i servicii fr conexiuni

Nivelurile pot oferi nivelurilor de deasupra lor dou tipuri de servicii: orientate pe cojiexiuni i fr conexiuni. n aceast seciune vom arunca o privire asupra acestor dou tipuri i vom examina diferenele ntre ele. Serviciul orientat pe conexiuni este modelat pe baza sistemului telefonic. Cnd vrei s vorbeti cu cineva, mai nti ridici receptorul, apoi formezi numrul, vorbeti i nchizi. Similar, pentru a utiliza un serviciu orientat pe conexiuni, beneficiarul trebuie mai nti s stabileasc o conexiune, s foloseasc acea conexiune i apoi s o elibereze. In esen conexiunea funcioneaz ca o eava: emitorul introduce obiectele (biii) la un capt, iar receptorul le scoate afar, n aceeai ordine, la cellalt capt. Prin opoziie, serviciul fr conexiuni este modelat pe baza sistemului potal. Toate mesajele (scrisorile) conin adresele complete de destinaie i fiecare mesaj circul n sistem independent de celelalte. n mod normal, atunci cnd dou mesaje sunt trimise Ia aceeai destinaie, primul expediat este primul care ajunge. Totui, este posibil ca cel care a fost expediat primul s ntrzie i s ajung mai repede al doilea. n cazul unui serviciu orientat pe conexiuni, aa ceva este imposibil. Fiecare serviciu poate fi caracterizat printr-o calitate a serviciului. Unele servicii sunt sigure n sensul c nu pierd date niciodat. De obicei, un serviciu sigur se implementeaz oblignd receptorul s confirme primirea fiecrui mesaj, astfel nct expeditorul s fie sigur c mesajul a ajuns la destinaie. Procesul de confirmare introduce un timp suplimentar i ntrzieri. Aceste dezavantaje sunt adesea acceptate, ns uneori ele trebuie evitate. Transferul de fiiere este una din situaiile tipice n care este adecvat un serviciu sigur orientat pe conexiuni. Proprietarul fiierului dorete s fie sigur c toi biii ajung corect i n aceeai ordine n care au fost trimii. Foarte puini utilizatori ai transferului de fiiere ar prefera un serviciu care uneori amestec sau pierde civa bii, chiar dac acest serviciu ar fi mult mai rapid. Serviciul sigur orientat pe conexiuni admite dou variante: secvenele de mesaje i fluxurile de octei. Prima variant menine delimitarea ntre mesaje. Cnd sunt trimise dou mesaje de 1 KB, ele vor sosi sub forma a dou mesaje distincte de 1 KB, niciodat ca un singur mesaj de 2 KB. (Not: KB nseamn kilobytes; Kb nseamn kilobits.) n a doua variant, conexiunea este un simplu flux de octei i nu exist delimitri ntre mesaje. Cnd receptorul primete 2 KB, nu exist nici o modalitate de a spune dac ei au fost trimii sub forma unui mesaj de 2 KB, a dou mesaje de 1 KB sau a 2048 mesaje de cte 1 octet. Dac paginile unei cri sunt expediate unei maini fotografice de tiprit printr-o reea, sub form de mesaje, atunci delimitarea mesajelor poate fi important. Pe de alt parte, n cazul unui terminal care se conecteaz la un sistem cu divizarea timpului aflat la distan, este nevoie numai de un flux de octei de la terminal la calculator. Aa cum am menionat mai sus, ntrzierile introduse de confirmri sunt inacceptabile pentru unele aplicaii. O astfel de aplicaie se refer la traficul de voce digitizat. Pentru abonaii telefonici este preferabil s existe puin zgomot pe linie sau s aud ocazional cte un cuvnt distorsionat dect s se produc o ntrziere din cauza ateptrii confirmrii. n mod similar, atunci cnd se

SEC. 1.3

PROGRAMELE DE REEA

23

transmite un film video, civa pixeli diferii nu reprezint o problem, n schimb ntreruperile pentru a corecta erorile ar fi extrem de suprtoare. Nu orice aplicaie necesitjconexiuni. De exemplu, pe msur ce pota electronic devine ceva tot mai comun, poate s nu apar n curnd publicitatea prin pot electronic? Expeditorul de publicitate prin pot electronic probabil c nu vrea s se complice stabilind i apoi elibernd o conexiune doar pentru un singur mesaj. Nici furnizarea la destinaie cu o rat de corectitudine de 100% nu este esenial, mai ales dac lucrul acesta cost mai mult. Tot ceea ce se cere este un mijloc de a trimite un singur mesaj cu o probabilitate mare de a ajunge la destinaie, dar fr o garanie n acest sens. ^Serviciul nesiguri (adic neconfirmat) Sra^conexiuni este deseori numit serviciu datagram, prin analogie cu serviciul de telegrame - care, la rndul su, nu prevede trimiterea unei confirmri ctre expeditor. n alte situaii, avantajul de a nu fi necesar sabilirga unejj^nexiuni pentru a trimite un mesaj scurt este de dorit, d^r_gma^i^s^]^^i]d}^^^^jiR]. Aceste aplicaii pot utiliza serviciul datagram confirmat. Este ca i cum ai trimite o scrisoare recomandat i ai solicita o confirmare de primire. n clipa n care sosete confirmarea, expeditorul este absolut sigur c scrisoarea a fost livrat la destinaia corect i nu a fost pierdut pe drum. Mai exist un serviciu, i anume serviciul cerere-rspuns. n acest serviciu emitorul transmitea singur datagram care conine o cerere; replica primit de la receptor conine rspunsul. n aceast categorie intr, de exemplu, un mesaj ctre biblioteca local n care se ntreab unde este vorbit limba Uighur. Serviciu][^ cerere-rspuns^este utilizat n mod frecvent pentru a implementa comunicarea n modeluLxlient-server: clientul lanseaz o cerere i serverul rspunde la ea. n Figura 1-13 sunt rezumate tipurile de servicii discutate mai sus.

Serviciu _ i ! Flux de mesaje siguri Orientate pe j [______ ! i-iux de octei sigur conexiuni Conexiune nesigur c C Datagram nesigur conexiuni ] '

Exemplu Secven de pagini Conectare la distan Voce digitizat Publicitate prin e-mail Scrisori cu confirmare Interogri baze de date

Fr J | ;i Datagram confirmat.. -o
V, L

Cerere-rspuns

Fig. 1-13. ase tipuri diferite de servicii. 1.3.5 Primitive de serviciu Un serviciu este specificat formal printr-un_set dej)rimjtoye (operaii) puse la dispoziia utilizatorului sau a unei alte entiti care folosete serviciul. Aceste primitive comand serviciului s execute anumite aciuni sau s raporteze despre aciunile executate de o entitate pereche. Un mod de a clasifica primitivele de serviciu este mprirea lor n patru grupe, aa cum se arat n Fig. 1-14.

24

INTRODUCERE

CAP. 1

Primitiva Request Indication Response Confirm

Semnificaia

0 entitate cere serviciului s realizeze ceva. 0 entitate trebuie informat despre un eveniment. 0 entitate vrea s rspund la un eveniment. A venit rspunsul ia o cerere anterioar.

Fig. 1-14. Patru clase de primitive de serviciu. Pentru a ilustra utilizarea primitivelor, s considerm modul de stabilire i eliberare a unei conexiuni. Entitatea care iniiaz aciunea lanseaz un CONNECT.request, ceea ce are ca rezultat trimiterea unui pachet. Receptorul primete apoi un CONNECT.indication care anun c o entitate de undeva dorete s stabileasc o conexiune cu el. Entitatea care primete CONNECT.indication utilizeaz apoi primitiva CONNECT.response pentru a comunica dac accept sau refuz conexiunea propus. Indiferent de rspuns, entitatea care a lansat iniial CONNECT.request afl ce s-a ntmplat printr-o primitiv CONNECT.confirm. Primitivele pot avea parametri i majoritatea chiar au. Parametrii unui CONNECT.request pot specifica maina la care se dorete conectarea, tipul de serviciu dorit i dimensiunea maxim a mesajelor care vor circula pe conexiune. Parametrii unui CONNECT.indication pot conine identitatea apelantului, tipul de serviciu dorit i dimensiunea maxim propus a mesajelor. Dac entitatea apelat nu este de acord cu dimensiunea maxim propus, atunci poate face o contrapropunere n primitiva sa response, iar aceast contrapropunere va fi pus la dispoziia apelantului iniial prin confirm. Detaliile acestei negocieri fac parte din protocol. De exemplu, n cazul a dou propuneri contradictorii privind dimensiunea maxim a mesajelor, protocolul poate specifica s se aleag ntotdeauna valoarea mai mic. n legtur cu terminologia, vom evita sintagmele deschiderea unei conexiuni" i nchiderea unei conexiune", deoarece, pentru un inginer din domeniul electric, un circuit deschis" este un circuit n care exist o ntrerupere. Electricitatea poate circula numai prin circuite nchise". n schimb, informaticienii nu ar accepta niciodat c informaia circul printr-un circuit nchis. Pentru a mpca ambele tabere, vom folosi termenii stabilirea unei conexiuni" i eliberarea unei conexiuni". Serviciile pot fi att confirmate ct i neconfirmate. ntr-un serviciu confirmat exist primitivele request, indication, response i confirm. ntr-un serviciu neconfirmat exist numai request i indication. CONNECT este ntotdeauna un serviciu confirmat, pentru c perechea sa aflat la distan trebuie s accepte stabilirea conexiunii. Transferul de date, pe de alt parte, poate fi sau confirmat, sau neconfirmat, dup cum emitorul are sau nu nevoie de confirmare! n reele se folosesc ambele tipuri de servicii. Pentru a face conceptul de serviciu mai concret, s considerm ca exemplu un serviciu simplu orientat pe conexiuni care are urmtoarele primitive de serviciu: 1. 2. 3. 4. CONNECT.request - Solicit s fie stabilit o conexiune. CONNECT.indication - Semnalizeaz apelatul. CONNECT.response - Folosit de apelat pentru a accepta/refuza apelurile. CONNECT.confirm - Informeaz apelantul dac cererea a fost acceptat.

SEC. 1.3 5. 6. 7. 8.

PROGRAMELE DE REEA DATA.request - Solicit trimiterea datelor. DATA.indication - Semnalizeaz sosirea datelor. DISCONNECT.response - Solicit eliberarea conexiunii. DISCONNECT.indication - Semnalizeaz perechea n legtur cu cererea.

25

n acest exemplu CONNECT este un serviciu confirmat (este solicitat un rspuns explicit), n timp ce DISCONNECT este neconfirmat (fr rspuns). Pentru a vedea cum sunt folosite aceste primitive ar putea fi util o analogie cu sistemul telefonic. S considerm paii necesari pentru a-i telefona mtuii Millie i a o invita la un ceai. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. CONNECT.request - Formezi numrul de telefon al mtuii Millie. CONNECT.indication - Telefonul mtuii Millie sun. CONNECT.response - Ea ridic receptorul. CONNECT.confirm - Auzi c mtua Millie a rspuns. DATA.request - O invii la ceai. DATA.indication - Ea aude invitaia ta. DATA.request - Ea spune c ar fi ncntat s vin. DATA.indication - Tu auzi c a acceptat. DISCONNECT.request - Tu nchizi telefonul. DISCONNECT.indication - Ea aude c ai nchis telefonul si nchide si ea.
t

Figura 1-15 arat aceeai secven de pai sub forma unei serii de servicii primitive, incluznd confimarea final a ntreruperii legturii. Fiecare pas implic o interaciune ntre dou niveluri de pe unul din calculatoare. Fiecare request sau response determin puin mai trziu un indication sau confiim la cellat capt. n acest exemplu, utilizatorii serviciilor (tu i mtua Millie) se afl pe nivelul N + 1, iar furnizorul de servicii (sistemul telefonic) se afl pe nivelul N.
Nivel N + 1 Nivel N 1 \

4
4

X
6 7 5 6
V

4
6 8

7 \ 9 10

Calculator 1

Timp-

Nivel N + 1 Nivel N 2

3 \V
\

4
8

Calculator 2

Fig. 1-15. Cum ar invita-o un calculator pe mtua Millie la ceai. Numerele de la coada fiecrei sgei se refer la cele opt primitive de serviciu discutate n aceast seciune. 1.3.6 Relaia dintre servicii i protocoale

Dei sunt adesea confundate, serviciile i protocoalele reprezint concepte distincte. Diferena ntre ele este att de important, nct o subliniem din nou n aceast seciune. Un serviciu este un set de primitive (operaii) pe care un nivel le furnizeaz nivelului de deasupra sa. Serviciul definete

26

INTRODUCERE

CAPI

ce operaii este pregtit nivelul s ndeplineasc p e n t o utilizatorii si, dar nu spune nimic despre aceste operaii. Un serviciu este definit n contextul unei interfee ntre dou niveluri, nivelul inferior fiind, furnizorul serviciului i nivelul superior fiind utilizatorul serviciului. , ... Prin contrast, unprotocol este un set de reguli care guverneaz jbrmatul i semnificaia_cadrelor, pachetelor sau mesajelor schimbate ntre.ele de entitile r^rcche_dintr-]^mvel. Entitile folosesc protocoale pentru a implementa definiiile serviciului lor. Ele sunt libere s i schimbe protocoalele dup cum doresc, cu condiia s nu modifice serviciul pe care l vd utilizatorii. n acest fel, serviciul i protocolul sunt complet decuplate. Merit s facem o analogie cu limbajele de programare. Un serviciu este ca un tip de date abstracte sau ca un obiect ntr-un limbaj orientat pe obiecte. Acesta definete operaiile care pot fi aplicate pe un obiect, dar nu specific modul de implementare a operaiilor. Un protocobse refer la implementarea serviciului i nu_este vizibil pentnijujlizaliaiiLsjejyicM Multe protocoale mai vechi nu distingeau serviciul de protocol. Ca urmare, un nivel tipic putea avea o primitiv de serviciu SEND PACKET n care utilizatorul furniza o referin ctre un pachet complet asamblat. Acest aranjament nsemna c toate modificrile protocolului erau imediat vizibile pentru utilizatori. Majoritatea proiectanilor de reele privesc acum un astfel de mecanism ca pe o eroare grav.

1.4

MODELE DE REFERIN

Acum, dup ce am discutat la modul abstract structura pe niveluri a reelelor, a sosit timpul s studiem cteva exemple. n urmtoarele dou seciuni vom discuta dou arhitecturi de reea importante, modelul de referin OSI i modelul de referin TCP/IP. 1.4.1 Modelul de referin OSI

Modelul OSI este prezentat n Fig. 1-16 (mai puin mediul fizic). Acest model se bazeaz pe o propunere dezvoltat de ctre Organizaia Internaional de Standardizare (International Standards Organization - OSI) ca un prim pas ctre standardizarea internaiona a protocoalelor folosite pe diferite niveluri (Day i Zimmermann, 1983). Modelul se numete ISO OSI (Open Systems Interconnection - Interconectarea sistemelor deschise), pentru c el se ocup de conectarea sistemelor deschise - adic de sisteme deschise comunicrii cu alte sisteme. n continuare vom folosi mai ales termenul prescurtat de model OSI. Modelul OSI cuprinde apte niveluri. Principiile aplicate pentru a se ajunge la cele apte niveluri sunt urmtoarele: 1. Un nivel trebuie creat atunci cnd este nevoie de un nivel de abstractizare diferit. 2. Fiecare nivel trebuie s ndeplineasc un rol bine definit. 3. Funcia fiecrui nivel trebuie aleas acordndu-se atenie definirii de protocoale standardizate pe plan internaional. 4. Delimitarea nivelurilor trebuie fcut astfel nct s se minimizeze fluxul de informaii prin interfee. 5. Numrul de niveluri trebuie s fie suficient de mare pentru a nu fi nevoie s se introduc n acelai nivel funcii diferite i sufieient de mie pentru ca arhitectura s rmn funcional.

SEC. 1.4

MODELE DE REFERINA

27

Nivel Protocolul aplicaie

Numele unitii schimbate Aplicaie icatie APDU

7 Interfa 6

Prezentare

Protocolul prezentare

Prezentare

PPDU

Interfa 5 Sesiune Protocolul sesiune

t
y

Sesiune

SPDU

Transport
Ir

Protocolul transport Limita subreelei de comunicaie Protocolul intern al subreteie\ Reea


j

-H Transport I TPDU

Reea 2 Legtur de date

Reea

~H

Reea

Pachet

Fizic

Legtur de date

Legtur de date

Legtur g de de date date

C a d r u

Fizic Ruer

Gazda A

Fizic Ruter

Fizic Gazda B

Protocolul gazd-ruter de Ia nivelul reea Protocolul gazd-ruter de la nivelul legturii de date Protocolul gazd-ruter de la nivelul fizic

Kg. 1-16. Modelul de referin OSI. n continuare vom discuta fiecare nivel al modelului, ncepnd cu nivelul cel rnai de jos. Modelul OSI nu reprezint n sine o arhitectur de reea, pentru c nu specific serviciile i protocoalele utilizate la fiecare nivel. Modelul spune numai ceea ce ar trebui s fac fiecare nivel. ISO a produs de asemenea standarde pentru fiecare nive, ns aceste standarde nu fac parte din modelul de referin propriu-zis. Fiecare din standardele respective a fost publicat ca un standard internaional separat. Nivelul fizic Nivelul fizic se ocup de transmiterea biilor printr-un canal de comunicaie. Proiectarea trebuie s garanteze c atunci cnd unul din capete trimite un bit 1, acesta e receptat n cealalt parte ca un bit 1, nu ca un bit 0. Problemele tipice se refer la ci voli trebuie utilizai pentru a reprezenta un 1 i ci pentru un 0, dac transmisia poate avea loc simultan n ambele sensuri, cum este stabilit

28

INTRODUCERE

CAP. 1

conexiunea iniial i cum este ntrerupt cnd au terminat de comunicat ambele pri, ci pini are conectorul de reea i la ce folosete fiecare pin. Aceste aspecte de proiectare au o legtur strns cu interfeele mecanice, electrice, funcionale i procedurale, ca i cu mediul de transmisie situat sub nivelul fizic. Nlvelu legtur de date Sarcina principal a nivelului legtur de date este de a transforma un mijloc o.are.c.are_ de transmisie ntr-o linie care s fie disponibil nivelului reea fr erori de transmisie nedetectate. Nivelul legtur de date realizeaz aceast sarcin oblignd emitorul s descompun datele de intrare n cadre de.date (n mod tipic, cteva sute sau cteva mii de octei), s transmit cadrele secvenial i s prelucreze cadrele de confirmare trimise napoi de receptor. Deoarece nivelul fizic nu face dect s accepte i s transmit un flux de bii, fr s se preocupe de semnificaia sau de structura lor, responsabilitatea pentru marcarea i recunoaterea delimitatorilor ntre cadre i revine nivelului legtur de date. Aceasta se poate realiza prin ataarea unor abloane speciale de bii la nceputul i la sfritul cadrului. In cazul n care abloanele respective de bii pot aprea accidental n datele propriu-zise, trebuie luate msuri speciale de precauie pentru ca aceste abloane s nu fie incorect interpretate ca delimitatori de cadre. Un zgomot aprut pe linie poate distruge un cadru n ntregime. n acest caz, programele nivelului legtur de date de pe maina surs pot s retransmit cadrul. Transmiterile multiple ale aceluiai cadru introduc posibilitatea cadrelor duplicate. Un cadru duplicat poate aprea la transmisie n situaia n care s-au pierdut cadrele de confirmare trimise de la receptor napoi spre emitor. Rezolvarea problemelor datorate cadrelor deteriorate, pierdute sau duplicate cade n sarcina nivelului legtur de date. Acesta poate oferi nivelului reea cteva clase de servicii diferite, fiecare de o calitate i un pre diferit. O alt problem care apare la nivelul legtur de date (i, de asemenea, la majoritatea nivelurilor superioare) este evitarea inundrii unui receptor lent cu date provenite de la un emitor rapid. n acest scop sunt necesare mecanisme de reglare a traficului care s permit emitorului s afle ct spaiu tampon deine receptorul la momentul curent. Controlul traficului i tratarea erorilor sunt deseori integrate. Dac linia poate fi folosit pentru a transmite date n ambele sensuri, atunci apare o nou complicaie, care trebuie rezolvat de ctre programele de la nivelul legtur de date. Problema se refer la concurena care exist pentru utilizarea liniei ntre cadrele de confirmare pentru traficul de la A la B i cadrele de date din traficul de la B la A. Pentru rezolvarea ei a fost conceput o soluie inteligent: ataarea piggybacking)^ mai trziu vom discuta aceast soluie n detaliu. Reelele cu difuzare determin n nivelul legtur de date o problem suplimentar: cum s fie controlat accesul la canalul partajat. De aceast problem se ocup un subnivel special al nivelului legtur de date, i anume subnivelul de acces la mediu.

Nivelul reea se ocup de controlul funcionrii ubreelei. O problem cheie n proiectare este determinarea modului n care pachetele sunt dirijate de la surs la destinaie. Dirijarea se poate baza pe tabele statistice care sunt cablate" intern n reea i care sunt schimbate rar. Traseele pot fi de asemenea stabilite la nceputul fiecrei conversaii, de exemplu la nceputul unei sesiuni la

. 1.4

MODELE DE REFERIN

29

terminal. n sfrit, dirijarea poate fi foarte dinamic, traseele determinndu-se pentru fiecare pachet n concordan cu traficul curent din reea. Dac n subreea exist prea multe pachete simultan, ele vor intra unul pe traseul celuilalt i astfel se vor produce gtuiri. Controlul unor astfel de congestii i revine tot nivelului reea. Deoarece operatorii subreelei pot foarte bine s atepte o plat pentru eforturile lor, n nivelul reea exist, de obicei, nglobat o funcie de taxare a traficului. Pentru a calcula suma datorat de clienii reelei, programul trebuie cel puin s numere cte pachete, sau cte caractere, sau ci bii a trimis fiecare client. Calculul se complic atunci cnd un pachet traverseaz frontiera dintre dou zone cu sisteme de preuri diferite. Multe probleme pot aprea cnd un pachet trebuie s cltoreasc dintr-o reea n alta ca s ajung la destinaie. Modul de adresare folosit de a doua reea poate s difere de cel pentru prima. A doua reea poate chiar s nu accepte deloc pachetul pentru c este prea mare. De asemenea, protocoalele pot fi diferite i aa mai departe. Rezolvarea acestor probleme n vederea interconectrii reelelor eterogene este sarcina nivelului reea. n reelele cu difuzare, problema dirijrii este simpl, astfel c nivelul reea este deseori subire sau chiar nu exist deloc. Nivelul transport Rolul principal al nivelului transport este s accepte date de la nivelul sesiune, s le descompun, dac este cazul, n uniti mai mici, s transfere aceste uniti nivelului reea i s se asigure c toate fragmentele sosesc corect la cellalt capt. n plus, toate acestea trebuie fcute eficient i ntr-un mod care izoleaz nivelurile de mai sus de inevitabilele modificri n tehnologia echipamentelor. n condiii normale nivelul transport creeaz o conexiune de reea distinct pentru fiecare conexiune de transport cerut de nivelul sesiune. n cazul n care conexiunea de transport necesit o productivitate mare, nivelul transport poate totui s creeze conexiuni de reea multiple i s divid datele prin conexiunile de reea, astfel nct productivitatea s creasc. Pe de alt parte, dac crearea i ntreinerea unei conexiuni de reea este costisitoare, nivelul transport ar putea reduce costul prin multiplexarea ctorva conexiuni de transport pe aceeai conexiune de reea. n oricare dintre cazuri, nivelului transport i se cere s fac mutiplexarea transparent pentru nivelul sesiune. Nivelul transport determin, de asemenea, ce tip de serviciu s furnizeze nivelului sesiune i, n final, utilizatorilor reelei. Cel mai obinuit tip de conexiune transport este un canal punct-la-punct fr erori care furnizeaz mesajele sau octeii n ordinea n care au fost trimii. Alte tipuri posibile de servicii de transport sunt transportul mesajelor individuale - fr nici o garanie n privina ordinii de livrare - i difuzarea mesajelor ctre destinaii multiple. Tipul serviciului se determin cnd se stabilete conexiunea. Nivelul transport este un adevrat nivel capt-la-capt, de la surs la destinaie. Cu alte cuvinte, un program de pe maina surs poart o conversaie cu un program similar de pe maina destinaie, folosind n acest scop antetele mesajelor i mesaje de control. n nivelurile inferioare protocoalele au loc ntre fiecare main si vecinii si imediai, si nu direct ntre mainile surs si destinaie, care pot fi separate de numeroase rutere. Diferena ntre nivelurile de la 1 pn la 3, care sunt nlnuite, i nivelurile de la 4 la 7, care sunt capt-la-capt, este ilustrat n Fig. 1-16.

30

INTRODUCERE

CAP. 1

Numeroase gazde sunt multiprogramate, ceea ce implic existena unor raE^xjunynuliple care intrsi ies din fiecare gazd. Trebuie s existe o modalitate prin care s se poat spune care mesaje aparin crei conexiuni. Unul din locurile unde poate fi pus aceast informaie este antetul de transport (Ht n Fig. -11). n plus fa de multiplexarea mai multor fluxuri de mesaje pe un singur canal, nivelul transport mai trebuie s se ocupe de stabilirea i anularea conexiunilor n reea. Pentru acest lucru este necesar un mecanism de atribuire a numelor, astfel ca un proces de pe o anumit main s poat descrie cu cine vrea s converseze. Trebuie, de asemenea, s existe un mecanism pentru reglarea fluxului de informaii, astfel nct o gazd rapid s nu suprasolicite o gazd lent. Un astfel de mecanism se numete controlul fluxului i joac un rol cheie n nivelul transport (ca i n alte niveluri). Controlul fluxului ntre gazde_ee_diferit fa de controlul fluxului ntre rutere, dar vom vedea mai trziu c pentru amndou se aplic principii similare. Nivelul sesiune Nivelul sesiune permite utilizatorilor de pe maini diferite s stabileasc ntre ei sesiuni. Ca i nivelul transport, o_eiune permite transportul obinuit de date, dar furnizeaz totodat i servicii mbuntite, utile n anumite aplicaii. O sesiune poate fi utilizat pentru a permite unui utilizator s se conecteze la distan pe un sistem cu divizarea timpului sau s transfere un fiier ntre dqumaini. Unul dintre serviciile nivelului sesiune se refer la controlul dialogului. Sesiunile pot permite s se realizeze trafic n ambele sensuri simultan, sau numai ntr-un sens odat. Dac este permis traficul ntr-un singur sens odat (analog drumurilor cu sens unic), nivelul sesiune poate ajuta s se in evidena emitorilor crora le vine rndul s transmit. Un serviciu sesiune nrudit este gestionarea jetonului. In unele protocoale este esenial ca cele dou pri s nu ncerce s realizeze aceeai operaie n acelai timp. Pentru a trata aceste situaii, nivelul sesiune dispune de jetoane care pot circula ntre maini. Numai partea care deine jetonul are voie s realizeze operaia critic. Un alt serviciu sesiune este sincronizarea. S considerm problemele care poate aprea atunci cnd se ncearc transferarea unui fiier ntre dou maini, n condiiile n care transferul dureaz 2 ore, iar intervalul mediu de cdere a legturii este 1 or. Dup fiecare eec, tot transferul va trebui iniiat din nou i probabil c nu va reui nici ncercarea urmtoare. Pentru a elimina problema respectiv, nivelul sesiune prevede o modalitate de a introduce njluxul de date puncte de control, astfel nct dup un eec trebuie s se reia numai transferul datelor de dup ultimul punct de control. Nivelul prezentare Nivelul prezentare ndeplinete cteva funcii care sunt solicitate suficient de des pentru ca, n loc s fie lsat fiecare utilizator s rezolve problemele, s se justifice gsirea unei soluii generale. n particular, spre deosebire de toate nivelurile inferioare, care se ocup numai de transferul sigur al biilor dintr-un loc n altul, nivelul prezentare se ocug de sintaxa si semantica informaiilor transmise. Unjjxejiiplu tipic deserviciu prezentare este edificarea datelor ntr-un mod standard, jpresabilit. Majoritatea programelor folosite de utilizatori nu fac schimb de iruri aleatoare de bii. Ele fac schimb de nume de persoane, adrese, date, sume de bani, anunuri. Aceste informaii sunt reprezentate prin iruri de caractere, prin ntregi, prin numere reale i prin structuri de date compuse dintr-un numr de date mai simple. Diferite calculatoare au diferite coduri pentru

E C

14

MODELE DE REFERIN

31

^g?&z^terea finirilor de caractere (de exemplu, ASCII i Unicode), ntregilor (de exemplu, ^j^jlejnentul fa de 1 i complementul fa de 2) i aa mai departe. Pentru a face posibil comunicarea ntre calculatoare cu reprezentri diferite, structurile de date pot fi definite ntr-un mod abstract, alturi de o codificare standardizat ce va fi .utilizat pe cablu". MveJkijjDrezejiare gestioneaz acejejjructtrr^^ din reprezentarea Intern folosit jn_ 3icuitor n reprezejQtareastesdardizat din reea i-invers^

Nivelul aplicaie
Nivelul aplicaie conine o varietate de protocoale frecvent utilizate. De exemplu, n lume exist sute de tipuri de terminale incompatibile. Gndii-v la impasul n care se afl un editor n mod ecran care trebuie s lucreze ntr-o reea cu multe tipuri diferite de terminale, fiecare cu un aspect diferit al ecranului i cu secvene ESCAPE diferite pentru introducerea i tergerea textului, mutarea cursorului etc. O modalitate de a rezolva problema este s se defineasc un terminal virtual de reea abstract i s se scrie editoare i alte programe care tiu s lucreze cu acesta. Pentru a putea lucra cu orice tip de terminal, este necesar un program care s pun n coresponden funciile terminalului virtual de reea i terminalul real. De exemplu, atunci cnd editorul mut cursorul din terminalul virtual n colul stnga-sus al ecranului, programul trebuie s aplice secvena potrivit de comenzi pentru terminalul real, astfel nct s se mute i cursorul acestuia. Toate programele terminalului virtual se afl pe nivelul aplicaie. Un alt rol al nivelului aplicaie este transferul fiierelor. Sisteme de fiiere diferite au convenii de nume diferite, moduri diferite de a reprezenta liniile de text i aa mai departe. Transferul unui fiier ntre doujsisteme de fiiere.diferite presupune rezolvarea acestor incompatibiliti i a altora de acelai gen. Si acest lucru cade tot n seama nivelului aplicaie, la fel ca si posta electronic, mr^ucereajucrrilor la distan, examinarea cataloagelor i diverse alte faciliti cu scop general sau particular.

Transmiterea datelor n modelul OSI


Figura 1-17 prezint un exemplu de transmitere a datelor folosind modelul OSI. Procesul emitor vrea s trimit nite date procesului receptor. Emitorul furnizeaz datele nivelului aplicaie, acesta le ataeaz n fa antetul aplicaiei, AH (care poate fi vid) i furnizeaz obiectul rezultat nivelului prezentare. Nivelul prezentare poate s modifice acest obiect n diferite moduri i poate eventual s-i adauge n fa un antet, furniznd rezultatul ctre nivelul sesiune. Este important de tiut c nivelul prezentare nu cunoate care poriune din datele primite de la nivelul aplicaie reprezint AH, n cazul n care acesta exist, i care poriune reprezint datele prppriu-zise ale utilizatorului. r Acest proces se repet pn cnd datele ajung la nivelul fizic, unde ele vor fi trimise efectiv ctre maina receptoare. Pe respectiva main, diversele anete sunt eliminate succesiv, pe msur ce mesajul se propag prin niveluri fn sus, pn cnd ajunge m final la procesul destinaie. Ideea de baz este c, dei n Fig. 1-17 transmiterea datelor este vertical, fiecare nivel este programat ca i cum transmiterea ar fi orizontal. De exemplu, atunci cnd nivelul transport emitor primete un mesaj de la nivelul sesiune, el i ataeaz un antet de transport i l expediaz nivelului transport destinaie. Din punctul su de vedere, faptul c n realitate trebuie s paseze mesajul

32

INTRODUCERE

CAPI

nivelului reea de pe maina sa proprie este un detaliu tehnologic lipsit de importan. Analog, cnd un diplomat care vorbete limba Tagalog se adreseaz Naiunilor Unite, el se gndete c se adreseaz celorlali diplomai prezeni la adunare. Faptul c n realitate el vorbete numai translatorului su este vzut ca un detaliu tehnic.
Procesul emitor^ Date Nivelul aplicaie Nivelul prezentare Nivelul sesiune Nivelul transport Nivelul reea ivelul legtur de date Nivelul fizic Protocolul aplicaie Protocolul prezentare Protocolul sesiune Protocolul transport Protocolul reea DH NH TH SH PH AH Date Date Date Date Date Date Bii DT Nivelul aplicaie Nivelul prezentare Nivelul sesiune Nivelul transport Nivelul reea Nivelul legtur de date Nivelul fizic Procesul receptor-

Calea concret de transmitere a datelor

Fig. 1-17. Un exemplu de utilizare a modelului OSI. O parte din antete pot s fie nule. (Sursa: H.C. Folts. Utilizat cu permisiunea autorului.)
1.4.2 Modelul de referin TCP/EP S ne ndreptm acum atenia de la modelul de referin OSI spre modelul de referin utilizat n strmoul tuturor reelelor de calculatoare, ARPANET-ul, i n succesorul su, Internet-ul. Dei vom prezenta mai trziu o scurt istorie a ARPANET-ului, este util s menionm acum cteva aspecte eseniale. ARPANET a fost o reea de cercetare sponsorizat de ctre DoD (U.S. Department of Defense - Departamentul de Aprare al Statelor Unite). n cele din urm, reeaua a ajuns s conecteze ntre ele, utiliznd linii telefonice nchiriate, sute de reele universitare i guvernamentale. Atunci cnd au fost adugate, mai trziu, reele prin satelit i radio, interconectarea acestora cu protocoalele existente a pus diferite probleme. Era nevoie de o nou arhitectur de referin. De aceea, posibilitatea de a interconecta fr probleme mai multe tipuri de reele a reprezentat de la bun nceput un obiectiv de proiectare major. Aceast arhitectur a devenit cunoscut mai trziu sub denumirea de modelul de referin TCP/EP, dat dup numele celor dou protocoale fundamentale utilizate. Arhitectura respectiv a fost definit prima dat n

SEG. 1.4

MODELE DE REFERINA

33

(Cerf si Kahn, 1974). O perspectiv ulterioar este prezentat n (Leiner .a., 1985). Filosofla de proiectare din spatele modelului este discutat n (Clark, 1988). Dat fiind ngrijorarea Departamentului de Aprare c o parte din preioasele sale gazde, rutere si pori de interconectare ar putea fi distruse dintr-un moment n altul, un alt obiectiv major a fost ca reeaua s poat supravieui pierderii echipamentelor din subreea fr a fi ntrerupte conversaiile existente. Cu alte cuvinte, DoD dorea ca, atta timp ct funcionau maina surs i maina destinaie, conexiunile s rmn intacte, chiar dac o parte din maini sau din liniile de transmisie erau brusc scoase din funciune. Mai mult, era nevoie de o arhitectur flexibil, deoarece se aveau n vedere aplicaii cu cerine divergente, mergnd de la transferul de fiiere pn la transmiterea vorbirii n timp real.
Nivelul internet

Toate aceste cerine au condus la alegerea unei reele cu comutare de pachete bazat pe un nivel inter-reea fr conexiuni. Acest nivel, numit nivelul internet, este axul pe care se centreaz ntreaga arhitectur. Rolul su este de a permite gazdelor s emit pachete n orice reea i a face ca pachetele s circule independent pn la destinaie (fiind posibil ca aceasta s se gseasc pe o alt reea). Pachetele pot chiar s soseasc ntr-o ordine diferit fa de cea n care au fost trimise, caz n care - dac se dorete furnizarea lor ordonat - rearanjarea cade n sarcina nivelurilor de mai sus. De observat c internet" este folosit aici ntr-un sens generic, chiar dac acest nivel este prezent i n Internet.
OSI
TCP/IP

7 6 5 4 3 2 1

Aplicaie Prezentare Sesiune Transport


Reea

Aplicaie
*~-\ Nu exist n ^-"^ acest model

Transport
Internet

Legtur de date
Fizic

Gazd-la-reea

Fig. 1-18. Modelul de referin TCP/IP. / Aici, analogia este cu sistemul de pot (clasic). O persoan dintr-o anumit ar poate depune ntr-o cutie potal mai multe scrisori internaionale i, cu puin noroc, majoritatea scrisorilor vor ajunge la adresa corect din ara de destinaie. Probabil c scrisorile vor trece pe drum prin mai multe oficii de cartare, dar acest lucru se face transparent pentru utilizatori. Mai mult, faptul c fiecare ar (adic fiecare reea) are propriile timbre, propriile mrimi favorite de plicuri i propriile reguli de livrare este ascuns beneficiarilor. Nivelul internet definete oficial un format de pachet i un protocol numit IP (Internet Protocol - protocol, Internet). Sarcina nivelului internet este s furnizeze pachete IP ctre destinaie.

34

INTRODUCERE

CAP.l

Problemele majore se refer la dirijarea pachetelor i evitarea congestiei. n consecin, este rezonabil s spunem c nivelul internet din TCP/IP funcioneaz asemntor cu nivelul reea din OSI. Figura 1-18 arat aceast coresponden.
Nivelul transport

Nivelul situat deasupra nivelului internet din modelul TCP/IP este frecvent numit nivelul transport. Acesta este proiectat astfel, nct s permit conversaii ntre ej^tjikpereche din gazdele surs i, respectiv, destinaie, la fel ca n nivelul transport OSI. n acest sens au fost definite dou protocoale capt-la-capt. Primul din ele, TCP (Transmission Control Protocol entat e - protocolul de control al transmisiei), este un gi^tocol_igut l i P conexiuni care permite ca un flux de octei trimii de pe o main s ajung fr erori pe orice alt main din inter-reea. Acest protocol fragmenteaz fluxul de^ octei n mesaj ejdiscrete i paseaz fiecare mesaj nivelului internet. La destinaie, procesul TCP receptor reasambleaz mesajele primite n flux de ieire. TCP trateaz totodat controluIfLuxului pentru a se asigura c un emitor rapid nu inund un receptor lent cu mai multe mesaje dect poate acesta s prelucreze. Al doilea protocol din nivel, UDP (User Datagram Protocol - protocolul datagramelor utilizator), este un protocol nesigur, fr conexiuni, destinat aplicaiilor care doresc s utilizeze propria lor secveniere i control al fluxului, i nu pe cele asigurate de TCP. Protocolul UDP este de asemenea mult folosit pentru interogri ntrebare-rspuns dintr-un foc, client-server, i pentru aplicaii n care comunicarea prompt este mai important dect comunicarea cu acuratee, aa cum sunt aplicaiile de transmisie a vorbirii i a imaginilor video. Relaia dintre IP, TCP i UDP este prezentat n Fig. 1-19. De cnd a fost dezvoltat acest model, IP a fost implementat pe multe alte reele.
r

Nivelui (numele OSII TELNET

FTP TCP
IP

SMTP

DNS

Aplicaie

Protocoale <

UDP

Transport

Reea Radio cu pachete

V. r

Reele <

ARPANET

SATNET

LAN

Fizic + legtur de date

Fig. 1-19. Protocoale i reele din modelul TCP/IP iniial.


Nivelul aplicaie

Modelul TCP/IP nu conine niveluri sesiune sau prezentare. Acestea nu au fost incluse pentru c nu s-a simit nevoia lor. Experiena modelului OSI a dovedit c aceast viziune a fost corect: n majoritatea aplicaiilor, nivelurile respective nu sunt de mare folos.

SE

C.1.4
;

MODELE DE REFERIN

35

Deasupra aiv^afoi traBsport se afl nivelul aplicaie. Acesta conine toate protocoalele de nivel mai rialt. Aa cum se vede din Fig. 1-19, primele protocoale de acest gen includeau terminalul virtual (TELNET), transferul de fiiere (FTP) i pota electronic (SMTP). Protocolul de terminal virtual permite unui utilizator de pe o maina s se conecteze i s lucreze pe o main aflat la distan. Protocolul de transfer de fiiere pune la dispoziie o modalitate de a muta eficient date de pe o main pe alta. Pota electronic a fost la origine doar un tip de transfer de fiiere, dar ulterior a fost dezvoltat un protocol specializat pentru acest serviciu. Pe parcursul anilor, la aceste protocoale s-au adugat multe altele, aa cum sunt Serviciul Numelor de Domenii (Domain Name Service - DNS) pentru stabilirea corespondenei dintre numele gazdelor i adresele reelelor, NNTP, protocolul utilizat pentru a transfera articole d^^ Nivelul gazd-reea Sub nivelul internet se afl necunoscutul. Modelul de referin TCP/IP nu spune mare lucru despre ce se ntmpl acolo, ns menioneaz c gazda trebuie s se lege la reea, pentru a putea trimite pachete IP, folosind un anumit protocol. Acest protocol nu este definit i variaz de la gazd la gazd i de la reea la reea. Crile i articolele despre TCP/IP rareori discut despre acest protocol. 1.43 O comparaie ntre modelele de referin OSI i TCP Modelele de referin OSI i TCP/IP au multe lucruri n comun. Amndou se bazeaz pe conceptul unei stive de protocoale independente. De asemenea, funcionalitatea nivelurilor este n linii mari similar. De exemplu, n ambele modele, nivelurile pn la nivelul transport inclusiv sunt necesare pentru a pune la dispoziia proceselor care doresc s comunice un serviciu de transport capt-la-capt independent de reea. Nivelurile respective formeaz furnizorul de transport. Din nou, n ambele modele, nivelurile de deasupra transportului sunt beneficiari orientai pe aplicaii ai serviciului de transport. n pofida acestor similitudini fundamentale, ntre cele dou modele exist i multe deosebiri. n aceast seciune ne vom concentra asupra diferenelor cheie dintre cele dou modele de referin. Este important de subliniat c vom compara aici modelele de referin, nu stivele de protocoale corespunztoare. Protocoalele propriu-zise vor fi discutate mai trziu. Pentru o ntreag carte consacrat comparaiei i diferenelor dintre TCP/IP i OSI, a se vedea (Piscitello i Chapin, 1993). Trei concepte sunt eseniale pentru modelul OSI: / \ 1. Servicii 2. Interfee 3. Protocoale

c cea mai mare contribuie a modelului OSI este ca a fcut explicita diferena ntre aceste trei concepte. Fiecare nivel realizeaz nite servicii pentru nivelul situat deasupra sa. Definiia serviciului spune ce face nivelul, nu cum l folosesc entitile de deasupra sa sau cum funcioneaz nivelul. - ^ - r ^ - * ^ / ^ > 4 . Interfaa unui nivel spune proceselor aflate deasupra sa cum s fac accesul. Interfaa precizeaz ce reprezint parametrii i ce rezultat se obine. Nici interfaa nu spune nimic despre funcionarea intern a nivelului. n sfzit, protocoalele pereche folosite ntr-un nivel reprezint treaba personal a nivelului

36

ENIRQDUCERE

CAP.l

Nivelul poate folosi orice protocol dorete, cu condiia ca acesta s funcioneze (adic s ndeplineasc serviciul oferit). Nivelul poate de asemenea s schimbe protocoalele dup cum vrea, fr ca acest lucru s afecteze programele din nivelurile superioare. Aceste idei se potrivesc foarte bine cu ideile moderne referitoare la programarea orientat pe obiect. Un obiect, ca i un nivel, posed un set de metode (operaii) care pot fi invocate de ctre procese din afara obiectului. Semanticele acestor metode definesc mulimea de servicii pe care le ofer obiectul. Parametrii i rezultatele metodelor formeaz interfaa obiectului. Codul intern al obiectului reprezint protocolul su i nu este vizibil sau de vreo importan n afara obiectului. Dei lumea a ncercat ulterior s l readapteze pentru a fi mai asemntor modelului OSI, modelul o distincie clar ntre serviciu, interfa i protocol. De exemplu, singurele servicii veritabile oferitedeTnTvefufmternet sunt SENDIP PACKET i RECEIVEIP PACKET. n consecin, protocoalele din modelul OSI sunt mai bine ascunse dect n modelul TCP/EP i pot fi nlocuite relativ uor pe msur ce se schimb tehnologia. Capacitatea de a face asemenea modificri reprezint unul din scopurile principale ale organizrii protocoalelor pe niveluri n modelul OSI. Modelul de referin OSI a fost conceput nainte s fie inventate protocoalele. Ordinea respectiv semnific faptul c modelul nu a fost orientat ctre un set specific de protocoale, fiind prin urmare destul de general. Reversul este c proiectanii nu au avut mult experien n ceea ce privete acest subiect i nu au avut o idee coerent despre mprirea funciilor pe niveluri. De exemplu, nivelul legtur de date se ocupa iniial numai cu reelele punct-la-punct. Atunci cnd au aprut reelele cu difuzare, a trebuit s fie introdus n model un subnivel nou. Cnd lumea a nceput s construiasc reele reale utiliznd modelul OSI i protocoalele existente, s-a descoperit c acestea nu se potriveau cu specificaiile serviciului cerut (minunea minunilor), astfel c a ttebuit introdus n model conyej^ntejubnjw^ pe marginea diferentelor. In sfrit, comitetul se atepta iniial ca fiecare tar s aib cte o reea care s fie n custodia guvernului i s foloseasc protocoalele OSI, aa c nu s-a dat nici o atenie interconectrii. Pentru a nu mai lungi povestea, s spunem doar c lucrurile s-au petrecut altfel. n ceea ce privete TCP/IP, lucrurile stau exact pe dos: mai nti au aprut protocoalele, iar modelul a fost de fapt doar o descriere a protocoalelor existente. Cu protocoalele respective nu era nici o problem: ele se potriveau perfect cu modelul. Singurul necaz era c modelul nu se potrivea cu nici o alt stiv de protocoale. Prin urmare, modelul nu a fost prea util pentru a descrie alte reele non-TCP/IP. Pentru a ne ntoarce de la subiectele filosofice la subiecte mai specifice, p diferen evident ntre cele dou modele sejefer lanumrul^^jde.niveluri: modelul OSI are apte niveluri, iar TCP/IP are patru. Ambele modele au niveluri (inter-)reea, transport i aplicaie, dar restul nivelurilor sunt diferite. O alt deosebire privete subiectul comunicaiei fr conexiuni fa de cel al comunicaiei orientat pe conexiuni. Modelul OSI suport^ ambele tipuri de comunicaii la nivelul reea, dar numai Cj^mjyuiicj^ unde acest fapt are importan (pentru c serviciul de transport este vizibil utilizatorilor). Modelul TCP/IP arenumai unjtnod (^r|j3Qne^ujii) la nivelul reea, dar suport ambele moduri la nivelul transport, ceea ce las utilizatorilor posibilitatea alegerii. Aceast alegere este important n mod special pentru protocoale ntrebare-rspuns simple.

SEC. 1.4

MODEIJE DE REFERINA

37

0 eritic a modelului i protocoalelor OSI Nici modelul i protocoalele OSI i nici modelul i protocoalele TCP/IP nu sunt perfecte. Asupra lor se pot formula, i s-au formulat, cteva critici. n prezenta i n urmtoarea seciune vom vedea unele dintre aceste critici. Vom ncepe cu OSI, dup care vom examina TCP/IP. La momentul cnd a fost publicat a doua ediie a acestei cri (1989), majoritatea experilor n domeniu credeau c modelul i protocoalele OSI se vor impune peste tot i vor elimina orice concurent. Acest lucru nu s-a ntmplat. De ce? O privire spre leciile trecutului poate fi util. Aceste lecii pot fi rezumate astfel: 1. 2. 3. 4. Ratarea momentului. Tehnologii proaste. Implementri proaste. Politici proaste.

Ratarea momentului

S vedem mai nti prima problem: ratarea momentului. Momentul la care se stabilete un standard este absolut critic pentru succesul acestuia. David Qark de la M.I.T. are o teorie asupra standardelor pe care o numete Apocalipsa celor doi elefani i care este ilustrat n Fig. 1-20. .
Investiii de miliarde de dolari

Cercetare

I
Timp

B 2 '>

Fig. 1-20. Apocalipsa celor doi elefani. Aceast figur arat cantitatea de activitate desfurat n jurul unui subiect nou. Cnd subiectul este descoperitoare loc o explozie a activitii de cercetare sub form de discuii, articole i ntlniri. Dup un timp, cercetarea se reduce foarte mult, subiectul este descoperit de companii i piaa primete lovitura unui val de investiii de miliarde de dolari. Este esenial ca standardele s fie scrise n intervalul dintre cei doi elefani". Dac ele sunt scrise prea devreme, nainte s se ncheie cercetarea, atunci subiectul poate s nu fie nc destul de bine neles, ceea ce conduce la standarde proaste. Dac ele sunt scrise prea trziu, atunci probabil c att de multe firme au fcut deja investiii majore realiznd lucrurile altfel, nct standardele sunt

38

INTRODUCERE

OAP.1

efectiv ignorate. Dac intervalul dintre cei doi elefani este, foarte ;Spur (pentru c toat lumea arde de nerbdare s treac la lucru), atunci cei care dezvolt standardele pot fi prini la mijloc i strivii. Acum se vede c protocoalele OSI standard au fost strivite. La momentul apariiei lor, protocoalele concurente TCP/IP erau deja folosite pe larg n universiti n cercetare. nainte s vin valul investiiilor de miliarde de dolari, piaa din domeniul academic era destul de dezvoltat pentru ca multe firme s nceap, prudent, s ofere produse TCP/IP. Cnd a aprut OSI, firmele nu au mai vrut, fr s fie forate, s sprijine o a doua stiv de protocoale, i, prin urmare, n-au fost nici un fel de oferte iniiale de acest gen. Fiecare firm atepta s nceap celelalte firme, aa c pn la urm n-a mai nceput nici o firm i fenomenul OSI nu s-a mai produs niciodat. Tehnologii proaste Al doilea motiv pentru care OSI n-a prins niciodat este c att modelul ct i protocoalele au defecte. Majoritatea discuiilor purtate n jurul modelului cu apte niveluri dai impresia c numrul i coninutul nivelurilor alese n cele din urm erau singura soluie, sau cel puin soluia evident. Lucrurile stau altfel. Nivelul sesiune este foarte puin folosit n majoritatea aplicaiilor, iar nivelul prezentare e aproape nul. De fapt, propunerea britanic ctre ISO avea numai cinci niveluri, nu apte. Spre deosebire de nivelurile sesiune i prezentare, nivelurile legtur de date i reea sunt att de ncrcate, nct trebuiau mprite n mai multe subniveluri, fiecare cu funcii diferite. Dei rareori admite cineva n public, motivul real pentru care modelul OSI are apte niveluri este c, n momentul proiectrii, IBM avea un protocol propriu cu apte niveluri numit SNA (Systems Network Architecture - arhitectura sistemelor de reele). La acea vreme, IBM domina industria de calculatoare n asemenea grad, nct toi ceilali - companii de telefoane, firme concurente de calculatoare i chiar organizaii guvernamentale importante - se temeau groaznic c IBM i va folosi piaa pentru a fora efectiv pe toat lumea s utilizeze SNA, pe care putea s-1 schimbe oricnd vroia. Ideea pe care s-a bazat OSI a fost s se produc o stiv de protocoale i un model de referin compatibil IBM, care s devin standardul internaional, dar care s nu fie controlat de o singur firm, ci de o organizaie neutr, ISO. Modelul OSI, alturi de protocoalele i definiiile de servicii asociate, este extraordinar de complex. Atunci cnd sunt puse unul peste altul, standardele tiprite ocup civa zeci de centimetri buni. Standardele sunt, de asemenea, dificil de implementat i ineficiente n funcionare. n acest context mi vine n minte o ghicitoare formulat de Paul Mockapetris i citat n (Rose, 1993): : Ce obii cnd aplici un standard internaional unui gangster? R: O persoan care i face o ofert pe care n-o poi nelege. Pe lng faptul c este incomprehensibil, o alt problem cu OSI este c unele funcii, cum sunt adresarea, controlul fluxului i controlul erorilor reapar din nou i din nou n fiecare nivel. Saltzer .a. (1994), de exemplu, au artat c, pentru a fi eficient, controlul erorilor trebuie fcut la nivelul cel mai nalt i c repetarea sa de attea ori n nivelurile de mai jos este adesea inutil i ineficient. O alt problem este c decizia de a plasa anumite funcii n anumite niveluri particulare nu este totdeauna eviden. Pe parcursul dezvoltrii standardului, gestionarea terminalului virtual (prezent acum n nivelul aplicaie) a fost mult timp sarcina nivelului prezentare. Aceasta a fost mutat n nivelul aplicaie, deoarece comitetul avea probleme s decid la ce era bun nivelul prezentare. Securitatea datelor i criptarea au fost att de controversate, nct nimeni n-a putut fi de

MODELE DE REFERINA

39

imvelul a care s le introduc,;aa c au fost lsate toate pe dinafar. De asemenea, i reelei a fost omis din model din motive similare. O alt critic asupra standardului iniial se refer la ignorarea complet a serviciilor i fflotocoalelor fr conexiune, n pofida faptului c majoritatea reelelor funcioneaz n acest mod. consecin, addenda care a urmat (cunoscut n lumea programatorilor drept fixarea erorilor) a corectat aceast problem. Cea mai serioas critic este, probabil, c modelul reflect o mentalitate dominat de problema comunicaiilor. Relaia dintre calcul i comunicare nu este menionat aproape deloc, iar o parte din alegerile fcute sunt total nepotrivite pentru modul n care lucreaz calculatoarele i programele. Gndii-v, de exemplu, la primitivele OSI, listate n Fig. 1-14. n particular, gndii-v atent cum ar putea cineva s foloseasc aceste primitive ntr-un limbaj de programare. Primitiva CONNECT.request e simpl. Ne putem imagina o procedur de bibliotec, connect, pe care programul o apeleaz ca s stabileasc o conexiune. Acum gndii-v la CONNECT.indication. Cnd sosete un mesaj, trebuie anunat procesul destinaie. Mai precis, trebuie s primeasc o ntrerupere - un concept rareori adecvat n programele scrise ntr-un limbaj modern de nivel nalt. Desigur, la nivelul cel mai de jos trebuie s se produc o indicaie (ntrerupere). Daca programul ateapt s soseasc pentru el un apel, atunci ar putea s invoce o procedur de bibliotec receive care s l blocheze. n acest caz, de ce nu a fost receive primitiva conceput n locul lui indication ? Receive este clar orientat spre modul de lucru al calculatoarelor, n timp ce indication este la fel de clar orientat spre modul de lucru al telefoanelor. Calculatoarele sunt diferite fa de telefoane. Telefoanele sun. Calculatoarele nu sun. Pe scurt, modelul semantic al unui sistem bazat pe ntreruperi reprezint din punct de vedere conceptual o idee proast i n total contradicie cu toate ideile moderne despre programarea structurata. Aceast problem i altele similare sunt discutate de ctre Langsford (1984).

Implementri proaste
Dat fiind enorma complexitate a modelului i a protocoalelor, nu este nici o surpriz n faptul c implementrile iniiale erau uriae, greoaie i ineficiente. Oricine le ncerca se simea ca oprit. Nu a trecut mult i lumea a asociat OSI" cu calitate slab." Odat cu trecerea timpului, produsele au devenit mai bune, dar imagina s-a deteriorat. Din contr, una din primele implementri de TCP/IP fcea parte din Berkeley UNIX i era destul de bun (ca s nu mai spunem c era i gratuit). Lumea a nceput s o foloseasc repede, ceea ce a determinat apariia unei comuniti largi de utilizatori, ceea ce a dus mai departe la mbuntiri, iar aceasta a dus la o comunitate i mai numeroas. n acest caz spirala nu cobora, ci urca.

Politici proaste
Din cauza implementrii iniiale, mult lume, n special din mediul academic, a considerat TCP/IP ca o parte din Unix; iar n anii '80 Unix-ul era pentru oamenii din lumea academic cam la fel de popular ca paternitatea (numit apoi incorect maternitate) sau ca plcinta cu mere. OSI, pe de alt parte, a fost gndit ca o creaie a ministerelor de telecomunicaii europene, apoi a Comunitii Europene i, mai trziu, a guvernului Statelor Unite. Aceast viziune s-a dovedit adevrat numai n parte; dar chiar ideea n sine - un grup de birocrai guvernamentali ncercnd s bage un standard inferior tehnic pe gtul bieilor cercettori i programatori care stau n tranee i

40

INTRODUCERE

CAP. 1

dezvolt efectiv reelele de calculatoare - nu a ajutat prea mult. Unii oameni au vzut aceast abordare n aceeai lumin n care a fost vzut IBM cnd a anunat n anii '60 c PL/I era limbajul viitorului, sau DoD care a corectat IBM-ul anunnd c limbajul respectiv era de fapt Ada. n pofida faptului c modelul i protocoalele OSI nu au fost chiar un succes rsuntor, mai exist totui unele organizaii interesate de OSI, n special PTT-urile2 europene care dein nc un monopol asupra telecomunicaiilor. n consecin, a existat un mic efort pentru a mbunti OSI i rezultatul este un model revizuit publicat n 1994. Pentru a vedea ceea ce a fost schimbat (puin) i ceea ce ar fi trebuit schimbat (mult), a se consulta (Day, 1995).
1.4.5 O critic a modelului de referin TCP/BP

Modelul i protocoalele TCP/IP au i ele problemele lor. Mai nti, modelul nu face o distincie clar ntre conceptele de serviciu, interfa i protocol. O practic recomandabil n ingineria programrii este s se fac diferena ntre specificaie i implementare, ceea ce OSI face cu mult atenie, pe cnd TCP/IP nu face. De aceea, modelul TCP/IP nu este un ghid prea bun de proiectare a reelelor noi folosind tehnologii noi. n al doilea rnd, modelul TCP/IP nu este de loc general i nu este aproape deloc potrivit pentru descrierea altor stive de protocoale n afara celei TCP/IP. De exemplu, descrierea SNA-ului folosind modelul TCP/IP ar fi aproape imposibil. n al treilea rnd, nivelul gazd-reea nu este deloc un nivel - n sensul normal n care este folosit termenul n contextul protocoalelor organizate pe niveluri - ci estej) interfa (ntre nivelurile reea si legtur de date). Distincia ntre o interfa si un nivel este crucial si de aceea trebuie s i se acorde atenia cuvenit. n al patrulea rnd, modelul TCP/IP nu distinge (i nici mcar nu menioneaz) nivelurile fizic i legtur de date. Acestea sunt complet diferite. Nivelul fizic are de-a face cu caracteristicile de transmisie ale comunicaiilor prin cablu de cupru, fibre optice sau radio. Rolul nivelului legtur de date este s delimiteze nceputul i sfritul cadrelor i s le transporte dintr-o parte n alta cu gradul de siguran dorit. Un model corect ar trebui s includ ambele niveluri ca niveluri separate. Modelul TCP/IP nu face acest lucru. n sfrit, dei protocoalele IP i TCP au fost atent gndite i bine implementate, multe din celelalte protocoale erau ad-hoc, fiind n general opera ctorva absolveni care tot metereau" la ele pn oboseau. Implementrile protocoalelor erau apoi distribuite gratuit; ca urmare, ele erau larg utilizate, fr s li se asigure suportul necesar, fiind de aceea dificil de nlocuit. Unele protocoale au ajuns acum s fie mai mult o pacoste. Protocolul de terminal virtual, TELNET, de exemplu, a fost proiectat pentru un terminal tele-imprimator mecanic de zece caractere pe secund. Cu toate acestea, 25 de ani mai trziu, protocolul este nc foarte utilizat. Pentru a rezuma, n pofida acestor probleme, modelul OSI (mai puin nivelurile sesiune i prezentare) s-a dovedit a fi excepional de util pentru a discuta reelele de calculatoare. Din contr, protocoalele OSI nu au devenit populare. Pentru TCP/IP este adevrat afirmaia invers: modelul este practic inexistent, dar protocoalele sunt larg utilizate. Dat fiind faptul c informaticienilor le place s prepare - i apoi s i mnnce - propria lor prjitur, n aceast carte vom folosi un model OSI modificat, dar ne vom concentra n primul rnd pe TCP/IP i
2

PTT-urile sunt instituiile de administrare a Potei, Telegrafului i Telefoanelor (n.t.)

SEC. 1.5

EXEMPLE DE REELE

41

alte protocoale nrudite cu el; de asemeneaj vom mai folosi unele protocoale mai noi, precum SDMS, retransmiterea cadrelor, SONET i ATM. Modelul de lucru folosit n carte este, practic, modelul hibrid prezentat n Fig. 1-21.
Nivelul aplicaie Nivelul transport Nivelul reea Nivelul legtur de date Nivelul fizic

Fig. 1-21. Modelul hibrid de referin care va fi utilizat n aceast carte.

1.5 EXEMPLE DE REELE


La ora actual, numrul reelelor care funcioneaz n lume este foarte mare. Unele dintre acestea sunt reele publice administrate de companii de telefonie publice sau de PTT-uri, altele sunt reele de cercetare, altele sunt reele de cooperare administrate chiar de utilizatori i, n sfrit, altele sunt reele comerciale aparinnd unor corporaii. n seciunile urmtoare vom arunca o privire asupra ctorva reele de domeniul prezentului sau al trecutului pentru a ne face o idee asupra lor i asupra diferenelor dintre ele. Reelele se deosebesc prin istorie, administrare, faciliti oferite, proiectare i prin comunitile lor de utilizatori. Istoria i administrarea pot varia de lt o reea atent planificat de ctre o singur organizaie cu un obiectiv bine definit, pn la o colecie ad-hoc de maini care au tot fost conectate ntre ele de-a lungul anilor, fr s existe vreun plan coerent sau vreo administrare central. Facilitile disponibile variaz de la comunicaii arbitrare ntre procese pn la pot electronic, transfer de fiiere, conectare la distan i execuie la distan. Detaliile tehnice de proiectare pot s difere n ceea ce privete mediul de transmisie, algoritmii de atribuire a numelor i de dirijare, numrul i coninutul nivelurilor, protocoalele utilizate. n sfrit, comunitatea utilizatorilor poate varia de la o singur corporaie pn la comunitatea tuturor informaticienilor din lumea industrializat. n seciunile urmtoare vom vedea cteva exemple: popularul pachet comercial pentru reele LAN, Novell NetWare, Internet-ul (incluznd predecesorii si, ARPANET i NSFNET) i primele reele gigabit. 1.5.1 Novell NetWare Cel mai popular sistem de reele din lumea PC-urilor este Novell NetWare. Acesta a fost proiectat pentru a fi folosit de firme care treceau de la mainframe-uri la reele de PC-uri. n astfel de sisteme, fiecare utilizator are un PC care funcioneaz pe post de client. n plus, un anumit numr de PC-uri puternice lucreaz ca servere, oferind unei colecii de clieni servicii de gestionare a fiierelor i a bazelor de date, precum i alte tipuri de servicii. Cu alte cuvinte, Novell NetWare se bazeaz pe modelul client-server. NetWare utilizeaz o stiv de protocoale proprie ilustrat n Fig. 1-22. Aceasta se bazeaz pe vechiul Xerox Network System, XNS, supus ns unor diferite modificri. Novell NetWare

42

MIRODUCERE

CARI

precede OSI i nu se bazeaz pe el. Dac este s semene cu ceva, atunci seamn mai mult cu TCP/IP dect cu OSI. Nivelul fizic i nivelul legtur de date pot fi alese dintre diferite standarde industriale, incluznd Ethernet, IBM token ring (jeton pe inel) i ARCnet. Nivelul reea folosete un protocol de interconectare fr conexiuni, nesigur, numit IPX. Acesta transmite transparent pachetele de la surs la destinaie, chiar dac sursa i destinaia se afl n reele diferite. IPX funcioneaz similar cu IP, exceptnd faptul c IPX folosete adrese pe 10 octei n loc de adrese pe 4 octei. Justeea acestei alegeri ni se va dezvlui n Cap. 5.
Nivel Aplicaie Transport Reea Legtur de date Fizic Ethernet Ethernet SAP NCP IPX Token ring Token ring ARCnet ARCnet Server de fiiere SPX

Fig. 1-22. Modelul de referin Novell NetWare. Peste IPX vine un protocol de transport orientat pe conexiuni numit NCP (Network Core Protocol - protocolul nucleului de reea). NCP asigur n plus fa de transportul datelor de la utilizatori diferite alte servicii i este, de fapt, inima sistemului Novell NetWare. Mai este disponibil i un al doilea protocol, SPX, dar acesta ofer numai transport. O alt opiune este TCP. Aplicaiile pot alege oricare din ele. De exemplu, sistemul de fiiere folosete NCP, iar Lotus Notes folosete SPX. Nu exist niveluri sesiune sau prezentare. n nivelul aplicaie sunt prezente diverse protocoale de aplicaii.
Octei 2 2 1 1 12 Adresa destinaiei ' Packet type {tip pachet) Transport control (control transport) 1 Packet length (lungime pachet) Checksum (sum de control) 12 Adresa sursei Date

Fig. 1-23. Un pachet Novell NetWare IPX. Ca i n TCP/IP, cheia ntregii arhitecturi este pachetul datagram internet, peste care este construit orice altceva. Formatul unui pachet IPX este prezentat n Fig. 1-23. Cmpul Checksum este folosit rar, deoarece nivelul legtur de date furnizeaz la rndul lui o sum de control. Cmpul Facket tength arat ct de lung este ntregul pachet, antet plus date. Cmpul Transport control

SEC

1.5

EXEMPLE DE REELE

43

Bfi| prin cte reele a traversat pachetul. Cnd acest numr depete un anumit maxim, pachetul este eliminat. Cmpul Pocket type este folosit pentru a marca diferite pachete de control. Fiecare din cele dou adrese conine un numr de reea pe 32 de bii, un numr de main pe 48 de bii (adresa 802 LAN) i adresa local (soclul) pe 16 bii de pe respectiva main. n sfrit, mai avem datele; acestea ocup restul pachetului i lungimea lor maxim depinde de reeaua respectiv. Aproximativ o data pe minut, fiecare server difuzeaz un pachet n care i d adresa i spune ce servicii ofer. Aceste difuzri utilizeaz protocolul SAP (Service Advertising Protocol - protocolul de reclam a serviciilor). Pachetele sunt vzute i colectate de ageni speciali care se execut pe mainile de dirijare. Agenii folosesc informaiile din pachete pentru a construi baze de date cu serverele din reea. La pornire, o main client difuzeaz o cerere n care ntreab unde se afl cel mai apropiat server. Agentul de pe maina de dirijare local vede cererea, se uit n baza sa de date despre servere i caut cel mai bun server corespunztor cererii. Rspunsul privind respectivul server este apoi trimis napoi ctre client. n acest moment clientul poate stabili o conexiune NCP cu serverul. Utiliznd aceast conexiune, clientul i serverul negociaz dimensiunea maxim a pachetelor. Din acest punct, clientul poate face acces la sistemul de fiiere i alte servicii folosind conexiunea stabilit. Qientul poate de asemenea s interogheze baza de date a serverului pentru a gsi alte servere (mai deprtate).
B

1.5.2 ARPANET-ul S schimbm acum domeniul de la LAN-uri la MAN-uri. La mijlocul anilor 1960, cnd Rzboiul Rece era n punctul culminant, DoD-ul a vrut o reea de comand i control care s poat supravieui unui rzboi nuclear. Tradiionalele reele telefonice cu comutare de circuite erau considerate prea vulnerabile, deoarece pierderea unei linii sau a unui comutator ar fi pus capt tuturor conversaiilor care le foloseau i ar fi putut chiar s partiioneze reeaua. Pentru a rezolva aceast problem, DoD s-a orientat ctre agenia sa de cercetare, ARPA (mai trziu DARPA, acum ARPA din nou): (Deferise) Advanced Research Projects Agency - Agenia de Cercetare pentru Proiecte Avansate (de Aprare). ARPA a fost creat ca rspuns la lansarea Sputnik-ului de ctre Uniunea Sovietic n 1957 i avea misiunea de a dezvolta tehnologia care putea fi util scopurilor militare. ARPA nu avea savani sau laboratoare, nu avea de fapt nimic mai mult dect un birou i un buget redus (dup standardele Pentagonului). Activitatea ageniei a constat n furnizarea de fonduri i contracte universitilor i firmelor care aveau idei promitoare. O parte din primele fonduri au mers ctre universiti n vederea studierii comutrii de pachete, o idee radical la acea vreme; ideea fusese sugerat de Paul Baran ntr-o serie de rapoarte ale Corporaiei RND publicate la nceputul anilor 1960. Dup discuii cu diveri experi, ARPA a decis c reeaua de care avea nevoie DoD trebuia s fie o reea cu comutare de pachete constnd dintr-o subreea i din calculatoare gazd. Subreeaua trebuia s fie format din minicalculatoare numite IMP-uri (Ihterface Message Processors - procesoare de mesaje de interfa) conectate prin linii de transmisie. Pentru o siguran mare, fiecare IMP trebuia legat la cel puin alte dou IMP-uri. Subreeaua avea s fie o subreea datagram, astfel c dac unele linii i IMP-uri se defectau, mesajele puteau fi redirijate automat pe ci alternative.

44

INTRODUCERE

CAP.l

Fiecare nod al reelei era format dintr-un IMP i dintr-o gazd, aflate n aceeai ncpere i legate printr-un fir scurt. O gazd putea s trimit mesaje de pn la 8063 bii spre IMP-ul su, iar acesta descompunea apoi mesajele n pachete de cel mult 1008 bii i le retransmitea la destinaie separat. Fiecare pachet era primit n ntregime nainte de a fi reexpediat, astfel c subreeaua a fost prima reea electronic memoreaz-i-retransmite cu comutare de pachete. ARPA a cutat apoi o ofert pentru construirea subreelei. Au depus oferte dousprezece firme. Dup evaluarea tuturor propunerilor, ARPA a selectat BBN, o firm de consultan din Cambridge, Massachusetts, i n 1968 a ncheiat cu aceasta un contract pentru construirea subreelei i scrierea programelor de subreea. BBN a decis s utilizeze pe post de IMP-uri minicalculatoare Honeywell DDP-316 special modificate, dispunnd de o memorie intern de 12K cu cuvinte pe 16 bii. IMP-urile nu aveau discuri, pentru c prile mobile erau considerate nesigure. IMP-urile au fost interconectate prin linii de 56 kbps nchiriate de la companii de telefoane. Programele au fost mprite n dou: pentru subreea i pentru gazde. Programele de subreea cuprind gestionarea captului dinspre IMP al conexiunii gazd-IMP, protocolul IMP-IMP i un protocol surs IMP - destinaie IMP, proiectat pentru a mri sigurana. Proiectul iniial al reelei ARPANET este prezentat n Fig. 1-24.
Protocol gazd-gazd Protocol Gazd-IMP

Subreea

IMP

Fig. 1-24. Proiectul iniial al reelei ARPANET. i n afara subreelei, erau necesare programe: gestionarea captului dinspre gazd al conexiunii gazd-IMP, protocolul gazd-gazd i programe de aplicaie. n scurt timp, a devenit clar c BBN considera sarcina sa ncheiat din momentul n care acceptase un mesaj pe un fir gazd-IMP i l plasase pe firul gazd-IMP la destinaie. Pentru a se descurca cu problema programelor pentru gazde, Larry Roberts de la ARPA a convocat n vara anului 1969, la Snowbird, Utah, o ntlnire ntre cercettori din domeniul reelelor, cei mai muli din ei proaspt absolveni de facultate. Absolvenii se ateptau ca nite experi n reele s le explice proiectarea i software-ul reelei i ca fiecare din ei s primeasc dup aceea sarcina de a scrie o parte din programe. Ei au rmas ns mui de uimire cnd au constatat c nu exista nici un expert n reele i nici o proiectare serioas. Ei trebuia s-i dea singuri seama ce au de fcut.

SEC. 15

EXEMPLE DE REELE

45

toate acestea, n decembrie 1969 ncepea deja s funcioneze o reea experimental cu patru noduri, la UCLA, UCSB, SRI i Universitatea din Utah. Au fost alese aceste patru instituii, pentru c toate aveau un numr mare de contracte cu ARPA i toate aveau calculatoare gazd diferite i complet incompatibile (doar ca treaba s fie mai amuzant). Pe msur ce se aduceau i se instalau mai multe IMP-uri, reeaua cretea rapid; n scurt timp, s-a ntins pe tot spaiul Statelor Unite. Figura 1-25 arat ct de repede a crescut ARPA n primii 3 ani.
UTAH MIT UTAH ILLINOIS MIT LINCOLN CASE

0CARN

UCLA

UCLA

RND

BBN

UCLA

RND (C)

BBN HARVARD BURROUGHS

ta)

(b)

LBL MCCLELLAN MCCLELLAN SRI /uTAH

UTAH

ILLINOIS

MIT

^_

NCAR

GWC LINCOLN CASE

AMESO UCSB STAN O OSDC UCU RND TINKER

RADCx

CCA BBN HARVARD 0 U N C C ABERDEEN STANFORD NB ETAC ARPA MITRE SAAC BELVOIR CMU UCLA SDC USC NOAA GWC CASE

BBN HARVARD

NBS

(d)

(e)

Fig. 1-25. (a) Dec. 1969. (b) Iulie 1970. (c) Martie 1971. (d) Aprilie 1972. (e) Sept. 1972. Mai trziu, programele pentru IMP-uri au fost modificate pentru a permite terminalelor s se lege direct la un IMP special, numit TIP (Terminal Interface Processor - procesor de interfatare a terminalelor), fr a fi nevoie s treac printr-o gazd. Schimbrile ulterioare au permis, printre altele, existena mai multor gazde pentru un IMP (pentru a economisi bani), comunicarea gazdelor cu mai multe IMP-uri (ca mijloc de aprare mpotriva defectrii IMP-urilor) i separarea gazdelor de IMP-uri prin distane mari (pentru ca gazdele s se afle departe de subreea). Pe lng ajutorul oferit pentru dezvoltarea tnrului ARPANET, ARPA a finanat de asemenea cercetri n domeniul reelelor de satelii i reelelor mobile radio cu pachete. ntro faimoas demonstraie, un Camion care circula n California folosea reeaua radio cu pachete pentru a trimite mesaje ctre SRI, aceste mesaje erau retransmise apoi prin ARPANET pe Coasta de Est, iar de aici mesajele erau expediate ctre University CoUege din

46

INTRODUCERE

CAP. 1

Londra prin reeaua de satelii. Acest lucru permitea unui cercettor din camion s utilizeze un calculator din Londra n timp ce cltorea prin California. Acest experiment a demonstrat totodat c protocoalele ARPANET existente nu erau potrivite pentru a rula pe mai multe reele. Observaia a condus la noi cercetri asupra protocoalelor, culminnd cu invenia modelului i protocoalelor TCP/IP (Cerf i Kahn, 1974). TCP/IP a fost proiectat special pentru a trata comunicarea prin inter-reele, un lucru care devenea din ce n ce mai important, pe msur ce tot mai multe reele erau legate la ARPANET. Pentru a ncuraja adoptarea acestor noi protocoale, ARPA a semnat cteva contracte cu BBN i cu University of California din Berkeley pentru a integra protocoalele n Berkeley UNIX. Cercettorii de la Berkeley au dezvoltat o interfa de programare cu reeaua (soclurile) i au scris numeroase aplicaii, utilitare i programe de administrare care s simplifice interconectarea. Momentul era perfect. Multe universiti tocmai achiziionaser un al doilea sau al treilea calculator VAX i un LAN care s le conecteze, dar nu aveau nici un fel de programe de interconectare. Cnd a aprut 4.2BSD, cu TCP/IP, socluri i multe utilitare de reea, pachetul complet a fost adoptat imediat. Mai mult chiar, folosind TCP/IP, LAN-urile se puteau lega simplu la ARPANET, i multe LAN-uri au fcut acest lucru. n 1983, ARPANET-ul, cu peste 200 de IMP-uri i cu sute de gazde, era stabil i se bucura de succes. n acest moment, ARPA a ncredinat administrarea reelei Ageniei de Comunicaii a Aprrii (Defense Communications Agency - DCA), pentru a o folosi ca reea operaional. Primul lucru pe care 1-a fcut DCA a fost s izoleze poriunea militar (aproximativ 160 de IMP-uri, din care 110 n Statele Unite i 50 n strintate) ntr-o subreea separat, MILNET, i s prevad pori stricte ntre MILNET i subreeaua de cercetare rmas. n timpul anilor 1980 au fost conectate la ARPANET multe alte reele, n special LAN-uri. Pe msur ce cretea dimensiunea reelei, gsirea gazdelor devenea tot mai costisitoare; de aceea, a fost creat DNS (Domain Naming System - Sistemul Numelor de Domenii), care organiza mainile n domenii i punea n coresponden numele gazdelor cu adrese IP. De atunci ncoace, DNS a ajuns s fie un sistem de baze distribuit, generalizat, folosit pentru a memora diverse informaii referitoare la procedurile de atribuire a numelor. Vom studia detaliat acest sistem n Cap. 7. n 1990 ARPANET-ul era deja surclasat de reele mai modeme crora le dduse natere el nsui. Prin urmare, ARPANET-ul a fost nchis i demontat, dar el continu s triasc n inima i mintea specialitilor n reele de pretutindeni. MILNET funcioneaz, totui, n continuare.
1.5.3 NSFNET

La sfritul anilor 1970, NSF (U.S. National Science Foundation - Fundaia Naional de tiin din SUA) a remarcat enormul impact pe care ARPANET-ul l avea asupra cercetrii universitare, reeaua permind savanilor din toat ara s partajeze date i s colaboreze la proiecte de cercetare. Dar, pentru a se conecta la ARPANET, o universitate trebuia s aib un contract de cercetare cu DoD, iar multe universiti nu aveau. Lipsa accesului universal a determinat NSF-ul s organizeze o reea virtual, CSNET, centrat n jurul unei singure maini de la BBN care asigura suport pentru linii telefonice i care avea conexiuni cu ARPANET-ul i cu alte reele. Folosind CSNET, cercettorii puteau suna i lsa pot electronic pentru a fi citit mai trziu de alte persoane. Era simplu, i funciona.

SEC 1^

EXEMPLE DE REELE

47

n 1984 NSF a nceput s proiecteze un succesor de mare vitez al ARPANET-ului care s fie deschis tuturor grupurilor de cercetare din universiti. Pentru a avea ceva concret cu care s nceap, NSF a hotrt s construiasc o coloan vertebral care s lege centrele sale de supercalculatoare din ase orae: San Diego, Boulder, Champaign, Pittsburgh, Ithaca i Princeton. Fiecare supercalculator a primit un frate mai mic, constnd dintr-un minicalculator LSI-11 numit fuzzlball. Fuzzball-urile au fost legate prin linii nchiriate de 56 kbps i au format subreeaua - aceeai tehnologie hardware folosit i de ARPANET. Oricum, tehnologia software era diferit: fuzzball-urile utilizau TCP/IP de la bun nceput; prin urmare, acesta a fost primul WAN TCP/IP. NSF a finanat, de asemenea, un numr de (aproximativ 20, pn la urm) reele regionale care se conectau la coloana vertebral, permind utilizatorilor din mii de universiti, laboratoare de cercetare, biblioteci i muzee s acceseze oricare dintre supercalculatoare i s comunice ntre ei. Reeaua complet, care includea coloana vertebral i reelele regionale, a fost numit NSFNET. Aceasta a fost conectat la ARPANET printr-o legtur ntre un IMP i un fuzzball din laboratorul de la Carnegie-Mellon. Prima coloan vertebral NSFNET este ilustrat n Fig. 1-26.

o Centru NSF de supercalculatoare Reea NSF de nivel mediu Ambele

Fig. 1-26. Coloana vertebral NSFNET n 1988. NSFNET-ul a reprezentat un succes instantaneu i a fost suprasolicitat din clipa n care a nceput s funcioneze. NSF a nceput imediat s planifice succesorul NSFNET-ului i a semnat un contract cu consoriul MERIT cu sediul n Michigan. Pentru realizarea coloanei vertebrale numrul 2, au fost nchiriate de la MCI canale cu fibre optice de 448 kbps. Ca rutere s-au folosit IBM-uri RS6000. i aceast reea a devenit curnd suprancrcat, drept care, n 1990, a doua coloan vertebral a fost adus la viteza de 1.5 Mbps. Creterea a continuat ns, iar NSF a realizat c guvernul nu poate finana interconectrile la nesfrit. n plus, o serie de organizaii comerciale erau interesate s se conecteze, dar statutul NSF le interzicea s se lege la reele finanate de NSF. n consecin, NSF a ncurajat MERIT, MCI i IBM s formeze o corporaie nonprofit, ANS (Advanced Networks and Services - Reele i Servicii

48

INTRODUCERE

CAPI

Avansate), ca un pas pe drumul spre comercializare. n 1990, ANS a preluat NSFNET i a nlocuit legturile de 1.5 Mbps cu legturi de 45 Mbps, formnd ANSNET. n decembrie 1991, Congresul Statelor Unite a aprobat un proiect de lege care autoriza NREN (National Research and Educaional Network - Reeaua de Cercetare i Educaie Naional), succesorul din domeniul cercetrii al NSFNET-ului, funcionnd ns la viteze de ordinul gigabiilor. Obiectivul era s se realizeze naintea sfritului de mileniu o reea naional funcionnd la 3 Gbps. Aceast reea este gndit ca un prototip al mult discutatei super-magistrale informaionale. Deoarece numeroase companii aveau reele IP comerciale, n 1995 coloana vertebral a NSFNET-ului deja nu mai era necesar pentru interconectarea reelelor regionale ale NSFului. Cnd America Online a cumprat ANSNET-ul n 1995, reelele regionale ale NSF-ului au fost deconectate i au fost nevoite s cumpere servicii IP pentru a se interconecta. : Ca s uureze tranziia i ca s fie sigur c orice reea regional putea comunica cu orice alt reea regional, NSF a semnat contracte cu patru operatori de reele diferii n vederea stabilirii unui NAP (Network Access Point - punct de acces la reea). Aceti operatori erau PacBell (San Francisco), Ameritech (Chicago), MFS (Washington, D.C.), i Sprint (New York City, unde - din raiuni legate de NAP - Pennsauken, N.J. se consider New York City). Fiecare operator de reea care dorea s ofere servicii de infrastructur pentru reelele regionale NSF trebuia s se lege la toate NAP-urile. De aceea, pentru a ajunge de la NAP-ul su la NAP-ul destinaiei, un pachet trimis din orice reea regional putea opta ntre mai multe companii care ofer servicii de transmisie pe coloana vertebral. n consecin, pentru a fi alese de reelele regionale, companiile de comunicaii au fost forate s intre n competiie pe baza serviciilor i preurilor practicate - i, bineneles, asta era i ideea. Pe lng NAP-urile NSF, au mai fost create i diverse NAP-uri guvernamentale (de exemplu, FIX-E, FIX-W, MAE-East i MAE-West) i NAP-uri comerciale (de exemplu, CIX), astfel nct conceptul unei singure coloane vertebrale implicite a fost nlocuit de o infrastructur competitiv pe baze comerciale. Alte ri i regiuni construiesc i ele reele comparabile cu NSFNET. n Europa, de exemplu, EBONE este o coloan vertebral IP pentru organizaii de cercetare i EuropaNET este o reea orientat mai mult spre domeniul comercial. Ambele reele leag numeroase orae din Europa prin linii de 2 Mbps. n prezent se lucreaz la schimbarea acestora cu linii de 34 Mbps. Fiecare ar din Europa are una sau mai multe reele naionale, care sunt, n linii mari, similare cu reelele regionale NSF. 1.5.4 Internet-ul Numrul reelelor , mainilor i utilizatorilor conectai la ARPANET a crescut rapid dup ce TCP/IP a devenit, la 1 ian. 1983, unicul protocol oficial. Cnd au fost conectate NSFNET i ARPANET, creterea a devenit exponenial. S-au alturat multe reele regionale i s-au realizat legturi cu reele din Canada, Europa i Pacific. Cndva, pe la mijlocul anilor 1980, lumea a nceput s vad colecia de reele ca fiind un internet, iar apoi ca fiind Internet-ul; nu a existat ns nici un toast oficial cu politicieni desfcnd sticle de ampanie. Creterea a continuat exponenial i n 1990 Internet-ul ajunsese s cuprind 3000 de reele i 200.000 de calculatoare. n 1992 a fost ataat'gazda cu numrul 1.000.000. n 1995 existau mai

SEC

L5

EXEMPLE DE REELE

49

multe coloane vertebrale, sute de reele de nivel mediu (adic regionale), zeci de mii de LAN-uri, milioane de gazde i zeci de milioane de utilizatori. Mrirnea Internet-ului se dubleaz aproximativ la fiecare an (Paxson, 1994). Mare parte din cretere se datoreaz conectrii la Internet a reelelor existente. Printre acestea s-au numrat n trecut SPN, reeaua de fizic spaial a NASA, HEPNET, o reea de fizica energiilor nalte, BITNET, reeaua de sisteme de calcul a IBM-ului, EARN, o reea academic european foarte utilizat acum n Europa de Est, i multe altele. Sunt n funciune numeroase legturi transatlantice, cu viteze cuprinse ntre 64 kbps i 2 Mbps. Substana care ine legat Internet-ul este modelul de referin TCP/IP i stiva de protocoale TCP/IP- TCP/IP face posibile serviciile universale, putnd fi comparat cu sistemul telefonic sau cu adoptarea limii standard pentru cile ferate n secolul 19. Ce nseamn de fapt s fii pe Internet? Definiia noastr este c o main este pe Internet dac folosete stiva de protocoale TCP/IP, are o adres IP i are posibilitatea de a trimite pachete IP ctre toate celelalte maini de pe Internet. Simpla posibilitate de a trimite i primi pot electronic nu este suficient, deoarece pota electronic este redirectat ctre multe reele din afara Internetului. Oricum, subiectul este cumva umbrit de faptul c multe calculatoare personale pot s apeleze un furnizor de servicii Internet folosind un modem, s primeasc o adres IP temporar i apoi s trimit pachete IP spre alte gazde. Are sens s privim asemenea maini ca fiind pe Internet numai atta timp ct ele sunt conectate la ruterul furnizorului de servicii. Dat fiind creterea exponenial, vechiul mod informai de funcionare a Internet-ului nu mai este acceptabil. n ianuarie 1992 a fost nfiinat Societatea Internet, cu scopul de a promova utilizarea Internet-ului i, probabil, de a prelua n cele din urm administrarea sa. Tradiional, Internet-ul a avut patru aplicaii principale, dup cum urmeaz: Pota electronic. Facilitatea de a compune, trimite i primi pot electronic a existat din primele zile ale ARPANET-ului i este imens de popular. Muli oameni primesc zeci de mesaje pe zi i consider pota electronic principalul lor mijloc de a interaciona cu lumea exterioar, depind de departe telefonul i pota obinuit. Programele de pot electronic sunt astzi disponibile practic pe orice tip de calculator. 2. tiri. Grupurile de tiri sunt forumuri specializate n care utilizatorii cu un anumit interes comun pot s fac schimb de mesaje. Exist mii de grupuri de tiri, pe subiecte tehnice sau nontehnice incluznd calculatoarele, tiina, divertismentul i politica. Fiecare grup de tiri are eticheta, stilul i obiceiurile sale proprii i nenorocirea s se abat asupra oricui le ncalc. 3. Conectare la distan. Folosind Telnet, Rlogin sau alte programe, utilizatorii aflai oriunde pe Internet pot s se conecteze la orice main pe care au un cont. 4. Transfer de fiiere. Copierea fiierelor de pe o main din Internet pe alta este posibil utiliznd programul FTP. n acest fel sunt disponibile imens de multe articole, baze de date si alte informaii. 1. Pn la nceputul anilor 1990 Internet-ul a fost foarte populat cu cercettori din domeniul academic, guvernamental i industrial. O aplicaie nou, WWW (World Wide Web), a schimbat toat situaia i a adus n reea milioane de noi utilizatori care nu fac parte din mediul academic. Aceast aplicaie, inventat de fizicianul Tim Berners Lee de la CERN, nu a modificat nici una din

50

INTRODUCERE

CARI

facilitile existente, h schfeib le-a fcut mai uor de folosit. mpreun cu programul de navigare Mosaic, scris la Centrul Naional pentru Aplicaiile Supercalculatoarelor, WWW-ul a fcut posibil ca un sit s pun la dispoziie un numr de pagini de informaii coninnd text, poze, sunet i chiar video, n fiecare pagin existnd legturi ctre alte pagini Printr-un clic pe o legtur, utilizatorul este imediat transportat la pagina indicat de legturi De exemplu, multe firme au o pagin principal cu intrri care trimit la alte pagini pentru informaii asupra produselor, liste de preuri, reduceri, suport tehnic, comunicare cu-angajaii, informaii despre acionari i multe altele. ntr-un timp foarte scurt au aprut numeroase alte tipuri de pagini: hri, tabele cu cotaii la burs, cataloage de bibliotec, programe radio nregistrate i chiar o pagin care indic spre textele complete ale multor cri crora le-au expirat drepturile de autor (Mark Twain, Charles Dickens, etc). De asemenea, muli oameni au pagini personale (home pages). n primul an de la lansarea Mosaic-ului, numrul de servere WWW a crescut de la 100 la 7000. Aceast enorm cretere va continua, fr ndoial, n urmtorii ani i va reprezenta, probabil, fora care va conduce tehnologia i utilizarea Internet-ului spre mileniul urmtor. Despre Internet i protocoalele sale s-au scris multe cri. Pentru mai mult informaie, a se vedea (Black, 1995; Carl-Mitchell i Quarterman, 1993; Corner, 1995; i Santifaller, 1994). 1.5.5 Prototipuri gigabit

Coloanele vertebrale Internet opereaz la viteze de ordinul megabiilor. Pentru oamenii care vor s foreze limitele actuale ale tehnologiei, urmtorul pas l reprezint interconectarea la viteze de gigabii. Odat cu fiecare cretere a limii de band din reele, devin posibile aplicaii noi, iar reelele gigabit nu sunt o excepie. n aceast seciune vom spune mai nti cteva cuvinte despre aplicaiile gigabit, vom meniona dou dintre ele, dup care vom prezenta cteva exemple de prototipuri gigabit construite pn acum. Reelele gigabit asigur o lime de band mai bun dect reelele megabit, dar nu totdeauna i o ntrziere mai bun. De exemplu, trimiterea unui pachet de 1 KB de la New York la San Francisco la 1 Mbps necesit 1 msec pentru a recepiona biii i 20 msec pentru ntrzierea transcontinental, ceea ce nseamn un total de 21 msec. O reea de 1 Gbps poate reduce timpul total la 20,001 msec. Dei biii pot fi primii mai rapid, ntrzierea transcontinental rmne aceeai, pentru c viteza luminii prin fibre optice (sau fire de cupru) este de aproximativ 200.000 km/sec, independent de rata de transmisie a datelor. De aceea, trecerea la viteze mai ridicate poate s nu fie de mare ajutor pentru aplicaii larg rspndite geografic n care ntrzierea redus este critic. Din fericire, exist aplicaii pentru care conteaz exact limea de band i pentru aceste aplicaii reelele gigabit vor nsemna o mare diferen. Una din aplicaii este telemedicina. Mult lume se gndete c un mijloc de a reduce costurile medicale este reintroducerea doctorilor de familie i clinicilor familiale pe scar larg, astfel nct oricine s aib acces convenabil la ngrijire medical. Cnd apare o problem medical serioas, doctorul de familie poate cere teste de laborator i explorri prin imagistic medical, de exemplu raze X, scanare CAT sau scanare MRI. Rezultatele testelor i imaginile obinute pot fi apoi trimise electronic la un specialist care stabilete diagnosticul. Doctorii nu doresc, n general, s pun diagnostic pe baza imaginilor pe calculator dect dac imaginile transmise au o calitate la fel de bun ca imaginile originale. Din aceast cauz, imaginile vor avea, probabil, nevoie de 4K x 4K pixeli, cn&Mi per pixel (imagini alb negru) sau 24 bii per

SEC. 1.5

EXEMPLE DE REELE

51

piei (imagini color). Deoarece multe teste presupun pn la 100 de imagini (de exemplu, diferite seciuni transversale ale organului examinat), o singur serie de imagini pentru un pacient poate s genereze 40 gigabii. Imaginile n micare (de exemplu, o inim care bate) genereaz o cantitate de date nc i mai mare. Compresia poate ajuta, ns doctorii sunt precaui, pentru c algoritmii cei mai eficieni reduc din calitatea imaginilor. n plus, toate imaginile trebuie stocate ani de zile, dar, n cazul unei urgene, poate fi necesar examinarea lor imediat. Spitalele nu doresc s devin centre de calculatoare i, de aceea, este esenial stocarea datelor n afara spitalului, combinat cu transmisia electronic de band larg. O alt aplicaie gigabit este ntlnirea virtual. n fiecare sal pentru ntlniri exist o video camer sferic i unul sau mai muli oameni. Fluxurile de bii de la fiecare camer sunt combinate electronic pentru a da iluzia c toat lumea se afl n aceeai ncpere. Fiecare persoan vede aceast imagine folosind ecrane pentru realitatea virtual. n acest mod, ntlnirile pot avea loc evitnd cltoriile, dar, nc o dat, volumul de date necesar este uria. ncepnd din 1989, iar mai trziu ca parte a proiectului NREN, ARPA i NSF au convenit s finaneze mpreun un numr de prototipuri gigabit universitare i industriale. n unele cazuri, viteza de transmisie a datelor ntr-un sens era de 622 Mbps, aa c, numai socotind traficul n ambele sensuri, se obine un gigabit. Acest tip de gigabit este uneori numit un gigabit guvernamental." (Unii cinici l numesc: un gigabit dup impozitare.) Vom meniona pe scurt primele cinci proiecte. Ele i-au realizat scopul i s-au ncheiat, dar merit aprecierile noastre ca pionierat n domeniu - n acelai sens n care merit aprecieri i ARPANET-ul. 1. Aurora a fost un prototip care lega patru site-uri din Nord-est: M.I.T., University of Pennsylvania, TJ. Watson Lab al IBM-ului i Bellcore (Morristown, N.J.). Viteza era de 622 Mbps i se utilizau fibre optice de la MCI, Bell Atlantic i NYNEX. Aurora a fost proiectat n mare msur pentru a ajuta, folosind reele paralele, la depanarea comutatorului Sunshine - produs de Bellcore i plaNET - comutatorul (proprietar) al IBMului. Subiectele de cercetare au inclus tehnologia de comutare, protocoalele gigabit, dirijarea, controlul reelei, memoria virtual distribuit, i colaborarea cu ajutorul videoconferinelor. Pentru mai multe informaii, a se vedea (Clark .a., 1993). Blanca a fost la nceput un proiect de cercetare numit XUNET, n care au fost implicai AT&T Bell Labs, Berkeley i Universitatea din Wisconsin. n 1990, proiectul a fost extins la cteva noi situri (LBL, Cray Research i Universitatea din Illinois) i a obinut finanare de la NSF/ARPA. O parte a reelei funciona la 622 Mbps, dar alte pri funcionau la viteze mai mici. Blanca a fost singurul prototip naional; restul au fost regionale. Prin urmare, a existat o preocupare deosebit n ceea ce privete efectele datorate ntrzierii legate de viteza luminii. n acest sens, prezentau interes protocoalele, mai ales protocoalele de control al reelei, interfeele gazdelor i aplicaiile gigabit de tipul imagisticii medicale, modelrii meteorologice i astronomiei radio. Pentru mai multe informaii a se vedea (Catlett, 1992; i Fraser, 1993). Casa a fost proiectat pentru a fi studiate aplicaiile supercalculatoarelor, n special acelea n care o parte a problemei se implementa cel mai bine pe un anumit tip de supercalculator (de exemplu, un supercalculator vectorial Cray) i cealalt parte se potrivea cu un alt tip de

2.

3.

52

INTRODUCERE

GAP. 1

supercalculator (de exemplu, un supercalculator paralel). Printre aplicaiile studiate s-au numrat aplicaii geologice (analiza imaginilor primite de la Landsat), modelarea climei, nelegerea reaciilor chimice. CASA a operat n California i New Mexico i a legat Los Alamos, Cal Tech, JPL i Centrul de Supercalculatoare din San Diego. 4. Nectar se deosebea de cele trei prototipuri prezentate mai sus prin faptul c era un MAN gigabit experimental. Nectar opera ntre CMU i Centrul de Supercalculatoare din Pittsburgh. Proiectanii erau interesai de aplicaii privind descrierea proceselor chimice i, totodat, de scule de depanare pentru acestea. "VISTAnet a fost un prototip gigabit redus, care opera n Research Triangle Park, North Carolina i conecta Universitatea din North Carolina, Universitatea de Stat din North Carolina i MCNC. Scopul era realizarea unui prototip pentru o reea gigabit public, cu comutare; comutatoarele aveau sute de linii gigabit i, din acest motiv, trebuia s fie capabile de procesri de ordinul terabiilor/sec. Cercetarea tiinific s-a focalizat pe utilizarea imaginilor 3D n planificarea terapiei prin iradiere pentru pacienii de cancer; oncologul avea posibilitatea s varieze parametrii fasciculului de radiaii i s vad instantaneu doza de radiaii care ajungea la tumoare i nconjura esutul (Ransom, 1992).

5.

1.6

EXEMPLE DE SERVICE PENTRU COMUNICATE DE DATE

Companiile telefonice i alte firme au nceput s ofere servicii de reea pe baz de abonament oricrei organizaii interesate. Subreeaua, aflat n proprietatea operatorului reelei, ofer servicii de comunicaii pentru gazdele i terminalele clienilor. Un astfel de sistem se numete o reea public. Este analogul sistemului telefonic public i, deseori, face parte din el. Am vzut deja pe
A

scurt un serviciu nou, DQDB, n Fig. 1-4. In seciunile urmtoare vom studia alte patru exemple de servicii: SMDS, X.25, retransmiterea cadrelor i ISDN de band larg. 1.6.1 SMDS - Serviciu de Date Comutat Multimegabit Primul serviciu pe care l lum n discuie, SMDS (Switched Multimegabit Data Service serviciu de date comutat multimegabit), a fost proiectat pentru a interconecta mai multe LAN-uri, de obicei LAN-uri din filialele i fabricile unei singure companii. Acest serviciu a fost proiectat de Bellcore n anii '80 i a fost pus efectiv n funciune la nceputul anilor '90 de ctre companii de comunicaii - majoritatea regionale, dar i cteva care operau pe distane mari. Obiectivul era producerea unui serviciu de date de mare vitez i scoaterea sa pe pia cu ct mai puin trboi. SMDS este primul serviciu comutat de band larg (adic de vitez mare) oferit publicului. Pentru a vedea o situaie n care SMDS ar fi util, s considerm o firm cu patru birouri n patru orae diferite, fiecare cu propriul su LAN. Firma ar dori s lege toate LAN-urile, astfel nct pachetele s poat circula de la un IAN la altul. Una din soluii ar fi s nchirieze ase linii de mare vitez i s conecteze LAN-urile complet, aa cum arat n Fig. l-27(a). O astfel de soluie este foarte posibil, dar este costisitoare. O soluie alternativ este s se foloseasc SMDS, dup cum este artat n Fig. l-27(b). Reeaua o-coloan yertebralJAN de mare vitez, permind pachetelor din orice

SEC. 1.6

EXEMPLE DE SERVICII PENTRU COMUNICAII DE DATE

S3

k s circule spre orice alt LAN. ntre LAN-urile din birourile clienilor i reeaua SMDS din birourile companiei telefonice exist o (scurt) linie de acces nchiriat de la compania telefonic. De obicei, aceast linie este un MAN i folosete DQDB, dar pot fi disponibile i alte opiuni.
LAN1
LAN 3

LAN 2 (a)

LAN 4

Fig. 1-27. (a) Patru LAN-uri interconectate cu linii nchiriate, (b) Interconectare folosind SMDS. n timp ce majoritatea serviciilor companiilor de telefoane sunt proiectate pentru trafic continuu, SMDS este proiectat pentru trafic n rafale. Cu alte cuvinte, din timp n timp, un pachet trebuie s fie transportat rapid de la un LAN la altul, dar, n cea mai mare parte a timpului, nu exist nici un fel de trafic ntre LAN-uri. Soluia cu liniile nchiriate, din Fig. 1-27, prezint dezavantajul unor costuri lunare ridicate; odat instalate liniile, clientul trebuie s plteasc pentru ele, indiferent dac le folosete continuu sau nu. n cazul traficului intermitent, liniile nchiriate reprezint o soluie costisitoare, iar preul SDMS-ului este competitiv. Pentru n LAN-uri, o reea cu linii nchiriate conectat complet presupune nchirierea a n(n-l)/2 linii, care pot fi lungi (deci, costisitoare), n timp ce SMDS necesit numai nchirierea a n linii de acces scurte pn la cel mai apropiat ruter SMDS. Deoarece scopul su este s realizeze trafic de la un LAN la altul, SMDS-ul trebuie s fie suficient de rapid pentru aceast sarcin. Viteza standard este 45 Mbps, dar uneori sunt disponibile i opiuni de vitez mai mic. MAN-urile pot opera tot la 45 Mbps, ns ele nu sunt comutate. Adic, pentru a conecta patru LAN-uri folosind un MAN, compania de telefoane ar trebui s instaleze un cablu de la LAN 1 pn la LAN 2 pn la LAN 3 pn la LAN 4, ceea ce este posibil numai dac ele se afl n acelai ora. Folosind SDMS, fiecare LAN se leag la un comutator al companiei telefonice. Comutatorul dirijeaz pachetele prin reeaua SMDS n funcie de destinaia lor, traseul trecnd eventual prin mai multe comutatoare.
Octei Adresa destinaiei Adresa sursei D9188

Datele utilizatorului

Fig. 1-28. Formatul unui pachet la SMDS.

INTRODUCERE

CAP.l

Serviciul de baz al SMDS este un simplu serviciu de furnizare.de. pachete fr conexiuni. Formatul pachetului este prezentat n Fig. 1-28. Pachetul are trei cmpuri: destinaia (unde trebuie s ajung pachetul), sursa (cine 1-a expediat) i o ncrctur util de lungime variabil, pn la 9188 octei, pentru datele utilizatorului. Maina de pe LAN-ul emitor conectat la linia de acces pune pachetul pe linia respectiv, iar SMDS-ul ncearc s fl transporte la destinaia corect, cu un efort optim. Nu exist, ns, nici o garanie n acest sens. Adresele sursei i destinaiei constau dintr-un cod pe 4 bii, urmat de un numr de telefon de pn la 15 cifre zecimale. Fiecare cifr este codificat pe 4 bii, ntr-un cmp separat. Numerele de telefon conin codul rii, codul regiunii, i numrul abonatului, astfel c serviciul poate fi oferit n final la scar internaional. Prin folosirea numerelor de telefon zecimale ca adrese de reele, s-a crezut c noul serviciu va prea familiar utilizatorilor nervoi. Pentru a preveni fraudele, atunci cnd un pachet sosete la reeaua SMDS, primul ruter verific dac adresa sursei corespunde cu linia de primire. Dac adresa este incorect, pachetul este pur i simplu abandonat. Dac este corect, pachetul este trimis la destinaie. O caracteristic util a SMDS-ului este difuzarea. Clientul poate specifica o list de numere de telefon pentru SMDS i i se poate atribui un numr special pentru ntreaga list. Orice pachet trimis la acel numr este furnizat tuturor membrilor de pe lista respectiv. Asociaia Naional a Dealerilor de Aciuni folosete aceast caracteristic a serviciului SMDS oferit de MCI pentru a difuza noile preuri ale aciunilor ctre toi cei 5000 de membri ai si. O facilitate suplimentar pentru beneficiari este ecranarea adreselor, att pentru pachetele primite, ct i pentru cele expediate. n cazul ecranrii la emisie, clientul poate s furnizeze o list cu numere de telefon i s specifice c nici un pachet nu poate fi trimis la vreo alt adres. Utiliznd ecranarea la recepie, vor fi acceptate numai pachete de la anumite numere de telefon prestabilite. Cnd se folosesc ambele ecranri, utilizatorul poate s-i construiasc efectiv o reea privat fr conexiuni SMDS spre lumea exterioar. Pentru firmele care lucreaz cu date confideniale aceast posibilitate este extrem de preioas. Datele efective din pachet pot conine orice secven de octei dorit de utilizator, pn la maximum 9188 octei. Datele pot conine un pachet Ethernet, un pachet IBM token ring, un pachet IP sau orice altceva. Indiferent de coninut, datele sunt transportate de la LAN-ul surs la LAN-ul destinaie ,fr modificri. SMDS trateaz traficul n rafale dup cum urmeaz. Ruterul conectat la fiecare linie de acces conine un numrtor care este incrementat ntr-un ritm constant, s spunem, o dat la 10 jusec. Dac, de exemplu, linia a fost inactiv 10 msec, numrtorul va indica 1000 i utilizatorului i se va permite s trimit o rafal de 1 kilobyte la viteza maxim de 45 Mbps; transmisia va dura, deci, aproximativ 180 yitsec. n cazul unei linii nchiriate de 100.000 bytes/sec, transmiterea aceluiai kilobyte ar dura 10 msec. Din acest motiv, atta timp ct rata medie de transmisie rmne sub valoarea convenit, SMDS ofer ntrzieri scurte n cazul rafalelor de date independente transmise la intervale mari. Acest mecanism asigur un rspuns rapid atunci cnd este necesar, dar mpiedic utilizatorii s foloseasc mai mult lime de band dect cea pentru care au pltit. 1.6.2 Reele X25

Multe reele publice mai vechi, mai ales n afara Statelor Unite, respect un standard numit X.25. Acesta a fost dezvoltat n anii 1970 de ctre CQTT pentru a asigura o interfa ntre reelele publice cu comutare de pachete i clienii acestor reele.

SEC 16

EXEMPLE DE SERVICII PENTRU COfefUNCA'pi DE DATE

55

g nivelului fizic, numit X21, specific interfaa fizic, electric i procedural ntre gazd si reea. Foarte puine reele publice asigur suport peiitru acest standard, deoarece el necesit semnale digitale, nu analogice, pe liniile telefonice. Ca o msur interimar a fost definit o interfa analogic similar familiarului standard RS-232. Standardul nivelului legtur de date are cteva variante (uor incompatibile). Toate variantele sunt proiectate pentru a trata erorile de transmisie de pe liniile telefonice dintre echipamentul (gazda sau terminalul) utilizatorului i reeaua public (rutenii). Protocolul nivelului reea se ocup de adresare, de controlul fluxului, de confirmarea primirii, de ntreruperi i de alte probleme asemntoare. n principal, el permite utilizatorului sjabileasc circuite virtuale i s transmit apoi pe ele pachete de pn la 128 octei. Aceste pachete sunt livrate Inlguran i n ordine. Majoritatea reelelor X.25 lucreaz Ia viteze de pn la 64 Kbps, ceea ce le face nepotrivite pentru multe sarcini. Cu toate acestea, ele sunt nc rspndite i, de aceea, cititorul trebuie s tie de existena lor. X.25 este orientat pe ccmexjuni^ Un circuit vkSarOTmMtat este creat atunci cnd un calculator trimite reelei un pachet n care i cere s apeleze un calculator aflat la distan. Odat stabilit conexiunea, pachetele pot fi transmise prin conexiunea respectiv, urmnd s soseasc totdeauna n ordinea corect. Pentru a se asigura c un emitor rapid nu poate s nece un receptor lent sau ocupat, X.25 asigur controlul fluxului. Un circuit virtual permanent este folosit la fel ca unul comutat, cu deosebarea c este instalat n avans, prin nelegere ntre client i compania telefonic. El este prezent ntotdeauna, nefiind nevoie s fie configurat pentru a-1 folosi. Circuitul virtual permanent este analog cu o linie nchiriat. Deoarece lumea este plin, nc, de terminale care nu cunosc X.25, a fost definit un alt set de standarde, care descriu cum comunic un terminal obinuit (neinteligent) cu o reea public X.25. Practic, utilizatorul sau operatorul reelei instaleaz o cutie neagr" la care se pot conecta aceste terminale. Cutia neagr se numete PAD (Packet Assembter Disassembier - asamblor/dezasamblor de pachete) i funcia ei este descris ntr-un document cunoscut ca XJ. ntre terminal i PAD a fost definit un protocol standard, numit X.2R; ntre PAD i reea exist un alt protocol standard, numit X.29. Toate aceste trei recomandri, mpreun, sunt deseori numite triplu X. 1.63 Retransmiterea cadrelor Retransmiterea cadrelor este un serviciu pentru persoanele care doresc o modalitate orientat pe conexiune absolut minimal pentru a transfera bitde la. A la B cu viteze rezorble i aTcosturi reduse (Smith, 1993). Existena sa se datoreaz schimbrilor care au avut loc n tehnologie n ultimele dou decenii. Acum douzeci de ani, comunicarea prin linii telefonice era lent, analogic i nesigur, iar calculatoarele erau lente i scumpe. Ca urmare, pentru mascarea erorilor, era nevoie de protocoale complexe, iar calculatoarele utilizatorilor erau prea costisitoare pentru a fi puse s fac acest lucru. Situaia s-a schimbat radical. Liniile telefonice nchiriate sunt rapide, digitale i sigure, iar calculatoarele sunt rapide i ieftine. Faptul sugereaz utilizarea unor protocoale simple, cea mai mare parte din munc fiind fcut mai curnd de calculatoarele utilizatorilor dect de reea. Acesta este contextul n care funcioneaz retransmiterea cadrelor. cadrelor^oate^,cel_mai bine gndit ca o-linie mchkiat virtual. CJentul ^ ntre dou puncte, dup care poate trimite ntre acestea

56

INTRODUCERE

CAP. 1

cadre (adic pachete) de pn la 1600 octei. Este, de asemenea, posibil nchirierea de circuite virtuale permanente ntre un sit dat i multe alte situri, astfel c fiecare cadru poart un numr de 10 bii care spune ce circuit virtual s foloseasc. Diferena ntre o linie nchiriat efectiv i o linie nchiriat virtual este c, folosind o linie efectiv, utilizatorul poate transmite toat ziua trafic la viteza maxim. n cazul unei linii virtuale, rafalele de date pot fi trimise cu vitez maxim, dar utilizarea medie pe termen lung trebuie s se menin sub un anumit nivel prestabilit. n schimb, firma de transmisie cere mult mai puini bani pentru o linie virtual dect pentru una fizic. Suplimentar faa de competiia cu liniile nchiriate, retransmiterea cadrelor reprezint un concurent i pentru circuitele virtuale permanente X.25. Retransmiterea cadrelor opereaz ns la viteze mai ridicate, de obicei 1.5 Mbps, i prevede mai puine faciliti. Retransmiterea cadrelor asigur un serviciu minimal, n primul rnd o modalitate de a determina nceputul i sfritul fiecrui cadru, i detectarea erorilor de transmisie. Dac se primete un cadru deteriorat, atunci retransmiterea cadrelor l elimin pur i simplu. Este responsabilitatea utilizatorului s descopere c lipsete un cadru i s ntreprind aciunile necesare pentru a-1 recupera. Spre deosebire de X.25, retransmiterea cadrelor nu prevede confirmri sau controlul fluxului normal. Totui, conine n antet un bit pe care un capt al conexiunii poate s l seteze pentru a indica celuilalt capt existena unei probleme. Folosirea acestui bit este la latitudinea utilizatorilor. 1.6.4 ISDN de band larg i ATM Chiar dac serviciile prezentate anterior devin populare, companiile telefonice sunt confruntate n continuare cu o problem mult mai important: reelele multiple. POTS (Plain Old System Service) i Telexul folosesc vechile reele cu comutare de circuite. Fiecare serviciu de date nou, aa cum sunt SMDS sau retransmiterea cadrelor, folosete propria sa reea cu comutare de pachete. DQDB difer de acestea , iar reeaua de administrare a apelurilor telefonice interne (SSN 7) este o alt reea. Administrarea tuturor acestor reele separate este o btaie de cap major; n plus, exist o alt reea, televiziunea prin cablu, pe care companiile telefonice nu o controleaz, dar ar dori s o fac. Soluia preconizat este inventarea unei singure noi reele a viitorului, care va nlocui ntregul sistem telefonic i toate reelele specializate printr-o singur reea integrat pentru toate tipurile de transfer de informaii. Noua reea va avea o vitez de transmisie uria n comparaie cu toate reelele i serviciile existente i va face posibil oferirea unei mari varieti de servicii noi. Acesta nu reprezint un proiect mic i, desigur, nu va fi realizat peste noapte, dar lucrul a nceput deja. Noul serviciu larg rspndit geografic se numete B-ISDN (Broadband Integrated Services Digital Network - reea digital cu servicii integrate de band larg). El va oferi video la cerere, televiziune n direct din numeroase surse, pot electronic multimedia, muzic la calitatea CDurilor, interconectare de LAN-uri, transport de date de mare vitez pentru tiin i industrie i multe alte servicii care nici mcar nu au fost gndite nc - toate acestea prin linii telefonice. Tehnologia care face posibil B-ISDN-ul se numete ATM (Asynchronous Transfer Mode - mod de transfer asincron), deoarece funcionarea nu este sincron (legat de un ceas mater), aa cum este n cazul majoritii liniilor telefonice pe distane lungi. Trebuie remarcat c acronimul ATM de

SEC 1.6

EXEMPLE DE SERVICII PENTRU COMUNICAII DE DATE

57

aici nu are nimic n comun cu acele Automated TeDer Machines3 pe care le pun la dispoziie numeroase bnci (dei o main ATM poate utiliza o reea ATM pentru a conversa cu banca sa). Dei mai este un drum lung n fa, s-a lucrat deja destul de mult la ATM i la sistemul BISDN care l folosete. Pentru mai mult informaie asupra acestui subiect, a se vedea (Fischer .a., 1994; Gasman, 1994; Goralski, 1995; Kim .a., 1994; Kyas, 1995; McDysan i Spohn, 1995; i Stallings, 1995).
Octei 5 Antet 48 Datele utilizatorului

Fig. 1-29. O celul ATM. Ideea fundamental din spatele ATM-ului este s se transmit toate informaiile n pachete mici, de lungime fix, numite celule. Dup cum se vede din Fig. 1-29, celulele au o lungime de 53 octei, din care 5 octei reprezint antetul i 48 octei reprezint datele efective. ATM este nj}eiaj>ijini|) 6 * ! ? , 0 ^ ^ ( a s c u n s ? de utilizatori) i un potenial serviciu (vizibil pentru utilizatori). Uneori, serviciul este numit retransmiterea celulelor, prin analogie cu retransmiterea cadrelor. C-^l vleVyj Utilizarea unei tehnologii cu comutare de celule reprezint o uria ruptur cu tradiia - veche de 100 de ani - a comutrii de circuite (stabilirea unui drum prin cupru) din sistemul telefonic. Exist diverse motive pentru care a fost aleas comutarea de celule; iat cteva dintre acestea. n primul rnd, comutarea de celule este__ foarte flexibil si poate trata uor att trafic cu vitez constant (audio, video) ct i trafic cu vitez variabil (date). |n_ajjfoileajrnd, la vitezele foarte mari care sunt preconizate (pn la ordinul gigabiilor/sec), conii^rea_jdigjtal de^celule este mai simri^dect utilizarea tehnicilor de jmjuitiplexaxs, tradiionale, n special dac se folosesc fibre optice. ji^Treileaxnd, pentru distribuia de televiziune, difuzarea este esenial; comutarea de celulepQate_ asigure difuzarea, n timp ce comutarea de circuite nu poate. l^^^SL^M.SliSSLQJ^^,^9QU^^- Realizarea unui apel presupune mai nti trimiterea unui mesaj pentru stabilirea conexiunii. Dup aceasta, toate celulele urmtoare circul spre destinaie pe acelai traseu. Furnizarea celulelor nu este garantat, ns ordinea lor este. Dac celulele 1 i 2 sunt trimise n aceast ordine, atunci - n cazul n care ajung amndou - ele vor ajunge n ordinea aceasta, niciodat mai nti 2 i apoi 1. Reelele ATM sunt organizate ca WAN-urile tradiionale, cu linii ijjomutatoare (rutere). Vitezele preconizate pentru reelele ATM sunt 155 Mbps i 622 Mbps, cu posibilitatea ulterioar de viteze gigabit. S-a optat pentru viteza de 155 Mbps, deoarece cam aceasta este viteza necesar pentru transmiterea televiziunii de nalt definiie. S-a ales exact viteza de 155.52 Mbps pentru compatibilitate cu sistemul de transmisie SONET de la AT&T. Viteza de 622 Mbps a fost aleas ca s poat fi transmise astfel patru canale de 155 Mbps. Acum ar trebui s fie clar de ce unele prototipuri gigabit operau la 622 Mps: ele utilizau ATM.

Automate pentru crile de credit electronice (n.t.)

58

INTRODUCERE

Atunci cnd a fost propus ATM-ul, toat discuia (adic publicitatea) se nvrtea, practic, n jurul posibilitii de a oferi video la cerere n fiecare cas i de a nlocui sistemul telefonic, aa cum sa descris anterior. ntre timp, au devenit importante i alte aspecte. Multe organizaii nu prea mai au lime de band suficient n LAN-urile din campusurile sau cldirile lor, fiind astfel forate s se orienteze spre un anumit tip de sistem cu comutare care s ofere mai mult lime de band dect are un singur LAN. De asemenea, n sistemele client-server, este necesar ca unele aplicaii s poat conversa cu anumite servere la viteze ridicate. Pentru amndou problemele ATM-ul este, cu siguran, un candidat foarte important. Cu toate acestea, ntre obiectivul de a nlocui ntregul sistem telefonic analogic de vitez sczut printr-un sistem digital de mare vitez i scopul de a ncerca legarea tuturor Ethernet-urilor din campus este o diferen oarecum dezamgitoare. Interconectarea LAN-urilor folosind ATM este discutat n (Kavak, 1995; Newman, 1994; i Gtruong .a., 1995). Merit de asemenea subliniat c organizaii diferite implicate n ATM au interese (financiare) diferite. Companiile de telefonie la mare distan i PTT-urile sunt cele mai interesate n folosirea ATM-ului pentru a nlocui sistemul telefonic i a concura cu firmele de televiziune prin cablu pe piaa distribuiei electronice de imagini video. Vnztorii de calculatoare vd LAN-urile ATM din campusuri ca marea surs de ctiguri (pentru ei). Toate aceste interese concurente nu fac ca procesul de standardizare aflat n curs s fie nici mai simplu, nici mai rapid i nici mai coerent. Totodat, politicile i puterea care se manifest n cadrul organizaiei pentru standardizarea ATMului (Forumul ATM) au o influen considerabil asupra a ceea ce va fi n final ATM-ul. Modelul de referin B-ISDN ATM S ne ntoarcem acum napoi la tehnologia ATM-ului, aa cum va fi el utilizat n special n (viitorul) sistem telefonic. ISDN-ul de band larg folosind ATM are propriul su model de referin, diferit de modelul OSI i diferit de asemenea de modelul TCP/IP. Acest model este ilustrat n Fig. 1-30. El const din trei niveluri - nivelul fizic, nivelul ATM i nivelul de adaptare ATM - plus orice mai vrea utilizatorul s pun deasupra lor. Nivelul fizic se ocup de mediul fizic: voltaj, planificare la nivel de bii i diverse alte aspecte. ATM nu prescrie un set particular de reguli, dar spune n schimb c celulele ATM pot fi trimise direct prin cablu sau fibre optice sau pot fi, ia fel de bine, mpachetate n interiorul datelor din alte sisteme de transmisie. Cu alte cuvinte, ATM-ul a fost proiectat pentru a fi independent de mediul de transmisie. , Nivelul ATM se ocup de celule i de transportul celulelor. Nivelul definete structura unei celule i spune ce reprezint cmpurile celulelor. Tot el se ocup i de stabilirea i eliberarea circuitelor virtuale. Controlul congestiei se realizeaz tot aici. Deoarece cele mai multe aplicaii nu vor s lucreze direct cu celule (dei unele vor), deasupra nivelului ATM a fost definit un nivel care permite utilizatorilor s trimit pachete mai mari dect o celul. Interfaa ATM segmenteaz aceste pachete, transmite celulele individual i le reasambleaz la cellalt capt. Acest nivel este AAL (ATM Adaption Layer - nivelul de adaptare ATM). Spre deosebire de cele dou modele de referin anterioare, care erau bidimensionale, modelul ATM este definit ca fiind tridimensional, dup cum se arat n Fig. 1-30. Planul utilizator se ocup, printre altele, cu transportul datelor, controlul fluxului, corectarea erorilor. Prin contrast, sarcina planului de control este s trateze conexiunile. Funciile de

SEC. 1.6

EXEMPLE DE SERVICE PENTRU COMUNICAII DE DATE

59

administrare ale nivelurilor i planurilor se refer la gestionarea resurselor i coordonarea ntre niveluri.

Administrarea planurilor Administrarea nivelurilor Planul de control Planul utilizator CS: Convergence sublayer (subnivelul de convergen) SAR: Segmentation and reassernbly sublayer (subnivelul de segmentare i reasamblare) TC: Transmission convergence sublayer (subnivelul de convergen a transmisiei) PMD: Physical medium dependent sublayer (subnivelul dependent de mediul fizic)

Nivelurile superioare Nivelurile superioare CS....~ Nivelul de adaptare ATM SAR Nivelul ATM

Fig. 1-30. Modelul de referin B-ISDN ATM. Fiecare din nivelurile fizic i AAL sunt mprite n dou subniveluri: un subnivel care face munca efectiv, la baz, i un subnivel de convergen, deasupra, care pune la dispoziia nivelului situat peste el interfaa adecvat. Funciile nivelurilor i subnivelurilor sunt prezentate n Fig. 1-31.
Nivel OSI Nivel ATM Subnivel ATM

Rolul Asigurarea interfeei standard (convergenei) Segmentarea i reasamblarea Controlul fluxului! Generarea/extragerea antetelor din celule Administrarea circuitelor/drumurilor virtuale Muitiplexarea/demultiplexarea celulelor Decuplarea ratei celulelor Generarea i verificarea sumelor de control din antete Generarea celulelor mpachetarea/despachetarea celulelor din anvelop Generarea cadrelor

CS

3/4

AAL

SAR

2/3

ATM

TC

PMD

Temporizarea biilor Accesul fizic la reea

Fig. 1-31. Nivelurile i subnivelurile ATM, i funciile acestora.

60

INTRODUCERE

CARI

Medium Dependent - dependent de rediul fizic) asigur interfaa cu cablul propriu-zis. Acest subnivel transfer biii i se ocup de planificarea transmisiei la nivel de bii. n cazul unor companii telefonice i a unor cabluri diferite, subnivelul va fi i el diferit. Cellalt subnivel al nivelului fizic este subnivelul TC (Transmission Convergence - convergena transmisiei). Cnd sunt transmise celulele, nivelul TC le expediaz sub forma unui ir de bii spre nivelul PMD. Acest lucru este uor de fcut. La cellalt capt, subnivelul TC primete de la subnivelul PMD un flux de bii. Sarcina sa este s converteasc acest flux de bii ntr-un flux de celule pentru nivelul ATM. Subnivelul TC se ocup de tot ce este necesar pentru a putea spune unde ncep i unde se termin celulele din fluxul de bii. n modelul ATM aceast funcionalitate este nglobat n nivelul fizic. n modelul OSI i n majoritatea celorlalte reele, ncadrarea, adic transformarea unui flux oarecare de bii ntr-o secven de cadre sau de celule, este sarcina nivelului legtur de date. De aceea, n aceast carte vom discuta funcia respectiv mpreun cu nivelul legtur de date, nu cu nivelul fizic. Aa cum am menionat mai devreme, nivelul ATM gestioneaz celulele, inclusiv generarea i transportul lor. Mare parte din aspectele interesante ale ATM-ului apar aici. Nivelul ATM este un amestec ntre nivelurile legtur de date i reea de la OSI, dar nu este mprit n subniveluri. Nivelul AAL este mprit ntr-un subnivel SAR (Segmentation And Reassembly - segmentare i reasamblare) i un subnivel CS (Convergence Sublayer - subnivel de convergen). Subnivelul inferior descompune pachetele n celule - la captul la care are loc transmisia - i le recompune la destinaie. Subnivelul superior face posibile sistemele ATM care ofer diverse tipuri de servicii pentru diverse aplicaii (de exemplu, transferul de fiiere i sistemul video la cerere au cerine diferite privitoare la gestionarea erorilor, planificare etc). Perspectivele ATM-ului ntr-o msur considerabil ATM este un proiect inventat de industria de telefonie din cauz c, dup instalarea pe scar larg a Ethemet-ului, industria de calculatoare nu s-a mai putut ralia n jurul unei tehnologii de reea xu vitez mai ridicat care s devin standard. Companiile telefonice au umplut acest gol cu ATM; cu toate acestea, n octombrie 1991 multe firme de tehnic de calcul s-au alturat companiilor telefonice pentru a crea Forumul ATM, un grup industrial care va ghida viitorul ATM-ului. Dei ATM promite posibilitatea de a putea furniza informaii, oriunde, la viteze care vor depi curnd 1 Gbps, ndeplinirea acestei promisiuni nu va fi uoar. ATM se bazeaz pe comutarea de pachete la mare vitez, o tehnologie cu care companiile telefonice nu au mult experien. Ceea ce posed, ntr-adevr, companiile telefonice sunt investiii masive ntr-o tehnologie diferit (comutare de circuite), care a rmas neschimbat n concept din vremea lui Alexander Graham Bell. Inutil s mai spunem, tranziia nu se va produce rapid, cu att mai mult cu ct presupune mai curnd o schimbare prin revoluie dect una prin evoluie - iar revoluiile nu se produc niciodat fr convulsii. Trebuie luate, de asemenea, n considerare aspectele economice ale instalrii ATM-ului pe scar mondial. O parte substanial din actualul sistem telefonic va trebui s fie nlocuit. Cine va plti pentru acest lucru ? Ct de mult vor dori consumatorii s plteasc pentru a vedea un film transmis electronic prin video la cerere, din moment ce pot cu civa dolari s l cumpere de la magazinul local de casete video? n sfrit, ntrebarea referitoare la

SEC. 1.7

STANDARDIZAREA REELELOR

61

echipamentele pe eare M vor implementa serviciile evoluate este crucial. Dac serviciile vor fi asigurate de reea, atunci vor profita de pe urma lor companiile telefonice. Dac serviciile vor fi asigurate de calculatoare ataate la reea, atunci profitul va reveni productorilor i operatorilor acestor echipamente. Utilizatorii pot s nu fie interesai de acest aspect, dar companiile telefonice i vnztorii de tehnic de calcul sunt ct se poate de interesai, iar acest lucru va afecta, cu siguran, i interesul lor n realizarea ATM-ului.
1.6.5 Comparaii ntre servicii

Cititorul se poate ntreba de ce exist att de multe servicii care sunt incompatibile sau se suprapun: DQDB, SMDS, X.25, retransmiterea cadrelor, ATM i altele. Motivul trebuie cutat n decizia din 1984 de a diviza AT&T-ul i de a mri competiia din industria de telecomunicaii. Diferite firme cu diferite interese i tehnologii sunt acum libere s ofere orice servicii pentru care ele cred c exist cerere - i multe din ele fac acest lucru din plin.
Caracteristic Orientat pe conexiune Viteza normal (Mbps) Cu comutare ncrcarea util de dimensiune fix ncrcarea util maxim Circuite virtuale permanente Transmisie multidestinaie DQDB Da 45 Nu Da 44 Nu Nu SMDS Nu 45 Da X.25 Da 0.064 Da Retransmiterea cadrelor Da 1.5 Nu ATM/AAL Da 155,^ 6 ^ Da ' Nu Variabil Da Da

Nu
9188

Nu
128

Nu
1600 Da Nu

Nu
Da

Da
Nu

Fig. 1-32. Diferite servicii de reea. S recapitulm acum o parte din serviciile de care ne-am ocupat n acest capitol. DQDB este o tehnologie MAN necomutat care permite transmiterea prin cablu, n perimetrul unui ora, a unor celule de 53 octei (din care 44 reprezint informaia util). SMDS este o tehnologie comutat pentru transmiterea datagramelor, oriunde pe o reea, la o vitez de 45 Mbps. X.25 este o tehnologie de reea orientat pe conexiuni, mai veche, care permite transmiterea unor pachete mici, de lungime variabil, la 64 kbps. Retransmiterea cadrelor este un serviciu care asigur linii nchiriate virtuale la viteze de aproximativ 1.5 Mbps. In sfrit, ATM este proiectat pentru a nlocui ntregul sistem telefonic cu comutare de circuite printr-un sistem cu comutare de celule i pentru a putea transmite att date ct i imagini de televiziune. n Fig. 1-32. sunt rezumate cteva diferene ntre aceste servicii aflate n competiie.

1.7
A,

STANDARDIZAREA REELELOR

In prezent exist numeroi productori i furnizori, fiecare cu propriile idei despre cum ar trebui realizate reelele. In lipsa coordonrii, ar fi un haos complet i utilizatorii nu ar putea face nimic. Singura soluie este s se convin asupra unor standarde de reea. Standardele nu numai c permit diverselor calculatoare s comunice ntre ele, ci sporesc totodat piaa pentru produsele care ader la un anumit standard, cu urmtoarele consecine:

62

IISrmODUCERE

CAP. 1

producie de mas, profituri financiare, implementri VLSI i alte beneficii care duc la scderea preurilor i la acceptarea i mai larg a respectivelor produse. n seciunile urmtoare vom arunca o privire asupra importantei, dar puin cunoscutei, lumi a standardizrii internaionale. Standardele fac parte din dou categorii: de facto i de jure. Standardele de facto (expresia latin pentru de fapt") sunt acelea care pur i simplu au luat fiin, fr s existe vreun plan oficial. Deoarece zeci de productori au ded s copieze aproape identic mainile IBM, PC-ul IBM i succesorii si reprezint standarde de facto pentru calculatoarele de birou mici. n seciile de informatic ale facultilor, UNIX este standardul de facto pentru sisteme de operare. Standardele de jure (expresia latin pentru de drept") sunt, prin contrast, standarde legale, adoptate de un anumit organism de standardizare autorizat. Autoritile de standardizare internaionale sunt, n general, mprite n dou clase: organizaii stabilite prin tratate ntre guvernele naionale i organizaii voluntare neguvernamentale. n domeniul standardelor pentru reele de calculatoare exist cteva organizaii din fiecare categorie. n continuare vom discuta despre aceste organizaii. 1.7.1 Who's Who n lumea telecomunicaiilor Statutul legal al companiilor telefonice de pe glob variaz considerabil de la ar la ar. La una din extreme se situeaz Statele Unite, care au 1500 de firme de telefonie private. nainte s fie divizat, n 1984, AT&T, cea mai mare corporaie din lume la vremea aceea, domina scena complet. AT&T furniza servicii telefonice pentru aproximativ 80 la sut din telefoanele Americii, rspndite pe jumtate din ntinderea sa, n timp ce toate celelalte firme asigurau servicii pentru restul clienilor (rurali, n majoritatea lor). De la divizarea sa, AT&T continu s furnizeze servicii de lung distan, dar acum o face n concuren cu alte firme. Cele apte Companii Regionale Bell n care a fost mprit AT&T-ul, precum i alte 1500 de firme independente, ofer servicii de telefonie local i celular. O parte din aceti independeni, de exemplu GTE, sunt companii foarte mari. Firmele americane furnizoare de servicii de comunicaii pentru public sunt numite companii telefonice publice. Ofertele i preurile lor sunt descrise printr-un document numit tarif. Acesta trebuie s fie aprobat de Comisia Federal de Comunicaii, care se ocup de traficul dintre statele SUA i de traficul internaional, i de ctre comisiile publice de stat pentru traficul n interiorul su. La cealalt extrem se afl rile n care guvernul are un monopol complet asupra tuturor mijloacelor de comunicaie: pota, telegraful, telefonul i, de multe ori, chiar radioul i televiziunea. Cea mai mare parte a lumii se ncadreaz n aceast categorie. n unele cazuri, autoritatea de telecomunicaii este o companie naionalizat, n altele, este o simpl filial a guvernului, cunoscut de obicei sub numele de PTT (Post, Telegraf & Telephone administration). Tendina actual n lumea ntreag este ctre liberalizare i competiie i mpotriva monopolului guvernamental. Din cauza tuturor acestor diveri furnizori de servicii este nevoie de o compatibilitate la scar mondial. Compatibilitatea asigur faptul c oamenii (i calculatoarele) dintr-o ar pot s-i apeleze partenerii din alt ar. La drept vorbind, aceast necesitate exist de mult timp. n 1865, reprezentani ai multor guverne din Europa s-au ntlnit pentru a forma predecesorul actualului ITU (International Telecommunication Union - Uniunea Internaional de Telecomunicaii). Sarcina Uniunii era standardizarea telecomunicaiilor internaionale, care la vremea aceea nsemnau telegrafia. Chiar de atunci, era clar c dac jumtate din ri foloseau codul Morse i cealalt jumtate foloseau un cod diferit, atunci vor apare probleme. Cnd au aprut serviciile de telefonie

SEC 1.7-'

STANDARDIZAREA REELELOR

63

internaional, ITU a preluat de asemenea i sarcina standardizrii telefoniei. n 1947 ITU a devenit o agenie a Naiunilor Unite. ITU are trei sectoare principale: 1. Sectorul de Radiocomunicaii (ITU-R). 2. Sectorul de Standardizare a Telecomunicaiilor (ITU-T). 3. Sectorul de dezvoltare (ITU-D). ITU-R se ocup de alocarea frecvenelor internaionale de radio ctre grupurile concurente interesate. Ne vom referi mai nti la ITU-T, care se ocup de sistemele de telefonie i de comunicare de date. Din 1956 pn n 1993, ITU-T a fost cunoscut ca CCITT, un acronim pentru numele su francez: Comite Consultatif International Telegraphique et Telefonique. La 1 martie 1993, CCITT a fost reorganizat n scopul de a deveni mai puin birocratic i a fost redenumit pentru a reflecta noul su rol. Att ITU-T ct i CCITT au dat recomandri n domeniul telefoniei i comunicaiilor de date. Dei, ncepnd cu 1993, recomandrile poart eticheta ITU-T, recomandrile CCITT, de genul CCITT X.25, mai sunt ntlnite nc frecvent. ITU-T are cinci clase de membri: 1. 2. 3. 4. 5. Administraii (PTT-uri naionale). Operatori privai recunoscui (de exemplu, AT&T, MCI, British Telecom). Organizaii de telecomunicaii regionale (de exemplu, organizaia european ETSI). Comerciani din domeniul telecomunicaiilor i organizaii tiinifice. Alte organizaii interesate (de exemplu, reele bancare i aviatice).

ITU-T are aproximativ 200 de administraii, 100 de operatori privai i cteva sute de ali membri. La lucrrile ITU-T pot vota numai administraiile, dar pot participa toi membrii. Deoarece Statele Unite nu posed un PTT, locul su trebuia s fie reprezentat la ITU-T de altcineva. Aceast sarcin a revenit Departamentului de Stat, probabil, pe baza faptului c ITU-T avea de-a face cu ri strine, specialitatea Departamentului de Stat. Sarcina pe care o are ITU-T este de a face recomandri tehnice asupra interfeelor din telefonie, telegrafie i comunicaii de date. Acestea devin deseori standarde recunoscute internaional; de exemplu, V.24 (cunoscut n Statele Unite i ca EIA RS-232), care specific amplasarea i semnificaia pinilor de pe conectorul folosit de majoritatea terminalelor asincrone. Nu trebuie uitat c recomandrile date de ITU-T sunt numai sugestii tehnice, pe care guvernele le pot adopta sau ignora, dup cum doresc. n practic, o ar care dorete s adopte un standard de telefonie diferit de cel utilizat n restul lumii este liber s o fac, dar o face cu preul izolrii de toate celelalte ri. Lucrul acesta poate s mearg n cazul Albaniei, dar n alt parte ar fi o adevrat problem. Fantezia de a numi standardele ITU-T recomandri" a fost i este necesar pentru a calma forele naionaliste din multe ri. Adevrata munc de la ITU-T se desfoar n Grupe de Studiu, care uneori cuprind chiar i 400 de persoane. Pentru ca pn la urm munca s aib un rezultat, Grupele de Studiu se mpart n Echipe de Lucru, care se mpart la rndul lor n Echipe de Experi, care, la rndul lor, se mpart n grupuri ad-hoc. Birocraie a fost, birocraie rmne. In pofida tuturor acestor lucruri, ITU-T reuete efectiv s fac efectiv ce are de fcut. Rezultatul l reprezint aproximativ 5000 de pagini de recomandri pe an. Costurile pentru ITU-T sunt acoperite de membri. Statele mari, bogate, trebuie s plteasc pn la 30 de

64

INTRODUCERE

CAP. 1

uniti de contribuie pe an; cele mici, srace, pot s-o scoat la capt cu 1/16 dintr-o unitate de contribuie (o unitate de contribuie este cam 250.000 dolari). Ca o mrturie a valorii pe care o are ITU-T st faptul c aproape toat lumea i pltete contribuia, chiar dac aceste contribuii sunt complet voluntare. Pe msur ce telecomunicaiile desvresc tranziia - nceput n anii 1980 - de la un caracter strict naional la un caracter complet global, standardele vor deveni din ce n ce mai importante i tot mai multe organizaii vor dori s devin implicate n producerea acestora. Pentru mai multe informaii privind ITU, a se vedea (Irmer, 1994). 1.7.2 Who's Who n lumea standardelor internaionale Standardele internaionale sunt produse de ISO (International Standards Organization Organizaia Internaional de Standardizare), o organizaie voluntar, neguvernamental fondat n 1946. Membrii si sunt organizaiile naionale de standardizare din cele 89 de ri membre. Aceti membri cuprind ANSI (S.U.A.), BSI (Marea Britanie), AFNOR (Frana), DIN (Germania) i nc 85 de alte organizaii. ISO produce standarde referitoare la un numr vast de subiecte, ncepnd cu piulie i uruburi i terminnd cu vopsirea stlpilor de telefon. n total au fost create peste 5000 de standarde, inclusiv standardele OSI. ISO are aproape 200 de Comitete Tehnice (Technical Committees - TC), numerotate n ordinea crerii lor, fiecare comitet ocupndu-se de un subiect specific. TC1 se ocup de piulie i uruburi (standardizarea nclinrii filetelor). TC97 se ocup de calculatoare i prelucrarea informaiei. Fiecare TC are subcomitete (SC-uri) mprite n grupe de lucru (Work Groups - WG). Munca propriu-zis se desfoar n principal n WG-uri, prin intermediul a peste 100.000 de voluntari din ntreaga lume. Muli dintre aceti voluntari" sunt pui s lucreze la probleme ale ISO de ctre patronii lor, ale cror produse sunt standardizate. Alii sunt oficiali guvernamentali dornici s vad c modalitatea de a face lucrurile n ara lor devine standardul internaional. n multe WGuri sunt activi, de asemenea, experi academici. n ceea ce privete standardele din telecomunicaii, ISO i ITU-T coopereaz frecvent, (ISO este un membru al ITU-T) n ideea de a evita ironia a dou standarde internaionale oficiale i mutual incompatibile. Reprezentantul S.U.A. n ISO este ANSI (American National Standards Institute - Institutul Naional American de Standarde), care, n pofida numelui su, este o organizaie privat neguvernamental i nonprofit. Membrii si sunt productori, companii telefonice publice i alte pri interesate. Standardele ANSI sunt frecvent adoptate de ISO ca standarde internaionale. Procedura utilizat de ISO pentru adoptarea standardelor este conceput astfel nct s se obin un consens ct mai larg posibil. Procesul ncepe cnd una din organizaiile naionale de standardizare simte nevoia unui standard internaional ntr-un anumit domeniu. n acel moment, se formeaz un grup de lucru care vine cu un CD (Committee Draft - proiect de comitet). CD-ul circul apoi pe la toate organizaiile membre, care au la dispoziie 6 luni pentru a-1 supune criticilor. Dac se primete aprobarea din partea unei majoriti substaniale, atunci se produce un document revizuit, numit DIS (Draft International Standard - proiect de standard internaional), care va
4

Adevratul nume pentru ISO este International Organization for Standardization (n.a.)

SEP 1-7

STANDARDIZAREA REELELOR

65

circula n scopul de a fi comentat i votat. Pe baza rezultatelor din aceast rund, se pregtete, se aprob i se public textul final al respectivului I (International Standard - standard internaional). n domeniile foarte controversate, un CD sau un DIS pot s treac prin cteva versiuni nainte de a obine suficiente voturi i ntregul proces poate dura ani de zile. NIST (National Institute of Standards and Technology - Institutul Naional de Standarde i Tehnologie) este o agenie a Departamentului pentru Comer al Statelor Unite. NIST a fost cunoscut anterior sub numele de Biroul Naional de Standarde. El produce standarde care sunt obligatorii pentru achiziiile fcute de guvernul U.S.A., mai puin pentru cele care privesc Departamentul de Aprare, acesta avnd propriile sale standarde. Un alt actor important din lumea standardelor este IEEE (Institute of Electrical and Electronics Engineers - Institutul Inginerilor Electricieni i Electroniti), cea mai mare organizaie profesional din lume. Suplimentar fa de producerea a zeci de jurnale i organizarea a numeroase conferine n fiecare an, IEEE are un grup de standardizare care dezvolt standarde n domeniul ingineriei electrice i tehnicii de calcul. Standardul IEEE 802 pentru reele locale de calculatoare este standardul cheie pentru LAN-uri. El a fost ntre timp preluat de ISO ca baz pentru standardul ISO 8802. 1.73 Who's Who n lumea standardelor Internet Internet-ul mondial are propriile sale mecanisme de standardizare, foarte diferite de cele ale ITU-T i ISO. Diferena poate fi rezumat grosier spunnd c lumea care vine la ntlnirile pentru standardizare ale ITU i ISO poart costum. Lumea care vine la ntlnirile pentru standardizarea Internet-ului poart fie blugi, fie uniforme militare. La ntlnirile organizate de ITU-T i ISO e plin de oficiali ai unor corporaii i de funcionari guvernamentali pentru care standardizarea reprezint meseria lor. Ei privesc standardizarea ca un lucru bun i i dedic vieile acestui scop. Lumea implicat n Internet, pe de alt parte, prefer, ca principiu de baz, anarhia; totui, pentru ca lucrurile s funcioneze, este nevoie, uneori, de nelegeri prestabilite. De aceea, standardele, dei regretabile, apar ocazional ca fiind necesare. Cnd a fost creat ARPANET-ul, DoD-ul a nfiinat un comitet neoficial care s l supravegheze. n 1983 comitetul a fost redenumit IAB (Internet Activities Board - Consiliul activitilor Internet) i a primit o misiune ceva mai ampl: s fie atent ca cercettorii implicai n ARPANET i Internet s se mite, mai mult sau mai puin, n aceeai direcie - o activitate care ar putea fi asemnat cu pstoritul" pisicilor. Semnificaia acronimului IAB" a fost schimbat mai trziu n Internet Architecture Board (Consiliul Arhitecturii Internet). Fiecare din cei aproximativ 10 membri ai IAB-ului conducea un departament care se ocupa de o anumit problem important. IAB-ul se ntlnea de cteva ori pe an pentru a discuta rezultatele i a trimite informri ctre DoD i NSF, care asigurau la acea vreme majoritatea fondurilor. Cnd era nevoie de un dbu standard (de exemplu, un nou algoritm de dirijare), membrii IAB l luau n discuie i apoi anunau schimbarea, astfel ca absolvenii facultilor - care erau sufletul muncii de programare - s l poat implementa. Comunicrile erau puse la dispoziie printr-o serie de rapoarte tehnice, numite RFC-uri (Request For Comments - cereri pentru comentarii). RFC-urile sunt memorate on-line i pot fi citite de oricine este interesat de ele. RFC-urile sunt numerotate n ordinea cronologic a crerii lor. Pn acum exist aproape 2000.

66

INTRODUCERE

CAP.l

n 1989 Internet-ul crescuse att de mult, nct acest stil informai nu mai putea funciona. Multe firme vindeau la acea vreme produse TCP/IP i nu erau dispuse s le modifice doar pentru c zece cercettori se gndiser la o idee mai bun. n vara anului 1989, IAB a fost reorganizat. Cercettorii au fost transferai la IRTF (Internet Research Task Force - Departamentul de Cercetare Internet), care a fost pus n subdrdinea IAB-ului, alturi de EETF (Internet Engineering Task Force Departamentul de Inginerie Internet). IAB-ul a fost repopulat cu persoane care reprezentau un palier de organizaii mai larg dect stricta comunitate a cercettorilor. La nceput, a fost un grup care se auto-perpetua: membrii erau activi pe o perioad de 2 ani, iar membrii noi erau selectai de ctre membrii mai vechi. Mai trziu, a fost nfiinat Societatea Internet (Internet Society), care reunea oameni interesai de Internet. Societatea Internet este, prin urmare, comparabil ntr-un sens cu ACM sau IEEE. Societatea este administrat de un comitet ales, iar comitetul desemneaz membrii IAB. Ideea acestei divizri a fost ca IRTF s se concentreze asupra cercetrii pe termen lung, iar IETF s se ocupe de probleme inginereti pe termen scurt. IETF a fost mprit n grupuri de lucru, fiecare cu o problem specific de rezolvat. Iniial, preedinii grupurilor de lucru sau reunit ntr-un comitet de organizare, n scopul de a coordona munca inginereasc ce le revenea. Preocuprile grupurilor de lucru includeau aplicaii noi, informaii de la utilizatori, integrare OSI, dirijare i adresare, securitate, administrare de reea, standarde. n final s-au format att de multe grupuri de lucru (mai mult de 70), nct ele au fost grupate pe domenii, iar comitetul de organizare s-a constituit din preedinii domeniilor. n plus, a fost adoptat un proces de standardizare mai formal, preluat dup modelul ISO. Pentru a deveni un standard propus (Proposed Standard), ideea fundamental trebuie s fie complet explicat ntr-un RFC i s prezinte destul interes din partea comunitii pentru a merita s fie luat n considerare. Pentru a avansa la stadiul de proiect de standard (Draft Standard), este necesar o implementare de lucru care s fi fost testat n amnunime de ctre dou situri independente, timp de cel puin 4 luni. Dac IAB-ul este convins c ideea e bun i c programul funcioneaz, atunci poate s declare RFC-ul respectiv ca fiind un Standard Internet. Unele Standarde Internet au devenit standarde ale DoD-ului (MIL-STD), fiind, prin urmare, obligatorii pentru furnizorii DoD-ului. David Clark a fcut odat o remarc devenit celebr privitoare la standardizarea Internet-ului, care ar consta din consens aproximativ i programe care merg."

1.8 RESTUL CRTTI N REZUMAT


Cartea de fa discut att principiile ct i practica interconectrii calculatoarelor. Majoritatea capitolelor ncep printr-o discuie a principiilor relevante, urmat de un numr de exemple care ilustreaz principiile respective. Pe parcursul crii sunt folosite ca exemple reale dou reele: Internet-ul i reelele ATM. ntr-un fel, cele dou reele sunt complementare: ATM se ocup n special de nivelurile inferioare, iar Internet-ul se ocup mai ales de nivelurile superioare. n viitor, Internet-ul ar putea funciona n mare parte pe o coloan vertebral ATM, fiind, deci, posibil coexistena ambelor reele. Acolo unde este relevant, vor fi date i alte exemple. Cartea este structurat n concordan cu modelul hibrid din Fig. 1-21. ncepnd cu Cap. 2, pornim la drum de la baz n sus, de-a lungul ierarhiei de protocoale. Capitolul al doilea prezint cadrul pentru studierea domeniului comunicaiilor de date. Capitolul acoper diferite subiecte: transmisii analogice i digitale, multiplexare, comutare, sistemul telefonic trecut, actual i

SEC. 1.9

REZUMAT

67

viitor. Acest material se refer la nivehil fizic, dar noi ne vom ocupa numai de aspectele arhitecturale, nu de cele privitoare la echipamente. Sunt discutate, de asemenea, cteva exemple de niveluri fizice, aa cum sunt SONET i radiofonia celular. Cap. 3 discut modelul legtur de date i protocoalele sale prin intermediul unui numr de exemple din ce n ce mai complexe. Se realizeaz* de asemenea, analiza acestor protocoale. Dup aceea, sunt discutate unele protocoale importante din lumea real, printre care HDLC (folosit n reelele de vftez sczut i medie), SLIP i PPP (folosite n Internet) i, de asemenea, ATM (folosit n B-ISDN). Cap. 4 se refer la subnivelul de acces la mediu, care face parte din nivelul legtur de date. Problema fundamental cu care se ocup este cum s determine cine poate folosi reeaua - atunci cnd reeaua const dintr-un singur canal partajat, aa cum se ntmpl n majoritatea LAN-urilor i n unele reele de satelii. Se dau multe exemple din domeniul LAN-urilor, reelelor prin fibre optice i reelelor de satelii. Tot aici sunt discutate i punile, care se folosesc pentru a interconecta LAN-urile. Cap. 5 se ocup de nivelul reea, n special de dirijare, de controlul congestiei i de interconectare. Capitolul discut att algoritmi de dirijare statici, ct i algoritmi de dirijare dinamici. Se ia n discuie si dirijarea cu difuzare. Se discut destul de detaliat efectele proastei dirpri i ale congestiei. Interconectarea reelelor eterogene n inter-reele conduce la numeroase probleme care sunt discutate aici. Se acord mare atenie nivelurilor din Internet i din reelele ATM. Cap. 6 se ocup de nivelul transport. Se discut pe larg protocoalele orientate pe conexiuni, deoarece ele sunt necesare n numeroase aplicaii. Se discut n detaliu un exemplu de serviciu de transport i implementarea sa. Att protocoalele de transport din Internet (TCP i UDP) ct i protocoalele de transport ATM sunt discutate pe larg. Nevznd o utilizare de prea mare importan, nivelurile OSI sesiune i prezentare nu sunt discutate n aceast carte. Cap. 7 se ocup de nivelul aplicaie, de protocoalele i aplicaiile sale. Printre aplicaiile discutate se numr securitatea, procedurile de atribuire a numelor, pota electronic, grupurile de tiri, administrarea de reea, Web-ul i multimedia. Cap. 8 conine o list adnotat de lecturi sugerate, aranjate n ordinea capitolelor. Lista este gndit ca un ajutor pentru cititorii care doresc s continue studiul reelelor. Capitolul are de asemenea o bibliografie alfabetic a tuturor referinelor citate n aceast carte.

1.9

REZUMAT

Reelele de calculatoare pot fi utilizate pentru numeroase servicii, att pentru lume ct i pentru persoane particulare. Pentru firme, reelele de calculatoare cu servere partajate asigur de multe ori flexibilitate i un bun raport pre/performan. Pentru persoane particulare, reelele ofer acces la o mulime de informaii si de resurse de divertisment. n mare, reelele pot fi mprite n LAN-uri, MAN-uri, WAN-uri i inter-reele, fiecare cu caracteristicile, tehnologiile, vitezele i rolurile sale proprii. LAN-urile acoper suprafaa unei cldiri, MAN-urile acoper suprafaa unui ora, iar WAN-urile se ntind pe suprafaa unei ri sau a unui continent. LAN-urile i MAN-urile sunt necomutate (adic nu au rutere); WAN-urile sunt comutate.

68

INTRODUCERE

CAP. 1

Programele de reea constau din protocoale, adic regii prin care procesele pot s comunice. Protocoalele pot fi fie fr conexiuni, fie orientate pe conexiuni. Majoritatea reelelor asigur suport pentru ierarhiile de protocoale, fiecare nivel asigurnd servicii pentru nivelurile de deasupra sa i izolndu-le de detaliile protocoalelor folosite n nivelurile de mai jos. Stivele de protocoale se bazeaz n mod tipic fie pe modelul OSI, fie pe modelul TCP/IP. Ambele modele posed niveluri reea, transport i aplicaie, dar ele difer n ceea ce privete celelalte niveluri. Printre reelele celebre s-au numrat NetWare, produs de Novell, ARPANET-ul (acum mort), NSFNET-ul, Internet-ul i diferite prototipuri gigabit. Serviciile de reea au inclus DQDB, SMDS, X.25, retransmiterea cadrelor i ISDN-urile de band larg. Toate acestea sunt disponibile comercial de la o mulime de furnizori. Piaa va determina care din ele vor supravieui i care nu.

1.10 PROBLEME
1. n viitor, cnd toat lumea va avea acas un terminal conectat la o reea de calculatoare, vor deveni posibile referendumuri publice imediate pe subiecte de legislaie importante. n ultim instan ar putea fi chiar eliminate parlamentele, pentru a lsa voina poporului s se exprime direct. Aspectele pozitive ale unei astfel de democraii directe sunt destul de evidente; discutai unele din aspectele negative. O alternativ la un LAN este pur i simplu un mare sistem, cu divizarea timpului cu terminale pentru toi utilizatorii. Prezentai dou avantaje ale unui sistem client-server care folosete un LAN. O colecie de cinci rutere trebuie s fie conectat ntr-o subreea punct-la-punct. ntre dou rutere proiectanii pot instala o linie de mare vitez, o linie de vitez medie, o linie de vitez sczut sau nici o linie. Dac generarea i examinarea fiecrei topologii pe calculator dureaz 100 ms, ct timp va dura examinarea tuturor topologiilor pentru a o gsi pe cea care se potrivete cel mai bine cu ncrcarea prevzut? Un grup de 2 -l rutere sunt interconectate ntr-un arbore binar centralizat, cu un ruter n fiecare nod al arborelui. Ruterul i comunic cu rutenii/ trimind un mesaj rdcinii arborelui. Rdcina trimite apoi mesajul napoi n jos pn la;. Deducei o expresie aproximativ pentru numrul mediu de salturi pe mesaj n cazul unui numr n mare, presupunnd c toate perechile de rutere sunt la fel de probabile. Un dezavantaj al unei subretele cu difuzare este risipa de capacitate datorat multiplelor gazde care ncearc s acceseze canalul n acelai timp. Ca un exemplu simplist, s presupunem c timpul este mprit n intervale discrete i fiecare din cele n gazde ncearc s utilizeze canalul cu probabilitatea p n timpul fiecrui interval. Ce fraciune din intervale se pierde datorit coliziunilor? Care sunt adresele SAP n cazul difuzrii radio FM ? Care este principala diferen ntre comunicarea fr conexiuni i comunicarea orientat pe conexiuni?
n

2.

3.

4.

5.

6. 7.

SEC 1.10

PROBLEME

69

.j ou reele furnizeaz, fiecare, servicii orientate pe conexiuni sigure. Una din ele ofer un flux sigur de octei, iar cealalt ofer un flux sigur de mesaje. Sunt acestea identice? Dac da, de ce se face aceast distincie? Dac nu, exemplificai prin ce difer. 9 Care este diferena ntre un serviciu confirmat i un serviciu neconfirmat? Pentru fiecare din urmtoarele servicii spunei dac poate fi un serviciu confirmat, un serviciu neconfirmat, amndou sau niciunul. a) Stabilirea conexiunii. b) Transmisia datelor. c) Eliberarea conexiunii.

10. Ce nseamn negociere" atunci cnd se discut protocoalele de reea? Dai un exemplu. 11. Care sunt dou din motivele utilizrii protocoalelor organizate pe niveluri? 12. Prezentai dou aspecte comune modelului de referin OSI i modelului de referin TCP/IP. Prezentai apoi dou aspecte prin care modelele difer. 13. Preedintelui Companiei de Vopsele Speciale i vine ideea s lucreze mpreun cu un productor local de bere n scopul de a produce o cutie de bere invizibil (ca o msur anti-gunoi). Preedintele comand departamentului su juridic s analizeze ideea, iar acesta cere ajutorul, la rndul su, departamentului de ingineri. Ca rezultat, inginerul ef l cheam pe inginerul-ef de la cealalt firm pentru a discuta aspectele tehnice ale proiectului. Apoi, inginerii prezint un raport ctre departamentele juridice respective, iar acestea aranjeaz prin telefon aspectele legale. n final, cei doi preedini de firme discut partea financiar a afacerii. Este acesta un exemplu de protocol multinivel n sensul modelului OSI? 14. n majoritatea reelelor, nivelul legtur de date trateaz erorile de transmisie, solicitnd retransmiterea cadrelor deteriorate. Dac probabilitatea de a se strica un cadru este/?, care este numrul mediu de transmisii necesare pentru a trimite un cadru, n cazul n care confirmrile nu se pierd niciodat? 15. Care dintre nivelurile OSI se ocup de fiecare din urmtoarele sarcini: a) Descompunerea fluxului de bii transmii n cadre. b) Determinarea traseului care trebuie folosit n subreea. c) TDPU-rile ncapsuleaz pachete sau invers? Discuie. 16. Un sistem are o ierarhie de protocoale organizat pe n niveluri. Aplicaiile genereaz mesaje de lungime M octei. La fiecare nivel este adugat un antet de h octei. Ce fraciune din limea benzii reelei este ocupat de antete? 17. Care este principala deosebire ntre TCP i UDP? 18. Arhitectura Novell NetWare seamn mai mult cu X.25 sau cu Internet-ul? Motivai rspunsul. 19. Internet-ul i dubleaz dimensiunea o dat la aproximativ 18 luni. Dei nimeni nu tie cu siguran, una din estimri consider numrul gazdelor la 1 ianuarie 1996 ca fiind de 7 milioane. Folosii aceste date pentru a calcula numrul de gazde Internet prevzut pentru anul 2008.

70

INTRODUCERE

CARI

20. De ce a fost SMDS proiectat ca o reea fr conexiuni, iar retransmiterea cadrelor ca una orientat pe conexiuni? 21. Imaginai-v c v-ai dresat cinele St. Bernard, pe nume Bernie, ca, n locul clasicei sticle cu rom, s poarte o cutie cu trei benzi Exabyte de 8 mm. (Gnd i se umple discul, respectiva cutie reprezint o urgen.) Aceste benzi conin flecare 7 gigabytes. Cinele poate cltori pn la dvs., oriunde v-ai afla, cu 18 km/h. Pentru ce ordin de distane are Bernie o vitez mai mare de transmisie a datelor dect o linie ATM de 155 Mbps? 22. La transferul unui fiier ntre dou calculatoare exist (cel puin) dou strategii de confirmare. Conform primei strategii, fiierul este descompus n pachete care sunt confirmate individual de ctre server, dar transferul de fiiere pe ansamblu nu este confirmat. n a doua strategie, pachetele nu sunt confirmate individual, dar la sfrit este confirmat ntregul fiier. Discutai aceste dou abordri. 23. Imaginai-v c pachetul SMDS din Fig. 1-28 ar trebui ncorporat n ierarhia de protocoale OSI. Pe care nivel ar aprea el? 24. Prezentai un avantaj i un dezavantaj al retransmiterii cadrelor printr-o linie telefonic nchiriat. 25. De ce folosete ATM-ul celule mici, de lungime fix? 26. Prezentai dou avantaje i dou dezavantaje ale existenei standardelor internaionale pentru protocoalele de reea. 27. Atunci cnd un sistem dispune de o parte permanent i de o parte detaabil, de exemplu un cititor de dischete i o dischet, este important ca sistemul s fie standardizat, astfel ca diferite firme s poat realiza att prile permanente ct i cele mobile i ca ele s se potriveasc fr probleme. Dai trei exemple din afara industriei de calculatoare unde exist astfel de standarde internaionale. Indicai apoi trei domenii din afara industriei de calculatoare unde nu exist astfel de standarde.

NIVELUL FIZIC
n acest capitol vom studia nivelul inferior descris n ierarhia din Fig. 1-21. Vom ncepe cu o analiz teoretic a transmisiunilor de date, cu scopul de a descoperi c Mama Natur impune o limit la ceea ce se poate transmite printr-un canal. n continuare, vom analiza mediile de transmisie, att cele ghidate (cablu din cupru i fibre optice) ct i cele neghidate (fr fir). Acest material furnizeaz informaiile fundamentale referitoare la tehnologiile de comunicaie folosite n reelele moderne. Restul capitolului este dedicat unor exemple de sisteme de comunicaie care folosesc mediile de transmisie descrise. Vom ncepe cu sistemul telefonic, studiind trei variante: actualul sistem (parial) analogic, un potenial sistem digital pentru viitorul apropiat (N-ISDN) i un posibil sistem digital pentru viitorul ndeprtat (ATM). Mai departe vor fi studiate dou sisteme de comunicaie fr fir: radiofonia celular i sateliii de comunicaie.

2.1 BAZELE TEORETICE ALE COMUNICARE DE DATE


Informaia poate fi transmis prin cablu variind cteva proprieti fizice cum ar fi tensiunea i intensitatea curentului. Reprezentnd valoarea tensiunii sau a intensitii curentului ca o funcie de timp, f(t), putem modela comportamentul semnalului i l putem analiza matematic. Aceast analiz face subiectul urmtoarelor seciuni. 2.1.1 Analiza Fourier La nceputul secolului XIX, matematicianul francez Jean-Baptiste Fourier a demonstrat c orice funcie periodic cu comportare rezonabil, g(t), cu perioada T poate fi construit prin nsumarea unui numr (posibil infinit) de sinusoide i cosinusoide: 71

72
1
OO

NIVELUL FIZIC
OO

CAP. 2 (2-1)

g(t) = -c + ^ an sin(27inft) + ^ bn cos(27inft)


2
=l n n=l

unde / = 1 / T este frecvena fundamental, iar an i bn sunt amplitudinile sinusurilor i cosinusurilor armonicei (termenului) n. Aceast descompunere este numit serie Fourier. Pornind de la seria Fourier, funcia poate fi reconstruit; aceasta nseamn c, dac perioada T este cunoscut i amplitudinile sunt date, funcia de timp original poate fi aflat prin evaluarea sumelor din ecuaia 2-1. Un semnal de date de durat finit (proprietate pe care o au toate semnalele) poate fi tratat presupunnd c el repet ntregul tipar la infinit (adic intervalul de la T la 2T este acelai ca cel de la01aT,etc). Amplitudinile an pot fi calculate pentru orice g(t) prin multiplicarea ambilor membri ai ecuaiei 2-1 cu sin(27tkft) urmat de integrarea de la 0 la T. Deoarece

V fO pentru k n sm(2nkft) &m(2mfi)dt = ^ J [T/2 pentru k = n Q


numai un singur termen al sumei de sinusuri nu se anuleaz: an. Termenii sumei de cosinusuri se anuleaz complet. Similar, multiplicnd membrii ecuaiei 2-1 cu cos(27ikft) i integrnd de la 0 la T, putem obine bn. Prin integrarea ambilor membri ai ecuaiei originale, se poate obine c. Rezultatele obinute prin efectuarea acestor operaii sunt: 2 T
* o

an = -Jg(t)sin(27mft)dt

bn = -Jg(t)cos(27inft)dt c = -Jg(t)dt
o * o

2T

2.1.2 Semnalele limitate de banda de frecven


Pentru a face legtura dintre cele prezentate i comunicarea de date s considerm urmtorul exemplu: transmisia caracterului ASCII b" codificat pe un octet. Biii care urmeaz a fi transmii sunt 01100010. Partea din stnga a figurii 2-1 (a) reprezint tensiunea la ieire emis de calculatorul care transmite. Din analiza Fourier a acestui semnal rezult urmtorii coeficieni:

an = [cos(nn / 4) - cos(3nn / 4) + cos(6nn / 4) - cos(7'nn 14)] bn- [sin(37m / 4) - sin(7m / 4) + sin(77m / 4) - sin(67m / 4)] nn

an + bn ,pentru primii termeni este prezentat n partea dreapt a figurii 2-l(a). Aceste valori ne intereseaz, deoarece ptratele lor sunt proporionale cu energia transmis la frecvena respectiv.

SEC 2.1

BAZELE TEORETICE ALE COMUNICRII DE DATE

73

0)

0.50 0.25
i i 1 I i 1 1 i

Timn

T (a)

ampi itudi

1 2 3 4 5 6 7 8 9 101112131415 Numrul armonicei

1 armonic

2 armonici

(O

1 2

4 armonici

(d)

12 3 4

8 armonici

Timp (e)

12 3 4 5 6 7 8 Numrul armonicei

Fig. 2-1. (a) Un semnal binar i radicalul sumei ptratelor amplitudinilor Fourier. (b) - (e) Aproximaii succesive ale semnalului iniial.

74

NIVELUL FIZIC

CAP. 2

Nu exist un mijloc de transmisie care s poat trimite semnale fr pierdere de putere n timpul procesului. Dac toate componentele Fourier ar fi micorate n aceeai msur, atunci semnalul rezultat ar fi atenuat n amplitudine, dar nu ar prezenta distorsiuni [ar avea aceeai form ca cea din Fig. 2-l(a)]. Din pcate, orice mijloc de transmisie atenueaz diferite componente Fourier n diferite proporii, introducnd astfel distorsiuni. De obicei, amplitudinile sunt transmise fr atenuri de la 0 la o anumit frecven fp [msurat n cicluri/secund sau n Hertzi (Hz)], iar toate celelalte amplitudini cu frecvene mai mari dect aceast frecven de prag sunt puternic atenuate. n unele cazuri aceasta este o proprietate fizic a mediilor de transmisie, n timp ce n altele este introdus intenionat un filtru n circuit, pentru a limita banda de frecven disponibil fiecrui client. S vedem cum va arta semnalul transmis dac banda de frecven folosit ar fi att de ngust, nct numai frecvenele foarte joase pot fi transmise [funcia ar fi aproximat doar cu primii civa termeni ai ecuaiei (2-1)]. Fig. 2-l(b) reprezint semnalul rezultat dintr-un canal care permite numai primei armonici (f, fundamental) s fie transmis. Similar, figurile 2-l(c)(e) prezint spectrele i funciile reconstruite pentru canale cu o band de frecven mai larg. Timpul T necesar pentru transmiterea caracterului depinde att de metoda de codificare ct i de viteza semnalului [de cte ori pe secund se schimb valoarea (tensiunea) semnalului]. Numrul de variaii pe secund se msoar n baud. O linie cu o vitez de transfer de b baud nu transmite implicit b bii/secund, deoarece un semnal poate transmite mai muli bii. Dac se utilizeaz tensiunile 0,1,2,3,4 5, 6 i 7, fiecare semnal poate fi folosit pentru transmiterea a 3 bii, rezultnd un numr de bii transferai pe secund de trei ori mai mare dect viteza de transmisie. n exemplul nostru, au fost folosii doar 0 i 1 ca nivele de semnal, numrul de bii transferai pe secund fiind egal cu viteza de transmisie. Pentru o anumit vitez de b bii/secund, timpul necesar pentru a transmite, de exemplu, 8 bii este de 8/b secunde, frecvena primei armonice fiind b/8 Hz. O linie telefonic obinuit, deseori numit linie n band vocal (voice grade line), are introdus artificial o frecven de prag n jurul frecvenei de 3000 Hz. Aceast restricie conduce la rezultatul c numrul celei mai mari armonice care poate fi transmis este aproximativ de 3000/(b/8), adic 24000/b (frecvena de prag nu este foarte exact).
Bps 300 600 1200 2400 4800 9600 19200 38400 T (msec) 26.27 13.33 6.67 3.33 1.67 0.83 0.42 0.21 Prima armonic (Hz) 37.5 75 150 300 600 1200 2400 4800 nr. armonice transmise 80 40 20 10 5 2 1 0

Fig. 2-2. Relaia ntre viteza de transfer a datelor i armonice n Fig. 2-2 sunt prezentate valorile unor viteze de transfer de date. Pornind de la aceste cifre, este clar c ncercarea de a transmite date la o vitez de 9600 bps, folosind o linie telefonic obinuit, va transforma semnalul din Fig. 2-l(a) n ceva asemntor cu Fig. 2-l(c), fiind dificil obinerea secvenei de bii originale. Este evident c la viteze de transfer mai mari

BAZELE TEORETICE ALE COMUNICRII DE DATE

75

nu exist nici o speran de a recupera semnalele binare, chiar dac mediul de transmisie ar fi lipsit n totalitate de zgomote. Cu alte cuvinte, limitnd banda de frecven, se limiteaz i viteza de transfer chiar i pentru canalele perfecte. Oricum, exist tehnici de codificare sofisticate, care folosesc mai multe nivele de tensiune i care pot atinge rate de transfer mai performante. Vom discuta aceste tehnici mai trziu n cadrul capitolului de fa. 21.2 Viteza Maxftn de Transfer de Date a unui Canal nc din 1924, H. Nyquist a descoperit existena acestei limite fundamentale i a dedus o ecuaie care exprim viteza maxim de transfer de date pentru un canal fr zgomote cu band finit de frecvent. n 1948, Claude Shannon a continuat cercetrile lui Nyquist exprimnd aceast limit pentru un canal supus zgomotului aleatoriu (termodinamic) (Shannon 1948). Noi nu vom face aici dect o prezentare scurt a acestor rezultate, acum devenite clasice. Nyquist a demonstrat c dac un semnal arbitrar este transmis printr-un filtru de frecvene joase de band H, semnalul filtrat poate fi complet reconstruit prin efectuarea a exact 2H eantioane pe secund. Eantionarea semnalului la o vitez mai mare dect 2H / secund este inutil, deoarece componentele cu o frecven mai nalt pe care aceste eantioane le-ar putea obine au fost deja filtrate. Dac semnalul are V nivele discrete, teorema lui Nyquist afirma: viteza maxim de transfer de date = 2H log 2 V bii / sec De exemplu, un canal de 3-kHz fr zgomote nu poate transmite semnale binare (pe dou nivele) la o vitez mai mare de 6000 bps. Pn acum am studiat doar cazul canalelor fr zgomote. Dac sunt prezente zgomote aleatorii, situaia se deterioreaz rapid. Mrimea zgomotului termic prezent se msoar prin raportul dintre puterea semnalului i puterea zgomotului, fiind numit raportul semnal / zgomot. Dac notm puterea semnalului cu S i puterea zgomotului cu N, atunci raport semnal / zgomot este S/N De obicei, acest raport nu este specificat; n schimb, este dat expresia 10 log10S/N. Aceste uniti sunt numite decibeli (dB). Un raport S/N egal cu 10 este de 10 dB, un raport egal cu 100 este de 20 dB, un raport egal cu 1000 este de 30 dB i aa mai departe. Fabricanii de amplificatoare stereo caracterizeaz, deseori, banda de frecven (domeniul de frecven) n care produsul lor este liniar, furniznd frecvena de 3 dB la fiecare capt. Acestea sunt punctele n care factorul de amplificare s-a njumtit (aproximativ). Rezultatul cel mai important obinut de Shannon este expresia pentru viteza maxim de transfer de date a unui canal cu zgomote, avnd banda de frecven de H Hz i a crui raport semnal / zgomot S/N este dat de: numrul maxim de bii/sec = H log 2 (1+S/N) De exemplu, un canal cu o band de frecven de 3000 Hz i zgomot termic de 30 dB (parametri tipici prii analogice a sistemului telefonic) nu va putea transmite mult mai mult de 30.000 bps, indiferent de ct de multe sau de puine nivele are semnalul sau ct de multe sau puine eantioane sunt luate. Rezultatele lui Shannon au fost obinute folosind att argumente teoretice ct i argumente informaionale i se aplic oricrui canal supus zgomotelor Gaussiene (termice). Contraexemplele ar

76

NIVELUL FIZIC

CAP. 2

trebui tratate n aceeai categorie ca i mainile perpetuum mobile. Oricum, trebuie remarcat c aceast vitez nu este dect o limit superioar pe care sistemele reale o ating rareori.

2.2 MEDIUL DE TRANSMISIE


Scopul nivelului fizic este de a transporta o secven de bii de la o main la alta. Pentru transmisie, pot fi utilizate diverse medii fizice. Fiecare dintre ele este definit de lrgimea lui de band, ntrziere, cost i de uurina de instalare i de ntreinere. Aceste medii pot fi mprite n dou grupe mari: mediile ghidate, cum ar fi cablul de cupru i fibrele optice i mediile neghidate, cum ar fi undele radio i laserul. Vom arunca o privire asupra acestora n seciunea de fa i n urmtoarea. 2.2.1 Mediul Magnetic Una din cele mai obinuite metode de a transporta date de la un calculator la altul este s se scrie datele pe o band magnetic sau pe un disc flexibil, s se transporte fizic banda sau discul la maina de destinaie, dup care s se citeasc din nou datele. Cu toate c aceast metod nu este la fel de sofisticat ca folosirea unui satelit de comunicaie geosincron, ea este de multe ori mai eficient din punct de vedere al costului, mai ales pentru aplicaiile n care o band de frecven larg sau costul pe bit sunt factori cheie. Un calcul simplu va confirma acest punct de vedere. O band video standard de 8 mm poate nmagazina 7 gigaoctei. ntr-o cutie cu dimensiunile 50 x 50 x 50 cm pot ncape cam 1000 de astfel de benzi, ceea ce nseamn o capacitate total de 7000 de gigaoctei. O cutie cu benzi poate fi distribuit oriunde n Statele Unite n 24 de ore de ctre Federal Express sau de alte companii. Banda de frecven efectiv a acestei transmisii este de 56 gigabii / 84600 sec sau 648 Mbps, care este cu puin mai bun dect versiunea rapid a ATM-ului (622 Mbps). Dac destinaia ar fi numai la distan de o or cu maina, lrgimea benzii de frecven s-ar mri la peste 15 Gbps. Pentru o banc cu gigaoctei de date care sunt salvai zilnic pe o alt main (pentru ca banca s poat face fa chiar i unor inundaii puternice sau unui cutremur), probabil c nici o alt tehnologie de transmisie nu e comparabil cu performana atins de banda magnetic. Dac ne uitm la cost, vom obine aceeai situaie. Atunci cnd sunt cumprate en gros, costul a 1000 de benzi video este probabil de 5000 de dolari. O band magnetic poate fi refolosit de cel puin 10 ori, reducnd costul benzilor la aproximativ 500 de dolari. Dac adugm nc 200 de dolari pentru transport, vom avea un cost de 700 de dolari pentru a transporta 7000 de gigaoctei. Costul a unui gigaoctet transmis este de 10 ceni. Nici una dintre companiile care asigura transportul de date pe reea nu poate concura cu un astfel de pre. Morala povetii: Niciodat nu subestima lrgimea benzii de frecven a unui camion ncrcat cu benzi magnetice. 2.2.2 Cablul Torsadat Dei caracteristicile benzii de frecven a unei benzi magnetice sunt excelente, caracteristicile legate de ntrziere sunt slabe. Timpul de transmisie ne se msoar n milisecunde, ci n minute sau ore. Pentru multe aplicaii este nevoie de o conexiune on-line. Cel mai vechi i nc cel mai utilizat

SEC. 2.2

MEDIUL DE TRANSMISIE

77

mediu de transmisie este cablul torsadat. Un cablu torsadat este format din dou fire de cupru izolate, avnd o grosime tipic de 1 mm. Firele sunt mpletite ntr-o form elicoidal, exact ca o molecul de ADN. Scopul mpletirii firelor este de a reduce interferena electric. (Dou fire paralele constituie o anten; dac le mpletim, nu mai formeaz o anten.) Cea mai cunoscut aplicaie a cablului torsadat este sistemul telefonic. Aproape toate telefoanele sunt conectate la centrala telefonic printr-un cablu torsadat. Cablurile torsadate se pot ntinde pe mai muli kilometri fr amplificare, dar pentru distane mai mari, sunt necesare repetoare. Atunci cnd sunt grupate n paralel mai multe cabluri torsadate, de exemplu toate firele de la un bloc de locuine la centrala telefonic, ele sunt legate mpreun i ncapsulate ntr-un material protector. Dac nu ar fi fost mpletite perechile de fire, grupate astfel mpreun, ar fi interferat. n anumite pri ale lumii, unde liniile telefonice sunt montate pe stlpi, sunt des ntlnite cablurile de mai muli centimetri n diametru. Cablurile torsadate pot fi folosite att pentru transmisia analogic ct i pentru cea digital. Banda de frecven depinde de grosimea firului i de distana parcurs, dar, n multe cazuri, poate fi atins o vitez de mai muli megabii pe secund pe distane de civa kilometri. Datorit performanei satisfctoare i a costului sczut, cablurile torsadate sunt foarte larg folosite n prezent si probabil c vor rmne larg folosite i n urmtorii ani. Exist numeroase feluri de cablaj torsadat, dou dintre acestea fiind importante pentru reelele de calculatoare. Cablurile torsadate din Categoria 3 sunt formate din dou. fire izolate mpletite mpreun. n mod obinuit patru astfel de perechi sunt grupate ntr-un material din plastic, pentru a le proteja i pentru a le ine mpreun. Pn n 1988, cele mai multe cldiri cu birouri aveau un cablu de categoria 3, care pornea din panoul central de la fiecare etaj ctre fiecare birou. Aceast schem permitea ca pn la patru telefoane obinuite, sau dou telefoane cu mai multe linii, aflate ntr-un birou, s fie cuplate la centrala telefonic prin panoul central. ncepnd din 1988, au fost introduse cablurile mai performante din Categoria 5. Ele sunt similare celor din categoria 3, dar au mai multe rsuciri pe centimetru i sunt izolate cu teflon, rezultnd o interferen redus i o mai bun calitate a semnalului pe distane mari, ceea ce le face mai adecvate comunicaiilor la viteze mari ntre calculatoare. Pentru a le deosebi de cablurile torsadate voluminoase, ecranate i scumpe, pe care IBM le-a introdus la nceputul anilor 80, dar care nu au devenit populare n afara instalaiilor IBM, aceste dou tipuri de cabluri sunt cunoscute sub numele de cabluri UTP (Unshielded Twisted Pair, - cablu torsadat neecranat). 2.2.3 Cablu Coaxial n Band de Baz Un alt mediu uzual de transmisie este cablul coaxial (cunoscut printre utilizatorii si sub numele de coax"). El are o ecranare mai bun dect cablurile torsadate, putnd acoperi distane mai mari la rate de transfer mai mari. Exist dou tipuri de cabluri coaxiale folosite pe scar larg. Primul, cablul de 50 - ohmi, este folosit n transmisia digital i constituie subiectul acestei seciuni. Al doilea tip, cablul de 75 de ohmi, este frecvent folosit n transmisia analogic, aceasta reprezentnd subiectul urmtoarei seciuni. Aceast clasificare are la baz un criteriu stabilit mai mult pe considerente istorice dect pe considerente tehnice (de exemplu, primele antene dipol aveau o impedan de 300 de ohmi, transformatoarele de impedan 4 : 1 erau uor de construit).

78

NIVELUL FIZIC
V

CAP. 2

Un cablu coaxial este format dintr-o srm de cupru dur, protejat de un material izolant. Acest material este ncapsulat ntr-un conductor circular, de obicei sub forma unei plase strns ntreesute. Conductorul exterior este acoperit cu un nveli de plastic protector. n Fig. 2-3 este prezentat o vedere n seciune a cablului coaxial.

Mie? de cupru \

Material izolator

Conductor exterior ntreesut

/S

/nveli protector din plastic

Fig. 2-3. Un cablu coaxial. Structura i ecranarea cablului coaxial asigur o bun mpletire a necesitilor de band de frecven larg i totodat de imunitate excelent la zgomot. Banda de frecven poate depinde de lungimea cablului. Pentru cabluri de 1 Km, este posibil o vitez de transfer a datelor ntre 1 i 2 Gbps. Pot fi folosite i cabluri mai lungi, dar la rate de transfer mai joase sau folosind periodic amplificatoare. Cablurile coaxiale sunt larg folosite n sistemul telefonic, dar pe distanele lungi, au fost n mare parte nlocuite de fibre optice. Numai n Statele Unite, sunt instalate n fiecare zi 1000 Km de fibre optice (socotind o rol de 100 km cu 10 fire ca fiind echivalent cu 1000 km). Sprint folosete deja 100 % fibre optice i multe alte companii vor atinge acest standard n scurt timp. Oricum, cablul coaxial este foarte uzual n televiziunea prin cablu i n unele reele locale. 2.2.4 Cabluri coaxiale de band larg

Cellalt model de cablu coaxial este folosit pentru transmisia analogic n sistemele de televiziune prin cablu. Acesta este numit cablu de band larg. Cu toate c termenul de band larg" provine din lumea telefoniei, unde se refer la o band de frecven mai larg dect 4 kHz, n lumea reelelor de calculatoare cablu de band larg" nseamn orice reea prin cablu care folosete transmisia analogic, (vezi Cooper, 1986). Deoarece reelele de band larg se bazeaz pe tehnologia standard a televiziunii prin cablu, cablurile pot fi folosite pn la 300 MHz (i de multe ori pn la 450 MHz) i datorit transmisiei analogice pot acoperi distane de aproape 100 Km, care este mult mai puin critic dect transmisia digital. Pentru a transmite semnale digitale pe o reea analogic, fiecare interfa trebuie s conin un echipament electronic care s converteasc secvena de bii ce urmeaz a fi transmis n semnal analogic i semnalul analogic de la intrare ntr-o secven de bii. Depinznd de echipamentul electronic respectiv, 1 bps poate ocupa aproximativ 1 Hz din lrgimea de band. La frecvene mai mari, se pot obine mai muli bii pe Hz folosind tehnici avansate de modulare a semnalului. Sistemele de band larg sunt mprite n mai multe canale, n televiziune fiind frecvent folosite canalele de 6 MHz. Fiecare canal poate fi folosit n televiziunea analogic, n transmisia audio de

SEC. 2.2

MEDIUL DE TRANSMISIE

79

calitatea compact discului (1,4 Mbps), sau ntr-un flux de date la o vitez de - s zicem - 3 Mbps, independent de celelalte. Televiziunea i datele se pot mixa pe acelai canal. O diferen major ntre banda de baz i banda larg este aceea c sistemele de band larg acoper, de obicei, o suprafa mai mare, fiind nevoie de amplificatoare analogice care s reamplifice periodic semnalul. Aceste amplificatoare pot transmite semnalul ntr-o singur direcie, astfel c un calculator care transmite un pachet nu poate s primeasc date de la alte calculatoare, dac ntre ele se afl un amplificator. Pentru a ocoli aceast problem, au fost dezvoltate dou tipuri de sisteme de band larg: sisteme cu cablu dual i sisteme cu cablu simplu. Sistemele cu cabluri duale au dou cabluri identice care funcioneaz n paralel, unul lng altul. Pentru a transmite date, un calculator emite pe cablul 1, pn la un echipament numit capt de distribuie (head-end), care se afl la rdcina arborelui de cabluri. Captul de distribuie transfer semnalul pe cablul 2 pentru transmisia napoi pe arbore. Toate calculatoarele transmit pe cablul 1 i recepioneaz pe cablul 2. Un sistem cu cablu dual este prezentat n Fig. 2-4 (a). Cealalt schem aloc diferite benzi de frecven pentru transmisie i recepie pe un singur cablu [vezi Fig. 2-4(b)]. Banda de frecvene joas este folosit pentru comunicaia ntre calculatoare i capt, apoi captul transfer semnalul n banda de frecven nalt i l retransmite. n sistemele cu mprire inegal (subsplit), frecvenele de la 5 la 30 MHz sunt folosite pentru transmisie i frecvenele de la 40 la 300 MHz sunt folosite pentru recepie.

Capt de distribuie

Capt de distribuie

Calculator!

Amplificator Cablu unic. Pentru transmisie se utilizeaz fercvene joase, iar pentru recepie se utilizeaz frecvene nalte.

Cablu de emisie

(a)

(b)

Fig. 2-4. Reele de band larg, (a) Cablu dual. (b) Cablu simplu. n sistemele cu njumtire (midsplit), transmisia se face n banda 5 -116 MHz, iar recepia n banda 168 - 300 MHz. Alegerea acestor frecvene este de ordin istoric i are legtur cu modul n care Comisia Federal a Statelor Unite (U.S. Federal Communications Commission) a atribuit frecvenele pentru televiziune, aceasta fiind implementat pe sisteme de band larg. Pentru ambele sisteme este necesar un capt activ care accept semnale pe o band i le retransmite pe alta. Aceste tehnici i frecvene au fost dezvoltate pentru televiziunea prin cablu i au fost preluate de reele fr modificri, datorit fiabilitii i a echipamentelor relativ ieftine.

80

NIVELUL FIZIC

CAP. 2

Sistemele de band larg pot fi folosite n numeroase moduri. Unor perechi de calculatoare li se pot atribui canale permanente pentru uzul lor exclusiv. Alte calculatoare pot face o cerere de canal pentru o conectare temporar i apoi pot comuta, pe durata legturii, frecvenele proprii la cele ale canalului. O alt posibilitate este ca toate calculatoarele s se afle n competiie pentru accesul la un singur canal sau la un grup de canale, folosindu-se n acest scop tehnici ce vor fi prezentate n capitolul 4. Cablul de band larg este inferior tehnic cablului pentru band de baz (cu un singur canal) pentru transmisia datelor digitale, dar are avantajul c este deja instalat pe scar extrem de larg. n Olanda, de exemplu, 90 la sut din case au cablu TV. n Statele Unite, cablul TV acoper aproximativ 80 la sut din case. Aproape 60 la sut dintre ele sunt conectate. Datorit competiiei, aflat n plin desfurare, dintre companiile telefonice i companiile de televiziune prin cablu, ne putem atepta ca sistemele de televiziune prin cablu s nceap s opereze ca MAN - uri i s ofere tot mai frecvent servicii telefonice i alte servicii. Pentru mai multe informaii referitoare la folosirea televiziunii prin cablu pe post de reea de calculatoare vezi (Karshmer and Thomas, 1992). 2.2.5 Fibre optice Multe persoane din industria calculatoarelor sunt foarte mndre de rapiditatea evoluiei tehnologiei calculatoarelor. n 1970, un calculator rapid (de ex. CDC 6600) putea executa o instruciune n 100 de nsec. Douzeci de ani mai trziu, un calculator CRAY rapid putea executa o instruciune n 1 nsec, o mbuntire cu un factor de 10 la fiecare deceniu. Un rezultat care nu este de neglijat. n aceeai perioada, comunicaiile de date au evoluat de la o vitez de 56 Kbps (ARPANET) pn la 1 Gbps (comunicaiile optice moderne), un ctig cu un factor mai mare de 100 pe fiecare decad. n aceeai perioad, frecvena erorilor a sczut de la IO'5 per bit pn aproape de zero. Mai mult, procesoarele se aproprie de limitele lor fizice, date de viteza luminii i problemele de disipare a cldurii. Prin contrast, folosind tehnologiile actuale de fibre optice, banda de frecven care poate fi atins este cu siguran mai mare dect 50,000 Gbps (50 Tbps) i sunt nc muli oameni care caut materiale mai performante. Limita practic actual de aproximativ 1 Gbps este o consecina a imposibilitii de a converti mai rapid semnalele electrice n semnale optice. n laborator, sunt posibile rate de 100 Gbps pe distane scurte. n doar civa ani se va putea obine o vitez de 1 Terabit/sec. Sunt n curs de realizare sistemele integral optice (inclusiv intrarea i ieirea din calculator) (Miki, 1994a). n cursa dintre calculatoare i comunicaii, acestea din urm au nvins. Implicaiile unei benzi de frecven, prin natura ei infinit (dei nu la un cost nul), nu au fost nc remarcate de unii oameni de tiin i de unii ingineri care au nvat s gndeasc n termenii limitelor joase ale lui Nyquist i Shannon impuse pentru srm de cupru. Noua manier de abordare const n a considera calculatoarele ca fiind extrem de ncete, astfel c reelele ar trebui s evite calculele la orice cost,
A

indiferent de lrgimea de band risipit. In aceast seciune vom studia fibrele optice pentru a ne familiariza cu aceast tehnologie de transmisie. Un sistem de transmisie optic este format din trei componente: sursa de lumin, mediul de transmisie i detectorul. Prin convenie, un impuls de lumin nseamn bitul 1, iar absena luminii indic bitul zero. Mediul de transmisie este o fibr foarte subire de sticl. Atunci cnd intercepteaz un impuls luminos, detectorul genereaz un impuls electric. Prin ataarea unei surse de lumin la un

SEC. 2.2

MEDIUL DE TRANSMISIE

81

capt al fibrei optice i a unui detector la cellalt, obinem un sistem unidirecional de transmisie a datelor care accept semnale electrice, le convertete i le transmite ca impulsuri luminoase i apoi le reconvertete la ieire n semnale electrice. Acest sistem de transmisie ar fi fost lipsit de importan n practic, cu excepia unui principiu interesant al fizicii. Cnd o raz luminoas trece de la un mediu la altul, de exemplu, de la siliciu la aer, raza este refractat (ndoit) la suprafaa de separaie siliciu / aer ca n Fig. 2-5. Se observ o raz de lumin inciden pe suprafaa de separaie la un ungi 04 care se refract la un unghi p\. Mrimea refraciei depinde de proprietile celor dou medii (n particular, de indicii lor de refracie). Pentru unghiuri de inciden mai mari dect o anumit valoare critic, lumina este refractat napoi n siliciu fr nici o pierdere. Astfel o raz de lumin, la un unghi egal sau mai mare dect unghiul critic, este ncapsulat n interiorul fibrei, ca n Fig. 2-5(b) i se poate propaga pe muli kilometri, aparent fr pierderi.
Suprafaa de separare aer /siliciu Aer

Reflexie total

ai

Ct2

ot3

Siliciu

Surs de lumin

(a)

(b)

Fig. 2-5. (a) Trei exemple de raze de lumin n interiorul unei fibre de siliciu care cad pe suprafaa de separaie aer / siliciu la unghiuri diferite. (b) ncapsularea luminii prin reflexie total. n Fig. 2-5(b) se poate observa o singura raz ncapsulat, dar se pot transmite mai multe raze cu unghiuri de inciden diferite, datorit faptului c orice raz de lumin cu unghi de inciden la suprafaa de separaie mai mare dect unghiul critic va fi reflectat total. Se spune c fiecare raz are un mod diferit, iar fibra care are aceast proprietate se numete fibr multi-mod. Oricum, dac diametrul fibrei este redus la cteva lungimi de und ale luminii, fibra acioneaz ca un ghid de und i lumina se va propaga n linie dreapt, fr reflexii, rezultnd o fibr mono-mod. Aceste fibre sunt mai scumpe, dar pot fi folosite pe distane mai mari. Fibrele mono-mod curente pot transmite date la mai muli Gbps pe distane de 30 Km. Rate de transfer de date mai mari au fost obinute n laborator pe distane mai scurte. Experimentele au artat c lasere puternice pot transmite pe fibre de lungimi de 100 Km, fr repetoare, ns la viteze mai mici. Cercetrile referitoare la fibrele dopate cu erbium promit transmisii pe distane chiar mai lungi, fr a utiliza repetoare.
Transmisia luminii prin fibre

Fibrele optice sunt fabricate din sticl, iar sticla este fabricat la rndul ei din nisip, un material brut necostisitor, care se gsete n cantiti nelimitate. Producerea sticlei era cunoscut de egiptenii din Antichitate, dar sticla lor trebuia s nu fie mai groas de 1 mm pentru ca lumina s treac prin

82

NIVELUL FIZIC

CAP. 2

ea. Sticla suicient de transparent pentru a putea fi folosit ca fereastr a aprut n timpul Renaterii. Sticla folosit pentru fibrele optice moderne este att de transparent nct, dac oceanul ar fi fost plin cu sticl n loc de ap, fundul oceanului s-ar vedea tot att de clar, cum se vede din avion pmntul ntr-o zi senin. Atenuarea luminii prin sticl depinde de lungimea de und a luminii. Pentru tipul de sticl folosit la fibre optice, atenuarea este prezentat n Fig. 2-6 n decibeli pe kilometru linear de fibr. Atenuarea n decibeli este dat de formula:

Atenuarea _n_ decibeli = 10 logJC

puterea _ transmis puterea _ recepionat

De exemplu, pentru un factor de pierdere egal cu 2 rezult o atenuare de 10 Iogio2 = 3 dB. Figura prezint valorile atenurii pentru lungimi de und apropiate spectrului razelor infraroii, care sunt folosite n practic. Lumina vizibil are lungimi de und puin mai mici, de la 0.4 la 0.7 microni (1 micron este IO*6 metri).

Banda de 0.85n

Banda de

Banda de

0.8

0.9

1.1 1.2 1.3 1.4 Lungimea de und (microni)

1.5

1.6

1.7

1.8

Fig. 2-6. Atenuarea luminii prin fibr n spectrul infrarou. Trei benzi din acest spectru sunt folosite n comunicaii. Ele sunt centrate respectiv la 0.85,1.3 i 1.55 microni. Ultimele dou au proprieti bune de atenuare (mai puin de 5 la sut pierderi pe kilometru). Banda de 0.85 microni are o atenuare mai mare, dar o proprietate care o avantajeaz este c, la aceast lungime de und, laserul i echipamentul electronic pot fi fcute din acelai material (arseniur de galiu). Toate cele trei benzi au o lrgime a benzii de 25,000 pn la 30,000 GHz. Impulsurile de lumin transmise pe o fibr i extind lungimea n timpul propagrii. Aceast extindere se numete dispersie. Mrimea ei este dependent de lungimea de und. Un mod de a preveni suprapunerea acestor impulsuri extinse este de a mri distana dintre ele, dar aceasta se

SEC. 2.2

MEDIUL DE TRANSMISIE

83

ate face doar prin reducerea ratei de semnalizare. Din fericire, s-a descoperit c, dnd acestor impulsuri o form special, legat de reciproca cosinusului hiperbolic, se anuleaz toate efectele de dispersie, devenind astfel posibil s se trimit impulsuri pe mii de kilometri, fr distorsiuni apreciabile ale formei. Aceste impulsuri se numesc solitonuri. Pentru a implementa n practic aceast soluie de laborator se desfoar cercetri intense. Cablurile din fibr de sticl Cablurile din fibr de sticl sunt similare celor coaxiale, cu singura deosebire c nu prezint acel material conductor exterior sub forma unei plase. Figura 2-7(a) prezint o seciune a unei singure fibre. n centru se afl miezul de sticl prin care se propag lumina. n fibrele multi-mod, miezul are un diametru de 50 microni, aproximativ grosimea prului uman. n fibrele mono-mod miezul este de 8 pn la 10 microni.
Protecie Miez (sticl)

mbrcminte (sticl) (a)

Protecie (plastic)

Miez

\ ^ _ _ ^/ (b)

mbrcminte

Fig. 2-7 (a) Vedere n seciune a unei singure fibre, (b) Vedere n seciune a unei teci cu trei fibre. Miezul este mbrcat n sticl cu un indice de refracie mai mic dect miezul, pentru a pstra lumina n miez. Totul este protejat cu o nvelitoare subire din plastic. De obicei, mai multe fibre sunt grupate mpreun, protejate de o teac protectoare. Figura 2-7(b) prezint un astfel de cablu cu trei fibre. Aceste teci protectoare sunt ngropate n pmnt pn la adncimi de un metru, fiind ocazional deteriorate de buldozere sau de crtie. Lng rm, fibrele sunt ngropate n anuri cu ajutorul unui fel de plug de mare. n apele adnci, ele stau pe fundul apei, unde pot fi agate de traulere de pescuit sau pot fi mncate de rechini. Fibrele pot fi conectate n trei moduri. Primul mod const n ataarea la captul fibrei a unor conectori care se pot lega la un soclu pentru fibr. Conectorii pierd aproape 10-20 la sut din lumin, dar aceste sisteme sunt uor de reconfigurat. Al doilea mod const n mbinarea mecanic. mbinrile mecanice se obin prin ataarea celor dou capete unul lng altul, ntr-un nveli special, i fixarea lor cu ajutorul unor clame. Alinierea se poate face prin trimitere de semnale prin jonciune i realizarea de mici ajustri pentru a maximiza semnalul. Unui specialist i trebuie n jur de 5 minute s fac o mbinare mecanic, aceasta avnd ca rezultat o pierdere a luminii cu 10 la sut. A treia posibilitate este de a mbina (topi) cele dou buci de fibr, pentru a forma o conexiune solid. O mbinare prin sudur este aproape la fel de bun ca i folosirea unui singur fir, dar chiar i aici, apare o mic atenuare.

84
Criteriu viteza de transfer a datelor

NIVELUL FIZIC LED


Joas Multi-mod Scurt Via lung Minor Cost redus Laser cu semiconductor Mare Multi-mod sau mod unic ' Lung Via scurt Substanial Scump

CAP. 2

Mod
Distana Durata de via Sensibilitatea Ia temperatur Cost

Fig. 2-8. O comparaie ntre diodele cu semiconductoare i LED-uri ca surse de lumin. Pentru semnalizare se pot folosi dou tipuri de surse de lumin, LED-uri (Iight Emitting Diode diod cu emitere de lumin) i laserul din semiconductoii Ele au proprieti diferite, dup cum arat Fig. 2-8. Ele se pot ajusta n lungime de und prin introducerea interferometrelor Fabry-Perot sau Mach-Zender ntre sursa i fibra optic. Interferometrele Fabry-Perot sunt simple caviti rezonante, formate din dou oglinzi paralele. Lumina cade perpendicular pe oglinzi. Lungimea acestei caviti selecteaz acele lungimi de und care ncap n interior de un numr ntreg de ori. Interferometrele Mach-Zender separ lumina n dou fascicole. Cele dou fascicole se propag pe distane uor diferite. Ele sunt apoi recombinate i se afl n faz doar pentru anumite lungimi de und. Captul fibrei optice care recepioneaz semnalul const dintr-o fotodiod, care declaneaz un impuls electric cnd este atins de lumin. Rspunsul tipic al unei diode este de 1 nsec, ceea ce limiteaz viteza de transfer de date la aproximativ 1 Gbps. Pentru a putea fi detectat, un impuls luminos trebuie s aib suficient energie ca s evite problema zgomotului termic. Viteza de apariie a erorilor se poate controla prin asocierea unei puteri suficient de mari a semnalului. Reelele din fibre optice Fibrele optice pot fi folosite att pentru LAN-uri ct i pentru transmisia pe distane foarte lungi, cu toate c transmisia prin acest mediu este mult mai complex dect conectarea la Ethernet. Un mod de a evita aceast problem este de a realiza c o reea n inel este doar o colecie de legturi punct la punct, ca n Fig. 2-9. Interfaa fiecrui calculator las s treac impulsul de lumin ctre urmtoarea legtur i totodat are rolul unei jonciuni n T pentru a face posibil transmiterea i recepia mesajelor.
La/de la calculator Srm de cupru

Direcia de propagare a luminii Receptor optic (fotodiod) Regenerator Transmitor de semnal optic (electric) (LED)

Fibr optic

"Interfa

Fig. 2-9. Un inel din fibr optic cu repetoare active.

SEC. 2.2

MEDIUL DE TRANSMISIE

85

Se folosesc dou tipuri de interfee. O interfa activ const din doi conectori sudai pe fibra central. Unul din ei are la un capt un LED sau o diod cu laser (pentru transmisie) i cellalt are la capt o fotodiod (pentru recepie). Conectorul este complet pasiv i prezint ncredere, deoarece un LED sau o fotodiod defect nu ntrerupe inelul, ci doar scoate un calculator din circuit. Un alt model de interfa, prezentat n Fig. 2-9, este repetorul activ. Lumina recepionat este convertit ntr-un semnal electric, regenerat la puterea maxim, dac este atenuat i retransmis ca semnal optic. Interfaa cu calculatorul este o srm de cupru obinuit care se leag la regeneratorul de semnal. n prezent, sunt folosite i repetoare integral optice. Aceste echipamente nu necesit conversiile optic - electric - optic, ceea ce nseamn c opereaz cu lrgimi de band foarte nalte. n cazul n care repetorul activ se deterioreaz, inelul este ntrerupt i reeaua cade. Pe de alt parte, deoarece semnalul este regenerat la fiecare interfa, legturile ntre dou calculatoare adiacente pot avea lungimi de kilometri, practic fr nici o limit n dimensiunea total a inelului. Interfeele pasive pierd lumin la fiecare jonciune, avnd ca efect restricii drastice n ceea ce privete numrul de calculatoare ce pot fi conectate i lungimea total a inelului.

Interfee cu calculatorul

Fiecare fibr la intrare lumineaz ntreaga stea

Fiecare fibr de ieire recepioneaz lumina de la toate fibrele de intrare

Fig. 2-10. Conectarea unei stele pasive n reelele de fibr optic O topologie n inel nu este singura modalitate de a construi un LAN folosind fibre optice, fiind posibil de asemenea arhitectura stea pasiv prezentat n Fig. 2-10. n aceast schem, fiecare interfa prezint o fibr care face conexiunea ntre transmitor i un cilindru de siliciu, cu toate aceste fibre sudate la un capt al cilindrului. Similar, fibrele sudate la cellalt capt al cilindrului se conecteaz la fiecare receptor. Ori de cte ori o interfa transmite un semnal, el este difuzat n interiorul stelei pasive pentru a ilumina toi receptorii, realizndu-se astfel difuzarea. Steaua pasiv combin toate semnalele de la intrare i transmite semnalul combinat pe toate liniile. Deoarece energia de la intrare este mprit ntre toate liniile de la ieire, numrul de noduri n reea este limitat de senzitivitatea fotodiodelor.

86

NIVELUL FIZIC

CAP. 2

Comparaie ntre fibrele optice i firul de cupru


O comparaie ntre fibr i cupru este instructiv. Fibra are multe avantaje. Mai nti, lrgimea de band pe care o suport este mai mare dect a cuprului. Numai acest lucru i ar fi suficient pentru a fi utilizat n reelele performante. Datorit atenurii sczute, repetoarele sunt necesare la fiecare 30 km pe liniile lungi, n comparaie cu 5 Km pentru cupru. Fibra are avantajul c nu este afectat de ocurile electrice, de interferena cmpului electromagnetic sau de cderile de tensiune. De asemenea, nu este afectat de substanele chimice corozive din aer, fiind ideal pentru mediile aspre din fabrici. Destul de surprinztor, companiile de telefoane prefer fibra dintr-un alt motiv: este subire i foarte uoar. Multe din canalele cu cabluri sunt pline pn la refuz i prin nlocuirea cuprului cu fibr se golesc canalele, iar cuprul are o valoare excelent pe pia, deoarece fabricile de cupru l consider un minereu de mare importan. De asemenea, fibra este mai uoar dect cuprul. O mie de cabluri torsadate cu o lungime de 100 Km lungime cntresc 8000 Kg. Dou fibre au o capacitate mai mare i cntresc doar 100 Kg, acest lucru reducnd drastic necesitatea unor echipamente mecanice scumpe care trebuie ntreinute. Pe traseele noi, fibra ctig detaat n faa cuprului datorit costului de instalare foarte sczut. n sfrit, fibrele nu pierd lumin i sunt foarte dificil de interceptat. Acest lucru le ofer o excelent securitate mpotriva unor poteniale tentative de interceptare. Motivul pentru care fibra este mai bun dect cuprul este intrinsec. Cnd electronii se mic ntr-un cablu, ei interacioneaz unul cu altul i sunt ei nii influenai de electronii din afara cablului. Fotonii dintr-o fibr nu interacioneaz unul cu altul i nu sunt afectai de fotonii din exterior. Pe de alt parte, fibra este o tehnologie nefamiliar i necesit o pregtire pe care cei mai muli dintre ingineri nu o au. Deoarece transmisia optic este prin natura ei unidirecional, comunicaiile bidirecionale necesit fie dou fibre, fie dou benzi de frecven diferite pe aceeai fibr. n sfrit, interfeele pentru fibr cost mai mult dect interfeele electrice. Nu mai puin adevrat este faptul c toate comunicaiile de date pe lungimi mai mari dect civa metri se vor face n viitor cu fibre. Pentru o prezentare detaliat a tuturor aspectelor ce apar ntr-o reea cu fibr optic, vezi (Green 1993).

2.3 COMUNICAIILE FR FIR


Secolul nostru a generat dependena de informaie : oameni care au nevoie s fie n permanena conectai. Pentru aceti utilizatori mobili, cablul torsadat, cablul coaxial i fibrele optice nu sunt de nici un folos. Ei au nevoie de date pentru calculatoarele lor portabile, de buzunar, fr a fi legai de infrastructura comunicaiilor terestre. Pentru aceti utilizatori, rspunsul l constituie comunicaiile fr fir. n aceast seciune vom arunca o privire general asupra comunicaiilor fr fir, deoarece acestea au multe aplicaii importante peste serviciile de conectare oferite utilizatorilor care doresc s-i citeasc pota electronic n avion. Unii oameni cred c viitorul rezerv numai dou tipuri de comunicaii: prin fibre optice i fr fir. Toate calculatoarele, faxurile, telefoanele fixe (nemobile) vor folosi fibre, iar cele mobile vor folosi comunicaia fr fir.

SEC 2.3

COMUNICAIILE FR FIR

87

n comunicaia fr fir este avantajoas chiar i pentru echipamentele fixe, n anumite urri De exemplu, n cazul n care conectarea unei cldiri cu ajutorul fibrei este dificil datorit 1 ii (muni, jungle, mlatini etc), comunicaia fr fir este preferabil. Este de remarcat faptul c ?,. ele de comunicaie digital fr fir au aprut n Insulele Hawaii, unde utilizatorii erau desprii ari ntinderi de ap din oceanul Pacific, sistemul telefonic fiind inadecvat. 23.1 Spectrul electromagnetic Atunci cnd electronii se afl n micare, ei creeaz unde electromagnetice care se pot propaga ~ sDatiu (chiar si n vid). Aceste unde au fost prezise de fizicianul britanic James Clerk Maxwell n 1865 si au fost produse i observate pentru prima dat de fizicianul german Heinrich Hertz n 1887. Numrul de oscilaii pe secund este numit frecven, /, i este msurat n Hz (n onoarea lui Heinrich Hertz). Distana dintre dou maxime (sau minime) consecutive este numit lungime de und. Notaia universal a lungimii de und este X (lambda). Prin ataarea unei antene corespunztoare unui circuit, undele electromagnetice pot fi difuzate eficient si interceptate de un receptor, aflat la o anumit distan. Toate comunicaiile fr fir se bazeaz pe acest principiu. n vid, toate undele electromagnetice se transmit cu aceeai vitez, indiferent de frecven, Aceast vitez, de obicei numit viteza luminii, c, este de aproximativ de 3 x IO8 msec, sau aproape 1 picior (30 cm) pe nanosecund. n cupru sau n fibr, viteza scade la aproape 2/3 din aceast valoare i devine uor dependent de frecven. Viteza luminii este viteza maxim care se poate atinge. Nici un obiect sau semnal nu se va deplasa vreodat cu o viteza mai mare ca aceasta. Relaia fundamental dintre,/, A i c (n vid) este /=c (2-2)

Deoarece c este o constant, dac tim /, putem afla X i invers. De exemplu, undele cu o frecven de 1 MHz au o lungime de aproape 300 metri, iar cele cu o lungime de 1 cm au o frecven de30GHz. Spectrul electromagnetic este prezentat n Fig. 2-11. Domeniile corespunztoare undelor radio, microundelor, undelor infraroii i luminii vizibile din spectru pot fi folosite pentru transmiterea informaiei prin modularea amplitudinii, frecvenei, sau fazei undelor. Lumina ultraviolet, razele X i razele gama ar fi chiar mai performante datorit frecvenei lor mai nalte, dar ele sunt greu de produs i de modulat, nu se propag bine prin cldiri i sunt periculoase fiinelor vii. Benzile listate n partea de jos a Fig. 2-11 sunt numele oficiale ITU i se bazeaz pe lungimile de und, LF acoperind intervalul de la 1 Km la 10 Km (aproximativ de la 30 kHz la 300 kHz). Termenii de LF,MF i HF se refer la frecvenele joase, medii i respectiv nalte. Este evident c atunci cnd au fost date aceste nume, nimeni nu se atepta s foloseasc frecvene mai mari de 10 MHz. Benzile mai nalte au fost numite mai trziu benzi de frecven Foarte, Ultra, Super, Extrem i Extraordinar de nalte. Dincolo de aceste frecvene nu mai exist denumiri consacrate, dar am putea s folosim termeni de frecvene Incredibil, Uimitor i Miraculos de nalte. Cantitatea de informaie pe care o und electromagnetic o poate transporta este legat de lrgimea ei de band. Folosind tehnologia curent, este posibil s codificm civa bii pe Hertz la frecvene joase i deseori pn la 40 bii / Hz n anumite condiii, la frecvene nalte, deci un cablu cu

88

NIVELUL FIZIC

CAP. 2

lrgime de band de 500 MHz poate transporta mai muli gigabii / sec. Din Fig. 2-11 ar trebui s reias acum clar de ce oamenii care se ocup de reele apreciaz aa de mult fibrele optice.
f(Hz)10 IO2 10* 106 Radio 10 8 1010 1012 10U 10 16 UV 1018 10 20 1022 1024

Microunde

Infrarosu

RazeX

Raze Gamma

Lumin vizibil

f(Hz)10.'

IO5

106

IO7

IO8

IO9

1010

10"

1012

1013

1014

ir/

1016

Cablu torsadat Coax Radio Maritim J^J\ Radio


FM TV Band

Satelii 1 * Microunde terestre

Fibre optice

LF

MF HF VHF UHF SHF EHT THF

Fig. 2-11. Spectrul electromagnetic aa cum este folosit n comunicaii. Dac rezolvm Ec. (2-2) pentru/i o difereniem n raport cu lungimea de und, obinem

.-___ 2
dk~ X
Dac acum trecem la diferene finite n loc de difereniale i alegem doar valorile pozitive, obinem:

Astfel, fiind dat lrgimea unei benzi de lungimi de und, &k, putem calcula banda de frecven corespunztoare, A/, i, din aceasta, viteza de transfer de date pe care banda o poate produce. Cu ct banda este mai larg, cu att creste viteza de transfer a datelor. De exemplu, s considerm banda de 1.30 microni din Fig. 2-6. Aici avem A = 1.3 x IO"6 iAX = 0.17 x IO"6, cu A/ aproape 30 THz. Pentru a preveni un haos total, exist convenii naionale i internaionale relative la ce frecvene pot fi folosite i de ctre cine. Fiecare vrea o vitez de transmisie mai mare, adic vrea un spectru de frecvene mai larg. n Statele Unite, FCC aloca spectru pentru radio AM i FM, televiziune i telefoanele celulare i totodat pentru companiile de telefoane, poliie, navigaie, armat, guvern i muli ali competitori. Pe scar global, acest lucru l face o agenie a ITU-R (WARC). De exemplu, la ntlnirea din Spania din 1991, WARC a alocat echipamentelor de comunicaie portabile o anumit poriune din spectru. Din pcate, FCC, care nu este limitat de recomandrile WARC, a

(2-3)

c 2 3

COMUNICAIILE FR FIR

89

Ies o alt poriune din spectru (deoarece oamenii din Statele Unite care deineau banda respectiv au vrut s renune la ea i au avut o influen politic suficient). n consecin, echipamentele de comunicaie personale construite pe piaa S.U.A. nu vor funciona n Europa sau Asia i vice-versa. Majoritatea transmisiilor folosesc o band ngust de frecven {tflf 1) pentru a obine cea mai buna recepie (muli W/Hz). Oricum, n unele cazuri, transmitorul sare de la o frecven la alta n conformitate cu anumite reguli, sau transmisia este intenionat ntins pe o band de frecvent larg. Aceast tehnic se numete spectru mprtiat (spread spectrum) (Kohno 1995). Ea este foarte popular n comunicaiile armatei, deoarece face transmisia greu de detectat i aproape imposibil de bruiat. Saltul peste frecvene nu este de mare interes pentru noi (n afar de faptul c a fost co-inventat de actria de cinema Hedy Lamarr). Spectrele cu adevrat largi, numite uneori spectru mprtiat cu secven direct (direct sequence spread spectrum), ctig popularitate n lumea comercial i vom reveni la ele n capitolul 4. Pentru o istorie fascinant i detaliat a comunicaiilor n spectru larg, vezi (Scholtz, 1982). Pentru moment, vom considera c toate transmisiunile folosesc o band de frecven ngust. Vom discuta despre diferitele pri ale spectrului, ncepnd cu banda radio. 2.3.2 Transmisia radio Undele radio sunt uor de generat, pot parcurge distane mari, penetreaz cldirile cu uurin, fiind larg rspndite n comunicaii, att interioare ct i exterioare. Undele radio sunt de asemenea omnidirecionale, ceea ce nseamn c se pot propaga n orice direcie de la surs, deci nu este nevoie de o aliniere fizic a transmitorului i a receptorului. Uneori aceast proprietate de propagare omnidirecional este bun, alteori nu. n anii '70, General Motors a decis s echipeze noile sale Cadillac-uri cu un calculator care s previn blocarea frnelor. Atunci cnd oferul apsa pedala de frn, calculatorul frna treptat, n loc s preseze frna complet. ntr-o frumoas zi de var, un ofier de pe o autostrad din Ohio a nceput s-i foloseasc staia radio mobil pentru a chema sediul central i deodat Cadillacul situat n apropriere a nceput s se cabreze ca un cal slbatic. Atunci cnd ofierul a oprit maina, oferul a pretins c el nu a fcut nimic i c maina a nnebunit. n cele din urm a reieit c lucrurile se petreceau dup un anumit tipar: Cadillac-urile erau scpate uneori de sub control, dar numai pe marile autostrzi din Ohio i numai cnd patrula era n zona. Pentru o foarte lung perioad de timp, cei de la General Motors nu au neles de ce Cadillac-urile mergeau foarte bine n toate celelalte state, ca i pe strzile secundare din Ohio. Dup ndelungi cutri ei au descoperit c, n Cadillac, cablajul forma o anten foarte bun pentru frecvena folosit de noul sistem radio al poliiei rutiere din Ohio. Proprietile undelor radio sunt dependente de frecvene. La frecvene joase, undele radio se propag bine prin obstacole, dar puterea semnalului scade mult odat cu distana de la surs, aproximativ cu l/r3 n aer. La frecvene nalte, undele radio tind s se propage n linie dreapt i s sar peste obstacole. De asemenea, ele sunt absorbite de ploaie. Toate frecvenele radio sunt supuse la interferene datorate motoarelor i altor echipamente electrice. Datorit capacitii undelor radio de a se propaga pe distane mari, interferena dintre utilizatori devine o problem. Din acest motiv, toate guvernele acord cu foarte mare atenie licenele pentru utilizatorii de transmitoare radio, cu o singur excepie (discutat mai jos). In benzile de frecven foarte joase, joase i medii, undele radio se propag la sol, dup cum este

90

NIVELUL FIZIC

CAP. 2

ilustrat n Fig. 2-12(a). Aceste unde pot fi detectate pn la aproximativ 1000 Km pentru frecvene \ joase i mai puin pentru cele mai nalte. Difuzarea undelor radio AM folosete banda MF, acesta fiind motivul pentru care staia radio AM din Boston nu poate fi auzit cu uurin n New York. Undele radio n aceast band trec uor prin cldiri, fiind astfel posibil utilizarea radiourilor portabile n spaii interioare. Problema principal care apare la comunicarea de date la aceste frecvene este lrgimea relativ mic a benzii pe care o ofer [ vezi Ec. (2-2)]. n benzile nalte i foarte nalte, undele de la sol tind s fie absorbite de pmnt. Oricum, undele care ating ionosfera, un strat de particule care nvelesc atmosfera la o nlime de 100 pn la 500 Km, sunt refractate de aceasta i trimise napoi spre pmnt, dup cum arat Fig. 2-12(b). n anumite condiii atmosferice, semnalele pot parcurge acest drum de mai multe ori.

Und la suprafaa pmntului

Suprafaa pmntului
(a)

\s

\y ^^

Suprafaa pmntului
(b)

Fig. 2-12. (a) n benzile VLF, VF i MF, undele radio urmresc curbura pmntului, (b) n banda HF undele revin din ionosfera. Operatorii radio amatori folosesc aceste benzi pentru a realiza convorbiri la mare distan. De asemenea, armata comunic n benzile de und nalte i foarte nalte.
2.33 Transmisia prin microunde

Peste 100 MHz, undele se propag n linii drepte i pot fi, din acest motiv, direcionate. Concentrnd toat energia ntr-un fascicol ngust, cu ajutorul unei antene parabolice (ca o anten de satelit obinuit) rezult o valoare mult mai ridicat a ratei de semnal-zgomot, dar antenele care transmit i cele care recepioneaz trebuie s fie aliniate cu precizie una cu alta. n plus, faptul c aceste unde sunt orientate permite ca mai multe transmitoare s fie aliniate i s comunice cu mai multe receptoare fr interferene. naintea fibrelor optice, microundele au format, timp de decenii, inima sistemului telefonic de comunicaie pe distane mari. De fapt, numele companiei MCI provenea de la Compania de Comunicaii prin Microunde (Microwave Communication Inc.), deoarece ntregul ei sistem a fost iniial construit pe baz de turnuri de microunde (de atunci cea mai mare parte a fost trecut la reea cu fibr). Datorit faptului c microundele se propag n linii drepte, dac turnurile sunt foarte deprtate, atunci st n cale pmntul (gndii-v la o legtur ntre San Francisco i Amsterdam). De asemenea sunt necesare, periodic, repetoare. Cu ct turnurile sunt mai nalte, cu att repetoarele se pot afla la distane mai mari. Distana dintre repetoare crete aproximativ cu radicalul nlimii turnului. Pentru turnuri cu o nlime de 100 m, repetoarele se pot afla la distane de 80 Km. Spre deosebire de undele radio la frecvene joase, microundele nu trec bine prin cldiri. n plus cu toate c unda poate fi bine direciona la transmitor, apare o divergen n spaiu. Unele unde

COMUNICAIILE FR FIR
te

91

:i* refractate de straturile atmosferice joase i pot ntrzia mai mult dect undele directe. Undele "ifiziate pot sosi defazate fa de unda direct, anulnd astfel semnalul. Acest efect este numit re multi-ci (multipath fading) i constituie deseori o problem serioas. Este dependent de eme si de frecven. Unii operatori pstreaz nefolosit un procent de 10 la sut din canalul propriu nentru a putea comuta pe acesta atunci cnd atenuarea multi-ci anuleaz temporar anumite benzi de frecven. Cererea de spectre din ce n ce mai larg contribuie la mbuntirea tehnologiilor, astfel nct transmisia poate folosi frecvene i mai nalte. Benzi de pn la 10 GHz sunt acum uzuale, dar la aproape 8 GHz apare o nou problem: absorbia de ctre ap. Aceste unde sunt doar de civa centimetri lungime i sunt absorbite de ploaie. Acest efect ar fi fost potrivit pentru cineva care ar ncerca s construiasc un imens cuptor cu microunde n aer liber, dar pentru comunicaii este o problem dificil. La fel ca i n cazul atenurii multi-ci, singura soluie posibil este de a ntrerupe legturile acolo unde plou i s se gseasc o alt rut. Comunicaiile cu microunde sunt att de larg folosite de telefonia pe distane mari, telefoanele celulare, televiziune i altele, nct a aprut o criz n ceea ce privete spectrul. Microundele au mai multe avantaje semnificative fa de fibr. Cel mai important avantaj este c nu sunt necesare drepturi de acces la drum, cumprnd un mic teren la fiecare 50 Km i montnd un turn pe el, se poate ocoli sistemul telefonic i se poate realiza o comunicare direct. Astfel a reuit MCI s porneasc att de rapid ca o companie de telefoane pe distane mari. (Sprint a aplicat o alt tactic : a fost format de Southern Pacific Railroad (cile feroviare sudice), care deja deinea destule drepturi de acces i tot ce a avut de fcut a fost s ngroape fibra lng ine.) Comunicaiile cu microunde, prin comparaie cu alte medii de transmisie, sunt ieftine. Preul ridicrii a dou turnuri simple (doi stlpi nali asigurai cu patru cabluri) i de montare a unei antene pe fiecare turn, poate fi mai mic dect preul ngroprii a 50 de Km de fibr ntro zon urban foarte populat sau peste un munte i poate fi mai mic dect costul nchirierii fibrei de la o companie telefonic, mai ales atunci cnd acestea nu au pltit nc integral cuprul care a fost nlocuit cu fibr. n afar de utilizarea pentru transmisia pe distane mari, microundele mai au o alt aplicaie important i anume benzile industriale, tiinifice i medicale. Aceste benzi sunt o excepie de la regula acordrii licenelor: transmitoarele care folosesc aceste benzi nu necesit licene de la guvern. Este alocat global o singur band: 2.400-2.484 GHz. n plus n Statele Unite i Canada, exist benzi ntre 902-928 MHz i ntre 5.725 - 5.850 GHz. Aceste benzi sunt folosite de telefoanele fr fir, uile de garaj cu telecomand, boxe Hi-Fi fr fire, pori securizate etc. Banda de la 900 MHz funcioneaz cel mai bine, dar este suprasolicitat, iar echipamentul care o utilizeaz poate fi folosit numai n America de Nord. Benzile mai largi necesit un echipament electronic mai scump i sunt supuse la interferene datorate cuptoarelor cu microunde i instalaiilor radar. Nu mai puin adevrat este faptul c aceste benzi sunt foarte uzuale pentru diferite forme de reele fr fir pe arii restrnse, deoarece nu necesit procurarea unei licene.

2.3.4 Undele infraroii i milimetrice


Undele infraroii i milimetrice sunt larg folosite pentru comunicaiile pe distane reduse. Telecomenzile pentru televizoare, aparatele video i stereo folosesc comunicaiile n infrarou. Ele sunt relativ direcionale, ieftine i uor de construit, dar au un dezavantaj major: nu penetreaz

92

NIVELULFIZIC

CAP. 2;

obiectele solide (ncercai s stai ntre telecomand i televizor i vedei dac mai merge). n general, cum ne deplasm de la undele radio lungi ctre lumina vizibil, undele se comport din ce n ce mai mult ca lumina i din ce n ce mai puin ca unde radio. Pe de alt parte, faptul c razele infraroii nu trec prin obiecte constituie un avantaj. Aceasta nseamn c un sistem cu infraroii dintr-o camer a unei cldiri nu va interfera cu un sistem similar situat n camerele adiacente. Mai mult, protecia sistemelor cu infraroii mpotriva interceptrilor este mult mai bun dect sistemele radiofonice, exact din acest motiv. Datorit acestor motive, pentru operarea unui sistem cu infraroii nu este necesar procurarea unei licene, spre deosebire de sistemele radiofonice, care trebuie s dein o licen. Aceste proprieti au fcut din undele infraroii un candidat demn de luat n seam pentru LANurile interioare fr fir. De exemplu, calculatoarele i birourile dintr-o cldire pot fi echipate cu transmitoare i receptoare infraroii relativ nedirecionate (adic oarecum omnidirecionale). n acest fel, calculatoarele portabile cu posibiliti de comunicare prin infrarou pot face parte din reeaua local fr a fi nevoie s se conecteze fizic la ea. Atunci cnd mai muli oameni se prezint la o ntlnire cu calculatoarele lor portabile, ei pot sta ntr-o sal de conferine i s fie total conectai fr a ntinde cabluri. Comunicaiile cu infraroii nu pot fi folosite n exterior, deoarece soarele emite tot attea raze infraroii ct unde n spectrul vizibil. Pentru mai multe informaii despre comunicaiile cu infraroii vezi (Adams ct al., 1993; i Bantz and Bauchot, 1994). 2.3.5 Transmisia de undelor luminoase Semnalele optice neghidate au fost folosite secole ntregi. naintea faimoasei lui cltorii, Paul Revere a folosit semnale optice binare de la Old North Church. O aplicaie mai modern este conectarea reelei locale n dou cldiri prin intermediul laserului montat pe acoperiul lor. Semnalizarea optic folosind laserul este inerent unidirecional, deci fiecare cldire are nevoie de propriul ei laser i de propria ei fotodiod. Aceast schem ofer o band foarte larg la un cost foarte redus. De asemenea, este uor de instalat i, spre deosebire de microunde, nu necesit o licen FCC. Puterea laserului, un fascicol foarte ngust, este aici o slbiciune. ndreptarea unui fascicol de lumin de lmm lime ctre o int de 1 mm lime aflat la 500 de metri deprtare necesit o tehnic de vrf. De obicei, sunt introduse lentile pentru a defocaliza uor fascicolul. Un dezavantaj este c fascicolul laser nu penetreaz ploaia i ceaa groas, dar n mod normal ele funcioneaz bine n zilele nsorite. Oricum, autorul a participat odat ntr-un hotel modern din Europa la o conferin la care organizatorii conferinei s-au gndit s pun la dispoziie o camer plin cu terminale, n care participanii s-i poat citi pota electronic n timpul prezentrilor plictisitoare. Deoarece PTT-ul local nu dorea s instaleze un numr mare de linii telefonice doar pentru 3 zile, organizatorii au montat pe acoperi un laser orientat ctre cldirea departamentului de calculatoare al universitii de calculatoare aflat la o distana de civa kilometri. Ei l-au testat cu o noapte nainte i totul a decurs perfect. La ora 9, dimineaa urmtoare, ntr-o zi nsorit, legtura a czut i a rmas aa toata ziua. Seara, organizatorii au testat-o din nou cu atenie i a funcionat nc o dat perfect. Acelai lucru s-a ntmplat timp de dou zile consecutiv.

-,, , SEC. 2.4

SISTEMUL TELEFONIC

93

/
Fascicolul laser rateaz detectorul

Fotodetector /

Regiune de turbulen a vederii

Laser

t ^ t j - - ^ Cldura care se nal din cldire

Fig. 2-13. Curenii de convecie pot interfera cu sistemele de comunicaie prin laser. Aici este prezentat un sistem bidirecional, cu dou lasere. Dup conferin, organizatorii au descoperit problema. Cldura datorat soarelui din timpul zilei a determinat naterea unor cureni de convecie din acoperiul cldirii, ca n Fig. 213. Acest aer turbulent a deviat fascicolul i 1-a fcut s oscileze n jurul detectorului. Aceast vedere" atmosferic face ca stelele s plpie (acesta este motivul pentru care astronomii i pun telescoapele pe vrful munilor - s fie ct se poate de mult deasupra atmosferei). Efectul respectiv este responsabil i pentru tremurul" oselei ntr-o zi nsorit i a imaginii n Valuri' deasupra unui radiator fierbinte.

2.4

SISTEMUL TELEFONIC

Dou calculatoare ale aceleiai companii sau organizaii, aflate la mic distan, pot fi conectate simplu printr-un cablu, pentru a comunica ntre ele. Acesta este modul de funcionare al reelelor locale. Oricum, cnd distanele sunt mari sau sunt multe calculatoare ori cnd cablurile ar trebui s treac printr-un loc public, costul instalrii de cabluri particulare este aproape prohibitiv. Mai mult, n aproape toate rile din lume, instalarea de cabluri de-a lungul (sau pe sub) proprietile publice este ilegal. n consecin, proiectanii de reele trebuie s se bazeze pe facilitile de comunicaie existente.

94

NIVELUL FIZIC

CAP. 2

O astfel de facilitate este PSTN, (Public Switched Telephone Network - reea telefonic comutat public), care a fost proiectat cu muli ani n urm, n cu totul alt scop: transmisia vocii umane ntr-o form mai mult sau mai puin recognoscibil. Acest sistem nu este prea potrivit pentru comunicaiile ntre calculatoare, dar situaia se schimb rapid odat cu introducerea fibrelor optice i a tehnologiei digitale. n orice caz, sistemul telefonic este att de strns legat de reelele de calculatoare (larg rspndite geografic), nct merit s i acordm un studiu mai aprofundat. Pentru a vedea ordinul de mrime al problemei, s facem o comparaie scurt dar semnificativ ntre proprietile unei conexiuni tipice ntre calculatoare printr-un cablu local i printr-o linie telefonic. Un cablu care face legtura ntre dou calculatoare poate transfera date la viteza 7 8 memoriei, n mod tipic IO - IO bps. Rata de apariie a erorilor este de obicei att de mic, nct este greu de msurat, dar o eroare pe zi ar fi considerat mare pentru majoritatea instalaiilor. O eroare 12 13 pe zi la acele viteze este echivalent cu o eroare la IO - IO bii transmii. 4 Prin contrast, o linie telefonic are o viteza maxim de transfer de date de ordinul IO bps i o rat de apariie a erorilor cam de 1 la IO5 bii transmii, depinznd ntr-o anumit msur de vrsta echipamentului telefonic cu comutaie folosit. Produsul dintre rata de apariie a unei erori si viteza transferului de date ale unui cablu local este astfel cu 11 ordine de mrime mai bun dect pentru o linie telefonic. Pentru a face o analogie n domeniul transportului, raportul dintre costul ntregului proiect Apollo, cu ajutorul cruia oamenii au aterizat pe Lun,i costul unei cltorii cu autobuzul n ora este de aproape 11 ordine de mrime (exprimat n dolari la nivelul anului 1965: 40 miliarde la 0.40). Desigur, proiectanii de sisteme de calculatoare cheltuiesc mult timp i efort pentru a analiza cum pot fi acestea folosite ct mai eficient i au dificulti cu un sistem a crui performan (din punctul lor de vedere) este cu 11 ordine de mrime mai slab. Pe de alt parte, companiile telefonice au fcut eforturi considerabile n ultimul deceniu pentru mbuntirea echipamentului i a serviciilor n diferite zone. n seciunile care urmeaz vom descrie sistemele telefonice i vom prezenta istoria i viitorul lor. Pentru informaii suplimentare despre structura sistemelor telefonice vezi (Bellamy 1991). 2.4.1 Structura Sistemului Telefonic Atunci cnd Alexander Graham Bell a brevetat telefonul n 1876 (doar cu cteva ore naintea rivalului su, Elisha Gray), cererea pentru noua sa invenie a fost imens. Piaa iniial consta n vnzarea telefoanelor, existente numai sub form de perechi. Era la latitudinea clientului s ntind un fir ntre ele. Dac proprietarul unui telefon dorea s comunice cu ali n proprietari de telefoane, trebuiau folosite fire separate pentru conectarea tuturor celor n case. n mai puin de un an, oraele erau acoperite cu fire care treceau peste case i copaci ntr-o ncrengtur slbatic. A devenit imediat evident c modelul conectrii fiecrui telefon la fiecare alt telefon, ca n Fig. 2-14(a), nu va putea funciona. Bell a observat acest lucru i a nfiinat Bell Telephone Company, care a deschis primul oficiu cu comutare (n New Haven, Connecticut), n 1978. Compania a ntins un fir ctre casa sau biroul fiecrui client. Pentru a da un telefon, clientul lovea furca pentru a semnaliza sonor i a atrage astfel atenia operatorului, care apoi conecta manual cei doi clieni cu ajutorul unui cablu. Modelul unui oficiu de comutare este ilustrat n Fig. 2-14(b).

SEC. 2.4

SISTEMUL TELEFONIC

95

Destul de repede, oficiile de comutare Bell Systems au aprut peste tot i oamenii au simit nevoia unor convorbiri interurbane, oficiile Bell System ncepnd s se conecteze ntre ele. Problema "nitial a redevenit actual: conectarea fiecrui oficiu de comutare cu fiecare alt oficiu prin intermediul unui cablu a scpat rapid de sub control, fiind astfel inventate oficiile de comutare de nivelul doi. Dup un timp, au fost necesare mai multe oficii de nivelul doi, ca n Fig. 2-14(c). n cele din urm, ierarhia a ajuns pn la 5 nivele.

(a)

(b)

(c)

Fig. 2-14. (a) Reea conectat integral, (b) Comutator centralizat. (c) Ierarhie pe dou nivele. n 1890, cele trei componente majore ale sistemului telefonic erau puse la punct: oficiile de comutare, cablurile ntre clieni i oficiile de comutare (acum echilibrate, izolate, cablu torsadat n locul firelor neizolate, legate la pmnt) i legturile ntre oficiile de comutare pe distan lung. Cu toate c au aprut mbuntiri n toate cele trei domenii, modelul de baz al sistemului Bell a rmas esenialmente intact mai bine de 100 de ani. Pentru o scurt istorie a sistemului telefonic, vezi (Hawley 1991). n prezent, sistemul telefonic este implementat ca o ierarhie pe multe nivele cu un grad mare de redundan. Descrierea care urmeaz, dei foarte simplificat, conine totui esenialul. Fiecare telefon are dou fire de cupru conectate direct la cel mai apropriat oficiu final (deseori numit oficiu central local). Distana este n mod uzual ntre 1 i 10 Km, fiind mai mic n orae dect n zonele rurale. Numai n Statele Unite sunt peste 19,000 de oficii finale. Concatenarea codului zonei i a primelor trei cifre din numrul de telefon specific n mod unic un oficiu final. Legtura format de cele dou fire ntre un telefon i oficiul final este cunoscut n termeni tehnici sub numele de bucl local. Dac toate buclele locale din toat lumea ar fi fost puse cap la cap, ele ar acoperi distana de la pmnt la Lun i napoi de 1000 de ori. La un moment dat, 80 la sut din capitalul AT&T era constituit de cuprul din buclele locale. AT&T era atunci, de fapt, cea mai mare min de cupru din lume. Din fericire, acest ucru nu era prea mult cunoscut n lumea investiiilor. Dac s-ar fi cunoscut, AT&T putea fi cumprat, lichidate toate serviciile telefonice din Statele Unite, smuls tot cablul i vndut mei rafinrii de cupru pentru un profit imediat.

96

NIVELUL FIZIC

CAP. 2

Dac un abonat ataat la un anumit oficiu final apeleaz alt abonat ataat la acelai oficiu final, mecanismul de comutare din acel oficiu stabilete o legtur electric direct ntre cele dou bucle locale. Aceast legtur rmne intact pe toat durata convorbirii. Dac telefonul apelat este ataat la un alt oficiu final, trebuie folosit o alt procedur. Fiecare oficiu final are un numr de linii conectate la unul sau mai multe centre de comutare apropriate, numite oficii de taxare (sau dac sunt n aceeai zon local, oficii n tandem). Aceste linii se numesc trunchiuri de conectare la oficiile de taxare (toii connecting trunks). Dac se ntmpl ca att oficiul final al celui care apeleaz ct i al celui apelat s aib un trunchi de conectare ctre acelai oficiu de taxare (ceea ce este probabil dac sunt relativ apropriate), legtura poate fi stabil de ctre oficiul de taxare. O reea telefonic format din telefoane (punctele mici), oficii finale (punctele mari) i oficiile de taxare (ptratele) este prezentat n Fig. 2-14(c). Dac apelantul i apelatul nu au un oficiu de taxare n comun, calea va trebui s fie stabilit undeva mai sus n ierarhie. Oficiile de taxare sunt conectate prin intermediul unei reele formate din oficii primare, de seciune i regionale. Comunicaiile ntre oficiile de taxare, primare, de seciune i regionale se realizeaz prin intermediul trunchiurilor de comunicaie de band foarte larg. Varietatea centrelor de comutare i a topologiei acestora (pot dou oficii de seciune s fie conectate direct sau prin intermediul unui oficiu regional ?) difer de la o ar la alta n funcie de densitatea telefonic. Figura 2-15 prezint un mod posibil de a realiza o legtur pe distane medii.
Oficii de comutare intermediare

Telefon

Oficiu final

Oficiu de taxare

Oficiu de taxare

Oficiu final

Telefon

Bucl local

Trunchiuri de conectare la oficiile de taxare

Trunchiuri de band foarte larg ntre oficiile de taxare

Trunchiuri de conectare la oficiile de taxare

Bucl local

Fig. 2-15. O rut a circuitului uzual pentru o convorbire pe o distan medie In telecomunicaii sunt diverse medii de transmisie. In prezent buclele locale constau din cabluri torsadate, cu toate c, n primele zile ale telefoniei erau uzuale firele neizolate, aflate la o distana de
A.

25 cm ntre ele, la polii telefonului. Intre oficiile de comutare sunt larg folosite cablurile coaxiale, microundele i mai ales fibrele optice. n trecut, comunicarea n sistemul telefonic era analogic, semnalul vocal fiind transmis de la surs la destinaie sub forma unei tensiuni electrice. Odat cu apariia electronicii digitale i a calculatoarelor, a devenit posibil semnalizarea digital. n acest sistem sunt admise numai dou tensiuni, de exemplu -5 voli i 5 voli. Aceast tehnic are cteva avantaje fa de transmisiunea analogic. Primul este c, dei atenuarea i distorsiunea sunt mult mai severe n cazul transmiterii unui semnal pe dou nivele dect prin folosirea unui modem, este uor de calculat ct de departe se poate propaga un semnal astfel ca el s mai poat fi recunoscut. Acolo, poate fi inserat un regenerator digital, pentru a regenera semnalul la valoarea lui original, deoarece nu exist dect dou posibiliti. Un semnal digital poate

SISTEMUL TELEFONIC

97

gg p r - u n numr oarecare de regeneratoare digitale fr pierderi Q semnal i astfel s 'arcurg distane - mari fr pierderi de informaie. Prin contrast, semnalele analogice sufer totdeauna pierderi de informaie atunci cnd sunt amplificate i aceste pierderi se cumuleaz. Avantajul net este c transmisiunea digital prezint o frecven sczut a erorilor. Un al doilea avantaj al transmisiunii digitale este c vocea, datele, muzica i imaginea (de ex televizor, fax i video) pot fi suprapuse pentru a putea folosi mai eficient circuitele i echipamentele. Un alt avantaj este c simt posibile viteze mult mai mari de transfer al datelor pe liniile deja existente. Un al treilea avantaj este c transmisiunea digital este mult mai ieftin dect transmisiunea analogic, deoarece nu este necesar s se reproduc exact forma unei unde analogice dup ce aceasta s-a propagat prin sute de amplificatoare ntr-o convorbire intercontinental. Posibilitatea de a distinge corect ntre 0 i 1 este suficient. jn sfrit, ntreinerea este mai uoar n cazul unui sistem digital dect al unuia analogic. Un bit transmis este recepionat corect sau nu, fiind mai simpl depistarea problemelor. n consecin, toate trunchiurile pe distane mari din sistemul telefonic sunt rapid convertite la trunchiuri digitale. Sistemul vechi folosea transmisia analogic prin intermediul firelor de cupru; noul sistem folosete transmisia digital prin intermediul fibrelor optice. Pe scurt, sistemul telefonic const din trei componente majore: 1. Bucle locale (cablu torsadat, transmisie analogic). 2. Trunchiuri (fibre optice sau microunde, cele mai multe digitale). 3. Oficii de comutare. Dup o scurt prezentare a politicii n domeniul telefonic, vom studia aceste trei componente mai n detaliu. Ne vom ocupa de transmiterea datelor prin bucla local (un rspuns rapid: folosind un modem). Pentru trunchiurile pe distane mari, subiectul principal va fi gruparea mai multor convorbiri mpreun i trimiterea lor simultan. Subiectul se cheam multiplexare i vom studia trei modaliti diferite de multiplexare. n sfrit, exist dou moduri fundamental diferite de a face comutarea, aa c le vom studia pe amndou.

2.4.2 Politica din domeniul telefonic


Timp de mai multe zeci de ani, pn n 1984, Bell Systems a asigurat servicii att pe scurt ct i pe lung distan pe aproape toat suprafaa Statelor Unite. n anii 70, guvernul S.UA a ajuns la concluzia c acesta era un monopol ilegal i a hotrt s fl anuleze. Guvernul a ctigat pe 1 ianuarie 1984, AT&T fiind destrmat n AT&T Long Lines, 23 de companii BOC (Bell Operating Companies) i alte cteva pri. Cele 23 de companii BOC erau grupate n apte BOC regionale (RBOC) pentru a le face viabile din punct de vedere economic. ntreaga natur a telecomunicaiilor n Statele Unite a fost schimbat peste noapte de o hotrre judectoreasc (nu de un act al Congresului). Detaliile exacte ale acestei privaiuni sunt descrise n aa numita MFJ (Modifed Final Judgement, hotrre final modificat), un oximoron, n cazul n care a existat vreodat (dac hotrrea putea fi modificat, este evident c nu era final). Acest eveniment a condus la o cretere a competiiei, asigurarea unor servicii mai bune i preuri mai sczute adresate clienilor. Multe alte frjiaji n consideraie introducerea competiiei dup acelai model.

98

NIVELUL FIZIC

CAP. 2

S clarificm cum s-a putut atinge acest scop: Statele Unite au fost mprite n aproape 160 de LATA (Local Access and Transport Areas - zone de acces i transport locale). Pe scurt, o LATA acoper o suprafa cam la fel de mare ca un cod zonal. n cadrul unei LATA, exist de obicei un LEC (Local Exchange Carrier - transportator local), care deine monopolul pe un serviciu telefonic tradiional din interiorul LATA. Cele mai importante LATA sunt BOCurile, cu toate c unele LATA conin una sau mai multe din cele peste 1500 de companii telefonice independente care funcioneaz ca LEC-uri. ntr-un LATA care acoper o suprafa ntins (cele mai multe sunt n Vest), LEC-ul poate asigura convorbiri pe distane mari n cadrul aceleiai LATA dar nu poate asigura convorbiri ctre o alt LATA.
Primul oficiu de talare IXC Al doilea oficiu de taxare IXC

IXC pop Oficii tandem

Oficii finale

LATA1

LATA 2

LATA 3

' Fig. 2-16. Relaia dintre LATA-uri, LEC-uri i IXC-uri. Toate cerculeele sunt oficii de comutare LEC. Fiecare hexagon aparine cte unui IXC. Tot traficul inter-LATA este asigurat de un alt tip de companie, un IXC (IntereXchange Carrier - transportatorul inter-oficii). Iniial, AT&T Long Lines era singura companie IXC serioas, dar acum MCIj^Sgrint sunt competitori consacrai n domeniul IXC. Una dintre preocuprile care au aprut la aceast partajare a fost ca toate IXC s fie tratate egal. n ce privete calitatea liniilor, tarife i numrul de cifre pe care un client trebuie s le formeze pentru a le putea folosi. Modul n care acest lucru a fost ndeplinit este prezentat n Fig. 2-16. Aici vedem trei exemple de LATA, fiecare cu mai multe oficii finale. LATA-urile 2 i 3 au de asemenea o mic ierarhie format din oficii tandem (oficii intra-LATA). Orice IXC care dorete s asigure convorbiri provenite dintr-o LATA poate construi un oficiu de comutare, numit POP (Point of Presence - Punct de Livrare). LEC-ul trebuie s conecteze fiecare IXC la fiecare oficiu final, direct, ca n LATA 1 i 3, sau indirect, ca n LATA 2. Mai mult, condiiile n care se face aceast conectare, att tehnice ct i financiare, trebuie s fie aceleai pentru toate

SEC 2.4

SISTEMUL TELEFONIC

99

iXC-urile. n acest mod, un abonat din, szieem, LATA 1, poate alege ce IXC s foloseasc pentru aapela abonai din LATA 3. Printr-o clauz a MFJ, companiilor IXC le era interzis s ofere servicii telefonice locale i tuturor LEC le era interzis s ofere servicii telefonice inter-LATA, cu toate c amndou erau libere s intre n orice alt afacere, de exemplu deschiderea unor restaurante. n 1984, aceast declaraie era lipsit de ambiguiti. Din pcate, tehnologia are un fel de a face ca legea s par depit. Nici televiziunea prin cablu i nici telefoanele celulare nu erau acoperite de aceast nelegere. Atunci cnd televiziunea prin cablu a trecut de la forma unidirecional la bidirecional i a crescut brusc popularitatea telefoanelor celulare, att LEC-urile ct i IXC-urile au nceput s cumpere sau s se asocieze cu companiile din aceste domenii. n 1995, Congresul a observat c meninerea unei deosebiri ntre diferite tipuri de companii nu mai era posibil i a aprobat o not prin care permitea companiilor de cablu TV, companiilor telefonice locale, transportatorilor pe distane mari i operatorilor celulari s fac afaceri unul n domeniul celuilalt. Ideea era ca orice companie s poat oferi clienilor si un serviciu complet, cuprinznd cablul TV, telefon i servicii informaionale i c diferite companii ar putea concura n ceea ce privete calitatea serviciilor asigurate i preul acestora. Aceast not a fost legiferat n februarie 1996. n urma acestei hotrri, peisajul telecomunicaiilor n Statele Unite se afl n prezent n plin proces de restructurare radical. 2.43 Buclele locale n ultimii 100 de ani, transmisia analogic a dominat comunicaiile. n particular, sistemul telefonic a fost iniial bazat integral pe semnalizare analogic. n timp ce trunchiurile pe distane mari sunt acum n mare parte digitale, cu precdere n rile mai avansate, buclele locale sunt nc analogice i probabil vor rmne aa pentru nc un deceniu sau dou, datorit costului enorm de a le nlocui.
Echipamentul clientului Analogic (bucl local) Codor/ Digital (trunchiurile companiei telefonice) Echipamentul clientului

Decodor

Analogic (bucl local) Codor/ Decodor

Digital (cablu scurt)

Oficiu final

Oficiu de taxare

Oficiu final

Digital (cablu scurt)

Fig. 2-17. Conectarea ntre calculatoare folosete att a transmisia analogice ct i cea digital. Conversia este realizat de ctre modemuri i de ctre codoare/decodoare. In consecin, atunci cnd un calculator dorete s trimit date numerice pe o linie telefonic, datele trebuie s fie n prealabil convertite sub form analogic de ctre un modem, pentru a putea fi

.100

NIVELUL FIZIC

CAP. 2

transmise pe o bucl local, apoi convertit la date numerice, atunci cnd sunt transmise pe trunchiurile pe distane mari, apoi din nou la analogic, la captul care recepioneaz i, n final, din nou la digital de ctre un alt modem, pentru a putea fi memorate n calculatorul de destinaie. Aceast schem este prezentat n Fig. 2-17. Dei aceast situaie nu este ideal, ea va rmne pentru moment neschimbat i studenii care studiaz reelele ar trebui s neleag att transmisia analogic ct i cea digital, precum i cum se face conversia de la una la alta. Pentru liniile nchiriate este posibil folosirea semnalului digital de la un capt la altul, dar acestea sunt foarte scumpe i sunt utile numai pentru a construi reele private n interiorul unei companii. n subcapitolele care urmeaz vom arunca o scurt privire asupra problemelor transmisiei analogice i vom examina cum pot modem-urile s transmit date numerice folosind circuite analogice. De asemenea, vom face o prezentare a dou interfee uzuale pentru modem, RS232-CiRS-449.
Factori care afecteaz transmisiile

Semnalizarea analogic const n modificarea tensiunii electrice n funcie de timp, n scopul de a reprezenta un ir de date. Dac mediul de transmisie ar fi fost ideal, receptorul ar fi primit exact acelai semnal pe care 1-a expediat transmitorul. Din pcate, mediile nu sunt perfecte, semnalul recepionat nefiind identic cu semnalul transmis. Pentru datele numerice, aceste diferene pot conduce la erori. Liniile de transmisie ntmpin trei mari probleme: atenuarea, distorsiunea de ntrziere i zgomotul. Atenuarea reprezint pierderea n energie n timpul propagrii semnalului. Pentru mediile ghidate (de ex. cabluri i fibrele optice), semnalul se atenueaz logaritmic cu distana. Pierderea se exprim n decibeli pe kilometru. Energia pierdut depinde de frecvena semnalului. Pentru a vizualiza efectul acestei dependene de frecven, s ne imaginm un semnal nu ca o simpl und, ci ca o serie de componente Fourier. Fiecare component este atenuat diferit, ceea ce are ca rezultat la receptor un spectru Fourier diferit, rezultnd implicit un semnal diferit. Dac atenuarea este prea mare, receptorul poate s nu detecteze deloc semnalul, sau semnalul se poate ncadra sub limita de zgomot. In cele mai multe cazuri, proprietile de atenuare ale mediului sunt cunoscute, putnd fi folosii amplificatori care s compenseze atenuarea dependent de frecven. Aceast metod ajut, dar niciodat nu va putea restaura semnalul la forma lui original. Al doilea factor care compromite transmisia este distorsiunea n ntrziere. Acesta este determinat de faptul c diferite componente Fourier se propag cu diferite viteze. Pentru datele numerice, componentele mai rapide ale unui bit pot ajunge din urm componentele mai lente ale bitului anterior, mixnd cei doi bii i mrind astfel probabilitatea unei recepionri incorecte. Al treilea factor este zgomotul, care reprezint energie nedorit, provenit din alte surse dect transmitorul. Zgomotul termic este cauzat de micarea aleatorie a electronilor printr-o srm i nu se poate evita. Interferena este produs de cuplajul inductiv care se formeaz ntre dou fire care sunt apropriate unul de altul. Atunci cnd vorbim la telefon, putem auzi o alt conversaie n fundal. Aceasta este interferena. n sfrit, exist i zgomote de tip impuls, determinate de ocuri electrice sau de alte cauze. Pentru datele digitale, zgomotele de tip impuls pot duce la dispariia unuia sau a mai multor bii.

SEC. 2.4

SISTEMUL TELEFONIC

101

^ problemelor prezentate anterior, n special datorit faptului c att atenuarea ct i "t za de propagare sunt dependente de frecven, se dorete evitarea prezenei unui domeniu larg de frecvene ritr-un semnal.
t o r

"*'-

0 1

(O

(d)

Schimbri defaza

Fig. 2-18. (a) Un semnal binar, (b) Modularea n amplitudine, (c) Modularea n frecven, (d) Modularea n faz. Din pcate, undele ptratice, precum cele din datele numerice, au un spectru larg i, n concluzie, sufer o atenuare puternic i o distorsiune n ntrziere. Aceste efecte fac semnalizarea n banda de baz (CC) nepotrivit, atunci cnd nu se utilizeaz viteze mici i transmisia nu are loc pe distane scurte. Pentru a evita problemele asociate cu semnalizarea n band de baz (CC), n special pe liniile telefonice, se utilizeaz semnalizarea AC. Se introduce un ton continuu n domeniul 1000 - 2000 de Hz, numit und purttoare sinusoidal. Amplitudinea, frecvena sau faza acestei unde pot fi modulate. n modularea n amplitudine, sunt folosite dou nivele de tensiune pentru a reprezenta 0 i 1, respectiv. n modularea n frecven, cunoscut de asemenea sub denumirea de codare prin deplasarea frecvenei (frequency shift keying), se folosesc dou (sau mai multe) tonuri diferite. n

102

NIVELUL FIZIC

CAP. 2 I

varianta cea mai simpl a modulrii n faz, unda purttoare este sistematic comutat la intervale egale la 45,135,225, sau 315 grade. Fiecare schimbare de faz transmite 2 bii de informaie. Figura 2-18 ilustreaz cele trei forme de modulare. Un echipament care accept un ir serial de bii la intrare i produce un purttor modulat la ieire (sau vice-versa) se numete modem (modulatordemodulator). Modemul este inserat ntre calculatorul (digital) i sistemul telefonic (analogic). Atingerea unor viteze din ce n ce mai mari nu este posibil doar prin continua cretere a ratei de eantionare. Teorema lui Nyquist afirm c, chiar i pentru o linie ideal de 3000 de Hz ( ceea ce nu e cazul pentru o linie telefonic), eantionarea la o frecvena mai mare dect 6000 Hz este lipsit de interes. n consecin, toate cercetrile pentru obinerea unor modemuri mai rapide sunt orientate ctre transmiterea mai multor bii pe eantion (pe baud).

77

15

(a)

(b)

Fig. 2-19. (a) modularea 3 bii / baud. (b) modularea 4 bii / baud.
Cele mai performante modemuri folosesc o combinaie de tehnici de modulare pentru a transmite mai muli bii pe baud. n Fig. 2-19(a), vedem puncte la 0,90,180 i 270 de grade, cu dou niveluri de amplitudine pe faz. Amplitudinea este indicat prin distana fa de origine, n Fig. 2-19(b) vedem o schem diferit de modulare, n care sunt folosite 16 combinaii de amplitudine i diferene de faz. Astfel Fig. 2-19(a) are opt combinaii posibile i poate fi folosit pentru a transmite 3 bii pe baud. Prin contrast, Fig. 2-19(b) are 16 combinaii valabile i poate fi folosit astfel la transmiterea a 4 bii pe baud. Schema din Fig. 2-19(b) este numit QAM (Quadratwre Amplitude Modulation - modulaia cuadratic toamplitudine) atunci cnd este folosit pentru transmisia a 9600 bii pe secund pe o linie de 2400 baud. Diagramele de genul celor din figura 2-19, care reprezint combinaiile posibile de amplitudine i faz, sunt numite tipare de constelaii. Fiecare standard de modem de viteze nalte are propriul lui tipar de constelaie i poate comunica numai cu alte modemuri care folosesc acelai standard (cu toate c majoritatea modemurilor pot simula modemuri mai lente). Standardul modemului ITU V.32 9600 bps folosete de exemplu tiparul de constelaie din Fig. 2-19(b). Urmtorul pas peste 9600 bps este 14.400 bps. Este numit V.32 bis. Aceast vitez este atins prin transmiterea a 6 bii pe eantion la o rat de 2400 baud. Tiparul de constelaie are 64 de puncte.

c 2 4

SISTEMUL TELEFONIC

103

^-modemurile folosesc aceast vitez pentru a transmite pagini care au fost scanate ca o hart de ""bii Dup V.32 bis urmeaz V.34, care atinge 28.800 bps. [t< ^- = ot00 ' Cu attea puncte n tiparul de constelaie, chiar i un mic nivel de zgomot detectat n amplitudine sau faz poate conduce la o eroare, deci la 6 bii eronai. Pentru a reduce posibilitatea de a obine o eroare, multe modemuri adaug un bit de paritate, rezultnd tipar de constelaie de 128 de puncte. Codarea punctelor se face cu atenie, pentru a maximiza ansa de a detecta erorile. Codificarea care face acest lucru se numete codificare matricial (trellis coding). O metod cu totul diferit pentru a atinge transmisiuni la viteze mari este mprirea spectrului de 3000 Hz n 512 benzi nguste i transmiterea s zicem la o rat de 20 bps, pe fiecare din ele. Aceast schem cere ca modemul s conin un procesor performant, dar are avantajul c este capabil s anuleze anumite benzi de frecven care sunt prea zgomotoase. Modemurile care folosesc aceast tehnic au, de obicei, i caracteristici V.32 i V.34, deci pot comunica cu modemurile standard. Multe modemuri prezint faciliti de compresie i de corectare a erorilor. Marele avantaj al acestei tehnici este c facilitile respective mbuntesc viteza efectiv de transmisie a datelor fr a fi nevoie s se fac modificri n programele existente. O schem de compresie foarte utilizat este MNP 5, ce folosete o codificare prin care se nlocuiete o secven de bii identici cu numrul de apariii al acestor bii. Fax-modemurile folosesc aceast codificare, deoarece secvene de 0 (blanc) sunt foarte obinuite. O alt schem este V.42 bis, care folosete algoritmul de compresie ZivLempel folosit n Compress i n alte programe (Ziv i Lempel, 1977). Chiar i atunci cnd sunt folosite modemurile, o alt problem poate aprea pe liniile telefonice: ecourile. Pe o linie lung, atunci cnd semnalul atinge destinaia final, o parte din energie se poate reflecta, asemenea ecourilor acustice n muni. Pentru a ilustra ecourile electromagnetice, ncercai s orientai noaptea lumina unei lanterne dintr-o camer ntunecat spre geam. Vei vedea o reflexie a razei de lumin n geam (o parte din energie a fost reflectat la suprafaa de separaie dintre aer i sticl i a fost trimis napoi n camer).Acelai lucru se ntmpl i cu liniile de transmisie, mai ales acolo unde buclele locale ajung la oficiile finale. Efectul acestui ecou este c o persoan care vorbete la telefon i aude dup o scurt perioad de timp propriile lui cuvinte. Studii psihologice au artat c acest lucru este suprtor pentru mult lume, producnd deseori confuzii. Pentru a elimina problema ecourilor, pe liniile mai lungi de 2000 Km sunt instalate uniti de suprimare a ecoului. (Pe liniile scurte ecourile se ntorc att de repede nct oamenii nu sunt deranjai de ele.) O unitate de suprimare a ecoului este un echipament care detecteaz vorbirea uman venind de la un capt i suprim toate semnalele care se propag n cealalt direcie. Acesta este de fapt un amplificator care poate fi activat sau nu de un semnal de control generat de un circuit de detectare a vorbirii. Atunci cnd prima persoan termin de vorbit i ncepe a doua persoan, unitatea de suprimare a ecoului i schimb direcia. O unitate bun de suprimare a ecoului poate face aceast comutare ntr-un interval de timp de 2 pn la 5 milisecunde. Oricum, n timp ce funcioneaz, informaia se poate scurge ntr-o singur direcie; ecourile nu se pot ntoarce la cel care trimite. Figura 2-20(a) prezint starea unitii de suprimare a ecoului cnd A vorbete lui B. Figura 2-20(b) prezint starea dup ce B a nceput s vorbeasc.

104

NIVELUL FIZIC

CAP. 2

Circuit din dou fire


Suprimarea ecoului (a)

(b)

Fig. 2-20. (a) A vorbind cu B. (b) B vorbind cu A Unitile de suprimare a ecoului au cteva proprieti nedorite pentru comunicaiile de date. n primul rnd, dac nu ar fi fost prezente, ar fi fost posibil s se transmit n amndou direciile simultan, prin folosirea unor benzi de frecven diferite pentru fiecare direcie. Aceast abordare se numete transmisie duplex integral. In cazul unitilor de suprimare a ecoului, transmisiunea duplex integral este imposibil. Alternativa este transmisia semi-duplex, n care comunicaia se poate face n amndou direciile, dar la momente diferite. O singur in de cale ferat este semi-duplex. Dei comunicarea semi-duplex este adecvat, aceasta este suprtoare, deoarece timpul necesar pentru a schimba sensul poate fi mare. Mai mult, unitile de suprimare a ecoului sunt proiectate s se comute n funcie de detecia vocii umane, nu a datelor numerice. Pentru a evita aceste probleme, circuitele telefonice cu uniti de suprimare a ecoului au fost dotate cu o u de siguran. Cnd aceste uniti recepioneaz un ton clar la o frecven de 2100 Hz, ele se nchid automat i rmn aa att timp ct acest purttor este prezent. Aceast schem este unul din multele exemple de semnalizare n band, numite astfel deoarece semnalele de control care activeaz i dezactiveaz funciile de control intern se afl n banda accesibil utilizatorului. n general, tendina este de a evita semnalizarea n band, pentru a preveni interferena utilizatorilor cu funcionarea sistemului. n Statele Unite, cele mai multe din semnalizrile n band au disprut, dar n alte ri nc exist. O alternativ la unitile de suprimare a ecoului sunt unitile de anulare a ecoului. Acestea sunt circuite care simuleaz ecoul, estimeaz mrimea lui i l scad din semnalul pe care l transmite, fr a fi necesare relee mecanice. Cnd sunt folosite uniti de anulare a ecoului, este posibil operaia duplex integral. Din acest motiv, n Statele Unite i n alte mari ri, unitile de anulare a ecoului nlocuiesc rapid unitile de suprimare a ecoului.

SISTEMUL TELEFONIC

105

Interfaa dintre calculator sau terminal i modem este un exemplu de protocol al nivelului fizic. Aceasta trebuie s specifice n detaliu interfaa mecanic, electric, funcional i procedural. Vom 'arunca acum o privire mai atent pe dou standarde binecunoscute ale nivelului fizic: RS-232-C i succesorul suRS-449. S ncepem cu RS-232-C, care reprezint a treia revizie a standardului RS-232. Standardul, al crui nume complet este EIA RS-232-C Electronic Industries Association (Asociaia Industriilor Electronice), o organizaie format din productori de echipamente electronice. Versiunea internaional este dat de recomandarea CCITT V.24, este uor diferit de standardul menionat, pentru unele circuite folosite mai rar. In standarde, terminalul sau calculatorul este numit DTE (Data Terminal Equipment - Echipament Terminal de Date) iar modemul este numit oficial DCE (Data Circuit-Terminating Equipment - Echipament de Terminare a Circuitului de Date). Specificaia mecanic se refer la un conector de 25 de pini, cu o lime de 47,04 +/- 0.13 mm (ntre axele uruburilor), toate celelalte dimensiuni fiind specificate la fel de riguros. Rndul de sus conine pinii numerotai de la 1 la 13 (de la stnga la dreapta); rndul de jos are pinii numerotai de la 14 la 25 (de asemenea de la stnga la dreapta). Specificaiile electrice pentru RS-232-C precizeaz c tensiunea negativ sub -3 voli se reprezint prin 1 binar i o tensiune mai mare de +4 voli este un 0 binar. Sunt permise viteze de transfer al datelor de pn la 20 Kbps i cabluri de lungimi pn la 15 metri.

mpmntare (1) Transmisie (2) Recepie (3) Cerere de transmisie (4) Calculator sau terminal Gata de transmisie (5) Modem pregtit (6) Legtur bidirecional (7) Purttoare detectat (8) Terminal pregtit (20) Modem

Fig. 2-21. Cteva dintre circuitele principale ale RS-232-C. Numerotarea pinilor este dat n paranteze. Specificaiile funcionale indic semnificaiile circuitelor conectate la fiecare din cei 25 de pini ai conectorului. Figura 2-21 prezint 9 pini care sunt prezeni aproape ntotdeauna. Ceilali sunt omii frecvent. Atunci cnd terminalul sau calculatorul este pus n funciune, el activeaz (seteaz pe 1 logic) Terminal Pregtit (Terminal Ready)(pinul 20). Atunci cnd modemul este pus n funciune, seteaz Modem Pregtit (Data Set Ready) (pin 6). Atunci cnd detecteaz un purttor pe linia telefonic, modemul activeaz Purttoare Detectat (Carrier Detected) (pin 8). Semnalul Cerere de Transmisie (Request to send) (pin 4) indic faptul c terminalul dorete s transmit date. Semnalul

106

NIVELUL FIZIC

CAP.2'

Gata de Transmisie (Qear to Send) (pin 5) arat c modemul este pregtit s accepte date. Datele sunt transmise pe circuitul de Transmisie (pin 2) i recepionate pe circuitul de Recepie (pin 3). Exist, de asemenea, alte circuite pentru a selecta viteza de transfer al datelor, testarea modemului, sincronizarea datelor, detectarea apelurilor i trimiterea datelor n direcia opus, pe un canal secundar. Ele sunt rareori folosite n practic.
RS-232-C

Circuit Cod Pin 1 Mas de protecie AA AB 7 Mas semnal

CCITTV.24 Circuit Cod Pin 101 1 Mas de protecie 102 7 Mas semnal

Cod S ~ G SC

BA BB CA CB

2 Date transmise 3 Date recepionate 4 Cerere de transmisie 5 Gata de transmisie CC 6 Modem pregtit CD 20 Terminal pregtit CE 22 Indicator de sonerie CF 8 Detector de linie CG 21 Calitatea semnalului CH 23 rata DTE CI 18 rata DCE

103 104 105 106 107 108 125 109 110 111 112 136 126 113 114 115 118 119 120 121 122

2 3 4 5 6 20

22

8 21 23 18

Date transmise Date recepionate Cerere de transmisie Gata de transmisie Modem pregtit Terminal pregtit Indicator de apel Detector de linie Calitatea semnalului rata DTE rata DCE Apel nou Frecvent de selecie Sincronizare DTE Sincronizare DCE Sincronizarea receptorului Date transmise Date recepionate Semnal de linie Canal pregtit Detector de linie

RC SD RD
RS CS

DM TR IC RR
SQ SR l !S NS SF TT ST RT SSD SRD SRS SCS SRR

24 Sincronizare DTE DB 15 Sincronizare DCE DD 17 Sincronizarea receptorului SBA 14 Date transmise SBB 16 Date recepionate SCA 19 Cerere de transmisie SCB 13 Gata de transmisie { SCF 12 Detector de linie
f

DA

11 24 15 17 14 16 19 13 12

Pin 1 19 37 20 4,22 6,24 7,25 9,27 11,29 12,30 15 13,31 33 16 2 28 34 16 17,25 5,23 8,26 3 4 7 8 2 10 14 18

RS - 449 Circuit Mas semnal tetur comun pentru transmisie Retur comun pentru recepie ransmite date Primete date Cerere de transmisie Gata de transmisie modul date Terminal Pregtit Apel Receptor Pregtit Calitatea semnalului Rata de semnalizare ndicatori de semnalizare Terminalul lucreaz Apei nou Frecvent de selecie Sincronizarea terminalului Sincronizarea transmisiei Sincronizarea recepiei Transmite date Recepioneaz date Cerere de transmisie Gata de transmisie Receptor pregtit

LL RL TM
SS SB

Bucl local Bucl la distan modui test 32 Selecteaz pregtit 36 Indicator pregtit

Fig. 2-22. Comparaie ntre RS-232-C, V .24 i RS-449 Specificaia procedural reprezint protocolul, adic secvena legal a evenimentelor. Protocolul se bazeazz pe perechi aciune-reaciune. De exemplu, atunci cnd terminalul specific Cerere de Transmisie, modemul rspunde cu Gata de Transmisie, n cazul n care este capabil s accepte date. Perechi aciune-reaciune similare exist i pentru alte circuite. Deseori, este necesar ca dou calculatoare s fie conectate folosind RS-232-C. Deoarece nici unul nu este modem, apare o problem de interfa. Aceast problem este rezolvat prin conectarea lor cu un echipament numit modem nul, care conecteaz liniile de transmisie ale unei maini la liniile de

SISTEMUL TELEFONIC
pic aleeeleflalte. Modemul nul conecteaz totodat, ntr-un mod similar, i unele din celelalte Unii. Un modem nul arat ca un cablu scurt. RS-232-C exist de ani de zile. Treptat, limitarea vkezejje^n^r_aldatelor la numai 20 Kbps 4 a l u n c i i cablului la maximum 15 metri a devem7dn~l^r m le~ln^ dezbtut pe larg dac s introduc un nou standard care s fie compatibil cu cel vechi (dar nu foarte avansat din punct de vedere tehnic) sau un standard nou i i n c o m p a t i b i l e s acopere nevoile - mJ ce vor urma. Ei au ajuns n cele din urm la un compromis, prin alegerea ambelor variante = Noul standard, numit RS-449, reprezint, de fapt, trei standarde ntr-unui singur Interfeele mecanice, funcionale i procedurale sunt date de RS-449, dar interfaa electric este dat de dou standarde diferite. Primul dintre acestea, RS-423-A, este similar cu RS-232-C prin faptul c toate arcuitele mpart aceeai mpmntare. Aceast tehnic este numit transmisie neechilibrat n schimb, al doilea standard electric, RS-422-A, folosete transmisia echilibrat, n care fiecare circuit m&pd n e c e s i t d o u fre ' f r mpmntare comun. Ca rezultat, RS-422-A poate fi folosit la l la c c viteze viteze de pn 2^EhSB^^S^SJ^hM^ J^^ Qviteze de pn p 2^EhSB^^S^SJ^hM^ J^^BMB Circuitele folosite n RS-449 sunt prezentate toFig. 2-22." Au fost adugate mai multe circuite care nu sunt prezente n RS-232-C. In particular, au fost introduse circuite de testare att a modemului local ct i a celui de la distan. Datorit introducerii unui numr de circuite noi (atunci cnd este folosit RS-422-A), n noul standard sunt necesari mai muli pini, vechiul standard de 25 de pini fiind nlocuit. In locul lui a aprut uncone^oj^eJ7jinLi un: conectorde 9 pini Conectorul de 9 pini este necesar numai dac se utilizeaz canalul secundar. " 4j " '

Fibrele optice n bucla local


Pentru serviciile evoluate ale viitorului, cum ar fi video la cerere, canalul curent de 3 kHz nu va mai face fa. Discuiile despre posibilele soluii s-au concentrat pe dou variante. Soluia direct conectarea fiecrei case la oficiul final, folosind o fibr numit FITH (Fiber To The Home fibr ctre cas). Soluia se potrivete cu sistemul actual, dar nu va fi fezabil din punct de vedere economic decenii ntregi. Pur i simplu este prea scump. O alternativ mult mai ieftin este FTTC (Fiber To The Curb - Fibr ctre vecintate) n acest model, compania telefonic instaleaz-o fibr optic de la fiecare oficiu final la fiecare vecintate the curb pe care o deservete (Paff, 1995). Fibra se termin cu o cutie de jonciune, n care X oa e buc ele locale. Deoarece buclele locale sunt acum mult mai scurte (probabil ioo de metri n loc de 3 Km), ele pot suporta viteze de transmisie mai nalte, n jur de 1 Mbps, exact ct este nevoie pentru compresia video. Aceast schem este prezentat n Fig. 2-23(a)

^Z !

1 61 m a l t e
i

m t e n a telefonica este daca sa se utilizeze pentru nceput soluia intermediar FTTC sau dac ar trebui sa se implementeze de la bun nceput FTTH.

T * ^& ^ P W " ^ torsadate actuale Deci toate fe M M tQ treptat prin fbre te vor t r d s ds fe tQtreptat prin fbre p rpb i e m a erefo , ? TT -- i * * *^ ^ - ii
PS dlStSne m a n eSte 0 8 cu

a la 1000 de abonai, costul pe abonat poate fi redus i totodat poate fi asigurat o

n Z T ^ ^ f ****** * *
mai mare dect

i ^

id

(SaU

^^

()

Camle

0 ^ ^ ut 6 1i h ^ ) * pot transmite pe fibr la mUndfbre tice

* 1 ^bps

actual Depirea s e m

108

NIVELUL FIZIC

CAP. 2^

Oficiu de Trunchiuri din fibr Cutie de comutare de band larg jonciune

Cas

ii! [BIS]

Cablu torsadat din cupru (a)

!!::

Comutator

Trunchiuri din fibr de band larg

Cablu TV

din cupru

JCutie de jonciune

Cas

(b) Fig. 2-23. Fibr ctre fiecare vecintate, (a) Folosind sistemul telefonic, (b) Folosind reeaua de cablu TV. n Fig. 2-23(b) este prezentat o schem alternativ folosind infrastructura de cablu TV existent. Aici este folosit, n loc de conectarea punct la punct, caracteristic sistemului telefonic, un cablu cu mai multe ieiri (multidrop cable). Este de ateptat ca amndou schemele din Fig. 2-23(a) i Fig. 2-23(b) s coexiste n viitor, deoarece companiile telefonice i cele de cablu TV vor deveni competitori n ceea ce privete oferta de servicii de voce, date i chiar de televiziune. Pentru mai multe informaii legate de acest subiect, vezi (Cook i Stern, 1994; Miki, 1994b; i Mochida, 1994). 2.4.4 Trunchiuri i multiplexare Economia rezultat din scalabilitate joac un rol important n sistemul telefonic. Instalarea i ntreinerea unor trunchiuri de band larg ntre dou oficii de comutare cost cam tot att ct instalarea i ntreinerea unui trunchi de band joas (costul provine de la sparea anului, nu de la

SEC. 2.4

SISTEMUL TELEFONIC

109

gj de cupru sau de la fibra optic). n consecin, companiile telefonice au dezvoltat metode sofisticate pentru multiplexarea mai multor convorbiri pe aceeai magistral fizic. Aceste metode de multiplexare se pot mpri n dou categorii principale: FDM (Frequency Division Multiplexing - Multiplexare cu Divizare n Frecven) i TDM (Time Division Multiplexing - Multiplexare cu Divizare n Timp). La FDM spectrul de frecven este mprit n mai multe canale logice, cu fiecare utilizator avnd drepturi exclusive asupra unei anumite benzi de frecven. La TDM utilizatorii i ateapt rndul (ntr-un mod repetat), fiecare utilizator obinnd pentru o scurt perioad de timp ntreaga band de frecven. Difuzarea radio AM prezint amndou metodele de multiplexare. Spectrul alocat este de aproape 1 MHz, aproximativ ntre 500 i 1500 de kHz. Pentru diferite canale logice (staii) sunt alocate frecvene diferite. Fiecare canal logic opereaz ntr-un anumit domeniu al spectrului, distanele ntre canale fiind destul de mari pentru a preveni interferena. Acest sistem este un exemplu de multiplexare prin divizarea frecvenei. n plus (n unele ri), staiile individuale au dou subcanale logice: muzic i publicitate. Acestea dou alterneaz n timp pe aceeai frecven, la nceput muzic i dup un timp o secven de reclame, apoi din nou muzic i aa mai departe. Aceast situaie se numete multiplexare prin divizare n timp. n continuare, vom studia multiplexarea prin divizarea n frecven. Dup aceea vom analiza cum se poate aplica FDM fibrelor optice (multiplexare prin divizarea lungimii de und). Apoi ne vom ntoarce la TDM, iar n final vom studia un sistem TDM avansat folosit n fibrele optice (SONET).
Multiplexarea prin divizarea n frecven

Figura 2-24 ne prezint cum sunt multiplexate trei canale de band vocal folosind FDM.
Canal 1 1

CD 3 C 0)

Canal 2

Canal 2 Canal 1 Canal 3

o o
O CD

60 Canal 3

64

68

72

Frecven (kHz) (O

300

3100

60

64

68

Frecven (Hz) (a)

Frecven {kHz) (b)

Fig. 2-24. Mutliplexarea prin divizare n frecven, (a) Banda de frecven iniial, (b) Banda deplasat n frecven, (c) Canalul multiplexat.

110

NIVELUL FIZIC

CAP. 2 1 I

Filtrele limiteaz lrgimea de band folosit la 3000 de Hz pe canal de band vocal. Atunci i cnd sunt multiplexate mpreun mai multe canale, fiecrui canal i sunt alocai 4000 de Hz, astfel nct canalele s fie bine separate. Mai nti canalele de voce sunt ridicate n frecven, fiecare cu o mrime diferit. Apoi ele pot fi combinate, deoarece nu exist dou canale care s ocupe aceeai zon a spectrului. Este de remarcat c, dei exist spaii (spaii de gard) ntre canale, are loc o suprapunere ntre canalele adiacente, deoarece filtrele nu au marginile abrupte. Aceast suprapunere nseamn c un semnal puternic la captul unui canal va fi simit n canalul adiacent ca un zgomot non-termic. Schemele FDM folosite pe glob sunt, pn la un anumit nivel, standardizate. Un standard foarte folosit este dat de 12 canale vocale a 4000 Hz (3000 Hz pentru utilizator, plus doua benzi de gard de 500 de Hz fiecare) multiplexate n banda de 60 pn la 108 kHz. Aceast unitate este numit un grup. Banda 12 - 60 kHz este uneori folosit de un alt grup. Multe companii ofer clienilor un serviciu de linie nchiriat de 48 pn la 56 kbps, bazat pe un grup. Cinci grupuri (60 de canale vocale) formeaz un super-grup. Urmtoarea unitate este un master-grup, care este format din cinci super-grupuri (n standardul CCITT) sau zece super-grupuri (sistemul Bell). Exist alte standarde care cuprind pn la 230.000 canale vocale. Multiplexarea prin divizarea lungimii de und Pentru canalele de fibr optic, se utilizeaz o alternativ a multiplexrii prin divizarea frecvenei. Aceasta se numete WDM (Wavelength Division Multiplexing - Multiplexarea prin Divizarea lungimii de und). Un mod simplu de a utiliza FDM pe fibre este prezentat n Fig. 2-25. Aici dou fibre se ntlnesc la nivelul unei prisme (sau mai degrab o gril de difracie), fiecare cu energia proprie ntr-o band diferit. Cele dou raze sunt trecute prin prism i combinate ntr-o singur fibr comun pentru a fi transmise ctre o destinaie deprtat, unde ele sunt din nou mprite. Aici nu este de fapt nimic nou. Atta timp ct fiecare canal are propriul lui domeniu de frecven i toate aceste domenii sunt disjuncte, ele pot fi multiplexate mpreun pe o fibr de distan mare. Singura diferen fa de FDM electric este c un sistem optic care folosete o suprafa de difracie este total pasiv i, de aceea, foarte sigur. Este de remarcat c motivul popularitii att de mari a WDM-ului este c energia pe o singur fibr este, de obicei, de numai civa gigaheri, deoarece este imposibil s se fac momentan mai rapid conversia de la mediul electric la cel optic. Din moment ce banda de frecven a unei singure fibre este de aproximativ 25.000 GHz (vezi Fig. 2-6), exist un mare potenial pentru multiplexarea mai multor canale pe traseele lungi. Oricum, ca o condiie necesar, canalele de intrare trebuie s foloseasc frecvene diferite. O posibil aplicaie a WDM-ului este n sistemele FTTC descrise anterior. Iniial, o companie telefonic putea instala o fibr optic de la fiecare oficiu final la fiecare cutie de jonciune de vecintate unde se ntlnea cu cablurile torsadate de la locuine. Dup civa ani, atunci cnd costul fibrei este mai sczut i cererea de fibre este mai mare, cablurile torsadate pot fi nlocuite cu fibre i toate buclele locale pot fi reunite pe fibra care le conecteaz la oficiul final folosind WDM. n exemplul din Fig. 2-25, avem un sistem fix de lungimi de und. Bii din fibra 1 trec n fibra 3 i bii din fibra 2 trec n fibra 4. Este imposibil s avem bii care s treac din fibra 1 n fibra 4. Totui, este de asemenea posibil s construim sisteme WDM care sunt comutate. ntr-un asemenea echipament, exist multe fibre la intrare i multe fibre la ieire i datele de la orice fibr de intrare

.SEC 2.4

SISTEMUL TELEFONIC

IU

aitifl^e la orice fibr de ieire. De obicei, cuplajul este o stea pasiv, cu fiecare raz de lumin de ^i fecaw fibr de intrare iluminnd steaua. Cu toate c prin difuzarea ctre n ieiri, energia se f - n u e a z cu un factor n, astfel de sisteme sunt practice pentru sute de canale.
Spectrul

Spectrul fibrei 1

Spectrul fibrei 2

fibrei folosite

n comun

O.

Prism sau gril de defractie

Fibr folosit n comun

Fig. 2-25. Multiplexarea prin divizarea lungimii de und Desigur, dac lumina provenit din fibra de la intrare este de 1,50206 microni i trebuie s ajung la toate fibrele de la ieire, atunci toate fibrele de la ieire au nevoie de filtre ajustabile, astfel nct fibra selectat s se poate stabili automat la 1,50206 microni. Astfel de filtre optice ajustabile pot fi construite din interferometre Fabry-Perot su Mach-Zender. Alternativ, fibrele de la intrare pot fi ajustabile iar cele de la ieire fixe. Cheltuiala suplimentar datorat utilizrii fibrelor ajustabile att la intrare ct i la ieire este rareori motivat.
Multiplexarea prin divizarea n timp

Cu toate c FDM este folosit nc pe firele de cupru sau canalele de microunde, ele necesit circuite analogice i nu poate fi fcut de ctre un calculator. Din contr, TDM-ul poate fi n ntregime tratat de electronica digital, devenind mult mai rspndit n ultimii ani. Din pcate, TDM-ul poate fi folosit numai pentru date digitale. Deoarece buclele locale produc semnale analogice, este necesar o conversie de la analogic la digital n oficiul final, unde toate buclele locale individuale se ntlnesc pentru a forma o magistral. Vom arunca acum o privire asupra modului n care mai multe semnale vocale analogice sunt digitizate i se reunesc pentru a forma o singur magistral digital. (inei minte c datele trimise de un calculator prin modem sunt tot analogice cnd ajung la oficiul final). Semnalele analogice sunt digitizate n oficiul final de un echipament numit codec (codificator/ decodificator), producnd un numr de 7-8 bii (vezi Fig. 2-17). Codec-ul realizeaz 8000 de eantioane pe secund (125 usec/eantion), deoarece teorema lui Nyquist spune c aceasta rat este suficient pentru a capta toat informaia de pe canalul telefonic de 4 kHz. La o rat mai mic de

112

NIVELUL FIZIC

CAP.

eantionare, informaia ar putea fi pierdut; la o rat mai mare, nu se poate recepionat informaie suplimentar. Aceast tehnic se numete PCM (Puise Code Modulation - Modularea Impulsurilor n Cod). PCM constituie inima sistemelor telefonice moderne. Ca o consecin, practic toate intervalele de timp dintr-un sistem telefonic sunt multipli de 125 usec. Cnd transmisia digital a.nceput s devin o tehnologie fezabil, CCITT a fost incapabil s ajung la o nelegere referitoare la un standard pentru PCM. n consecin, acum exist o varietate de scheme incompatibile folosite n ri diferite n toat lumea. Convorbirile telefonice ntre ri incompatibile necesit cutii negre" (i deseori foarte scumpe) pentru a converti sistemul din ara de origine n sistemul din ara destinaie.

Cadru de 193 bii (125 msec)

, Bitul 1 este pentru ncadrare

7 bii de date pe fiecare canal pentru fiecare eantion

Bitul 8 este pentru informaia de semnalizare

Fig. 2-26. Purttorul TI (1,544 Mbps). O metod rspndit n America de Nord i Japonia o reprezint purttorul TI, prezentat n Fig. 2-26. (Din punct de vedere tehnic, formatul se numete DSl iar purttorul se numete TI, dar noi nu vom face aceast deosebire subtil aici). Purttorul TI const din 24 de canale vocale multiplexate mpreun. De obicei, semnalele analogice sunt eantionate ntr-o manier repetat, iar semnalul analogic rezultat este trecut prin codec, fr utilizarea a 24 de codec-uri separate pentru a le uni apoi la ieirea digital. Fiecare canal din cele 24, va introduce 8 bii n secvena de la ieire. apte bii reprezint date, iar unul este de control, rezultnd 7x8000 = 56.000 bps de date i 1x8000 = 8.000 bps de informaie de semnalizare pe fiecare canal. Un cadru const din 24x8 = 192 bii, plus un bit suplimentar pentru ncadrare, rezultnd 193 de bii la fiecare 125 usec. De aici rezult o vitez de transfer a datelor de 1.544 Mbps. Bitul 193 este folosit pentru sincronizarea cadrelor. Urmeaz ablonul 0101010101.... n mod normal, receptorul verific acest bit pentru a fi sigur c nu a pierdut sincronizarea. Dac a pierdut tactul, receptorul poate cuta acest ablon pentru a se resincroniza. Clienii analogici nu pot genera acest ablon, deoarece el corespunde unei unde sinusoidale la 4000 Hz, care ar fi filtrat. Clienii digitali pot, desigur, s genereze acest ablon, dar ansele apariiei lui, atunci cnd cadrul este pierdut, sunt mici. Atunci cnd un sistem TI este folosit integral pentru date, doar 23 de canale sunt folosite pentru

SISTEMUL TELEFONIC

113

ate. Canalul 24 este folosit pentru un ablon de sincronizare special, care permite recuperarea mai rapid n cazul n care un cadru este pierdut. Cnd a ajuns, n final, la o nelegere, CCITT a simit c 8000 bps de informaie de semnalizare este mult prea mult, aa c standardul de 1.544 Mbps se bazeaz pe date de 8 bii n loc de 7 bii; aceasta nseamn c semnalul analogic este codificat, folosind 256 n loc de 128 de nivele discrete. Exist dou variante incompatibile. n semnalizarea prin canal comun (common-channel signaling), bitul suplimentar (care este ataat mai degrab n urma si nu n faa cadrului de 193 de bii) are valorile 1010101010... n cadrele impare i conine informaii de semnalizare pentru toate canalele n cadrele pare. n cealalt alternativ, semnalizarea asociat canalelor (channel asssociated signaling) fiecare canal are propriul su subcanal de semnalizare. Un subcanal privat este constituit prin alocarea unuia din cei 8 bii utilizatori, la fiecare 6 cadre, pentru semnalizare, astfel c 5 din 6 eantioane sunt de 8 bii lungime, iar ultimul este de doar 7 bii lungime. De asemenea, CCITT a recomandat un purttor de 2.048 Mbps numit El. Acest purttor are 32 de eantioane de 8 bii, mpachetate n cadrul fundamental de 125 usec. Treizeci de canale sunt folosite pentru informaii iar dou sunt folosite pentru semnalizare. Fiecare grup de 4 cadre asigur 64 de bii de semnalizare din care jumtate sunt folosii la semnalizarea asociat canalului i jumtate pentru sincronizarea cadrelor sau pentru alte funcii dependente de rile care i utilizeaz. Purttorul de 2,048 Mbps este lam folosit n afara Americii de Nord i a Japoniei. Odat ce semnalul vocal a fost codificat, este tentant s folosim metode statistice pentru a reduce numrul de bii necesari pentru fiecare canal. Aceste tehnici sunt potrivite nu numai pentru codificarea vorbim, ci i pentru digitizarea oricrui semnal analogic. Toate metodele de compactare se bazeaz pe principiul c semnalul se modific relativ ncet n comparaie cu frecventa de eantionare, deci multe din informaiile din nivelele de 7-8 bii sunt redundante '

Eantioanele consecutive difer ntotdeauna cu 1

15
CD

Semnalul se schimb prea repede pentru a putea fi codat corect

10
o

o o

CD

tu 5

0I1M Interval de eantionare

1 0 0 0 0 0 0 0 0 Timp->

1 1 1 1 1 1 Secvena de bii transmis

Fig. 2-27. Modularea Delta.

114

NIVELUL FIZIC

CAP.2J

Metoda, numit modularea diferenial a impulsurilor n cod (differential puise modulation), const n scoaterea la ieire nu a amplitudinii digitizate codificate, ci a diferenei dintre valoarea curent i cea anterioar. Deoarece sunt puin probabile salturi mai mari de +/-16 pe o scal de 128, ar putea fi suficieni 5 bii n loc de 7. Dac semnalul are salturi prea brute, logica de codificarea poate necesita mai multe perioade de eantionare pentru a prinde din urm" aceste variaii. n cazul vorbirii, eroarea introdus poate fi ignorat. O variant a acestei metode de compactare necesit ca fiecare valoare eantionat s difere de precedenta prin +1 sau -1. Este transmis un singur bit, care indic dac nivelul curent este superior sau inferior nivelului precedent. Aceast tehnic, numit modulare delta, este ilustrat n Fig. 2-27. La fel ca toate tehnicile de compactare care presupun schimbri mici de nivel ntre eantioane consecutive, dac sistemul se schimb prea brusc, modularea delta poate eua, aa cum se arat n figur. Cnd se ntmpl acest lucru, informaia se pierde. O mbuntire a PCM-ului diferenial este s se extrapoleze cteva valori precedente pentru a prezice noua valoare i apoi s se codifice diferena dintre semnalul actual i cel prevzut. Desigur, att transmitorul ct i receptorul trebuie s foloseasc acelai algoritm de predicie. O astfel de schem se numete codificare predictiv. Aceast tehnic este util, pentru c reduce dimensiunea datelor care trebuie codificate i, prin urmare, reduce dimensiunea datelor care trebuie transmise. Cu toate c PCM este larg folosit pe trunchiurile care conecteaz oficiile de comutare, calculatorul are beneficii limitate n cazul n care toate datele trebuie transmise ctre oficiul final sub forma unui semnal analogic modulat la 28.8 kbps. Ar fi interesant dac purttorul ar conecta bucla local direct la sistemul PCM de pe magistral, calculatorul putnd astfel s transmit date digitale direct pe bucla local la 1,544 sau 2,048 Mbps. Din pcate, buclele locale nu pot atinge aceste viteze pentru distane mari. Multiplexarea prin divizarea n timp permite ca mai muli purttori TI s fie multiplexai mpreun n purttori de un grad mai nalt. Figura 2-28 arat cum se poate face acest lucru. La stnga vedem patru canale TI multiplexate ntr-un canal T2. Multiplexarea la T2 i peste T2 se face bit cu bit i nu octet cu octet ca n cazul celor 24 de canale care constituie un cadru TI. Patru secvene TI la 1,544 Mbps ar trebui s genereze 6,176 Mbps, dar T2 este de fapt la 6,312 Mbps. Biii suplimentari sunt folosii la ncadrare i la recuperare, n cazul n care purttorul este pierdut. La nivelul urmtor, ase T2 sunt combinate pentru a forma o secven T3. Apoi apte T3 sunt grupate pentru a forma o secven T4. La fiecare pas, se adug, pentru ncadrare i recuperare, o mic suprancrcare.
4 T1 la intrare |4[0k / *
T2 11 T2 la ieire ieir la

"

6 T2 Ia intrare

7 T3 la intrare

1TTI6I2I1.544 Mbps T1

4:11-

I6I5I413I2IIQI ZZ 6:1

6.312 Mbps T2

44.736 Mbps T3

274.176 Mbps T4

Fig. 2-28. Multiplexarea secvenelor TI n purttori cu capacitate mai mare.

SISTEMUL TELEFONIC

115

^raast nenelegeri privind purttorul de baz, ntre Statele Unite i restul lumii, stQ. nenelegeri privitoare la modul de multiplexare n purttori de band mai larg. kaimrienientat n S.U.A, care este fcut prin trepte de 4, 6 i 7, nu s-a impus ca un " drd standardul CCITT multiplexnd 4 secvene n una singur la fiecare nivel. De S " enea ncadrarea i recuperarea datelor se fac diferit. Ierarhia CCITT de 32, 128, 512, 2048 si-8192 de canale funcioneaz la viteze de 2,048,8,848,34,304,139,264 i 565,148 Mbps.
#Hff

SONET/SDH - "La apariia fibrelor optice, fiecare companie telefonic avea propriul sistem optic TDM. Dup ce AT&T-ul a fost divizat n 1984, companiile telefonice locale au fost obligate s se conecteze la mai inulte companii de telecomunicaie pe distane mari, fiecare companie avnd sisteme TDM diferite, devenind astfel evident necesitatea unei standardizri. n 1985, Bellcore, divizia de cercetare a RBOC, a nceput s lucreze la un nou standard, numit SONET ( Synchronous Optical NETwork reea optic sincron). Mai trziu s-a alturat i CCITT, fapt care s-a materializat n 1989 prin standardul SONET i printr-un set paralel de recomandri CCITT (G.707, G.708 i G.709). Recomandrile CCITT sunt numite SDH (Synchronous Digital Hierarchy - ierarhie digital sincron), dar difer de SONET numai n mic msur. Practic, aproape tot traficul pe distane mari, n Statele Unite, i cea mai mare parte a traficului din alte zone folosete acum trunchiuri cu SONET pe nivelul fizic. Datorit faptului c tipurile SONET sunt mai ieftine, plcile de interfa SONET pentru calculatoare ar putea deveni mult mai rspndite i astfel ar putea fi mai uor pentru companii s conecteze calculatoarele direct la inima reelei telefonice pe linii speciale nchiriate. n cele ce urmeaz vom studia pe scurt elurile i schema SONET. Pentru informaii suplimentare vezi (Bellamy 1991; i Omidyar i Aldrige, 1993). Proiectul SONET a urmrit patru obiective principale. Primul i cel mai important, SONET fireMa s permit conlucrarea mai multor companii de telecomunicaie. Pentru atingerea acestui obiectiv este necesar definirea unui standard comun de semnalizare referitor la lungimea de und, la sincronizare, la structura de ncadrare i altele. n al doilea rnd, erau necesare cteva metode de a unifica sistemele digitale din S.U.A. , Europa i Japonia, toate bazndu-se pe canale PCM de 64 kbps, dar toate fiind folosite diferit i fiind totodat incompatibile ntre ele. n al treilea rnd, SONET trebuia s permit multiplexarea mai multor canale digitale. Atunci cnd a fost elaborat SONET, cel mai mare purttor digital utilizat efectiv pe scar larg n Statele Unite era T3, la 44.736 Mbps. T4 era definit, dar nu era att de folosit, iar deasupra vitezei lui T4 nu era definit nimic. O parte a misiunii SONET era s ridice ierarhia la nivel de gigabii / sec i chiar mai mult. Era de asemenea necesar o modalitate standard de multiplexare a canalelor mai lente ntr-lin canal SONET. n al patrulea rnd, SONET trebuia s asigure suportul de operare, administrare i ntreinere (OAM Operations, Administration, and Maintenance). Sistemele precedente nu au realizat acest lucru foarte bine. O decizie mai veche era ca din SONET s se fac un sistem TDM tradiional, n care toat banda de frecven a fibrei optice atribuit unui singur canal s conin diferite intervale de timp pentru subcanale diferite. Astfel, SONET este un sistem sincron. El este controlat de un ceas

116

NIVELUL FIZIC
9

CAP. 2

principal, cu o eroare de aproximativ IO" . Biii sunt trimii pe o linie SQNET la intervale extrem de precise, controlate de ceasul principal. Atunci cnd comutarea celulelor a fost propus mai trziu ca baz pentru ISDN n band larg, faptul c ea permitea sosirea neregulat a celulelor a determinat etichetarea sa ca mod de transfer asincron (ATM), pentru a contrasta astfel cu operaiile sincrone ale SONET-ului. Un sistem SONET const din comutatoare, multiplexoare i repetoare, toate conectate prin fibr. n Fig. 2-29 este prezentat o cale de la surs la destinaie, cu un multiplexor intermediar i un repetor intermediar. n terminologia SONET, o fibr care face legtura direct de la orice echipament la orice alt echipament, fr nimic intermediar, se numete o seciune. O legtur ntre dou multiplexoare (eventual cu unul sau mai multe repetoare n mijloc) - se numete linie. n sfrit, legtura dintre surs i destinaie (eventual cu unul sau mai multe multiplexoare sau repetoare) se numete cale. Topologia SONET poate fi o plas, dar poate fi i un inel dual.
Multiplexor la surs Repetor Multiplexor Repetor Multiplexor la destinaie

Seciune- Linie

-Seciune

-SeciuneLinie Cale

Seciune-

Fig. 2-29. Calea SONET. Cadrul de baz SONET este un bloc de 810 octei, lansat la fiecare 125 psec. Deoarece SONET este sincron, cadrele sunt emise, chiar dac nu exist date utile de transmis. Rata de 8000 cadre / sec coincide cu viteza de eantionare a canalelor PCM folosite n sistemele telefonice digitale. Cadrele SONET de 810 octei sunt cel mai bine descrise prin matrici cu 90 de coloane i 9 rnduri. Cei 8x810 = 6480 bii ai unui cadru sunt transmii de 8000 de ori pe secund, la o vitez de transfer a datelor de 51,84 Mbps. Acesta este canalul de baz SONET i este numit STS-1 (Synchronous Transport Signal -1 Semnal de Transport Sincron). Toate trunchiurile SONET sunt multiple de STS-1. Primele trei coloane ale fiecrui cadru sunt rezervate pentru informaia de supervizare a sistemului, aa cum este prezentat n Fig. 2-30. Primele trei rnduri conin suprancrcarea de seciune; urmroarele ase conin suprancrcarea de linie. Suprancrcarea de seciune este generat i verificat la nceput i la captul fiecrei seciuni, n timp ce suprancrcarea de linie este generat i verificat la nceputul i captul fiecrei linii. Restul de 87 de coloane conin 87 x 9 x 8 x 8000 = 50.112 Mbps de date ale utilizatorului. Totui, datele utilizatorului, numite SPE (Synchronous Payload Envelope - nveli sincron pentru informaie util) nu ncep ntotdeauna cu rndul 1, coloana 4. SPE poate ncepe oriunde n interiorul cadrului. Un pointer ctre primul octet este coninut n primul rnd al suprancrcrii de linie. Prima coloan din SPE este suprancrcarea de cale (antet pentru protocolul subnivelului cale capt-la capt).

2.4

SISTEMUL TELEFONIC

117

sa ca SPE s nceap oriunde n cadrul SONET i chiar s se ntind pe dou cadre, sftesi&fl sits* nieste prezentat n Fig. 2-30, confer sistemului o flexibilitate suplimentar.
"Xcblbane pentru suprancrcare

87 coloane

rnduri
l

-4 -r~
j _

i<

--

,,

T
Lli1 ^

-i.
.:1,

' 5 r
-1 * ...

. f 5 t

li' L

r:".f'F1
,'iin,;,

'
- ,
!

Cadru Sonet (125 msec)

;-,

" d t

--1
. M

l i , . ip . ; ;=:
1

1 *' ^

M " , -'li

-'

'

t-er

'l

,..f .,

ii

T.

f ,i- s i

4r t.'E>J. i2!a..l!dMHkTr&iT
I

" = 1 '! *' ?

1I

i.

hb

n r . - T O I * j*-sa*i

Cadru Sonet (125 msec)

Suprancrcare de seciune

n Suprancrcare de linie

m Suprancrcare de cadru

SPE

Fig. 2-30. Dou cadre SONET legate. De exemplu, dac la surs ajung date, n timp ce se construiete un cadru SONET gol, aceste date pot fi inserate n cadrul curent, n loc s fie reinute pn la nceputul urmtorului cadru. Aceast proprietate este util i atunci cnd datele nu se ncadreaz exact ntr-un cadru, cum ar fi n cazul a 53 de celule ATM. Primul rnd al suprancrcrii de linie poate indica nceputul primei celule pline, pentru a asigura sincronizarea.

Modificator

Convertor electric-optic

T3

STS-12

OC-12

T3

Multiplexor 3:1

Multiplexor 4:1

Fig. 2-31. Multiplexarea n SONET.

118

NIVELUL FIZIC

CAP. 2

Suprancrcarea de seciune, de linie i de cale conin octei utilizai n operarea, administrarea i ntreinerea sistemului. Din moment ce fiecare octet apare de 8000 de ori pe secund, el reprezint un canal PCM. Trei octei sunt, de fapt, folosii pentru a asigura canale vocale pentru personalul de ntreinere de pe seciune, linie i cale. Ali octei sunt folosii pentru ncadrare, paritate, monitorizarea erorilor, identificare, sincronizare i alte funcii. Bellamy (1991) descrie toate aceste funcii n detaliu. Multiplexarea a mai multor secvene de date, numite aflueni, joac un rol important n SONET. Multiplexarea este ilustrat n Fig. 2-31. La stnga, ncepem cu diferite secvene de intrare de vitez joas, care sunt convertite la viteza de baz a STS-1 SONET, n cele mai multe cazuri completnd diferena pentru a atinge o vitez de transfer de 51,84 Mbps. Apoi, trei aflueni STS-1 sunt multiplexri ntr-o secven de ieire STS-3 de 155,52 Mbps. Aceast secven, n schimb, este multiplexat cu alte trei, obinnd la ieire n secvena final de 12 ori capacitatea lui STS-1. n acest moment semnalul este modificat, pentru a preveni interferena cu ceasul a unor iruri lungi de 0 sau de 1 i este convertit din semnal electric n semnal optic. Multiplexarea se face octet cu octet. De exemplu, cnd trei aflueni STS-1 la 51,84 Mbps sunt combinai ntr-o secven STS-3 la 155,52 Mbps, multiplexorul emite la nceput primul octet din afluentul 1, apoi un octet din afluentul 2 i n sfrit un octet din afluentul 3, nainte de a se ntoarce la 1. O schem STS-3 echivalent figurii 2-30, prezint (de la stnga la dreapta) coloanele pentru afluenii 1, 2 i 3, n aceast ordine, apoi un alt triplet i aa mai departe, pn la coloana 270. Fiecare cadru de 270 x 9 octei este transmis odat la 125 usec, rezultnd o vitez de transfer a datelor de 155,52 Mbps.
SONET Electric Optic OC-1 STS- OC-3 STS-3 OC-9 STS-9 OC-12 STS-12 OC-18 STS-18 STS-24 OC-24 OC-36 STS-36 STS-48 OC -48 SDH Optic STM-1 STM-3 STM-4 STM-6 STM-8 STM-12 STM-16 Rata de date (Mbps) Total SPE Client 51.84 50.112 49.536 155.52 150.336 148.608 466.56 451.008 445.824 622.08 601.344 594.432 933.12 902.016 891.648 1244.16 1202.688 1188.864 1866.24 1804.032 1783.296 2488.32 2405.376 2377.728

Fig. 2-32. Ratele de multiplexare pentru SONET i SDH. Ierarhia de multiplexare SONET este prezentat n Fig. 2-32. Au fost definite viteze de la STS-1 pn la STS-48. Purttorul optic corespunztor lui STS-n este numit OC-n i este bit cu bit identic cu STS-n cu excepia modificrii din Fig. 2-31. Numele SDH sunt diferite i ncep de la OC-3, deoarece sistemele bazate pe CCITT nu au o viteza de transfer apropriat de 51,84 Mbps. Purttorul OC-9 este prezent, deoarece este apropriat de vitezele de transfer ale celor mai multe trunchiuri de mare vitez folosite n Japonia. OC-18 i OC-36 vor fi folosite n viitor n Japonia. Viteza grosier de transfer a datelor conine i suprancrcarea. Vitezele de transfer SPE exclud suprancrcarea de linie i de seciune. Viteza de transfer a utilizatorului exclude toat suprancrcarea i ia n consideraie numai cele 87 de coloane puse la dispoziie pentru datele utile.

SEC 2.4

SISTEMUL TELEFONIC

119

Atunci cnd un purttor, cum ar fi OC-3, nu este multiplexat, dar transport date de la.o singur surs, este adugat n notaie litera c (de la concatenate), astfel c OC-3 indic un purttor de 155, 52 Mbps care const din trei purttori OC-1 diferii, n timp ce OC-3c indic o secven de date de la o singur surs la 155,52 Mbps. Cele trei secvene OC-1 dintr-o secven OC-3c sunt ntreesute pe coloane, prima coloan din secvena 1, apoi coloana din secvena 2, apoi coloana 1 din secvena 3, urmat de coloana 2 din secvena 1 i aa mai departe, ceea ce conduce la un cadru de 270 de coloane i 9 rnduri. Cantitatea de date proprii ale utilizatorului ntr-o secven OC-3c este puin mai mare dect ntr-o secven OC-3 (149,760 Mbps versus 148,608 Mbps), deoarece coloana pentru suprancrcarea de cale este introdus n SPE o singur dat, n loc de trei ori, ca n cazul a trei secvene independente OC-1. Cu alte cuvinte, n OC-3c sunt disponibile 260 din 270 de coloane, n timp ce n OC-3 numai 258 de coloane sunt disponibile datelor utilizatorului.
Subnivel
Caie Linie Seciune Fotonic

.I
i I
i

Surs - -* -

Seciune

Repetor *--* Linie

Multiplexor Seciune * * *- -* Cale

Seciune Linie

Destinaie ***~

Fig. 2-33. Arhitectura SONET De acum trebuie s fie clar de ce ATM lucreaz la 155 Mbps: intenia este s se transporte celulele ATM pe trunchiurile SONET OC-3c. Este de asemenea clar c cifra, deseori citat, de 155 Mbps este viteza grosier de transfer, care include i suprancrcarea SONET. Mai mult, cineva a rotunjit incorect 155,52 Mbps la 155 Mbps i acum toi ceilali fac greit, la rndul lor, acest lucru. Nivelul fizic SONET este mprit n patru subnivele, dup cum este artat n Fig. 2-33. Nivelul cel mai de jos este subnivelui fotonic. Acest subnivel specific proprietile fizice ale luminii i ale fibrei utilizate. Restul de trei subniveluri corespund seciunilor, liniilor i cilor. Subnivelui seciunii trateaz o singur fibr punct-la-punct, genernd un cadru standard la un capt i procesndu-1 la cellalt capt. Seciunile pot ncepe i se pot termina la repetoare, care doar amplific i regenereaz biii, dar fr s i schimbe sau s i prelucreze n vreun fel. Subnivelui de linie este folosit pentru multiplexarea mai multor aflueni pe o singur linie i demultiplexarea lor la cellalt capt. Pentru subnivelui de linie repetoarele sunt transparente. Atunci cnd emite bii pe fibr, un multiplexor se ateapt ca biii s ajung la cellalt multiplexor neschimbai, indiferent de numrul de repetoare folosite. Prin urmare, protocolul subnivelului de linie se desfoar ntre dou multiplexoare i se ocup de probleme cum ar fi numrul de intrri multiplexate i modul de realizare a multiplexrii. Spre deosebire de acesta, subnivelui i protocolul de cale se ocup de subiecte legate de comunicaia capt-la-capt.

120
2.4.5 Comutarea

NIVELUL FIZIC

CAP. 2;

Din punctul de vedere al unui inginer telefonist obinuit, sistemul telefonic se mparte n dou: domeniul exterior (buclele locale i trunchiurile, deoarece ele sunt n afara oficiilor de comutare) i domeniul interior (comutatoarele). Tocmai am aruncat o privire asupra domeniului exterior. Acum a venit timpul s examinm domeniul interior. n sistemul telefonic se utilizeaz dou tehnici de comutare diferite: comutarea de circuite si comutarea de pachete. Vom prezenta mai jos o scurt introducere pentru ambele tehnici. Apoi vom studia n detaliu comutarea de circuite, acesta fiind modul de funcionare actual al sistemul telefonic. Mai trziu, n acest capitol, vom trata n detaliu comutarea de pachete n contextul noii generaii a sistemului telefonic, ISDN de band larg.
Comutarea de circuite

Atunci cnd formezi - tu sau calculatorul tu - un numr de telefon, echipamentul de comutare din sistemul telefonic caut o cale fizic (incluznd aici i fibrele i undele radio) ntre telefonul tu i telefonul apelat. Aceast tehnic se cheam comutare de circuite i este prezentat schematic n Fig. 2-34(a). Fiecare din cele 6 dreptunghiuri reprezint un oficiu de comutare al companiei de
A

telecomunicaie (oficiu final, oficiu de taxare etc). In acest exemplu fiecare oficiu are trei linii de intrare i trei linii de ieire. Atunci cnd o cerere trece prin oficiu, se stabilete conceptual o legtur ntre linia de pe care a venit cererea i una din liniile de ieire, reprezentate de liniile punctate.
Conectarea fizic realizat pe durata convorbirii

(a)
Oficiu de comutare Calculator Pachetele aflate n coad pentru a fi transmise n continuare

Calculator

Fig. 2-34. (a) Comutare de circuite, (b) Comutare de pachete

SISTEMUL TELEFONIC

121

J*-' snrimele zile ale telefoniei, legtura era fcut de un operator care conecta un cablu n mufele a " - trare si de ieire. De fapt, exist i o povestioar simpatic legat de invenia echipamentului de ". - u t a re automat a circuitelor. Acest echipament a fost inventat n secolul XIX de un proprietar 1 unei firme de Pompe Funebre numit Almon B. Strowger. Puin timp dup ce telefonul a fost ntat cnd cineva a murit, unul dintre supravieuitori a sunat operatorul oraului i a spus: V rog, fecei-mi legtura cu o firm de Pompe Funebre".
Semnal de cerere convorbire

ntrziere de propagare

PktT

PktT Pkt2

Timp petrecut n ateptarea unui trunchi Semnal de acceptare a convorbirii Date

/l

IVlsg

ntrziere datorat ateptrii n coad

Pkt T Pkt3 Pkt 2 Pkt 3

Truchi Truchi Truchi BC CD AB

D
(a)

(b)

(O

Fig. 2-35. Apariia evenimentelor n (a) comutarea de circuite, (b) comutarea de mesaje, (c) comutarea de pachete Din pcate pentru domnul Strowger, existau dou firme de Pompe Funebre n ora, iar proprietarul celeilalte era soul operatoarei telefonice a oraului. Domnul Strowger i-a dat repede seama c fie va inventa echipamentul telefonic de comutare automat, fie va renuna la afacere. A ales prima opiune. Timp de 100 de ani, echipamentul de comutare a circuitelor a fost cunoscut n toat lumea drept cutia Strowger. (Istoria nu a consemnat ns dac operatoarea de comutare rmas omer, a obinut ulterior un post de operator de informaii, rspunznd la informaii de genul: Care este numrul de telefon al unei filme de Pompe Funebre ?").

122

NIVELULFIZIC

CAP. 2

Modelul prezentat n Fig. 2-34(a) este desigur foarte simplificat, deoarece unele poriuni din< drumul de cupru" ntre cele dou telefoane pot fi, de fapt, legturi prin microunde pe care sunt;f multiplexate mii de convorbiri. Nu mai puin adevrat, ideea de baz este valid: odat ce o ] convorbire a fost fixat, o cale dedicat dintre cele dou capete exist i va continua s existe pn i cnd convorbirea se termin. O proprietate important a comutrii de circuite este nevoia de a stabili o cale de la un capt la " cellalt, nainte ca datele s poat fi transmise. Intervalul de timp dintre momentul formrii ' numrului i pn cnd se aude sunnd telefonul apelat poate ajunge uor la 10 sec, chiar mai mult pe distane mari sau n cazul convorbirilor internaionale. In acest interval de timp, sistemul telefonic caut un drum prin cupru, dup cum e prezentat n Fig. 2-35(a). De remarcat c, nainte ca transmisia de date s poat ncepe, semnalul de apel trebuie s se propage pn la destinaie. Pentru multe aplicaii pe calculator (de ex. verificarea creditului la punctul de vnzare), se dorete evitarea perioadelor lungi de setare. Ca o consecin a drumului dintre cele dou pri care vorbesc, odat ce setarea a fost realizat," singura ntrziere a datelor este dat de timpul de propagare a semnalului electromagnetic, de l aproximativ 5 msec la 1000 Km. Totodat, ca o consecin a traseului stabilit, pericolul de congestie nu mai exist - asta nseamn c, odat ce apelul s-a realizat, nu vei mai primi semnalul ocupat", dei nainte de a stabili legtura se poate primi semnalul ocupat" datorit imposibilitii de comutare sau a capacitii insuficiente a trunchiului. O alternativ la strategia de comutare de circuite este comutarea de mesaje, prezentat n Fig. 2-35(b). Atunci cnd se utilizeaz acest tip de comutare, nu se stabilete de la nceput o cale ntre apelant i apelat. n schimb, atunci cnd apelantul are de transmis un bloc de date, acesta este ; memorat n primul oficiu de comutare (ruter) i este retransmis mai trziu, cte un salt la un moment dat. Dup cum a fost menionat n capitolul 1, o reea care folosete aceast tehnic se numete reea memoreaz-i-retransmite. Primul sistem de telecomunicaie electromecanic se baza pe comutarea de mesaje i a fost folosit pentru telegrame. Mesajul era perforat pe o band de hrtie la oficiul de transmisie, band ce era apoi citit i transmis pe o linie de comunicaie ctre urmtorul oficiu de pe traseu, unde era perforat pe o alt band de hrtie. Un operator de acolo rupea banda de hrtie i o citea pe unul din multele cititoare de band hrtie, cte unul pentru fiecare magistral de ieire. Un astfel de oficiu de comutare era numit oficiu de tocare a benzilor (torn tape office). n cazul comutrii de mesaje, nu exist o limit a dimensiunii blocului, ceea ce nseamn c ruterele (din sistemele moderne) necesit discuri pentru memorarea unor blocuri lungi. De asemenea, acest lucru nseamn c un singur bloc poate ocupa o linie ruter-ruter minute ntregi, comutarea de mesaje nefiind util pentru traficul interactiv. Pentru a rezolva aceste probleme, a fost inventat comutarea de pachete. Reelele cu comutare de pachete fixeaz o limit superioar precis pentru dimensiunea blocului, permind pachetelor s fie pstrate n memoria principal a ruterului, n loc s se salveze pe disc. Asigurndu-se faptul c nici un utilizator nu va putea monopoliza o linie de transmisie mult timp (milisecunde), reelele cu comutare de pachete au devenit adecvate pentru traficul interactiv. Un alt avantaj al comutrii de pachete fa de comutarea de mesaje este prezentat n Fig. 2-35(b) i (c): primul pachet al unui mesaj multi-pachet poate fi transmis nainte ca cel de-al doilea mesaj s fie complet recepionat, micornd ntrzierea i mbuntind productivitatea. Din aceste motive, reelele de calculatoare folosesc, de obicei, comutarea de pachete, ocazional, comutarea de circuite, dar niciodat comutarea de mesaje.

SISTEMUL TELEFONIC

123

utarea de circuite i comutarea de pachete difer n multe privine. Diferena principal este S i n care se face transmisia: comutarea de circuite rezerv static banda de frecven necesar de : f^'inceput, n timp ce comutarea de pachete o obine i o elibereaz dup cum are nevoie. n '.mutarea de circuite, orice band de frecven nefolosit pe un circuit alocat este pierdut. n comutarea de pachete, ea poate fi folosit de alte pachete provenind de la surse diferite, transmise ctre destinaii diferite, deoarece circuitele nu sunt dedicate. Totui, datorit faptului c circuitele nu j sunt dedicate, o cretere -brusc a traficului la intrare poate suprancarc un ruter, depindu-i ^ capacitatea de stocare i provocnd pierderea unor pachete. Spre deosebire de comutarea de circuite, atunci cnd se utilizeaz comutarea de pachete, ruterele pot asigura vitez i conversie de cod. De asemenea, ntr-o anumit msur, ele pot asigura la destinaie corectarea erorilor. Totui, n unele reele cu comutare de pachete, pachetele pot fi livrate ntr-o ordine aleatorie. n comutarea de circuite nu se poate face niciodat reordonarea pachetelor. O alt diferen este c comutarea de circuite este complet transparent. Transmitorul i receptorul pot folosi orice vitez de transfer, orice format sau metod de ncadrare. Compania de telecomunicaie nu cunoate aceste lucruri i nici nu o intereseaz. n cazul comutrii de pachete, compania de telecomunicaie determin parametrii de baz. O analogie ar fi strada comparat cu calea ferat. n cazul primei, utilizatorul determin mrimea, viteza i natura vehicolului; n cazul celei de a doua, acest lucru l face societatea de cale ferat. Aceast transparen face posibil coexistena vocii, faxului i a datelor n sistemul telefonic. O ultim diferen ntre comutarea de circuite i comutarea de pachete se refer la algoritmul de taxare. La comutarea de pachete, taxarea se face, de obicei, att pe numrul de octei (sau pachete) transmise ct i n funcie de timpul de conectare. Mai mult, distana de transmisie nu conteaz, cu excepia situaiei n care se face voluntar. La comutarea de circuite, taxarea se bazeaz doar pe distan i timp, nu pe trafic. Diferenele sunt prezentate n Fig. 2-36.
Criteriu
Cale de cupru" dedicat Banda de frecven disponibil Banda de frecven eventual risipit Transmisia memoreaz i transmite Fiecare pachet urmeaz aceiai cale Realizarea conectrii Cnd poate apare congestia Taxarea Comutarea de circuite Comutarea de pachete

Da
Fix

Nu
Dinamic

Da Nu Da
Necesar La momentul setrii pe minut

Nu Da Nu
Nu e necesar La fiecare pachet pe pachet

Fig. 2-36. Comparaie ntre reelele cu comutare de circuite i cu comutare de pachete. Datorit faptului c att comutarea de circuite ct i comutarea de pachete sunt foarte importante, vom reveni n scurt timp la ele i vom prezenta n detaliu diversele tehnologii folosite.
Ierarhia de comutatoare

Merit s spunem cteva cuvinte despre cum se face rutarea ntre comutatoare n actualul sistem telefonic cu comutare de circuite. Aici vom descrie sistemul AT&T, dar alte companii i alte ri folosesc aceleai principii generale. Sistemul telefonic are cinci clase de oficii de comutare, ilustrate n Fig. 2-37. Acolo exist 10 oficii de comutare regionale, acestea fiind integral interconectate prin 45

124

NIVELUL FIZIC

CAP.:

1^

de trunchiuri din fibr optic de band larg. Sub oficiile regionale exist 67 de oficii secionale, 23Q| de oficii primare, 1.300 de oficii de taxare i 19.000 de oficii finale. Ultimele patru niveluri au foti : conectate iniial sub form de arbore.

10 oficii regionale (interconectate integral)

67 oficii de seciune 230 oficii primare 1300 oficii de taxare 19,000 oficii finale 12 3 4 5 200 milioane de telefoane 19,000

Fig. 2-37. Ierarhia telefonic AT&T. Liniile punctate sunt trunchiuri directe. Legturile sunt fcute de obicei la cel mai jos nivel posibil. Astfel, dac un abonat conectat la oficiul final 1 apeleaz un alt abonat conectat la oficiul final 1, convorbirea se va desfura n oficiul respectiv. Oricum, un apel de la un client ataat la oficiul final 1 ctre un client ataat la oficiul final 2, va trebui s treac prin oficiul de taxare 1. Un apel de la oficiul final 1 la oficiul final 4 se va stabili prin oficiul primar 1 i aa mai departe. n cazul unui arbore exist un singur drum minimal i acesta este drumul care trebuie urmat. n timpul multor ani de funcionare, companiile telefonice au observat c unele rute sunt mai ocupate dect altele. De exemplu, existau multe convorbiri de la New York la Los Angeles. n loc s se parcurg toat ierarhia, pentru traseele aglomerate s-au instalat

SEC 2.4

SISTEMUL TELEFONIC

125

trunchiuri directe. Unele dintre acestea sunt indicate n Fig. 2-37 prin linii punctate. n consecin, multe convorbiri pot fi direcionate pe mai multe ci. Traseul ales este, n general, traseul cel mai direct, dar dac trunchiurile necesare sunt prea ncrcate, se opteaz pentru o variant alternativ. Aceast rutare complex este posibil acum, deoarece o main de comutare, precum AT&T ESS, nu este, de fapt, dect un calculator de uz general cu un numr re ^ echipamente de intrare/ieire foarte specializate.

Comutator matricial
S trecem acum de la modul de rutare ntre comutatoare diferite, la modul de funcionare intern a comutatorului. n sistemul telefonic exist (sau existau) cteva tipuri de comutatoare. Cel mai simplu dintre acestea este comutatorul matricial (numit i crosspoint switch - comutator cu puncte de ncruciare), din Fig. 2-38. ntr-un comutator cu n linii de intrare i n linii de ieire (linii duplex integral), comutatorul matricial are n2 noduri, numite puncte de ncruciare, unde o linie de intrare i o linie de ieire pot fi conectate printr-un comutator semiconductor, aa cum arat Fig. 238(a). n Fig. 2-38(b) vedem un exemplu n care linia 0 este conectat la linia 4, linia 1 este conectat la linia 7 i linia 2 este conectat la linia 6. Liniile 3 i 5 nu sunt conectate. Toi biii care sosesc la comutator pe linia 4, de exemplu, sunt imediat transmii pe linia 0. n acest fel comutatorul matricial implementeaz comutarea de circuite printr-o legtur electric direct, aa cum fceau circuitele de legtur (jumper) n prima generaie de comutatoare, numai c acum comutarea se face automat i n cteva microsecunde.
Conectare Dosibil
n
i *
i

Conectare! real \

/ / rri

n
u
ii

Int rri

c "
A

4
0
ir

q
fi

fl O

<

: i l eir i (a)

l> (5

ir

()

'

:i *X l i eir i (b)

f3 r

Fig. 2-38. (a) Un Comutator matricial fr conectri, (b) Un Comutator matricial setat cu trei conectri: 0 cu 4,1 cu 7 i 2 cu 6. Problema care apare la comutatoarele matriciale este c numrul punctelor de ncruciare crete ptratic cu numrul de linii din comutator. Dac presupunem c toate liniile sunt duplex integral i c nu exist auto-conectri, atunci sunt necesare numai punctele de intersecie de

126

NIVELUL FIZIC

CAP.'

deasupra diagonalei. n orice caz, este nevoie de n(n-l)/2 puncte de intersecie. Pentru n = 1( avem nevoie de 499.500 de puncte. n timp ce construcia unui cip VLSI cu acest numr de tranzistoare este posibil, existena a 1000 de pini pe cip nu este. De aceea, un comutator matricial; este util numai pentru oficiile finale relativ mici. . -4
Comutator cu divizare n spaiu

Prin mprirea comutatorului matricial n bucele mici i prin interconectarea acestora,, este posibil s se construiasc comutatoare pe mai multe niveluri cu mult mai puine puncte de intersecie. Acestea se numesc comutatoare cu divizare n spaiu. n Fig. 2-39 sunt prezentate dou configuraii.
= 16,n = 4, N ncruciri
nxk ncruciri nxk ncruciri

ncruciri

N ncruciri

nxk

N
n

N
n

n xk

nxk

N N X n n

n xk

nxk N Intrri (a)

nxk

N Ieiri

N Intrri (b)

N Ieiri

Fig. 2-39. Dou comutatoare cu divizare n spaiu cu diferii parametri. Pentru a pstra exemplul nostru simplu, vom considera comutatoare pe trei nivele, dar se pot realiza i comutatoare pe mai multe nivele. n aceste exemple, avem un numr total de N intrri i N ieiri. n loc s construim un singur comutator matricial NxN, vom construi un comutator pe mai multe nivele. La primul nivel sunt n intrri, deci avem nevoie de N/n comutatoare pentru a putea manevra cele N linii de la intrare. Al doilea nivel are k comutatoare matriciale, fiecare cu N/n intrri i N/n ieiri. Al treilea nivel este la fel ca primul nivel, dar inversat de la stnga la dreapta. Fiecare nod intermediar este conectat la fiecare linie de intrare i la fiecare linie de ieire. Prin urmare, este posibil s conectm fiecare intrare la fiecare ieire folosind primul sau al doilea comutator matricial intermediar. De fapt, exist dou ci disjuncte de la fiecare intrare la fiecare ieire, n funcie de linia folosit. n Fig. 2-39(b)

SISTEMUL TELEFONIC

127

|fe'*rrg t r e j cgi pentru fiecare pereche de intrare/ieire. Pentru k nivele intermediare (k este un 6 arametru stabilit de proiectani), exist k ci disjuncte. S calculm numrul de puncte de ncruciare necesare pentru comutatorul pe trei nivele. n rimul nivel, exist N/n linii, fiecare cu nk puncte de ncruciare, deci un total de Nk. n al doilea 2 Vel exist k linii, fiecare cu (N/n) puncte de ncruciare. Al treilea nivel este identic ca primul. Adunnd aceste trei nivele, obinem: Numrul de ncruciri = 2kN + k(N/nf Pentru N = 1000, n = 50 i k = 10, avem nevoie de 24.000 de puncte de ncruciare n loc de 499 500, cte erau necesare la un comutator matricial 1000 x 1000 pe un singur nivel. Din pcate, ca de obicei, nimic nu e pe gratis. Comutatorul se poate bloca. S considerm din nou Fig. 2-39(a). Nivelul 2 a*e opt intrri, deci se pot efectua, n acelai timp, opt convorbiri. Atunci cnd apare al noulea apel, se va obine semnalul ocupat, chiar dac destinaia este disponibil. Comutatorul din figura 2-39(b) este mai bun, pentru c poate permite un maxim de 12 convorbiri n loc de 8, dar folosete mai multe puncte de ncruciare. Uneori, atunci cnd facem un apel telefonic, putem obine semnalul ocupat nainte s terminm de format numrul. Acest fapt se datoreaz probabil unui blocaj undeva n reea. Evident, cu ct k este mai mare, cu att este mai scump comutatorul i cu att mai mic este probabilitatea de blocare. n 1953, Clos a artat c atunci cnd k = 2n - 1 , comutatorul nu se va bloca niciodat (Clos, 1953). Ali cercettori au analizat n detaliu diferite abloane de apeluri foarte detaliate cu scopul de a construi comutatoare care teoretic se pot bloca, dar se blocheaz rareori n practic.
Comutatoarele cu Divizare n Timp
Un tip cu totul diferit de comutator este comutatorul cu divizare n timp, prezentat n Fig. 2-40.
Schimbtor de cuante (de timp)

n linii de intrare Cadru de intrare

I
Cadru de ieire Intervale de timp BufferRAM de n cuvinte de k bii

n linii de ieire

0 1 2 3 4 5 6 7
Intervale de timp I Contor

7 6 5 4 3 2 1 0

1 2 5 0 3 6 7 4

Tabel de punere n coresponden a cuvintelor

Fig. 2-40. Un comutator cu divizare n timp

128

NIVELUL FIZIC

CAP. 2

La comutarea cu divizare n timp, cele n linii de intrare sunt scanate secvenial pentru a forma un cadru de intrare cu n celule. Fiecare celul are k bii. n cazul comutatoarelor TI, celulele au 8 bii i prelucreaz 8000 de cadre pe secund.Esena comutatorului cu divizare n timp este schimbtorul de cuante (de timp) (time slot interchanger), care accept cadre la intrare i produce cadre de ieire n care intervalele de timp au fost reordonate. n Fig. 2-40, intrarea numrul 4 este transmis prima, apoi 7 i aa mai departe. n final, cadrul de la ieire este demultiplexat, cu ieirea 0 (intrarea 4) plecnd pe linia 0 i aa mai departe. n esen, comutatorul a mutat un octet din linia de intrare 4 la linia de ieire 0, un alt octet de la linia de intrare 7 la linia de ieire 1 etc. Vzut din afar, toat aceast schem pare un comutator de circuite, cu toate c nu exist conectri fizice. Schimbtorul de cuante funcioneaz dup cum urmeaz: cnd un cadru de la intrare este pregtit pentru prelucrare, fiecare celul (adic fiecare octet din cadrul de intrare) este scris ntr-un tampon RAM din interiorul schimbtorului. Celulele sunt scrise n ordine, astfel c tamponul i conine celula i. Dup ce toate celulele cadrului de intrare au fost memorate n tampon, cadrul de ieire este construit prin recitirea cuvintelor, dar intr-o alt ordine. Un contor are valori de la 0 la n - 1 . La pasul j, se citete coninutul cuvntului; dintr-o tabel de corespondene i se utilizeaz pentru a adresa tabela RAM. Astfel, dac cuvntul 0 din tabel conine numrul 4, cuvntul 4 din tamponul RAM va fi citit primul i prima celul din cadrul de ieire va fi celula 4 din cadrul de intrare. Astfel, coninutul tabelului determin ce permutare a cadrului de intrare va fi generat pe post de cadru de ieire, deci ce linie de intrare este conectat la ce linie de ieire. Comutatoarele cu divizare n timp folosesc tabele care variaz linear, nu ptratic, cu numrul de bii, dar ele au o alt limitare. Este necesar ca n tamponul RAM s se memoreze n celule i apoi celulele s fie recitite n intervalul de 125 usec. Dac fiecare acces la memorie dureaz T microsecunde, timpul necesar pentru a procesa un cadru este de 2nT microsecunde, deci obinem 2nT = 125 sau n = 125/27". O memorie cu durata ciclului de 100 nsec suport pn la 625 de linii. Putem utiliza aceast relaie i pentru a determina durata maxim necesar unui ciclu de memorie pentru a suporta un anumit numr de linii. La fel ca i pentru comutatoarele matriciale, este posibil s realizm comutatoare multi-nivel care mpart lucrul n mai multe pri i apoi combin rezultatele pentru a putea suporta un numr mai mare de linii.

2.5

ISDN DE BAND LARG

Timp de mai bine de un secol, sistemul telefonic public cu circuite comutate a constituit infrastructura de baz a telecomunicaiilor internaionale. Acest sistem a fost proiectat pentru transmisia vocal i este neadecvat cerinelor transmisiilor prin modem. Anticipnd cererea considerabil a utilizatorilor pentru un serviciu capt-la-capt digital (diferit de cel din Fig. 2-17 care este parial digital i parial analogic), companiile de telefoane i PTT-urile din ntreaga lume s-au ntrunit n 1984 sub auspiciile CCITT i s-au pus de acord s construiasc un nou sistem telefonic cu circuite comutate, complet digital, pn n prima parte a secolului XXI. Acest nou sistem, denumit ISDN (Integrated Services Digital Network - Reea Digital cu Servicii Integrate), are ca principal scop integrarea serviciilor vocale i non-vocale. El este deja disponibil n multe locuri i, ncetul cu ncetul, utilizarea sa crete. n urmtorul capitol vom descrie ce face i cum funcioneaz acest sistem. Pentru informaii suplimentare, a se vedea (Dangdeviren .a., 1994; i Kessler, 1993).

SEC. 2.5

ISDN DE BAND LARG

129

2.5.1 Servicii ISDN


Cu toate c se vor aduga o serie de noi faciliti mbuntite, principalul serviciu al ISDN-ului va continua s fie cel vocal. De exemplu, muli directori de companii au un buton pentru comunicaii interioare, amplasat pe telefonul propriu, care sun instantaneu secretara (timpul necesar pentru stabilirea legturii fiind nul), O facilitate a ISDN-ului o reprezint telefoanele cu butoane multiple pentru stabilirea rapid a legturii cu orice telefoane situate oriunde n lume. O alt facilitate o constituie telefoanele care afieaz pe un ecran, n momentul n care telefonul sun, numrul de telefon, numele i adresa apelantului. O versiune mai sofisticat a acestei faciliti va permite ca telefonul s poat fi cuplat la un calculator astfel nct, nregistrarea din baza de date corespunztoare apelantului va fi afiat pe ecran n momentul apelului. De exemplu, un agent de schimb pentru aciuni poate astfel aranja ca atunci cnd rspunde la telefon, portofoliul apelantului s fie deja afiat pe ecran mpreun cu preurile curente ale tuturor aciunilor apelantului. Alte servicii vocale avansate vor permite redirectarea apelului i conferine telefonice la nivel mondial. Dintre serviciile non-vocale avansate fac parte citirea de la distan a contoarelor electrice i alarmele medicale, anti-efracie i de incendiu, cuplate on-line, care apeleaz automat spitalul, poliia sau pompierii i transmit adresele proprii n scopul unei reacii mai rapide din partea acestor instituii.

2.5.2 Arhitectura sistemului ISDN


A venit acum momentul s analizm n detaliu arhitectura ISDN, n special echipamentul clientului i interfaa dintre client i compania de telefoane sau FIT. Ideea eseniala care st la baza ISDN-ului este aceea de conduct digital de bii (digital bit pipe), o conduct abstract prin care circul biii ntre client i furnizorul de servicii. Nu are importan dac biii provin de la un telefon digital, un terminal digital, un fax digital sau orice alt dispozitiv. Tot ceea ce conteaz este faptul c biii pot circula prin conduct n ambele sensuri. n mod normal, conducta digital de bii poate suporta mai multe canale independente prin multiplexarea n timp a irului de bii. Formatul exact al irului de bii i multiplexarea acestuia sunt pri definite riguros n specificaia interfeei pentru conducta digital de bii. Pentru conducta de bii au fost elaborate dou standarde mai importante: un standard de band joas pentru locuine i un standard de band nalt pentru firme, care poate suporta mai multe canale, identice cu cele folosite n locuine. Mai mult, n cazul n care au nevoie de o capacitate mai mare dect cea pe care standardul o poate furniza, firmele pot avea mai multe conducte de bii. n Fig. 2-41(a) este prezentat configuraia normal pentru o locuin sau firm mic. Furnizorul de servicii monteaz n sediul clientului un dispozitiv terminal de reea, NT1 i l conecteaz la dispozitivul de conversie ISDN din oficiul telefonic, aflat la civa kilometri deprtare, folosind cablurile torsadate care au fost utilizate anterior pentru conectarea telefonului. Dispozitivul NT1 are un conector n care se poate insera un cablu de magistral pasiv. Pe acest cablu se pot conecta pn la opt telefoane, terminale, alarme sau alte dispozitive ISDN, ntr-un mod similar celui n care se conecteaz dispozitivele la un LAN. Din punctul de vedere al clientului, limita reelei proprii este conectorul de pe NT1. Pentru firmele mari, modelul din Fig. 2-41(a) este neadecvat, deoarece vor exista n mod frecvent mai multe convorbiri telefonice simultane dect se pot transmite prin cablul de magistral. Prin

130

NIVELUL HZIC

CAP.2

urmare, n acest caz se folosete modelul din Fig. 2-41 (b). n acest model observm un dispozitiv, NT2, denumit PBX (Private Branch eXchange - Central Telefonic Privat) care este conectat la NTl i care furnizeaz interfaa real pentru telefoane, terminale sau alte echipamente. Un PBX ISDN nu este foarte diferit conceptual fa de un comutator ISDN, cu toate c este, n mod normal, mai mic i nu poate gestiona la fel de multe legturi n acelai timp, Sediu clientului Terminal ISDN Conduct digital de bii Ctre reeaua! intern a furnizorului de servicii Echipamentul furnizorului de servicii (a) Sediul clientului E1 Terminal ISDN Ctre reeaua intern a furnizorului de servicii Oficiul telefonic * -* Oficiul telefonic

Telefon ISDN

Terminal ISDN

Echipamentul clientului

TEI Telefon ISDN

Echipamentul furnizorului de servicii

Terminal Non-ISDN

Echipamentul clientului

(b)

Fig. 2-41. (a) Exemplu de sistem ISDN pentru locuin, (b) Exemplu de sistem ISDN cu un PBX, pentru firme mari.

SEC. 2.5

ISDN DE BAND LARG

131

CCITT a definit patru puncte de referin, denumite R, S, T, i U, ntre diferite dispozitive. Acestea sunt marcate n Fig. 2-41. Punctul de referina U l reprezint conexiunea dintre dispozitivul de conversie ISDN din oficiul telefonic i NT1. In momentul de fa, acesta este un cablu torsadat bifilar de cupru, dar n viitor s-ar putea s fie nlocuit prin fibre optice. Punctul de referin T este dat de ceea ce pune la dispoziia clientului conectorul de pe NT1. Punctul de referin S reprezint interfaa dintre PBX ISDN i terminalele ISDN. Punctul de referin R este dat de conexiunea dintre adaptorul de terminal i terminalele non-ISDN. n cadrul lui R pot fi folosite diferite tipuri de interfee. 2.53 Interfaa ISDN

Conducta de bii ISDN suport mai multe canale, folosind n acest scop multiplexarea n timp. O parte din aceste canale au fost standardizate: A - canal telefonic analogic de 4 KHz B - canal PCM digital pentru voce sau date de 64 Kbps C - canal digital de 8 6au 16 Kbps D - canal digital pentru semnalizare n afara benzii de 16 Kbps E - canal digital pentru semnalizare n interiorul ISDN de 64 Kbps H - canal digital de 384,1536, sau 1920 Kbps CCITT nu a intenionat s permit orice combinaie de canale pe conducta digital de bii. Pn acum au fost standardizate trei combinaii: 1. Viteza de baz: 2B + 1D 2. Viteza primara: 23B + 1D (S.U.A. i Japonia) sau 30B + 1D (Europa) 3. Hibrid: IA + IC Canalele pentru viteza de baz i viteza primar sunt prezentate n Fig. 2-42.

D (64 kbps) Viteza de baz


(a)

L 1 :"""'
O Bl to B2

D (16 kbps)

^ = = \

'

Viteza primar

,sB1toB23

(b)

Fig. 2-42. (a) Canal digital pentru viteza de baz. (b) Canal digital pentru viteza primar.
Canalul pentru viteza de baz ar trebui privit ca un potenial nlocuitor al POTS-ului (Plain Old Telephone Service Sistemul Telefonic Tradiional) pentru locuine i firme mici. Fiecare din canalele B de 64 Kbps pot transmite un singur canal PCM vocal cu eantioane de 8 bii, frecvena de eantionare fiind de 8000 eantioane pe secund (a se observa c n acest caz, 64 Kbps nseamn

132

NIVELUL FIZIC

CAP. 2

6.4000 i EU .65.536).. Semnalizarea se face pe un canal D de 16 Kbps, separat, astfel c toi cei 64 Kbps sunt pui la dispoziia utilizatorului (asemntor sistemului CCITT de 2.048 Mbps i diferit de sistemul TI din S.U.A. i Japonia). Deoarece ISDN se bazeaz att de mult pe canale de 64 Kbps, ne vom referi la el ca N-ISDN (Narrowband ISDN - ISDN de Band ngust), pentru a-1 distinge de ISDN de band larg (ATM), care va fi discutat mai trziu. Canalul pentru viteza primar este adecvat pentru a fi folosit n punctele de referin T n cazul firmelor cu un PBX. El are 23 de canale B i un canal D (de 64 Kbps) n Statele Unite i Japonia i 30 de canale B i un canal D (de 64 Kbps) n Europa. Varianta 23B + 1D a fost aleas astfel, nct s permit unui cadru ISDN s fie compatibil cu sistemul TI de la AT&T. Varianta 30B + 1D a fost aleas astfel, nct s permit unui cadru ISDN s fie compatibil cu sistemul CCITT de 2.048 Mbps. Cel de-al 32-lea interval de timp din sistemul CCITT este folosit pentru ncadrare i ntreinerea general a reelei. Trebuie remarcat faptul c raportul dintre numrul de canale D i numrul de canale B, n cazul vitezei primare, este mult mai mic dect n cazul vitezei de baz, deoarece n acest caz nu se ateapt s fie necesare att de multe msurtori sau s se foloseasc pachete de date de dimensiuni reduse. 2.5.4 Perspectivele N-ISDN N-ISDN a reprezentat o ncercare puternic de a nlocui sistemul telefonic analogic cu unul digital, potrivit att pentru traficul vocal ct i pentru cel non-vocal. S-a presupus c obinerea unui consens mondial n ceea ce privete standardul interfeei pentru viteza de baz, va conduce la o cerere mare pentru echipamente ISDN din partea utilizatorilor i astfel se vor realiza producii n mas, reduceri de scar i circuite VLSI ISDN ieftine. Din nefericire, procesul de standardizare a durat ani de zile, iar tehnologia din acest domeniu a evoluat foarte rapid, ceea ce a fcut ca n momentul n care standardul a fost n sfrit adoptat, acesta s fie deja nvechit. n cazul locuinelor, cea mai mare cerere pentru noile servicii va fi cu siguran video la cerere. Din nefericire, canalul pentru vitez de baz a ISDN limiteaz limea de band necesar cu dou ordine de mrime. Pentru firme, situaia este i mai sumbr. LAN-urile existente n momentul de fa ofer cel puin 10 Mbps i sunt treptat nlocuite de LAN-uri de 100 Mbps. Oferind servicii de 64 Kbps pentru firme, n anii 1980 acest sistem a constituit o ofert serioas. n anii 1990, a devenit o bagatel. Destul de surprinztor, ISDN mai poate fi nc salvat doar de ctre o aplicaie total neateptat: accesul la Internet. Diferite companii vnd acum adaptoare ISDN care combin canalele 2B + 1D ntr-un singur canal digital de 144 Kbps. Muli furnizori de servicii Internet suport, de asemenea, aceti adaptori. Rezultatul este c lumea poate face acces la Internet printr-o legtur complet digital de 144 Kbps, n loc de o legtur analogic prin modem de 28,8 Kbps. Pentru muli utilizatori ai Internetului, creterea de cinci ori a vitezei de afiare a paginilor World Wide Web complet grafice justific din plin existena acestui serviciu. n timp ce B-ISDN la 155 Mbps este mult mai bun, N-ISDN este disponibil acum la un pre accesibil i acest fapt poate constitui principala sa aplicaie n urmtorii ani.

SEC 2.6

ISDN DE BAND LARG I ATM

133

2.6 ISDN DE BAND LARG I ATM


Atunci cnd CCITT i-a dat seama c ISDN de band ngust nu poate s corespund cerinelor actuale, a ncercat s se gndeasc la un nou serviciu. Rezultatul a fost apariia ISDN-ului de band larg (B-ISDN), n principiu un circuit digital virtual pentru transportul pachetelor de dimensiune fix (celule) de la surs la destinaie, cu 155 Mbps (n realitate 156 Mbps, dup cum am menionat mai devreme). Din moment ce aceast vitez de transfer este suficient chiar i pentru HDTV (necomprimat), se pare c va satisface chiar i cele mai mari cereri de band, cel puin pentru civa ani. ISDN-ul de band ngust a fost un prim pas timid spre era digital, n timp ce ISDN de band larg este un salt ndrzne n necunoscut. Beneficiile sunt enorme, limea de band crescnd de 2500 de ori fa de ISDN de band ngust, dar tot att de multe sunt i problemele care apar (Armbruster, 1995). n primul rnd, ISDN-ul de band larg se bazeaz pe tehnologia ATM i, dup cum am discutat pe scurt n Cap. 1, ATM este n primul rnd o tehnologie bazat pe comutarea de pachete i nicidecum o tehnologie bazat pe comutarea de circuite (dei ea poate emula comutarea de circuite destul de bine). Prin contrast, att PSTN-ul existent ct i ISDN-ul de band ngust sunt tehnologii bazate pe comutarea de circuite. Prin aceast schimbare, aproape toat experiena inginereasc din domeniul comutrii de circuite va deveni nvechit. Trecerea de la comutarea de circuite la comutarea de pachete este ntr-adevr o paradigm a schimbrii. Ca i cum aceasta nu ar fi fost de ajuns, ISDN-ul de band larg nu poate fi folosit pe cablurile torsadate existente, n cazul unor distane mai mari. Aceasta nseamn c implementarea sa va necesita eliminarea total a celor mai multe bucle locale i nlocuirea lor cu cabluri torsadate de categoria a 5-a sau cu fibre optice (Stephens i Banwell, 1995). Mai mult dect att, comutatoarele cu divizare n spaiu i cele cu divizare n timp nu pot fi folosite pentru comutarea de pachete. Ele vor fi toate nlocuite de comutatoare noi, care au la baz principii complet diferite i care lucreaz la viteze mult mai mari. Singurele lucruri care pot fi pstrate sunt trunchiurile de fibr optic inter-zonale. Pe scurt, renunarea la cunotinele acumulate n 100 de ani, la care se adaug o investiie, att n instalaii tehnologice ct i n instalaii auxiliare, n valoare de mai multe sute de miliarde de dolari, nu este chiar un pas mic, care s poat fi fcut uor. Cu toate acestea, pentru companiile de telefoane este clar c dac ele nu vor face acest pas, companiile de televiziune prin cablu, gndinduse s realizeze video la cerere, aproape sigur l vor face. In timp ce un deceniu sau chiar mai mult, se pare, vor mai exista att PSTN-ul actual ct i ISDN de band ngust, viitorul va ine probabil cu ATM-ul pentru o lung perioad de timp i, prin urmare, l vom studia amnunit n aceast carte, ncepnd, n acest capitol, cu nivelul fizic.

2.6.1 Circuitele virtuale n comparaie cu circuitele comutate


Serviciul de baz al ISDN-ului de band larg este un compromis ntre comutarea pur de circuite i comutarea pur de pachete. Serviciul oferit la ora actual este orientat pe conexiune dar este implementat intern prin comutarea de pachete, nu prin comutarea de circuite. Sunt disponibile dou tipuri de conexiuni: circuite virtuale permanente i circuite virtuale comutate. Circuitele virtuale permanente sunt cerute explicit de ctre client (de exemplu prin trimiterea

3.4

NIVELUL FIZIC

CAP. 2

unui fax ctre furnizor) i, n mod normal, se pstreaz pe durata mai multor luni sau ani. Circnitele virtuale comutate sunt asemntoare apelurilor telefonice: sunt stabilite n mod dinamic n momentul apelului i pot fi desfcute imediat dup aceea. ntr-o reea cu comutare de circuite, realizarea unei conexiuni presupune de fapt stabilirea unei legturi fizice prin reea, de la surs la destinaie, bineneles, atunci cnd se folosesc comutatoare cu divizare n spaiu. (n cazul comutatoarelor cu divizare n timp, noiunea de legtur fizic este puin forat.) nr-o reea cu circuite virtuale (cum este ATM-ul), atunci cnd este stabilit un circuit, se alege traseul ntre surs i destinaie i toate comutatoarele (ruterele, n acest caz) de pe traseu i construiesc intrri n tabela de dirijare, astfel nct s poat dirija orice pachet prin acel circuit. De asemenea, comutatoarele au posibilitatea de a pstra resurse pentru un nou circuit. Figura 2-43 prezint un singur circuit virtual de la calculatorul gazd HI la calculatorul gazd H5, via comutatoarele (ruterele) A, E, C i D.

H2
) )

H3

Hi

f'

H5

J
Tabel intern e rutare

He

Calculator gazd

Fig. 2-43. Linia punctat indica un circuit virtual. El este definit pur i simplu de ctre intrrile din tabela de dirijare din interiorul fiecrui comutator. Atunci cnd sosete un pachet, comutatorul inspecteaz antetul pachetului pentru a stabili crui circuit virtual i aparine. Apoi caut acel circuit virtual n tabela de rutare proprie, pentru a determina pe care linie de comunicaie s fac transmisia. Vom examina acest proces mai amnunit n Cap. 5. In acest moment ar trebui s fie clar semnificaia circuitului virtual permanent ntre HI i H5 din Fig. 2-43. Acesta reprezint un acord ntre client i furnizor prin care comutatoarele vor menine ntotdeauna n tabelele de dirijare, intrrile corespunztoare unei destinaii particulare, chiar dac nu a mai existat trafic de luni ntregi. Evident, un astfel de acord cost resurse (n mod sigur, spaiu n tabela de dirijare din interiorul comutatoarelor i, probabil, lime de band i tampoane rezervate) i, prin urmare, va exista o tax lunar pentru fiecare circuit virtual permanent. Avantajul fa de un circuit virtual comutat const n faptul c se

SEC 2.6

ISDN DE BAND LARG I ATM

as.

elimin timpul de stabilire a legturii. Pachetele se pot deplasa instantaneu n acest caz. n cazul unor aplicaii de genul verificrii crilor de credit, economisirea ctorva secunde la fiecare tranzacie poate s justifice din plin pltirea acestui cost. Prin contrast, o linie nchiriat ntre HI i H5 ntr-o reea cu comutare de circuite, avnd topologia din Fig. 2-43 i comutatoare cu divizare n spaiu, ar menine nchise punctele de intersecie (crosspoints) timp de mai multe luni i ar rezerva permanent o lime de band din banda trunchiurilor, sub form de band FDM sau interval de timp (o linie nchiriat poate fi nndit" de mai multe ori (multihop), n cazul n care nu este disponibil o linie direct). O astfel de implementare ar conduce n mod clar la o risip mult mai mare de resurse, atunci cnd circuitul este liber, dect n cazul circuitelor virtuale.

2.6.2 Transmisia n reelele ATM


Dup cum am artat mai nainte, ATM nseamn Asynchronous Transfer Mode - mod de transfer asincron. Acest mod poate fi comparat cu modul sincron TI, prezentat n Fig. 2-44 (a). Un cadru TI este generat exact la fiecare 125 usec. Aceast rat de generare este dictat de un ceas mater. Slotul k al fiecrui cadru conine un octet de date de la aceeai surs. TI este un mod de transfer sincron.

1 cadru T1 !125|isec\ i 22 2324 1 2 3 4 5 6 7 8 9 10 11 12 131415 1617 18 192021 22 2324 1 2 3


-Canalul 1 ocup exact octetul 1 de la nceputul fiecrui cadru (a)

14
1 celul (53 octei)

Nu exist nici o constrngere asupra ordinii celulelor

(b)

Fig. 2-44. (a) Modul de transmisie sincron, (b) Modul de transmisie asincron. Prin comparaie, ATM nu cere ca celulele s alterneze strict ntre surse diferite. Fig. 2-44 (b) prezint celulele de pe o linie provenind de la surse diferite, fr s se respecte un ablon particular. Celulele sosesc n mod aleatoriu de la diverse surse. Mai mult, nu se impune ca irul de celule transmise de un calculator s fie continuu. Este posibil s existe guri" ntre celulele de date. Aceste guri" sunt umplute cu celule libere speciale. ATM nu standardizeaz formatul pentru celulele transmise. n loc de aceasta se precizeaz c este permis, pur i simplu, transmisia individual a celulelor i, de asemenea, se precizeaz c celulele pot fi ncapsulate ntr-un mediu de transmisie ca TI, T3, SONET sau FDDI (un LAN pe

NIVELUL FIZIC

CAP. 2

fibr, optic). Pentru aceste exemple, exist standarde care stabilesc modul de mpachetare a fepiia4i de aceste sisteme. 355.$2 Mbps, cu o vil^ .adiional de ptai vitez a fost aleas pentru compatibilitate cu SONET, standardul folosit pentru legturile pe fibr optic din sistemul telefonic. De asemenea, sunt prevzute standarde pentru ATM pe T3 (44,736 Mbps) i FDDI (100 Mbps). Mediul de transmisie pentru ATM este, n mod normal, fibra optic, dar pentru distane sub 100 metri, sunt acceptate i cablurile coaxiale sau cele torsadate de categoria a 5-a. Fibra optic se poate folosi pe distane de mai muli kilometri. Fiecare legtur ine de la un calculator pn la un comutator ATM sau ntre dou comutatoare ATM. Cu alte cuvinte, toate legturile ATM sunt de tip punct-la-punct (spre deosebire de LAN-uri, care au mai muli emitori i receptori pe acelai cablu). Trimiterea multipl se realizeaz prin transmisia celulei care a intrat ntr-un comutator, pe mai multe linii de ieire. Fiecare legtura punct-la-punct este unidirecional. Pentru o operare fullduplex sunt necesare dou legturi paralele, cte una pentru fiecare sens. Subnivelul ATM Physical Medium Dependent - dependent de mediul fizic are rolul de a insera sau extrage biii n sau din cablu. n funcie de viteza i codificarea pe linie, pentru cabluri i fibre optice diferite este necesar un hardware diferit. Scopul subnivelul transmision convergence convergena transmisiei este de a furniza o interfa uniform nivelului ATM, n ambele direcii. La emisie, nivelul ATM furnizeaz o secven de celule, iar subnivelul PMD o codific dup cum este necesar i apoi o transmite ca un ir de bii. La recepie, subnivelul PMD preia de pe reea biii care sosesc i livreaz subnivelului TC un ir de bii. Marginile cadrului nu sunt marcate n nici un fel. Este rolul subnivelului TC s marcheze ntr-un anumit fel unde se sfrete o celul i unde ncepe urmtoarea. Acest lucru nu este doar dificil, el este teoretic imposibil. De aceea, responsabilitatea subnivelul TC este clar. Deoarece subnivelul TC realizeaz ncadrarea celulelor, aceasta este o funcie a legturii de date i, prin urmare, o vom discuta n Cap. 3. Pentru mai multe informaii despre nivelul fizic ATM, a se vedea (Rao i Hatamian, 1995). 2.6.3 Comutatoare ATM n literatura de specialitate au fost descrise mai multe proiecte de comutatoare de celule ATM. O parte din acestea au fost implementate i testate. n acest capitol vom face o scurt introducere n principiile de proiectare a comutatoarelor de celule ATM i le vom ilustra prin cteva exemple. Pentru mai multe informaii, a se vedea (De Prycker, 1993; Garcia-Haro i Jajszczyk, 1994; Handel . a., 1994; i Partridge, 1994). Pentru informaii despre un comutator ATM optimizat pentru lucrul cu IP peste ATM, a se vedea (Parulkar . a., 1995). Modelul general al unui comutator de celule ATM este prezentat n Fig. 2-45. Comutatorul are un numr de linii de intrare i un numr de linii de ieire, aceste numere fiind aproape ntotdeauna aceleai (deoarece aceste linii sunt bidirecionale). Comutatoarele ATM sunt, n general, sincrone, n sensul c pe durata unui ciclu, de pe fiecare linie de intrare se preia cte o celul (dac exist vreuna), se introduce n schema intern de comutare i eventual se transmite pe linia de ieire corespunztoare. Comutatoarele pot fi de tip band de asamblare, ceea ce nseamn c s-ar putea s dureze mai multe cicluri pn cnd o celula recepionat apare pe linia de ieire corespunztoare. n realitate,

SEC. 2.6 s@sesc pe

ISDN DE BAND LARG SI ATM

137

i p i i stmaice exist un ceas mater care n momentul n care a btut iiimi noad 5^isal, poate fi comutat pe durata acelui ddu. O celul care nu a fost n ntregime recepionat rebme s atepte pn la urmtorul cidu.
Celulele sunt recepionate Celulele sunt comutate Celulele sunt retransmise

11

11

Schem intern de comutare

Fig. 2-45. Un comutator ATM generic. Celulele sosesc cu viteza ATM, n mod normal de aproximativ 150 Mbps. Aceasta reprezint ceva mai mult de 360.000 celule/sec, ceea ce nseamn c durata unui ciclu ntr-un comutator este de aproximativ 2,7 usec. Un comutator comercial poate avea ntre 16 i 2048 linii de intrare, ceea ce nseamn c acesta trebuie s fie gata s primeasc i s nceap comutarea unui lot de 16 pn la 1024 de celule, la fiecare 2,7 usec. La o vitez de 622 Mbps, n schema intern de comutare este injectat un nou lot de celule la fiecare 700 nsec. Faptul c celulele sunt de lungime fix i reduse ca dimensiune (53 de octei), face posibil construcia unor astfel de comutatoare. Dac pachetele ar fi lungi i variabile ca dimensiune, comutatoarele de mare vitez ar fi mult mai complexe i din aceast cauz ATM-ul folosete celule de lungime fix i reduse ca dimensiune. Orice comutator ATM are dou scopuri principale: 1. Comutarea tuturor celulelor cu o rat de rejectare ct mai mic posibil. 2. Pstrarea ntotdeauna a ordinii celulelor de pe un circuit virtual. Primul punct spune c este permis s se elimine celule n caz de necesitate, dar rata de pierdere a celulelor trebuie s fie ct mai mic posibil. Se poate accepta o rat de pierdere de o celul din 1012. In cazul unui comutator de dimensiuni mai mari, aceast rat este de aproximativ una sau dou celule pe or. Punctul 2 spune c celulele care sosesc pe un circuit virtual ntr-o anumit ordine, trebuie s plece n aceeai ordine, fr nici o excepie. Aceast constrngere face ca proiectarea comutatoarelor s fie mult mai dificil, dar ea este impus de standardul ATM. O problem care apare n toate comutatoarele ATM este ce se ntmpl dac celulele care sosesc la dou sau mai multe linii de intrare, vor s plece pe acelai port de ieire pe durata aceluiai ciclu. Rezolvarea acestei probleme este una din chestiunile cele mai importante n proiectarea tuturor comutatoarelor ATM. O soluie fals ar fi s se aleag o celul care s se transmit i s se elimine ce mai rmne. Deoarece acest algoritm violeaz punctul 1, el nu poate fi folosit. O alt ncercare de a rezolva problema ar fi s se prevad o coad de ateptare pentru fiecare linie de intrare. Dac dou sau mai multe celule sunt n conflict n privina liniei de ieire, una din ele

B8

NIVELUL FIZIC

CAP. 2

este aleas pentru transmisie i restul sunt pstrate pentru urmtorul ciclu. Alegerea celulei poate fi fcut aleatoriu sau ciclic, dar trebuie s nu se favorizeze n mod sistematic, de exemplu, liniile cu numrul de ordine mai mic, pentru a se evita servirea mai des a acestora fa de liniile cu numrul de ordine mai mare. Figura 2-46(a) prezint situaia de la nceputul ciclului 1, n care celulele au sosit pe toate cele patru linii de intrare i au ca destinaie liniile 2,0, 2 i 1, respectiv. Deoarece exist un conflict pentru linia 2, poate fi aleas numai una dintre celule. S presupunem c se alege aceea de pe linia 0. La nceputul ciclului 2, prezentat n Fig. 2-46(b), trei dintre celule au fost transmise, iar celula de pe linia 2 a fost reinut i au mai sosit nc dou celule. Exact la nceputul ciclului 4, prezentat n Fig. 2-46(d), toate celulele au prsit comutatorul.
Celul destinat Start liniei 2 ciclu 1 Start ciclu 2 Start ciclu 3 Start ciclu 4

3 0 2
(a) (b)
-

2 3

(O

(d)

Fig. 2-46. Folosirea cozilor de ateptare pe intrri la un comutator ATM . Problema folosirii cozilor de ateptare pe intrri este c, atunci cnd o celul trebuie s atepte, ea blocheaz naintarea tuturor celulelor din spatele ei, chiar dac acestea ar putea fi, altfel, comutate. Acest efect poart denumirea de blocare Ia captul liniei.
Start ciclu 1 Start ciclu 2 Start ciclu 3

? 0 2 1

0 1

n
o

o i.

i.

(a)

(b)

(c)

Fig. 2-47. Folosirea cozilor de ateptare pe ieiri la un comutator ATM . ntr-o oarecare msur, lucrurile sunt ceva mai complicate dect au fost prezentate aici, deoarece ntr-un comutator cu 1024 de linii de intrare, conflictele nu pot fi detectate pn cnd celulele nu strbat efectiv comutatorul i se ciocnesc" pe linia de ieire. Pstrarea unei celule n coada sa de la intrare pn cnd sosete napoi un semnal care s anune ciocnirea, necesit o logic

SEC. 2.6

ISDN DE BANDA LARGA SI ATM

139

suflipentar, o cale de semnalizare invers i,o ntrziere mai mare, Ceea ce se face uneori este s se pun celulele care au pierdut btlia", pe o magistral de reciclare care le trimite napoi n partea de intrare, dar n acest caz, comutatorul trebuie s aib grij unde va pune celulele pentru a evita livrarea ntr-o alt ordine a celulelor de pe acelai circuit virtual. O soluie alternativ care nu prezint efectul de blocare la captul liniei, folosete cozi de ateptare n partea de ieire, aa cum este artat n Fig. 2-47. n acest desen avem acelai model de celule la intrare, dar de data aceasta, atunci cnd dou celule vor s mearg spre aceeai linie de ieire n acelai ciclu, ambele sunt trecute prin comutator. Una din ele este transmis pe linia de ieire, iar cealalt este pus n coada de ateptare asociat liniei de ieire, dup cum se observ n Fig. 2-47(b). n acest caz, pentru a comuta toate pachetele sunt necesari trei cicli n loc de patru. Karol . a. (1987) a artat c folosirea cozilor de ateptare pe ieiri este, n general, mai eficient dect folosirea lor pe intrri.
Comutatorul Knockout

Haidei acum s ne uitm mai atent la un proiect de comutator ATM care folosete cozi de ateptare pe ieiri. Comutatorul se numete comutator knockout (Yeh . a., 1987) i este prezentat n Fig. 2-48 pentru cazul cu opt linii de intrare i opt linii de ieire.
Linii de intrare Magistrala de difuzare

Concentrator

Regisrtru de deplasare Cozi de ieire 0 1 2 3 4 5 6 7 Linii de ieire

Fig. 2-48. O schem simplificat a unui comutator knockout. Fiecare linie de intrare este conectat la o magistral pe care celulele recepionate sunt difuzate n timpul ciclului n care au sosit. Existnd doar un singur controlor de magistral pentru fiecare magistral, proiectarea i ordonarea n timp a funcionrii schemei se simplific considerabil. Pentru fiecare celul recepionat, hardware-ul inspecteaz antetul celulei pentru a gsi informaia despre canalul virtual asociat, se uit n tabela de rutare (vezi Fig. 2-43) i activeaz apoi legtura corespunztoare. Celula cltorete" apoi de-a lungul magistralei proprii pn cnd ajunge la legtura activat, moment n care se ndreapt n jos ctre linia de ieire corespunztoare. Este posibil ca mai multe celule, de fapt chiar toate, s mearg ctre aceeai linie de ieire. De

140

NIVELUL FIZIC

CAP. 2

asemenea, este posibil ca o celul s fie trimis pe mai multe linii de ieire doar prin activarea mai multor legturi de pe magistrala de difuzare corespunztoare. Cea mai simpl modalitate de manipulare a coliziunilor ar fi pur i simplu memorarea temporar a tuturor celulelor n partea de ieire. Totui, pentru un comutator cu 1024 linii de intrare, n cazul cel mai defavorabil, ar fi nevoie de 1024 de zone tampon de ieire. n practic, este foarte puin probabil s apar aceast situaie i, prin urmare, se poate face o optimizare rezonabil prin folosirea a mult mai puine tampoane, s zicem n. n cazul puin probabil n care ntr-un ciclu sosesc mai multe celule dect se pot manipula, concentratorul de pe fiecare linie selecteaz n celule pentru a fi puse n coada de ateptare i le elimin pe celelalte. Concentratorul este un circuit inteligent care face aceast selecie ntr-un mod echitabil, folosind un turneu de eliminare (knockout) similar cu sferturile de final, semifinalele sau finalele din multe turnee sportive. Conceptual, toate celulele selectate merg ntr-o singur coad de ieire (n afar de cazul n care aceasta este plin, caz n care celulele sunt eliminate). Totui, colectarea tuturor celulelor ntr-o singur coad n intervalul de timp alocat, nu este posibil i, prin urmare, coada de ieire este simulat prin mai multe cozi. Celulele selectate intr ntr-un registru de deplasare, care apoi le distribuie uniform n n cozi de ieire. Pentru a ine evidena cozilor care urmeaz la rnd, n scopul meninerii ordinii din interiorul fiecrui circuit virtual, se folosete un jeton. Variind n, proiectanii pot micora costul comutatorului cu preul creterii ratei de pierdere a celulelor. Comutatorul Batcher-Banyan Problema comutatorului knockout este aceea c el este de fapt un comutator matriceal i, prin urmare, numrul punctelor de legtura este egal cu ptratul numrului de linii. Deoarece acest factor s-a dovedit a fi o problem n comutarea de circuite, el constituie, de asemenea, o problem i pentru comutarea de pachete. Soluia pentru comutarea de circuite a constituit-o comutarea cu divizare n Spaiu care a redus substanial numrul de legturi cu preul folosirii unui comutator n mai multe trepte. i pentru comutarea de pachete exist o soluie similar.
Treapta 1 face dirijarea n funcie de bitul cel mai semnificativ Treapta 2 face dirijarea n funcie de bitul din mijloc Treapta 3 face dirijarea n funcie de bitul cel mai puin semnificativ

(b) Fig. 2-49. Un comutator banyan cu opt linii de intrare i opt linii de ieire, (b) Traseele pe care le parcurg dou celule prin comutatorul banyan.

SEC. 2:6

ISDN DE BAND LARGA SI ATM

141

Aceast soluie poart denumirea de comutator Bateher-Banyan. La fel ca i comutatoarele knockout, comutatoarele Bateher-Banyan sunt sincrone, ele prelund o mulime de celule (zero sau una pentru fiecare linie de intrare) la fiecare ciclu. Chiar i un comutator Bateher-Banyan simplu este mult mai complicat dect comutatoarele cu divizare n spaiu din Fig. 2-39 i de aceea l vom prezenta pas cu pas. n Fig. 2-49(a) avem un comutator banyan 8x8 n trei trepte, denumit astfel deoarece se spune c schema sa seamn cu rdcinile unui arbore banyan. n toate comutatoarele banyan, exist o singur cale de la fiecare linie de intrare la fiecare linie de ieire. Dirijarea se realizeaz prin determinarea numrului liniei de ieire pentru fiecare celul (pe baza informaiilor despre circuitul virtual i a tabelelor de rutare). Acest numr binar pe 3 bii este apoi pus n faa celulei pentru a fi folosit la rutarea prin comutator. Fiecare din cele 12 elemente de comutare din comutatorul banyan are dou intrri i dou ieiri. Atunci cnd o celul sosete la un element de comutare, este inspectat bitul corespunztor liniei de ieire i, pe baza acestuia, celula este ratat ctre portul 0 (cel superior) sau ctre portul 1 (cel inferior). n cazul unei coliziuni, se rateaz o celul i se elimin cealalt. Un comutator banyan analizeaz numrul liniei de ieire de la stnga la dreapta i, prin urmare, prima treapt examineaz bitul cel mai din stnga (bitul cel mai semnificativ), treapta a dou examineaz bitul din mijloc, iar treapta a treia pe cel din dreapta (cel mai puin semnificativ). n Fig. 2-49(b) sunt prezente dou celule: o celul pe linia de intrare 0, avnd ca destinaie linia de ieire 6 i o celul pe linia de intrare 3, avnd ca destinaie linia de ieire 1. Pentru prima celul, adresa binar de ieire este 110, prin urmare ea trece prin cele trei trepte folosind portul inferior n prima treapt, portul inferior n cea de-a doua i portul superior n cea de-a treia, aa cum se vede n figur. Similar, cealalt celul, etichetat cu 001 n binar, folosete portul superior n prima treapt, portul superior n cea de-a doua i portul inferior n cea de-a treia treapt.

0 1

T -\r T
5 6 7 3

HMMI

r\r
"A

hr

1^ 3

T A

MMM

mm

6 7

Fig. 2-50. (a) Coliziunea celulelor ntr-un comutator Banyan. (b) Rutarea fr coliziuni a celulelor ntr-un comutator banyan.

Din nefericire, ntr-un comutator banyan apare o coliziune atunci cnd dou celule recepionate vor s ias dintr-un element de comutare pe acelai port simultan. n Fig. 2-50(a) sunt prezentate o serie de astfel de coliziuni. n prima treapt, n coliziune sunt implicate celulele care se ndreapt ctre urmtoarele perechi de linii de ieire: (5,7), (0,3), (6,4) i (2,1).

142

NIVELUL FIZIC

CAP. 2

S presupunem c aceste coliziuni sunt rezolvate n favoarea liniilor 5, 0, 4 i 1. n cea de-a doua treapt vom avea coliziuni ntre (0,1) i (5,4). Lsm aici s ctige 1 i 5 care apoi vor fi dirijate ctre liniile de ieire corespunztoare. Privii acum Fig. 2-50 (b). Toate cele opt celule trec fr nici o coliziune. Concluzia este urmtoarea: n funcie de celulele de la intrare, un comutator banyan poate face o rutare bun sau proast. Ideea care se ascunde n spatele unui comutator Batcher-banyan este de a pune n faa sa un comutator care s permute celulele ntr-o configuraie pe care comutatorul banyan o poate manipula fr pierderi de celule. De exemplu, dac celulele recepionate sunt sortate dup destinaie i puse pe liniile de intrare 0, 2,4, 6,1,3,5, i 7 n aceast ordine, n msura n care este necesar (n funcie de cte celule exist efectiv), atunci comutatorul banyan nu va pierde din celule.
Reeaua capcan se amplaseaz aici

Comutator Batcher Interclasare pe Interclasare pe 8 ci Sortare 4 ci

Comutator Banyan

Reeaua de amestecare

Fig. 2-51. Schema intern de comutare a unui comutator Batcher-banyan. Pentru a sorta celulele recepionate putem folosi un comutator Batcher, inventat de KE Batcher (1969). La fel ca i comutatoarele banyan i knockout, comutatorul Batcher este, de asemenea, sincron i funcioneaz n cicluri discrete. Un comutator Batcher este construit din 2x2 elemente de comutare, cu deosebirea c acestea funcioneaz diferit fa de cele din comutatorul banyan. Atunci cnd un element de comutare recepioneaz: dou celule, compar numeric adresele de ieire (nu un singur bit) i o ruteaz pe cea cu adresa mai mare spre portul indicat de sgeat, iar pe cea cu adresa mai mic spre cellalt port. Dac exist o singur celul la intrare, atunci ea se duce spre portul opus celui indicat de sgeat. n Fig. 2-51 este prezentat un comutator Batcher pentru opt linii. Prima treapt sorteaz perechi alturate de celule recepionate. Urmtoarele dou trepte fac o interclasare pe 4 ci. Ultimele trei trepte fac o interclasare pe 8 ci. n general, pentru n linii, complexitatea unui comutator Batcher crete cu log2n. Atunci cnd pe liniile de intrare exist k celule, comutatorul Batcher pune celulele sortate pe primele A: linii de ieire.

SEC. 2.6

ISDN DE BAND LARG I ATM

143

. Dup ieirea din comutatorul Batcher, celulele strbat o conexiune de amestecare i apoi sunt injectate n comutatorul banyan. Rezultatul final este c fiecare celul apare pe linia de ieire corect la captul ndeprtat al comutatorului banyan. n Fig. 2-52 este prezentat un exemplu de funcionare al schemei combinate de comutatoare Batcher-banyan. n aceast figur sunt prezente celule pe liniile de intrare 2, 3, 4 i 5 avnd ca destinaie liniile de ieire 6,5,1 i respectiv 4. Iniial, celulele avnd ca destinaie liniile 5 i 6 intr n acelai element de comutare. Celula 6 are o adres mai mare, prin urmare va iei pe direcia indicat de sgeat; celula 5 va merge pe cealalt cale. n acest caz nu apare nici o schimbare de direcie. n cazul celulelor 1 i 4 apare o schimbare de direcie, celula 4 intr n elementul de comutare pe linia de jos i iese pe linia de sus. Liniile ngroate marcheaz traseele strbtute pn la final.
Comutator Batcher Comutator Banyan

Fig. 2-52. Un exemplu de rutare a patru celule folosind un comutator Batcher-banyan. Trebuie remarcat faptul c la sfritul comutatorului Batcher, cele patru celule sunt aranjate n ordine. Apoi ele strbat reeaua de amestecare i sunt injectate n comutatorul banyan care le poate prelucra acum fr coliziuni. In principiu, comutatorul Batcher-banyan realizeaz o bun comutare ATM dar exist dou complicaii pe care le-am ignorat: coliziunea pe liniile de ieire i transmiterea multipl a celulelor. Dac dou sau mai multe celule au ca destinaie aceeai linie de ieire, comutatorul Batcher-banyan nu le poate manipula i, drept urmare, va trebui s folosim din nou un fel de memorare ntr-un tampon. O metod de rezolvare a acestei probleme ar fi inserarea unei reele capcan ntre comutatorul Batcher i comutatorul banyan. Rolul reelei capcan este de a filtra celulele care au aceeai destinaie i de a le recicla pentru ciclurile urmtoare, avnd grij s se menin ordinea celulelor de pe acelai circuit virtual. (Ar trebui s fie clar acum c ordinea celulelor constituie o problem mult mai complicat dect pare la prima vedere.) Comutatoarele comerciale pot, de asemenea, trata i trimiteri multiple. Primul comutator ATM de tip Batcher-banyan a fost proiectat de Huang i Knauser (1984). El a fost denumit Starlite. Apoi au urmat Moonshine (Hui, 1987) i unhine (Giacopelli . a. 1991).

144

NIVELUL FIZIC

CAP. 2

Trebuie s admitei c aceste denumiri au o not de umor. Starlite, Moonshine i Sunshine difer n principal prin reeaua capcan i prin modul n care trateaz trimiterile multiple.

2.7

RADIO CELULAR

Exist un grup de utilizatori, n continu cretere, pe care sistemul telefonic tradiional (chiar i atunci cnd ISDN de band larg va deveni complet operaional) nu va putea s l satisfac: oamenii n micare. Prin urmare, sistemele care folosesc pentru comunicaii unde radio n loc de cabluri sau fibre optice reprezint o concuren tot mai serioas. Aceste sisteme vor juca n urmtorii ani, un rol din ce n ce mai important pentru reelele de calculatoare portabile, pentru telefoanele de buzunar i pentru asistenii digitali personali. n urmtorul capitol vom examina paging-ul prin satelit, telefoanele fr fir, telefoanele celulare i alte tehnologii similare. Aceste sisteme sunt acum combinate ntre ele, dnd natere calculatoarelor portabile capabile s recepioneze apeluri telefonice, faxuri i pot electronic sau s interogheze de la distan o baz de date, indiferent de locul unde se afl pe glob. Astfel de dispozitive au creat deja o pia imens. La aceast aciune doresc s ia parte multe companii din domeniul calculatoarelor, telefoanelor, sateliilor sau alte domenii. Rezultatul este o piaa haotic, cu numeroase produse i servicii suprapuse i incompatibile, toate aflate ntr-o schimbare rapid i fiind diferite, n general, de la ar la ar. Cu toate acestea, prezentarea care urmeaz i propune s pun la dispoziie mcar cunotinele fundamentale despre tehnologiile care stau la baza acestor sisteme. Pentru mai multe informaii, a se vedea (Bates, 1994; Goodman, 1991; Macario, 1993; Padgett . a., 1995; i Seybold, 1994). 2.7.1 Sisteme pager Primele sisteme pager foloseau difuzoarele din interiorul unei singure cldiri. ntr-un spital este ceva obinuit s se aud prin sistemul public de comunicare, anunuri de genul: Dr. Suzanne este rugat s sune la interiorul 4321." n zilele noastre, persoanele care vor s primeasc mesaje prin pager, poart asupra lor nite beeper-e mici. Acestea au de obicei ecrane de dimensiuni reduse pentru afiarea scurtelor mesaje primite. O persoan care dorete s ia legtura prin pager cu un posesor de beeper, poate s sune la compania de beeper-e, i s introduc un cod de securitate, numrul beeper-ului i .de asemenea numrul de telefon la care s sune purttorul beeper-ului (sau un alt mesaj scurt). Calculatorul recepioneaz cererea i apoi o transmite prin linii terestre ctre o anten amplasat la o nlime mare, care difuzeaz direct mesajul (n cazul sistemelor pager locale) sau l transmite ctre un satelit care apoi l redifuzeaz (n cazul sistemelor pager de lung distan). Atunci cnd beeper-ul detecteaz n semnalul radio recepionat, propriul numr de identificare, beeper-ul emite un semnal sonor i afieaz numrul de telefon care trebuie format. De asemenea, este posibil s se anune simultan prin pager un grup de persoane, doar printr-un singur telefon. Majoritatea sistemelor de pager avansate se pot conecta direct la un calculator i pot recepiona nu doar un singur numr de telefon ci un mesaj mult mai lung. Calculatorul poate apoi s prelucreze datele pe msur ce sunt recepionate. De exemplu, cu ajutorul acestui sistem de pagere, o companie poate menine actualizate listele de preuri din calculatoarele portabile ale vnztorilor. -frimarea fer majoritate; sistemele pager actuale au proprietatea c surit sisteme ntr-un singur

SEG.2.7

RADIO CEEULAR

145

sens, de la ieirea unui singur calculator ctre un numr mare de receptori. Din moment ce exist un singur emitor n tot sistemul, nu exist nici o problem n legtur cu cine urmeaz s vorbeasc i nici o disput ntre utilizatorii aflai n competiie pentru un numr mic de canale. Sistemele pager actuale necesit o band ngust, deoarece fiecare mesaj are nevoie, pentru a fi transmis, de o singur rafal de aproximativ 30 de octei. La o asemenea rat de transfer a datelor, un canal prin satelit de 1 Mbps poate gestiona peste 240.000 pagere pe minut. Sistemele pager mai vechi lucreaz la diferite frecvene n banda 150-174 MHz.

931 MHz

830 MHz

842 MHz

887 MHz

(a)

(b)

Fig. 2-53. (a) Sistemele pager sunt unidirecionale, (b) Telefoanele mobile sunt bidirecionale. Majoritatea sistemelor pager moderne folosesc banda 930-932 MHz. Figura 2-53(a) evideniaz caracterul unidirecional al unui sistem pager, avnd o singur frecven pentru efectuarea tuturor transmisiilor. Mai trziu vom vedea prin ce difer acest mod de transmisie de telefoanele mobile. Telefoanele mobile sunt bidirecionale i folosesc dou frecvene pentru o legtura, avnd perechi diferite de frecvene pentru apeluri diferite, aa cum se poate vedea n Fig. 2-53(b). Aceste diferene fac ca sistemele pager s fie mult mai simple i mai uor de folosit.
2.7.2 Telefoane fr fir

Telefoanele fr fir au aprut din dorina de a permite oamenilor s se plimbe n jurul casei n timp ce vorbesc la telefon. Un telefon fr fir se compune din dou pri: o staie de baz i un telefon. Acestea sunt vndute ntotdeauna mpreun. Staia de baz are n spate o muf de telefon standard prin care poate fi conectat (printr-un fir) la sistemul telefonic. Telefonul comunic cu staia de baz printr-un sistem radio de putere mic. Distana tipic este de aproximativ 100 pn la

3o6metri.

Deoarece primele telefoane fr fir au fost concepute numai ca s comunice cu propria staie de baz, nu a fost necesar o standardizare. O parte din modelele mai ieftine foloseau o frecven fix, stabilit din fabric. Dac, din ntmplare, telefonul dumneavoastr fr fir se nimerea s foloseasc aceeai frecven ca i cea utilizat de telefonul vecinului, atunci fiecare dintre dumneavoastr putea

146

NIVELULHZIC

CAP. 2

asculta convorbirile celuilalt. Modelele mai scumpe nltur aceasta problem, permind utilizatorului s selecteze frecvena de emisie. Prima generaie de telefoane fr fir, cunoscut sub denumirea CT-1 n Statele Unite i CEPT-1 n Europa, a fost n ntregime analogic. Era posibil - i deseori se ntmpl astfel - ca aceste telefoane s creeze interferene cu radioul i televizorul. Recepia slab i lipsa securitii au determinat fabricanii s dezvolte un standard digital, CT-2, care i are originile n Anglia. Primele dispozitive CT-2 puteau face apeluri dar nu le puteau recepiona. Imediat ce au fost vndute primele dispozitive, productorul a recepionat cteva reacii negative i sistemul a fost reproiectat rapid. Ca i versiunea CT-1, fiecare telefon trebuie s se afle la o distan de cteva sute de metri de staia de baz, ceea ce l face util n jurul casei sau biroului, dar inutil n automobil sau cnd umblm prin ora. n 1992 a aprut a treia generaie, CT-3 sau DECT, care suport distane mai mari fa de staia de baz. Aceast tehnologie este pe cale s se apropie tot mai mult de telefoanele celulare care vor fi descrise n continuare. 2.7.3 Telefoane celulare analogice

Radiotelefoanele mobile au fost folosite sporadic, pentru comunicaii maritime i militare, nc din timpul primelor decenii ale secolului XX. n 1946, primul sistem de telefoane pentru automobile a fost pus n funciune n St. Louis. Acest sistem folosea un singur emitor amplasat pe o cldire nalt i avea un singur canal folosit att pentru emisie ct i pentru recepie. Pentru a vorbi, un utilizator trebuia s apese un buton care activa emitorul i dezactiva receptorul. Astfel de sisteme, cunoscute sub denumirea de sisteme cu buton de emisie au fost instalate n cteva orae, spre sfritul anilor 1950. Radioul CB, taxiurile i mainile de poliiejfolosesc deseori aceast tehnologie. n 1960 a fost instalat BVTTS (Improved Mobile Telephone System - sistemul mbuntit de telefonie mobil). i acesta folosete un emitor de mare putere (200 watt), amplasat pe vrful unui deal, dar acum se utilizeaz dou frecvene: una pentru emisie i una pentru recepie. Prin urmare, nu mai este nevoie de butonul de emisie. Deoarece toat comunicaia dinspre telefoanele mobile se desfoar pe un canal diferit de cel pe care telefoanele ascult, utilizatorii telefoanelor mobile nu se mai pot auzi unii pe alii (spre deosebire de sistemul cu buton de emisie folosit la taxiuri). IMTS suport 23 de canale mprite ntre 150 MHz i 450 MHz. Din cauza numrului mic de canale, utilizatorii trebuie s atepte deseori perioade lungi de timp pn cnd obin tonul. De asemenea, datorit puterii mari a emitorului aflat la nlime, sistemele adiacente trebuie s se afle la cteva sute de kilometri distan, pentru a se evita interferena. Pe ansamblu, sistemul a fost impracticabil datorit posibilitilor limitate. Sistemul Telefonic Mobil Avansat Totul s-a schimbat odat cu AMPS (Advanced Mobile Phone System -Sistemul Telefonic Mobil Avansat), inventat de Bell Labs i instalat pentru prima dat n S.UA n 1982. De asemenea, sistemul este folosit n Anglia, unde poart denumirea TACS i n Japonia, unde se numete MCS-L1. n AMPS, o regiune geografic este mprit n celule, de obicei de 10 pn la 20 km lime, fiecare celul folosind o anumit mulime de frecvene. Ideea de baz care confer AMPS-ului o capacitate semnificativ mai mare dect a tuturor sistemelor anterioare, const n folosirea de celule relativ mici si

SEC. 2.7

RADIO CELULAR
4.

147
*

fcfotesirea frecvenelor de transmisie n celule apropiate (dar nu adiacente). In timp ce ntr-un sistem IMTSde 100 km lime poate exista un singur apel pe fiecare frecven, un sistem AMPS poate avea 100 de celule de 10 km n aceeai regiune i este capabil s suporte 5 pn la 10 apeluri pe fiecare frecven, n celule separate i ndeprtate. Mai mult dect att, celulele de dimensiuni reduse necesit puteri mici, ceea ce implic dispozitive de dimensiuni reduse i ieftine. Telefoanele de mn emit 0,6W; emitoarele de pe maini au n mod tipic 3 W, valoarea maxim permis de FCO. Ideea refolosirii frecvenelor este ilustrat n Fig. 2-54(a). n mod normal, celulele sunt aproximativ circulare dar ele pot fi modelate mai uor ca hexagoane. n Fig. 2-54(a), celulele au toate aceeai dimensiune. Ele sunt grupate mpreun n uniti de 7 celule. Fiecare liter indic un grup de frecvene. Trebuie remarcat c pentru fiecare set de frecvene exist o zon (tampon) de lime aproximativ egal cu dou celule distan n care acea frecvena nu este refolosit, realiznd astfel o delimitare mai bun i o interferen sczut. O problem major o constituie gsirea locurilor nalte pentru instalarea antenelor staiei de baz. Aceast problem a determinat pe unii furnizori de servicii de telecomunicaii s ncheie contracte cu Biserica Romano-Catolic pentru c aceasta dispune de un numr substanial de poteniale locuri nalte pentru antene, toate aflate n mod convenabil, sub o singur administraie. ntr-o zon n care numrul de utilizatori s-a mrit att de mult, nct sistemul a devenit suprancrcat, se reduce puterea i se mpart celulele suprancrcate n celule mai mici pentru a permite mai multe refolosiri de frecvene, aa cum este artat n Fig. 2-54(b). Determinarea dimensiunii maxime a celulelor constituie o problem complex i este tratat n (Hac, 1995).

(a)

(b)

Fig. 2-54. (a) Frecvenele nu sunt refolosite n celule adiacente, (b) Pentru a aduga mai muli utilizatori se pot folosi celule mai mici. n centrul fiecrei celule se afl o staie de baz prin intermediul creia transmit toate telefoanele din celul. Staia de baz cuprinde un calculator i un emitor/receptor conectat la o anten. ntr-un sistem redus, toate staiile de baz sunt conectate la un singur dispozitiv denumit MTSO (Mobile Telephone Switching Office- Oficiu Telefonic de Comutare Mobil). ntr-un sistem mare, pot fi necesare mai multe MTSO-uri, toate acestea conectndu-se la un al doilea nivel MTSO i aa mai

148

NIVELULFIZIC

CAP, 2

departe. MTSO-urile sunt n esen oficii finale - ca si n sistemul telefonic - si sunt de fapt conectate la cel puin un oficiu final din sistemul telefonic. MTSO comunic cu staiile de baz, ntre ele i cu PSTN-ul folosind o reea cu comutare de pachete. n orice moment, orice telefon mobil se afl, n mod logic, ntr-o celul specific i sub controlul staiei de baz a celulei respective. Cnd un telefon mobil prsete o celul, staia sa de baz sesizeaz o scdere a semnalului dinspre telefon i ntreab toate staiile de baz nconjurtoare ct de puternic este semnalul pe care l recepioneaz ele de la respectivul telefon. Staia de baz transfer apoi proprietatea asupra telefonului ctre celula care recepioneaz cel mai puternic semnal, aceasta fiind i celula n care se afl acum telefonul. Telefonul este apoi informat despre noul su ef, iar dac un apel este n derulare n acel moment, telefonul va fi rugat s comute pe un canal nou (deoarece canalul vechi nu este refolosit n nici o celul adiacent). Acest proces poart denumirea de timp mort i dureaz aproximativ 300 ms. Atribuirea canalului se face de ctre MTSO, care este centrul nervos al sistemului. Staiile de baz sunt, de fapt, doar nite radio-relee. Canale Sistemul AMPS utilizeaz 832 canale full-duplex, fiecare constnd dintr-o pereche de canale simplex. Exist astfel 832 canale simplex pentru transmisie de la 824 la 849 MHz i 832 canale simplex pentru recepie de la 869 la 894 MHz. Fiecare din aceste canale simplex are o lime de 39 kHz. Din aceast cauz AMPS folosete FDM pentru a separa canalele. n banda de 800 MHz, undele radio au aproximativ 40 cm lungime i se propag n linie dreapt. Ele sunt absorbite de copaci i plante i sunt reflectate de pmnt i cldiri. Este posibil ca un semnal emis de un telefon mobil s ajung la staia de baz pe calea direct, dar tot la fel de bine poate s ajung uor mai trziu i dup ce este reflectat de pmnt sau cldiri. Aceasta poate s conduc la un efect de ecou sau la distorsionarea semnalului. Uneori este posibil chiar s se aud o convorbire ndeprtat care a suferit mai multe reflexii. n Statele Unite, cele 832 canale din fiecare ora sunt alocate de FCC. Din acestea, jumtate sunt alocate companiei locale de telefoane, furnizor de telefoane prin fir sau furnizor de tip B (B-side earrier), cealalt jumtate fiind repartizat noului venit n afacerile cu telefoane celulare, numit furnizor de tip A (A-side earrier). Ideea este s se asigure existena a cel puin doi furnizori de celulare concureni, pentru a promova n acest fel concurena i preuri mai sczute. Cu toate acestea, diferena dintre o companie de telefoane i o companie de telefoane celulare este nesemnificativ, deoarece majoritatea companiilor de telefoane au ca parteneri o companie de telefoane celulare, iar n 1994 AT&T a fuzionat cu McCaw Cellular, cel mai rspndit furnizor de celulare. De multe ori se ntmpl ca o companie s fie furnizor de tip A pe unele piee i furnizor de tip B pe altele. O zpceal suplimentar apare i datorit faptului c un furnizor poate vinde sau comercializa oricare sau toate cele 416 licene de canal proprii. Cele 832 de canale se mpart n 4 categori: 1. 2. 3. 4. Control (baza ctre mobil) pentru gestionarea sistemului. Paging (baza ctre mobil) pentru a anuna utilizatorii de telefoane mobile c sunt apelai. Acces (bidirecional) pentru stabilirea apelului i alocarea canalului. Date (bidirecional) pentru voce, fax sau date.

SEC 17

RADIO CELULAR

149

Pentru control sunt rezervate douzeci i unu de canale i acestea sunt fixate n fiecare telefon ntr-un PROM. Deoarece nu pot fi refolosite n celule nvecinate aceleai frecvene, numrul real de canale vocale disponibile pe celul este mult mai mic dect 832, de regul 45. Gestiunea apelului Fiecare telefon mobil din AMPS are un numr serial pe 32 bii i un numr de telefon de 10 cifre n PROM-ul propriu. Numrul de telefon este format dintr-un cod al zonei de 3 cifre pe 10 bii i un numr de abonat de 7 cifre pe 24 de bii. Atunci cnd este activat, un telefon scaneaz o list preprogramat cu 21 canale de control, pentru a descoperi semnalul cel mai puternic. Telefoanele mobile sunt configurate s scaneze numai dup A-side, numai dup B-side, preferabil A-side sau preferabil B-side, n funcie de serviciul (serviciile) la care s-a abonat clientul. De pe canalele de control se determin numerele canalelor de paging i acces. Apoi telefonul difuzeaz propriul numr serial de 32 de bii i numrul de telefon de 34 de bii. Ca orice alt informaie de control din AMPS, acest pachet este transmis n form digital, de mai multe ori i cu un cod corector de erori, dei canalele vocale sunt analogice. Atunci cnd staia de baz aude anunul, sesizeaz MTSO-ul care nregistreaz existena noului su client i informeaz de asemenea MTSO-ul clientului asupra poziiei sale curente, n timpul unei funcionri normale, telefonul mobil se renregistreaz aproximativ odat la fiecare 15 minute. Pentru a face un apel, un utilizator de mobil activeaz telefonul, introduce de la taste numrul de apelat i apas butonul SEND. Telefonul transmite apoi numrul de apelat i identitatea proprie pe canalul de acces. Dac acolo apare o coliziune, el ncearc mai trziu din nou. Atunci cnd primete o cerere, staia de baz informeaz MTSO-ul. Dac apelantul este un client al companiei MTSO (sau unul din parteneri), MTSO-ul caut un canal liber pentru apel. Dac se gsete unul, numrul canalului este transmis napoi pe canalul de control. Telefonul mobil comut apoi automat pe canalul vocal selectat i ateapt pn cnd partea apelat ridic telefonul. Apelurile primite funcioneaz diferit. La nceput toate telefoanele libere ascult n continuu pe canalul de paging pentru a detecta mesajele adresate lor. Atunci cnd se face apel ctre un telefon mobil (fie de la un telefon fix fie de la alt telefon mobil), se transmite un pachet ctre MTSO-ul apelatului pentru a descoperi unde se afl acesta. Se transmite apoi un pachet ctre staia de baz din celula sa curent, care apoi transmite pe canalul de paging un mesaj de difuzare de forma urmtoare: "Unitatea 14, eti acolo?". Telefonul apelat rspunde apoi cu Da" pe canalul de control. Baza spune apoi ceva de genul Unitatea 14, ai un apel pe canalul 3". n acest moment, telefonul apelat comut pe canalul 3 i ncepe s sune. Probleme de securitate Telefoanele celulare sunt total lipsite de securitate. Oricine dispune de un receptor (scaner) de band larg se poate poziiona i poate asculta tot ceea ce se ntmpl ntr-o celul. Prinesa Di i iubitul ei au fost prini odat n acest fel i au aprut pe prima pagin a revistelor din lumea ntreag. Deoarece majoritatea utilizatorilor celularelor nu-i dau seama ct de nesigur este acest sistem, de multe ori ei transmit n acest mod numerele crilor de credit sau alte informaii confideniale.

150

NIVELUL FIZIC

CAP. 2

0 alt problem important o constituie furtul de informaie pe timpul emisiei. Utiliznd un receptor pentru ntreaga band ataat la im calculator, un ho poate monitoriza canalul de control i nregistra numrul serial de 32 bii i numrul de telefon de 34 de bii al tuturor telefoanelor mobile pe care le ascult. Plimbndu-se prin zon cteva ore, el poate foarte uor s construiasc o baz de date destul de mare. Houl poate apoi s aleag un numr i s-1 foloseasc pentru apelurile proprii. Acest truc funcioneaz pn cnd victima primete facturile de plat, cteva sptmni mai trziu, moment n care houl alege pur i simplu un alt numr. Unii hoi ofer un serviciu telefonic la pre redus, utiliznd numerele furate pentru a realiza apeluri pentru clieni proprii. Alii reprogrameaz telefoane mobile cu numerele furate i le vnd ca telefoane care pot face apeluri netaxabile. O parte din aceste probleme ar putea fi rezolvate prin criptografie dar atunci poliia nu ar mai putea realiza interceptarea convorbirilor criminalilor. Acest subiect este foarte controversat i este prezentat mai detaliat n Cap. 7. O alt problem legat de securitate, o constituie* vandalismul i deteriorarea antenelor i staiilor de baz. Toate aceste probleme sunt destul de grave i se adaug la sutele de milioane de dolari pierderi pe an ale industriei de celulare. 2.7.4 Telefoane celulare digitale Prima generaie de sisteme celulare a fost analogic. Cea de-a doua generaie este digital. n Statele Unite a existat n principal numai un singur sistem: AMPS. Atunci cnd a venit timpul sistemelor digitale, au aprut trei sau patru concureni i a nceput lupta pentru supravieuire. Acum se pare c vor supravieui dou sisteme. Primul este compatibil cu cele anterioare, avnd schema AMPS de alocare a frecvenelor i este specificat n standardele cunoscute sub denumirile IS-54 i IS-135. Cellalt se bazeaz pe succesiunea direct a spectrului mprtiat i este specificat n standardul IS-95. IS-54 este dual (analogic i digital) i folosete aceleai canale de 30 KHz pe care le folosete i AMPS. El mpacheteaz 48,6 Kbps pe fiecare canal i l partajeaz ntre trei utilizatori simultan. Fiecare utilizator primete 13 Kbps; restul reprezint suprancrcarea datorat datelor de control i sincronizrii. Celulele, staia de baz i MTSO-ul funcioneaz la fel ca n AMPS. Difer numai semnalizarea digital i codificarea digital a vocii. Sistemul IS-95 este complet nou. Acesta va fi discutat atunci cnd vom ajunge la alocarea canalului, n Cap. 4. n Europa a avut loc procesul invers. Erau n folosin cinci sisteme analogice diferite, n ri diferite, prin urmare nu se putea utiliza un telefon britanic n Frana i aa mai departe. Aceast experien a condus PTT-urile europene la acceptarea unui sistem digital comun, denumit GSM (Global Systems for Mobile Commimication-Sistem Global pentru Comunicaii Mobile), care a fost pus n funciune naintea oricruia din sistemele concurente americane. Sistemul japonez este diferit de toate cele prezentate anterior. Deoarece toate sistemele europene erau diferite ntre ele, rencadrarea- acolo unde era posibil n banda de 900 MHz i, n plus, transformarea lor n sisteme digital care s opereze ntr-o band de frecvene nou (1,8 GHz), s-au fcut destul de simplu. GSM folosete att FDM ct i TDM. Spectrul disponibil este mprit n benzi de 50-200 KHz. n interiorul fiecrei benzi se folosete TDM pentru a multiplexa mai muli utilizatori.

SEC 2.7

RADIO CELULAR

151

Unele telefoane GSM folosesc cartele inteligente. O cartel inteligent are dimensiunea unei cri de credit i conine un procesor. Numrul serial i numrul de telefon se afl n cartel i nu n telefon, ceea ce conduce la o mai mare securitate (dac furi telefonul, dar nu ai cartela, atunci nu vei putea obine numrul). De asemenea, se folosete i criptarea. Vom discuta GSM n Cap. 4. 2.7.5 Servicii de comunicaii personale n lumea telefoanelor, idealul H reprezint un mic telefon fr fir pe care s-1 poi folosi n jurul casei i pe care s-1 poi lua cu tine oriunde n lume. Acesta ar trebui s rspund la acelai numr de telefon, indiferent de locul unde se afl, astfel ca oamenii s aib doar un singur numr de telefon (n cazul AMPS-ului, telefonul dumneavoastr de acas i cel mobil au numere diferite). Acest sistem se afl n acest moment ntr-o dezvoltare rapid (Lipper i Rumsewicz, 1994). n Statele Unite el este denumit PCS (Personal Communication Services-Servicii de Comunicaii Personale), n toate celelalte ri el este denumit PCN (Personal Communication Network-Reea de Comunicaii Personale). n lumea telefoniei, Statele Unite au ceva tradiie n a face ceva cu totul diferit fa de oricine altcineva. Din fericire, majoritatea datelor tehnice sunt aceleai. PCS va folosi tehnologia celular, dar cu microcelule, probabil de 50 pn la 100 de metri lime. Aceasta permite folosirea unor puteri foarte mici (1/4 Watt), ceea ce va face posibil s se construiasc telefoane foarte mici i uoare. Pe de alt parte, el necesit mult mai multe celule dect AMPS-ul cu celule de 20 Km. Presupunnd c o microcelul este de 200 ori mai mic n diametru dect o celul AMPS, pentru a acoperi aceeai arie sunt necesare de 40.000 mii de ori mai multe celule. Chiar dac aceste microcelule sunt mult mai ieftine dect celulele AMPS, construirea unui sistem PCS complet, pornind de la zero, va necesita, n mod sigur, o investiie n infrastructur semnificativ mai mare dect a necesitat AMPS-ul. Dat fiind c exist deja stlpii i firele, unele companii de telefoane i-au dat seama c pot reduce substanial costurile de instalare folosind pentru amplasarea staiilor de baz - care au dimensiunea unui prjitor de pine - propriii lor stlpi de telefon. Aceste mici staii de baz sunt denumite uneori tele-puncte (telepoints). Ct de multe staii s se instaleze i unde s fie amplasate constituie o problem complicat (Stelle .a. ,1995a, 1995b). Guvernul S.U.A (i anume FCC) folosete PCS pentru a face bani din nimic. n 1994-1995, FCC a vndut la licitaie licene pentru folosirea spectrului PCS (1,7 pn la 2,3 GHz). licitaia a adus guvernului 7,7 miliarde dolari. Aceast licitaie a nlocuit sistemul anterior de acordare a frecvenelor prin loterie, eliminnd astfel practica firmelor fr nici un interes n telecomunicaii de a participa la loterie. Orice companie care a ctigat o frecvena, poate s o vnd instantaneu uneia care a pierdut, pentru cteva milioane de dolari. Din nefericire, nimic nu este gratuit nici chiar pentru guvern. Banda ntre 1,7 i 2,3 GHz este deja alocat complet altor utilizatori. Acestor utilizatori li se va da un specte n alt parte i li se va spune s se mute acolo. Problema este c dimensiunea unei antene depinde de frecven i, prin urmare, aceast realocare forat a frecvenei va face s se duc pe apa smbetei o investiie de mai multe miliarde de dolari n antene, emitoare etc. n jurul Washington-ului se nvrt deja mai multe grupuri de lobby-iti care dau tot felul de sugestii referitoare la cine ar trebui s plteasc toate acestea. Rezultatul final este c PCS nu va putea fi instalat pe scar larg pn la sfritul acestui mileniu. Pentru a nelege mai bine problemele legate de spectru, a se vedea (Youssef .a., 1995).

152

NIVELUL FIZIC

CAP. 2

28

SATIOTT DE COMUNICAIE

n anii 1950 i la nceputul anilor 1960, oamenii au ncercat s stabileasc sisteme de comunicaie pe baza reflectrii semnalelor de ctre baloanele meteorologice metalizate. Din nefericire, semnalele recepionate erau prea slabe ca s poat fi folosite practic la ceva. Apoi, Marina S.U.A. a observat pe cer un fel de balon meteorologic permanent - Luna - i a construit, pe baza reflectrii semnalelor de ctre Lun, un sistem operaional pentru comunicaii nav-rm. Progresul n domeniul comunicaiilor celeste a trebuit s mai atepte pn cnd a fost lansat primul satelit de comunicaii, n 1962. Principala diferen ntre un satelit artificial i unul natural este aceea c satelitul artificial poate amplifica semnalele nainte de a le transmite napoi, transformnd o curiozitate stranie ntr-un sistem de comunicaie puternic. Sateliii de comunicaie au cteva proprieti interesante, care i fac tentani pentru multe aplicaii. Un satelit de comunicaie poate fi gndit ca un mare repetor de microunde, aflat n cer. Acesta conine mai multe dispozitive de recepie-transmisie automat (transporder), fiecare din acestea ascult pe o anume poriune din spectru, amplific semnalul recepionat i apoi l redifuzeaz pe o alt frecven, pentru a evita interferena cu semnalul care se recepioneaz. Unda descendent poate fi difuzat, acoperind astfel o fraciune substanial din suprafaa Pmntului su poate fi concentrat, caz n care va acoperi numai o zon de cteva sute de kilometri n diametru. 2.8.1 Satelii geosincroni Conform legii lui Kepler, perioada de rotaie a unui satelit variaz cu puterea 3/2 a razei orbitei, n apropierea suprafeei Pmntului, perioada este de aproximativ 90 min. Sateliii de comunicaie aflai la o altitudine att de mic sunt problematici, deoarece se gsesc n raza vizual a unei staii de pe pmnt numai un interval scurt de timp. Totui, la o altitudine de aproximativ 36.000 km deasupra ecuatorului, perioada unui satelit este de 24* de ore i, prin urmare, satelitul se nvrtete la aceeai vitez ca i Pmntul de sub el. Un observator care se uit la un satelit de pe o orbit ecuatorial circular, vede satelitul ntr-un punct fix de pe cer, aparent nemicat. Este ideal ca satelitul s apar fix pe cer, deoarece altfel ar fi nevoie pentru urmrirea sa - de o anten rotativ foarte scump. Pentru a evita interferena, n condiiile tehnologiilor actuale, nu este bine s existe satelii poziionai mai aproape 2 grade n planul ecuatorial de 360 grade. La o spaiere de 2 grade, pot exista pe cer, la un moment dat, doar 360/2=180 satelii de comunicaie geostaionari. O parte din aceste poziii pe orbit sunt rezervate pentru alte clase de utilizatori (de exemplu difuzare de televiziune, n scopuri guvernamentale sau militare etc). Din fericire, sateliii care folosesc poriuni diferite din spectru nu interfera i, de aceea, fiecare din cei 180 de satelii posibili, pot avea mai multe fluxuri de date care urc i coboar simultan. Prin urmare, dac lucreaz la frecvene diferite, doi sau mai muli satelii pot ocupa aceeai poziie pe orbit. Pentru a preveni haosul total pe cer, s-au realizat acorduri internaionale referitoare la cine poate ocupa o poziie de pe orbit i ce frecvene poate folosi. Cele mai importante benzi comerciale sunt listate n Fig. 2-55. Banda C a fost desemnat iniial pentru traficul comercial prin satelii. n
N

Mai exact, perioada de rotaie este egal cu ziua sideral: 23 de ore, 56 minute, 4,09 secunde.

SEC.-18

SATELIT! DE COMUNICAIE

153

banda C sunt asigurate dou domenii de frecven, cea mai mic pentru traficul descendent (dinspre satelit), iar cea superioar pentru traficul ascendent (ctre satelit). Pentru o conexiune full-duplex este necesar un canal n ambele sensuri. Aceste benzi sunt deja supraaglomerate, deoarece sunt folosite i de purttoarele obinuite pentru legturile terestre pe microunde.
Banda C Ku Ka Frecvene 4/6 11/14 20/30 Legtura descendent (GHz) 3,7-4,2 11,7-12,2 17,7-21,7 Legtura ascendenta(GHz) 5,925-6,425 14,0-14,5 27,5-30,5 Ploaia Ploaia; costul echipamentelor Probleme Interferene terestre

Fig. 2-55. Principalele benzi de satelit. Urmtoarea band mai nalt disponibil pentru companiile comerciale de telecomunicaie este banda Ku. Aceast band nu este (nc) congestionat i - la aceste frecvene - sateliii pot fi poziionai la o apropiere de 1 grad. Totui, exist d alt problem: ploaia. Apa este un absorbant excelent al acestor microunde scurte. Din fericire, furtunile toreniale sunt de obicei localizate i, prin urmare, folosind mai multe staii terestre separate prin distane mari, n loc de una singur, problema poate fi evitat cu preul unui surplus de antene, cabluri i electronic pentru a comuta rapid ntre staii. Limea de band a benzii Ka a fost de asemenea alocat pentru traficul comercial prin satelit, dar echipamentul necesar pentru folosirea ei este nc foarte scump. n plus fa de aceste benzi comerciale, exist de asemenea multe benzi guvernamentale i militare. Un satelit obinuit are 12-20 transpondere, fiecare cu o lime de band de 36-50 MHz. Un transponder de 50 Mbps poate fi folosit pentru a codifica un singur flux de date de 50 Mbps, 800 canale vocale digitale de 64 Kbps, sau diverse alte combinaii, Mai mult dect att, dou transpondere pot folosi polarizri diferite ale semnalului, prin urmare ele pot folosi acelai domeniu de frecvene fr s interfere. n sateliii mai vechi, mprirea transponderilor pe canale s-a fcut static, prin despicarea limii de band n benzi fixe de frecven (FDM). n prezent, se folosete de asemenea multiplexarea cu divizare n timp datorit marii sale flexibiliti. Primii satelii aveau un singur fascicol spaial care ilumina ntregul pmnt. Odat cu scderea masiv a preului, dimensiunii i cerinelor de putere ale microelectronicii, a devenit posibil o strategie de difuzare mult mai sofisticat. Fiecare satelit este echipat cu antene i transpondere multiple. Fiecare fascicol descendent poate fi focalizat pe o arie geografic mic i prin urmare pot avea loc simultan, transmisii ascendente i descendente multiple. Aceste aa numite fascicole punctuale sunt n mod obinuit de form eliptic i pot avea pn la cteva sute de km n diametru. Un satelit de comunicaii pentru Statele Unite are n mod normal un singur fascicol larg pentru cele 48 de state alturate, plus fascicole punctuale pentru Alaska i Hawaii. O nou realizare n lumea comunicaiilor prin satelit o constituie dezvoltarea microstaiilor de cost sczut, denumite uneori i VSAT-uri (Very Small Aperture Terminals - Terminale cu Deschidere Foarte Mic) (Ivancic .a., 1994). Aceste mici terminale au antene de 1 metru i pot emite cu o putere de aproximativ 1 Watt. Legtura ascendent; este n general bun pentru 19.2 kbps, dar cea descendent este mai mare, deseori de 512 kbps. n multe sisteme YSAT, mierostaiile nu au suficient putere pentru a comunica direct ntre ele (prin intermediul satelitului, desigur). n schimb, se folosete o staie terestr special, un hub, cu o anten mare, de ctig ridicat, pentru a retransmite traficul dintre VSAT-uri, aa cum este prezentat n Fig. 2-56. n acest mod de lucru, att

154

NIVELUL FIZIC

CAP. 2

enitorul ct i receptorul dispun de o anten larg i de un amplificator puternic. Compromisul const ntr-o ntrziere mai mare n schimbul unor staii mai ieftine la utilizatorul final.
Satelit de comunicaii

Hub

Fig. 2-56. VSAT-uri ce folosesc un hub. Sateliii de comunicaie au cteva proprieti care se deosebesc radical de legturile terestre punct-la-punct. Ca un prim aspect, cu toate c semnalele spre i dinspre satelit se propag cu viteza luminii (aproximativ 300.000 km/sec), distana mare dus-ntors introduce o ntrziere substanial. Funcie de distana dintre utilizator i staia terestr i de nlimea satelitului deasupra orizontului, timpul de propagare capt-la-capt este ntre 250 i 300 msec. O valoare uzual este de 270 msec (540 msec pentru un sistem VSAT cu un hub). Pentru comparaie, legturile terestre prin microunde au o ntrziere de propagare n jur de 3 usec/km, iar legturile pe cablu coaxial sau fibr optic au o ntrziere de aproximativ 5usec/km (semnalele electromagnetice se propag mai repede n aer dect n materiale solide). O alt proprietate important a sateliilor este aceea c ei sunt n mod inerent sisteme cu difuzare. Transmiterea unui mesaj ctre miile de staii din raza de aciune a unui transponder cost tot att de mult ct pentru o singur staie. Pentru unele aplicaii, aceast proprietate este foarte util. Chiar atunci cnd difuzarea poate fi simulat folosind linii punct-la-punct, difuzarea prin satelit poate fi mult mai ieftin. Pe de alt parte, din punctul de vedere al securitii i confidenialitii, sateliii sunt un dezastru complet: oricine poate asculta orice. Atunci cnd este necesar securitatea, criptarea este esenial. Sateliii au de asemenea proprietatea c preul transmisiei unui mesaj este independent de distana parcurs. Un apel peste ocean nu cost mai mult dect un apel peste strad. Sateliii au rate de eroare excelente i pot fi instalai aproape instantaneu, un considerent major pentru comunicaiile militare.

SEC. 2.8

SATELII DE COMUNICATE

115

2.8.2 Satelii de joas altitudine

n primii 30 de ani ai erei sateliilor, sateliii de joas altitudine au fost rareori folosiri pentru comunicaii, deoarece ei apar i dispar destul de repede din cmpul vizual. n 1990, Motorola a deselenit terenul prin punerea la punct a unei noi aplicaii. Motorola a obinut acordul FGC n vederea lansrii a 77 de satelii de joas altitudine pentru proiectul Iridium (elementul 77 este Iridium). Planul a fost mai trziu revzut, astfel nct s se utilizeze numai 66 de satelii i, ca urmare, proiectul ar fi trebuit s fie redenumit Dyproium (elementul 66) dar, probabil c suna prea mult ca o boal. Ideea era c n momentul n care un satelit dispare din cmpul vizual, ar putea s-i ia locul un alt satelit. Aceast propunere a generat printre celelalte companii de telefoane o poft nebun. Dintr-o dat, toat lumea dorea s lanseze un lan de satelii de joas altitudine. Aici vom descrie pe scurt, sistemul Iridium, celelalte sisteme fiind similare. Scopul principal al sistemului Iridium este s furnizeze servicii mondiale de telecomunicaie, folosind dispozitive portabile care s comunice direct cu sateliii Iridium. Sistemul furnizeaz servicii vocale, de date, paging, fax i navigare, n orice loc de pe glob. Acest serviciu concureaz strns cu PCS/PCN, fcnd ca acesta din urm s nu mai fie necesar. Sistemul folosete ideea din radioul celular, dar cu o modificare. n mod normal, celulele sunt fixe i utilizatorii sunt mobili. n acest caz, fiecare satelit are un numr considerabil de raze punctuale care pot scana Pmntul pe msur ce satelitul se deplaseaz. De aceea, n acest sistem, att celulele ct i utilizatorii sunt mobili, dar tehnicile de transfer folosite pentru radioul celular, se aplic la fel, att pentru cazul n care celula prsete utilizatorul ct i pentru cazul n care utilizatorul prsete celula.

(a)

(b)

Fig. 2-57. (a) Sateliii Iridium formeaz ase coliere n jurul Pmntului, (b) 1628 de celule mictoare acoper Pmntul. Sateliii trebuie poziionai la o altitudine de 750 km pe orbite polare circulare. Ei vor fi aranjai n form de coliere nord-sud, cu un satelit la fiecare 32 grade latitudine. Dup cum se sugereaz n

156

NIVELUL FIZIC

CAP. 2

Fig. 2-57(a), cu ase coliere de satelii s-ar putea acoperi ntregul Pmnt. Cei care nu cunosc prea multe despre chimie, se pot gndi la aceast dispunere ca la un atom de dysprosium foarte mare, avnd Pmntul pe post de nucleu i sateliii pe post de electroni. Dup cum este prezentat n Fig. 2-57(b), fiecare satelit va avea maximum 48 de raze punctuale, cu un total de 1628 celule pe suprafaa Pmntului. Frecvenele pot fi refolosite dou celule mai ncolo, ca i n radioul celular convenional. Fiecare celul va avea 174 canale full-duplex, cu un total de 283.272 canale pe tot globul. O parte din acestea vor fi pentru paging i navigare, care nu prea necesit lime de band. (Dispozitivele de paging avute n vedere vor afia dou linii de text alfanumeric). Legturile ascendente i cele descendente vor lucra n banda L, la 1,6 GHz. n felul acesta, comunicarea cu un satelit este posibil s se fac folosind un dispozitiv alimentat cu o baterie mic. Mesajele recepionate de un satelit, dar destinate unui alt satelit aflat la distan, vor fi retransmise ntre satelii n banda Ka. n spaiul exterior este disponibil suficient lime de band pentru legturi intersatelit. Factorul limitator l-ar putea constitui segmentele ascendente/descendente. Motorola estimeaz c 200 MHz ar fi suficieni pentru ntregul sistem. Costul estimat pentru utilizatorul final este de aproximativ 3 dolari pe minut. Dac aceast tehnologie poate furniza la acest pre servicii universale n orice loc de pe pmnt, este puin probabil ca proiectul s moar din lips de clieni. Oamenii de afaceri sau ali oameni aflai n cltorie, care vor s fie n contact tot timpul, chiar i n zonele slab dezvoltate, se vor ngrmdi s se aboneze. Totui, n zonele dezvoltate, Iridium va avea de nfruntat concurena puternic din partea PCS/PCN cu ale lor telepuncte (telepoints) de tip prjitor de pine pe stlp. 2.83 Satelii versus Fibre Optice O comparaie ntre comunicaiile prin satelit i comunicaiile terestre este instructiv. Nu mai demult dect acum 20 de ani, se putea crede c viitorul aparine comunicaiilor prin satelit. La urma urmei, sistemul telefonic s-a schimbat puin n ultimii 100 de ani i nici nu d semne de schimbare n urmtorii 100 de ani. Aceast evoluie lent s-a datorat n mare msur mediului nconjurtor n care companiilor de telefoane li se cerea s furnizeze un serviciu vocal calitativ la un pre rezonabil (ceea ce au i fcut) n schimbul unui profit garantat al investiiilor lor. Prin urmare, pentru cei care aveau date de transmis, erau disponibile modemuri de 1200 bps. Aceasta era destul de bine pentru ceea ce exista atunci. Introducerea competiiei n 1984 n Statele Unite i, ceva mai trziu, n Europa a schimbat radical situaia. Companiile de telefoane au nceput nlocuirea cu fibre optice a reelelor exploatate att de mult timp i introducerea serviciilor cu limi de band ridicate, cum ar fi SMDS i B-ISDN. Ele au ncetat practica ndelungat de a pretinde preuri artificial ridicate pentru utilizatorii de distan lung n scopul subvenionrii utilizatorilor locali. Dintr-o dat, se prea c legturile terestre pe fibr optic vor fi ctigtorul pe termen lung. Cu toate acestea, sateliii de comunicaie au cteva nie pe pia, n care fibra optic nu a ptruns (i n unele cazuri nici nu o va putea face). Vom analiza acum o parte dintre acestea. n timp ce o singur fibr optic are, n principiu, mai mult lime potenial de band dect toi sateliii lansai vreodat, aceast lime de band nu este disponibil majoritii utilizatorilor. Fibrele optice instalate la ora actual sunt folosite n sistemul telefonic pentru a gestiona simultan mai multe apeluri de distan lung, i nu pentru a furniza utilizatorilor individuali lime de band ridicat.

SEC 2.9

REZUMAT

f7

Mai mult dect att, puini utilizatori pot avea acces la un canal pe fibr optic, deoarece le st n drum vechea bucl local din cablu torsadat. Dac oficiul final al companiei de telefoane locale se apeleaz la 28,8 kbps, nu se va obine niciodat o lime de band mai mare de 28,8 kbps, indiferent de cta lime de band are cablul intermediar. n cazul sateliilor, un utilizator poate foarte bine s scoat o anten pe acoperiul cldirii i s ocoleasc complet sistemul telefonic. Pentru muli utilizatori, evitarea buclei locale constituie o motivaie serioas. Pentru utilizatorii care (uneori) au nevoie de 40 sau 50 Mbps, o posibil soluie este nchirierea unei purttoare T3 (44,736 Mbps). n orice caz, aceasta este o aciune costisitoare. Dac limea de band este necesar numai n mod intermitent, SMDS-ul ar putea fi o soluie convenabil, ns acesta nu este disponibil oriunde, n timp ce serviciul prin satelit este. O a doua ni o reprezint comunicaiile mobile. n zilele noastre, muli oameni doresc s comunice n timp ce fac jogging, conduc, navigheaz sau zboar. Legturile terestre prin fibre optice nu le sunt de nici un folos, n schimb le pot fi utile legturile prin satelit. Este posibil, totui, ca o combinaie ntre radioul celular i fibra optic s satisfac cerinele majoritii utilizatoror (probabil cu excepia acelora care se afl la bordul unui avion sau pe mare). O a treia ni o reprezint situaiile n care este esenial difuzarea. Un mesaj transmis de satelit poate fi recepionat simultan de mii de staii terestre. De exemplu, o firm care transmite aciuni, titluri de proprietate sau preurile mrfurilor ctre mii' de distribuitori, poate gsi un sistem prin satelit mult mai ieftin dect dac ar simula difuzarea pe pmnt. O a patra ni o constituie comunicaia n locurile cu terenuri greu accesibile sau cu o infrastructur terestr slab dezvoltat. Indonezia, de exemplu, are propriul satelit pentru traficul telefonic intern. Lansarea unui satelit a fost mult mai simpl dect ntinderea a mii de cabluri submarine ntre toate insulele din arhipelag. O a cincea ni pe piaa sateliilor este acolo unde dreptul de instalare a fibrei optice este dificil de obinut sau nejustificat de scump. n al aselea rnd, atunci cnd instalarea rapid este critic, ca n cazul sistemelor de comunicaii militare pe timp de rzboi, sateliii obin ctig de cauz fr probleme. Pe scurt, se pare c n viitor fluxul principal de comunicaie va fi pe fibra optic combinat cu radio celular, iar pentru civa utilizatori specializai, sunt preferabili sateliii. Totui, exist un avertisment valabil pentru toate acestea: economia. Cu toate c fibra optic ofer mai mult lime de band, este, fr ndoial, posibil ca, n viitor, comunicaiile terestre i cele prin satelit s intre ntr-o competiie agresiv pe baza preului practicat. Dac progresele tehnologice vor reduce radical costul de instalare al unui satelit (de exemplu, unele viitoare navete spaiale vor putea mprtia n spaiu mai multe zeci de satelii la o singur lansare) sau dac vor deveni populari sateliii de joas altitudine, atunci s-ar putea ca fibrele optice s-i piard, pe unele piee, poziia lor de lider.

2.9 REZUMAT
Nivelul fizic st la baza tuturor reelelor. Natura a impus dou limite fundamentale asupra unui canal, iar acestea determin limea de band. Aceste limite sunt Urnita Nyquist, care se aplic asupra canalelor fr zgomot, i limita Shannon, pentru canale cu zgomot. Mediile de transmisie pot fi ghidate sau neghidate. Principalele medii ghidate sunt cablul torsadat, cablul coaxial i fibra optic. Mediile neghidate includ undele radio, microundele, undele n infrarou i laseri ce se propag prin aer.

158

NTVELULFIZIC

CAP.2

Elementul cheie din majoritatea reelelor larg rspndite geografic 11 constituie sistemul telefonic. Principalele sale componente sunt buclele locale, trunchiurile i comutatoarele. Buclele locale sunt analogice, cu circuite din cablu torsadat, ele necesitnd modemuri pentru transmisia digital a datelor. Trunchiurile sunt digitale i pot fi multiplexate n mai multe moduri, printre care: FDM, TDM i WDM. Comutatoarele pot fi comutatoare cu bare transversale (crossbars switches), comutatoare cu divizare n spaiu i comutatoare cu divizare n timp. Sunt importante att comutarea de circuite ct i comutarea de pachete. n viitor, sistemul telefonic va fi digital de la un capt la altul i va transporta att informaie vocal ct i non-vocal, pe aceleai linii. Acum se introduc dou variante ale acestui nou sistem, cunoscut ca ISDN. ISDN de band ngust este un sistem digital de comutare de circuite, care reprezint o mbuntire a sistemului existent. Prin contrast, ISDN de band larg reprezint o paradigm a schimbrii, deoarece se bazeaz pe tehnologia ATM cu comutare de celule. Exist diferite tipuri de comutatoare ATM, printre care comutatoarele knockout i comutatoarele Batcher-banyan. Pentru aplicaiile mobile, sistemul telefonic bazat pe cabluri fixe nu este adecvat. Alternativele la sistemul telefonic includ radioul celular i sateliii de comunicaii. Radioul celular este folosit acum pe scar larg pentru telefoanele portabile, dar curnd va fi folosit frecvent i pentru traficul de date. Generaiile actuale de sisteme celulare (de'exemplu, AMPS) sunt analogice, dar generaiile viitoare (de exemplu, PCS/PCN) vor fi complet digitale. Sateliii de comunicaie tradiionali sunt geostaionari, dar exist acum un interes deosebit pentru sistemele de satelii de joas altitudine, cum ar fi Iridium.

2.10 PROBLEME
1. Calculai coeficienii Fourier pentru funcia f(t)=t, (0 < t < 1). 2. 3. Un canal de 4 KHz fr zgomot este eantionat la fiecare 1 msec. Care este rata maxim de transfer a datelor? Canalele de televiziune au o lime de 6 MHz. Ci bii/sec pot fi transmii dac se folosesc semnale digitale pe patru nivele? Considerai cazul unui canal fr zgomot.

4. Dac un semnal binar este transmis pe un canal de 3 KHz al crui raport semnal/zgomot este de 20 dB, care este rata maxim de transfer a datelor care se poate realiza? 5. Ce raport semnal/zgomot este necesar pentru a pune o purttoare TI pe o linie de 50 KHz? 6. 7. 8. Care este diferena dintre o stea pasiv i un repetor activ ntr-o reea pe fibr optic? Care este lrgimea de band existent n 0.1 microni de spectru la o lungime de und de 1 micron? Se dorete s se transmit printr-o fibr optic o secven de imagini de pe ecranul calculatorului. Ecranul are 480 x 640 pixeli, fiecare pixel avnd 24 bii. Exist 60 imagini ecran

SEC.2-10

PROBLEME

159

pe secund. Ce lime de band este necesar i care este lungimea de und, n microni, necesar pentru aceast band la 1,30 microni? 9. Teorema lui Nyquist este adevrat pentru fibra optic sau numai pentru cablul de cupru?. 10. n Fig. 2-6 banda din partea stng este mai ngust dect celelalte. De ce? ;

11. Antenele radio funcioneaz deseori cel mai bine atunci cnd diametrul antenei este egal cu lungimea de und a undei radio. Antenele rezonabile au ntre 1 cm i 5 m n diametru. Ce domeniu de frecven acoper acestea? 12. Atenuarea multici este maximizat atunci cnd dou raze sosesc cu un defazaj de 180 grade. Ct de mare trebuie s fie diferena de drum pentru a maximiza atenuarea n cazul unei legturi prin microunde de 1 GHz avnd 50 km lungime? 13. O und laser de 1 mm lime este urmrit de un detector de 1 mm lime aflat la 100 m distan, pe acoperiul unei cldiri. Ct de mare trebuie s fi fost deviaia unghiular (n grade) a laserului dac nainte aceasta nu nimerea detectorul? 14. Un sistem telefonic simplu este alctuit din dou oficii finale i un singur oficiu de taxare la care fiecare oficiu final este conectat printr-un trunchi duplex de 1 MHz. Un telefon obinuit este folosit pentru a face 4 apeluri ntr-o zi lucrtoare de 8 ore. Durata medie a unui apel este de 6 minute. 10 procente din apeluri sunt de distan lung (de exemplu, traverseaz oficiul de taxare). Care este numrul maxim de telefoane pe care l poate suporta un oficiu final? (presupunei 4 KHz pe circuit) 15. O companie regional de telefoane are 10 milioane de abonai. Fiecare din telefoanele acestora este conectat la un oficiu central printr-un cablu torsadat de cupru. Lungimea medie a acestor cabluri este de 10 km. Ct de mult reprezint cuprul din valoarea buclelor locale? Presupunei c seciunea transversal a fiecrui cablu are 1 mm diametru, greutatea specific a cuprului este 9.0 i cuprul se vinde cu 3 dolari pe kg. 6 16. Costul unui microprocesor puternic a sczut ntr-att, nct este posibil s se includ cte unul n fiecare modem. Cum afecteaz aceasta gestiunea erorilor liniei telefonice? 17. O diagram - constelaie a unui modem, similar celei din Fig. 2-19 are puncte n urmtoarele coordonate: (1,1), (1,-1),(-1,1) i (-1,-1). Ci bii pe secund poate atinge un modem cu aceti parametri, la 1200 bauds? 18. O diagram - constelaie a unui modem, similar celei din Fig. 2-19, are puncte n (0,1) i (0,2). Modemul folosete modulaie de faz sau modulaie de amplitudine? 19. Se potrivete FTTH modelului unei companii telefonice cu oficii finale, oficii de taxare i altele sau trebuie schimbat modelul ntr-un mod fundamental? Explicai rspunsul.

160

NIVELUL FIZIC

CAP. 2

20. n partea de jos, sistemul telefonic este n form de stea, cu toate buclele locale dintr-un cartier convergente ctre un oficiu final. Din contr, televiziunea prin cablu este alctuit dintr-un singur cablu lung, cu un traseu erpuit pe deasupra tuturor caselor din acelai cartier. Presupunem c n viitor cablul TV va fi din fibr optic de 10 Gbps n loc de cupru. Ar putea acesta fi folosit pentru a simula modelul telefonic n care fiecare s aib propria sa linie ctre oficiul final? Dac da, cte case cu un telefon pot fi conectate la o singur fibr optic? 21. Un sistem de TV prin cablu are 100 de canale comerciale, fiecare din acestea alternnd programele cu publicitatea. Acestea seamn cu TDM sau FDM? 22. De ce a fost stabilit timpul de eantionare PCM la 125 microsecunde? 23. Care este procentul de suprancrcare pe o purttoare TI? Adic, ce procent din cei 1,544 Mbps nu este pus la dispoziia utilizatorului final? 24. Comparai rata maxim de transfer a datelor, care aprin unui canal fr zgomot de 4 KHz folosind: a) ficare analogic cu 2 bii pe eantion; b) sistemul PCM TI. 25. Dac un sistem cu purttoarea TI cade i nu tie unde se afl, el ncearc s se resincronizeze folosind primul bit din fiecare cadru. Cte cadre vor trebui inspectate, n medie, pentru a se resncroniza cu o probabilitate de eec de 0.001 ? 26. Care este diferena, dac exist vreuna, ntre partea de demodulare a unui modem i partea de codificare a unui codec? (n definitiv, ambele convertesc semnale analogice n semnale digitale.) 27. Un semnal este transmis digitizat pe un canal de 4 KHz fr zgomot, cu un eantion la fiecare 125 microsecunde. Ci bii pe secund sunt de fapt transmii pentru fiecare din aceste metode de codificare? a) StandardulCCITT de 2,048 Mbps; b) DPCM cu o valoare relativ a semnalului pe 4 bii; c) Modulaia delta. 28. Un semnal pur sinusoidal de amplitudine A este codificat folosind modulaia delta, cu x eantioane/secund. Un semnal de ieire de +1 corespunde unei schimbri a semnalului cu +A/8 iar un semnal de ieire de -l corespunde unei schimbri a semnalului cu -A/8. Care este cea mai mare frecven care poate fi urmrit fr erori cumulative? 29. Ceasurile SONET au o rat de deviaie de aproximativ 1/10 . Ct timp este necesar pentru ca deviaia s egaleze limea unui bit? Care sunt implicaiile acestui calcul? 30. n Fig. 2-32 rata de transfer a datelor utilizator pentru OC-3 a fost stabilit la 148,608 Mbps. Artai cum poate fi obinut acest numr din parametrii SONET OC-3. 31. Care este limea de band disponibil utilizatorului ntr-o conexiune OC-12c?
9

SEC 2.10

PROBLEME

161

32. Se dau trei reele cu comutare de pachete, fiecare ^Minnd noduri. Prima reea are topologie stea cu un comutator central, cea de-a doua este un inel (bidirecional), iar cea de-a treia este interconectat complet, avnd cte o legtur de la fiecare nod ctre toate celelalte noduri. Care sunt cile n salturi n cazul cel mai bun, n cazul mediu i n cazul cel mai defavorabil? 33. Comparai ntrzierea n transmisia unui mesaj de x bii pe o cale de Mopuri dintr-o reea cu circuite comutate i ntr-o reea cu comutare de pachete (puin aglomerat). Timpul de stabilire a circuitului este de S sec, ntrzierea de propagare este de d sec/hop, dimensiunea pachetului este de/? bii i rata de transfer a datelor este de b bii/sec. n ce condiii reeaua cu pachete are o ntrziere mai mic? 34. Presupunem cx bii de date utilizator trebuie transmii pe o cale cu k hopuri dintr-o reea cu comutare de pachete, ca o serie de pachete, fiecare coninnd p bii de date i h bii pentru antete, cu x > > p+h. Rata de transfer a liniei este de b bps i ntrzierea de propagare este neglijabil. Ce valoare a luip minimizeaz ntrzierea total? 35. Cte puncte de legtur au comutatoarele din Fig. 2-39(a) i Fig. 2-39(b)? Comparai cu un comutator 16x16 complet, cu bare transversale, cu o singur treapt. 36. n comutatorul cu divizare n spaiu din Fig. 2-39(a) care este cel mai mic numr de conexiuni existente care poate bloca un nou apel de ieire? 37. Un proiect alternativ celui din Fig. 2-39(a) este unul n care cele 16 linii sunt mprite n dou blocuri de opt, n loc de patru blocuri de patru (de exemplu, n=8 n loc de n=4). Un astfel de proiect ar putea reduce costurile hardware din moment ce ar fi necesari doar doi concentratori, unul pe intrare i unul pe ieire. Care este cel mai puternic argument mpotriva acestei alternative? 38. Cte linii poate gestiona un comutator cu divizare n timp dac timpul de acces la RAM este de 50nsec? 39. Ci bii de buffer RAM are nevoie un schimbtor cu comutare n timp (time switch interchanger) dac eantioanele de pe liniile de intrare au 10 bii i exist 80 de linii de intrare? 40. Comutarea cu divizare n timp, introduce n mod necesar o ntrziere minim la fiecare treapt de comutare? Dac da, care este aceasta? 41. Ct de mult dureaz transmiterea unei imagini de 8 inci pe 10 inci prin facsimil, pe un canal ISDN de tipul B? Facsimilul digitizeaz imaginea n 300 de pixeli pe inci i utilizeaz 4 bii pe pixel. Fax-urile actuale funcioneaz mai rapid dect acestea, chiar pe linii telefonice obinuite. Cum credei c fac ele acest lucru? 42. Prezentai un avantaj i un dezavantaj al NT12(prin comparaie cu NT1 i NT2) ntr-o reea ISDN.

162

NIVELUL FIZIC

CAP. 2

43. n Fig. 2-50(a) observm coliziunile dintre celule care traverseaz un comutator banyan. Aceste coliziuni apreau n prima i cea de-a doua treapt. Pot aprea coliziuni n cea de-a treia treapt? Dac da, n ce condiii? 44. Pentru aceast problem va trebui s dirijai cteva celule printr-un comutator ATM Batcher-banyan, pas cu pas. Sunt prezente 4 celule pe liniile de intrare 0 pn la 3, avnd c destinaie liniile 3,5,2 i respectiv 1. Pentru fiecare din cele 6 trepte din comutatorul Batcher i pentru cele 4 trepte din comutatorul banyan (incluznd intrarea i ieirea), listai ce celule se afl acolo sub forma unui tuplu (celula de pe linia 0, celula de pe linia 1 etc). Indicai liniile fr nici o celul, prin -. 45. Repetai acum problema anterioar pornind de la (7, -, 6, -, 5, -,4, -). 46. Un comutator ATM are 1024 linii de intrare i 1024 linii de ieire. Liniile opereaz la viteza de transfer SONET de 622 Mbps, ceea ce furnizeaz o rat de transfer pentru utilizator de 594 Mbps. De ce lime de band, pe ansamblu, are nevoie comutatorul pentru a trata ncrcarea ? Cte celule pe secund trebuie s fie el capabil s prelucreze? 47. ntr-un sistem telefonic celular tipic, cu celule hexagonale, este interzis s se refolosease o band de frecven ntr-o celul adiacent. Dac sunt disponibile n total de 840 frecvene, cte frecvene se pot folosi ntr-o celul? 48. Facei o estimare aproximativ a numrului de microcelule PCS de 100 m diametru, care ar fi necesare pentru a acoperi San Francisco(120 km2)? 49. Uneori, atunci cnd un utilizator traverseaz grania dintr-o celul n alta, apelul curent se termin brusc, dei toate emitoarele i receptoarele funcioneaz perfect. De ce? 50. Cei 66 de satelii de joas altitudine din proiectul Iridium sunt mprii n 6 coliere n jurul Pmntului. La altitudinea la care sunt folosii, perioada de rotaie este de 90 minute. Care este intervalul mediu pentru timpii mori n cazul unui. emitor staionar?

NIVELUL LEGTURA DE DATE


n acest capitol vom studia arhitectura nivelului 2, nivelul legtur de date. Acest studiu se ocup de algoritmii de obinere a unei comunicaii eficiente i sigure, ntre dou maini adiacente la nivelul legturii de date. Prin adiacent nelegem c cele dou maini sunt conectate fizic printr-un canal de comunicaie care se manifest conceptual ca un fir (de exemplu, un cablu coaxial sau o linie telefonic). Calitatea esenial a unui canal care l face asemntor unui fir este aceea c biii sunt livrai n exact aceeai ordine n care sunt transmii. La nceput ai putea crede c aceast problem este att de simpl, nct nu exist programe de analizat - maina A pune biii pe fir i maina B i preia. Din pcate, circuitele de comunicaie produc uneori erori. n plus, ele au numai o rat finit a datelor i exist o ntrziere a propagrii, nenul, ntre momentul n care un bit este emis i momentul n care acesta este recepionat. Aceste limitri au implicaii importante pentru eficiena transferului de date. Protocoalele utilizate pentru comunicaie trebuie s ia n considerare toi aceti factori. Aceste protocoale reprezint subiectul capitolului de fa. Dup o introducere n principalele aspecte ale proiectrii nivelului legtur de date, vom ncepe studiul protocoalelor examinnd natura erorilor, cauzele producerii lor i cum pot fi ele detectate i corectate. Apoi vom studia o serie de protocoale din ce n ce mai complexe, fiecare dintre ele rezolvnd ct mai multe dintre problemele prezente la acest nivel. Vom ncheia cu un studiu al modelrii i corectitudinii protocoalelor i vom da cteva exemple de protocoale ale legturii de date.

3.1

ASPECTE ALE PROffiCTRH NIVELULUI LEGTUR DE DATE

Nivelul legtur de date are un numr de funcii specifice pe eafeitrabuie s le ndeplineasc. Aceste funcii includ furnizarea unei interfee bine-definite cipe^aniveW^ ieea, determinarea modului n care biii nivelului fizic sunt grupai n cadre, tratareavBdMfcsifcte* transmisie i reglarea 163

164

NIVELUL LEGTUR DE DATE

CAP. 3

fluxului cadrelor n aa fel, nct receptorii leni s nu fie inundai de ctre emitori rapizi. n urmtoarele seciuni vom examina pe rnd fiecare dintre aceste aspecte. 3.1.1 Servicii oferite nivelului reea Funcia nivelului legtur de date este s ofere servicii nivelului reea. Principalul serviciu este transferul datelor de la nivelul reea al mainii surs la nivelul reea al mainii destinaie. La nivelul reea al mainii surs exist o entitate, s-i spunem proces, care trimite bii ctre nivelul legtur de date, pentru a fi transmii la destinaie. Funcia nivelului legtur de date este s transmit biii spre maina destinaie, pentru ca acolo s fie livrai nivelului reea, aa cum se arat n Fig. 3-l(a). Transmisia efectiv urmeaz calea din Fig. 3-1 (b), dar este mai uor de neles n termenii a dou procese ale nivelului legtur de date care comunic utiliznd un protocol al legturii de date. Din acest motiv, pe parcursul acestui capitol, vom folosi n mod implicit modelul din Fig. 3-1 (a).
Gazd 1 Gazd 2 Gazd 1 Gazd 2

Cale virtual de date Cale efectiv de date

(a)

(b)

Fig. 3-1. (a) Comunicaie virtual, (b) Comunicaie efectiv. Nivelul legtur de date poate fi proiectat s ofere diferite servicii. Serviciile efective oferite pot varia de la sistem la sistem. Trei posibiliti de baz, oferite n mod curent, sunt: 1. 2. 3. Serviciu neconfirmat fr conexiune. Serviciu confirmat fr conexiune. Serviciu confirmat orientat-conexiune.

S le analizm pe rnd pe fiecare dintre acestea. Serviciul neconfirmat fr conexiune const din aceea c maina surs trimite cadre independente ctre maina destinaie, fr ca maina destinaie s trebuiasc s confirme primirea lor. n acest caz, nu sunt necesare stabilirea i desfiinarea unei conexiuni. Dac un cadru este pierdut datorit zgomotidui 3tepe linie, la nivelul legtur de date nu se face nici o ncercare pentru recuperarea lui. AeeaMfecteadjs servicii este adecvat atunci cnd rata de erori este foarte sczut, aa c recuperarea est&Jgfcfof&velurilor superioare. De asemenea, este adecvat pentru traficul de

SEC. 3.1

ASPECTE ALE PROIECTRII NIVELULUI LEGTUR DE DATE

165

timp-real, cumpr-fi vorbirea, tinde datele ntrziate sunt mai nocive dect datele eronate. Majoritatea LAN-urilor utilizeaz la nivelul legturii de date servicii neconfirmate fr conexiune. Urmtorul pas n ceea ce privete sigurana este serviciul confirmat fr conexiune. Atunci cnd este oferit acest serviciu, nc nu se utilizeaz conexiuni, dar fiecare cadru trimis este confirmat individual. n acest mod, emitorul tie dac un cadru a ajuns sau nu cu bine. Dac nu a ajuns ntrun interval de timp specificat, poate fi trimis din nou. Acest serviciu este folositor pentru canale nesigure, cum ar fi sistemele neconectate prin fir. Poate c merit s subliniem c asigurarea confirmrii la nivelul legturii de date este doar o optimizare, niciodat o cerin. Nivelul transport poate ntotdeauna s trimit un mesaj i s atepte sa fie confirmat. Dac confirmarea nu apare n timp util, atunci emitorul poate retrimite ntregul mesaj. Problema cu aceast strategie este aceea c daca mesajul mediu este spart n, s zicem, 10 cadre i 20% din totalul cadrelor sunt pierdute, transmiterea mesajului poate lua foarte mult timp. n cazul n care sunt confirmate i retransmise cadre individuale, ntregul mesaj va fi transmis mult mi rapid. Pe canale sigure;, precum cablul, costul suplimentar implicat de un astfel de protocol al legturii de date poate fi nejustificat, dar pe canale fr fir, costul este pe deplin justificat datorit nesiguranei acestora. Revenind la serviciile noastre, cel mai sofisticat serviciu pe care nivelul legtur de date l pune la dispoziia nivelului reea este serviciul orientat-conexiune. In cazul acestui serviciu, mainile surs i destinaie stabilesc o conexiune nainte de a transfera date. Fiecare cadru trimis pe conexiune este numerotat i nivelul legtur de date garanteaz c fiecare cadru trimis este ntr-adevr recepionat. Mai mult, garanteaz c fiecare cadru este recepionat exact o dat i toate cadrele sunt recepionate n ordinea corect. n schimb, n cazul serviciului fr conexiune, este posibil ca, datorit unei confirmri pierdute, un cadru s fie transmis de mai multe ori i, prin urmare, recepionat de mai multe ori. Spre deosebire de acesta, serviciul orientat conexiune furnizeaz proceselor de la nivelul reea echivalentul unui flux de bii sigur.
Ruter

Proces al nivelului legtura de date

Cadre Pachete

Protocol de legtur de date

Linie de transmisie ctre ruter

Fig. 3-2. Plasarea protocolului legtur de date.

166

NIVELUL LEGTURA DE DATE

CAP. 3

Atunci cnd este utilizat serviciul orientat conexiune, transferurile au trei faze distincte. n prima faz este stabilit conexiunea, ambele pri iniializnd variabile i contoare, utilizate pentru a ine evidena cadrelor care au fost recepionate i a celor care nu au fost. n a dpua faz, sunt transmise unul sau mai multe cadre. n a treia i ultima faz, conexiunea este desfiinat, elibernd variabilele, tampoanele i alte resurse utilizate la meninerea conexiunii. S considerm un exemplu tipic: o subreea WAN format din rutere conectate prin linii telefonice punct-la-punct, nchiriate. Cnd un cadru ajunge la un ruter, hardware-ul verific suma de control i trimite cadrul programelor nivelului legtur de date (care se pot afla ntr-un cip de pe adaptorul de reea). Programele nivelului legtur de date verific s vad dac acesta este cadrul ateptat i, dac este aa, trimit pachetul din cmpul de informaie util ctre programele de dirijare. Programele de dirijare aleg linia de ieire corespunztoare i trimit pachetul napoi, ctre programele nivelului legtur de date, care apoi l transmit. Fluxul dintre dou rutere este artat n Fig. 3-2. Programul de dirijare dorete frecvent ca operaia s fie corect executat, ceea ce presupune conexiuni secveniale sigure pe fiecare linie punct-la-punct. El nu dorete s fie deranjat prea des de pachete care s-au pierdut pe drum. Este sarcina protocolului legturii de date, prezentat n dreptunghiul punctat, s fac liniile de comunicaie nesigure s par perfecte sau, cel puin, suficient de bune. Aceast proprietate este foarte important pentru legturile fr fir, care sunt, prin natura lor, foarte nesigure. Ca o remarc, cu toate c am prezentat copii ale programelor nivelului legtur de date n fiecare ruter, de fapt exist o singur copie, care trateaz toate liniile, utiliznd tabele i structuri de date diferite pentru fiecare dintre ele. Cu toate c acest capitol se refer numai la nivelul legtur de date i protocoalele legturii de date, multe dintre principiile pe care le vom studia aici, cum ar fi controlul erorilor i controlul fluxului, se regsesc n protocoalele de transport i de alte tipuri. 3.1.2 ncadrarea n vederea furnizrii unui serviciu nivelului reea, nivelul legtur de date trebuie s utilizeze serviciul furnizat de ctre nivelul fizic. Sarcina nivelului fizic este s primeasc un flux de bii i s ncerce s-1 trimit la destinaie. Nu se garanteaz c acest flux de bii nu conine erori. Numrul de bii recepionai poate fi mai mic, egal cu, sau mai mare dect numrul de bii transmii i pot avea valori diferite. Este la latitudinea nivelului legtur de date s detecteze i, dac este necesar, s corecteze erorile. Abordarea uzual pentru nivelul legtur de date este s sparg irul de bii n cadre discrete i s calculeze suma de control pentru fiecare cadru. (Algoritmii pentru suma de control vor fi discutai mai trziu n acest capitol.) Atunci cnd un cadru ajunge la destinaie, suma de control este recalculat. Dac noua sum de control este diferit de cea coninut n cadru, nivelul legtur de date tie c a aprut o eroare i face operaiile necesare pentru a o rezolva (adic, elimin cadrul eronat i trimite napoi un raport de eroare). Spargerea irului de bii n cadre este mai dificil dect pare la prima vedere. O cale pentru a realiza aceast ncadrare este inserarea de intervale de timp ntre cadre, aa cum inserm spaii ntre cuvinte ntr-un text normal. Totui, reelele dau rareori garanii referitoare la timp, aa c este posibil ca aceste intervale s fie comprimate sau ca n timpul transmisiei s fie inserate alte intervale.

SEC. 3.1

ASPECTE ALE PROIECTRII NIVELULUI LEGTUR DE DATE

167

.Deoarece este prea periculos s ne bizuim pe timp pentru a marca nceputul i sfritul fiecrui cadru, au fost elaborate alte metode. n aceast seciune vom analiza patru metode: 1. Numrarea caracterelor. 2. Caractere de nceput i de sfrit, cu inserare de caractere. 3. Indicatori de nceput i de sfrit, cu inserare de bii. 4. Violarea codificrilor la nivel fizic. Prima metod de ncadrare utilizeaz un cmp din antet pentru a specifica numrul de caractere din cadru. Atunci cnd nivelul legtur de date de la destinaie primete contorul de caractere, tie cte caractere urmeaz i unde este sfritul cadrului. Aceast tehnic este prezentat n Fig. 3-3 (a) pentru patru cadre de dimensiune de 5,5,8 i 8 caractere.
Contor de caractere Un caracter

(a)

2 3 4 5 6 7 8 9 8 0 1 2 3 4 5 6 8 7 8 9 0 1 Cadrul 2 5 caractere Eroare Cadrul 3 8 caractere Cadrul 4 8 caractere

23

Cadrul 1 5 caractere

tb)

2 3 4 7 6

7 8 9 8 0 1
Cadrul 2 (incorect) \

2 3 4 5 6
Acum un contor de caractere

9 7 8 9 0 1

Cadrul 1

Fig. 3-3. Un ir de caractere, (a) Fr erori, (b) Cu o eroare. Problema cu acest algoritm este c valoarea contorului poate fi alterat de erori de transmisie. De exemplu, dac contorul de caractere din al doilea cadru din Fig. 3-3(b) din 5 devine 7, destinaia va pierde sincronizarea i va fi incapabil s localizeze nceputul cadrului urmtor. Chiar dac suma de control este incorect i destinaia tie c a primit cadru eronat, nu exist nici o posibilitate de a determina unde ncepe urmtorul cadru. Nu ajut nici trimiterea unui cadru napoi la surs, cernd o retransmisie, deoarece destinaia nu tie peste cte caractere s sar pentru a ncepe retransmisia. Din acest motiv, metoda contorizrii caracterelor este rar utilizat. A doua metod de ncadrare nltur problema resincronizrii dup o eroare prin aceea c fiecare cadru ncepe cu secvena de caractere ASCII DLE SX i se termin cu secvena DLE ETX. (DLE nseamn Data link Escape, STX este Start of TeXt i ETX este End of TeXt). n acest mod, dac destinaia pierde evidena limitelor cadrelor, tot ceea ce trebuie s fac este s se uite dup caracterele DLE STX sau DLE ETX pentru a vedea unde sunt. O problem serioas cu aceast metod apare atunci cnd se transmit date binare, cum ar fi un program obiect sau numere n virgul mobil. Se poate ntmpla ca n date s apar

168

NIVELUL LEGTUR DE DATE

CAP. 3

caracterele DLE STX sau DLE ETX, care vor interfera cu cadrul. Un mijloc de rezolvare a acestei probleme este ca nivelul legtur de date al emitorului s insereze un caracter ASCII, DLE, chiar naintea fiecrui caracter DLE "accidental" din date. Nivelul legtur de date de la captul receptor nltur caracterele DLE nainte ca datele s fie transmise nivelului reea. Aceast tehnic se numete inserare de caractere (character stuffing). Astfel, absena sau prezena unui singur DLE permite s se fac diferena ntre DLE STX sau DLE ETX de ncadrare i cele din date. DLE-urile din date sunt ntotdeauna dublate. Figura 3.4 prezint un exemplu de ir de date naintea inserrii, dup inserare i dup extragere. Un dezavantaj major al utilizrii acestei metode de ncadrare este acela c este limitat la caractere de 8 bii n general i la codul caracterelor ASCII n particular. Datorit dezvoltrii reelelor, dezavantajele inserrii de coduri de caractere n mecanismul de ncadrare a devenit din ce n ce mai evident, aa c a trebuit dezvoltat o nou tehnic, care s permit caractere de dimensiune variabil.

(a) (b)

DLE DLE

STX STX

A A

DLE DLE

B
DLE

DLE

ETX DLE ETX

DLE inserat

(O

DLE

STX

DLE

DLE

ETX

Fig. 3-4. (a) Date trimise de nivelul reea, (b) Datele dup ce nivelul legtur de date a inserat caractere, (c) Datele trimise ctre nivelul reea al receptorului. Noua tehnic permite cadrelor de date s conin un numr arbitrar de bii i permite coduri de caractere cu un numr arbitrar de bii per caracter. Funcioneaz astfel: fiecare cadru ncepe i se termin cu un ablon special pe bii, 01111110, numit octet indicator (flag). De fiecare dat cnd nivelul legtur de date al emitorului identific cinci de unu consecutivi n date, insereaz automat un bit 0 n irul de bii de rezultai. Aceast inserare de bii (bit stuffing) este similar inserrii de caractere, n care un DLE este inserat n irul de caractere de ieire, nainte de fiecare DLE din date. Atunci cnd receptorul primete o succesiune de cinci bii 1, urmai de un bit 0, extrage automat (adic, terge) bitul 0. La fel ca i inserarea de caractere, care este complet transparent pentru nivelul reea din ambele calculatoare, aa este i inserarea de bii. Dac datele utilizator conin ablonul indicator, 01111110, acest indicator este transmis ca 011111010, dar n memoria receptorului este pstrat ca 01111110. Figura 3-5 d un exemplu de inserare de bii.
A

In cazul inserrii de bii, graniele dintre dou cadre pot fi recunoscute fr ambiguitate datorit ablonului indicator. Astfel, dac receptorul pierde evidena a ceea ce primete, tot ceea ce are de fcut este s caute la intrare secvenele indicator, deoarece acestea pot s apar numai la marginile cadrului si niciodat n interiorul datelor.

SEC. 3.1

ASPECTE ALE PROIECTRII NIVELULUI LEGTUR DE DATE

169

Ultima metod de ncadrare este aplicabil reelelor n care codificarea pe mediul fizic conine o anumit redundan. De exemplu, unele LAN-uri codific un bit de date utiliznd doi bii fizici. De obicei, un bit 1 este reprezentat de o tranziie sus-jos i un bit 0 de o tranziie jos-sus. Combinaiile sus-sus i jos-jos nu sunt utilizate pentru date. Schema nseamn c fiecare bit de date are o tranziie n mijloc, receptorului fiindu-i uor s localizeze frontierele biilor. Aceast utilizare de coduri fizice incorecte este parte a standardului 802 LAN, pe care l vom studia n capitolul 4.
(a) 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 (b) 0 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 0 1 0 0 10
Bii inserai (c) 0 1 1 0 1 1 1 1 1 1 1 1 1 11 1 1 1 1 1 1 0 0 1 0

Fig. 3-5. Inserare de bii. (a) Datele originale, (b) Datele aa cum apar pe linie. (c) Datele aa cum sunt stocate n memoria receptorului dup extragerea biilor inserai. Ca observaie final asupra ncadrrii, multe protocoale de legtur de date utilizeaz, pentru o mai mare siguran, o combinaie de contor de caractere cu una dintre celelalte metode. La sosirea unui cadru, pentru a localiza sfritul acestuia, este utilizat cmpul contor. Cadml este acceptat ca valid doar dac n poziia respectiv exist delimitatorul corespunztor i dac suma de control este corect. Altfel, irul de intrare este scanat pentru a detecta urmtorul delimitator. 3.13 Controlul erorilor Problema marcrii nceputului i sfritului fiecrui cadru fiind rezolvat, ne vom ndrepta atenia ctre problema urmtoare: cum s fim siguri c toate cadrele ajung pn la urm la nivelul reea de la destinaie i n ordinea corect. S presupunem c emitorul trimite cadrele de ieire fr s verifice dac au ajuns corect. Aa ceva se poate accepta n cazul serviciilor neconfirmate fr conexiune, dar nu n cel al serviciilor sigure, orientate conexiune. Modul uzual de a asigura o. transmitere sigur este de a furniza emitorului o reacie invers despre ceea ce se ntmpl la cellalt capt al liniei. De obicei protocolul i cere receptorului s trimit napoi cadre de control speciale, purtnd confirmri pozitive sau negative despre cadrele sosite. Dac emitorul recepioneaz o confirmare pozitiv despre un cadru, el tie c acel cadru a ajuns cu bine. Pe de alt parte, o confirmare negativ nseamn c ceva a mers prost i cadrul trebuie retransmis. O complicaie n plus vine de la posibilitatea ca defectele de echipament s determine dispariia complet a unui cadru (de exemplu ntr-o rafal de zgomot). n acest caz, receptorul nu va reaciona n nici un fel, din moment ce nu are nici un motiv s reacioneze. Trebuie s fie clar c un protocol n care emitorul trimite un cadru i apoi ateapt o confirmare, pozitiv sau negativ, va rmne agat pentru totdeauna dac un cadru este complet pierdut datorit nefuncionrii echipamentului. Aceast posibilitate a determinat introducerea contoarelor de timp (ceasurilor) la nivelul legturii de date. Atunci cnd emitorul trimite un cadru, pornete de obicei i un contor de timp. Contorul de timp este setat s expire dup un interval suficient de lung pentru ca acel cadru s poat

170

NIVELUL LEGTUR DE DATE

CAP. 3

ajunge la destinaie, s fie prelucrat acolo i confirmarea s se propage napoi ctre emitor. n mod normal, cadrul va fi corect recepionat i confirmarea va sosi nainte ca timpul s expire, caz n care contorul va fi anulat. Dar, dac fie cadrul, fie confirmarea se pierd, intervalul de timp expir, n acest caz, emitorul fiind atenionat c a aprut o problem. Soluia evident este retransmiterea cadrului. Dar, atunci cnd cadrele pot fi transmise de mai multe ori, exist pericolul ca receptorul s accepte acelai cadru de dou sau mai multe ori i s-1 trimit de mai multe ori nivelului reea. Pentru a evita aceast situaie este necesar s atribuim numere de secven cadrelor de ieire, aa nct receptorul s poat face distincie ntre cadrele retransmise i cele originale. ntreaga problematic a gestiunii ceasurilor i numerelor de secven, astfel nct fiecare cadru s ajung la nivelul reea de la destinaie o singur dat, fr excepie, reprezint o parte important a obligaiilor nivelului legtur de date. Mai trziu, n acest capitol, vom studia n detaliu cum este realizat aceast gestiune, urmrind o serie de exemple de complexitate din ce n ce mai mare. 3.1.4 Controlul fluxului Un alt aspect important de proiectare care apare la nivelul legtur de date (i, desigur, i la nivelurile superioare) este cum trebuie procedat cu un emitor care dorete sistematic s transmit cadre mai repede dect poate s accepte receptorul. Aceast situaie poate s apar uor atunci cnd emitorul ruleaz pe un calculator rapid (sau mai puin ncrcat) i receptorul ruleaz pe o main lent (sau foarte ncrcat). Emitorul continu s transmit cadre la o rat nalt pn cnd receptorul este inundat. Chiar dac transmisia este fr erori, la un anumit punct receptorul nu va mai fi capabil s trateze cadrele care sosesc i va ncepe s piard unele dintre ele. Bineneles, trebuie fcut ceva pentru a evita aceast situaie. Soluia uzual este de a introduce controlul fluxului iflow control) pentru o obliga emitorul s nu trimit mai rapid dect poate s accepte receptorul. Aceasta necesit n general un mecanism de reacie, aa nct emitorul s-i poat da seama dac receptorul poate sau nu s in pasul. Sunt cunoscute diferite scheme de control al fluxului, dar cele mai multe dintre ele utilizeaz acelai principiu de baz. Protocolul conine reguli bine-definite despre momentul cnd emitorul poate trimite urmtorul cadru. Aceste reguli interzic trimiterea cadrelor nainte ca Receptorul s o permit, implicit sau explicit. De exemplu, cnd se stabilete o conexiune, receptorul trebuie s spun: "Acum poi s-mi trimii n cadre, dar dup ce au fost trimise,-s nu trimii altele pn cnd nu i spun s continui". n acest capitol vom studia diferite mecanisme de control al fluxului bazate pe acest principiu. n capitolele urmtoare vom studia alte mecanisme.

3.2 DETECTAREA I CORECTAREA ERORILOR


Aa cum am vzut n Cap. 2, sistemul telefonic are trei pri: comutatoarele, trunchiurile interoficii (interoffice tmnks) i buclele locale. Primele dou sunt acum aproape complet digitizate n Satele Unite i n alte cteva ri. Buclele locale sunt nc din perechi de fire torsadate din cupru. n timp ce pe partea digital erorile sunt rare, ele sunt nc obinuite pe buclele locale. Mai mult, comunicaia fr fir a devenit mai uzual i ratele erorilor sunt, n acest caz, cu cteva ordine de mrime mai frecvente dect pe trunchiurile de fibr inter-oficii. Concluzia este: erorile de transmisie vor fi o realitate pentru muli ani de acum nainte.

DEIECI^REApaMECTAREAHlORILOR

171

Gwezultat al proceselor fizice care le genereaz, erorile dintr-unmediu (de exemplu radiq) tind s mai curnd n rafale dect izolate. Sosirea erorilor n rafal, are att avantaje ct i dezavantaje fat de erorile izolate pe un singur bit. Avantajul este acela c, datele de la calculator sunt trimise ntotdeauna n blocuri de bii. S presupunem c dimensiunea unui bloc este de 1000 de bii i rata de eroare este de 0.001 per bit. Dac erorile ar fi independente, multe blocuri ar conine o eroare. Dac erorile vin n rafal de cte 100, n medie vor fi afectate doar unul sau dou blocuri din 100. Dezavantajul erorilor n rafal este acela c sunt mult mai greu de detectat i corectat dect erorile izolate.

3.2.1 Coduri corectoare de erori


Proiectanii de reele au dezvoltat dou strategii de baz pentru tratarea erorilor. O modalitate este ca pe lng fiecare bloc de date trimis s se includ suficient informaie redundant pentru ca receptorul s poat deduce care a fost caracterul transmis. O alt soluie este s se includ suficient redundan pentru a permite receptorului s constate c a aprut o eroare, dar nu care este eroarea, si s cear o retransmisie. Prima strategie utilizeaz coduri corectoare de erori, iar cea de-a doua

utilizeaz coduri detectoare de erori.

Pentru a nelege cum pot fi tratate erorile, este necesar s privim cu atenie la ceea ce este cu adevrat o eroare. n mod normal, un cadru conine m bii de date (adic mesaj) i r bii redundani sau de control. S considerm lungimea total n (adic, n = m + r). O unitate format din n bii, care conine date i bii de control, este numit frecvent cuvnt de cod de n bii (-bit codeword). Date fiind dou cuvinte de cod, s zicem, 10001001 i 10110001, este posibil s determinm ci bii de coresponden difer. n acest caz difer 3 bii. Pentru a determina ci bii difer, aplicm operatorul SAU EXCLUSIV ntre cele dou cuvinte de cod i numrm biii 1 din rezultat. Numrul de poziii binare n care dou cuvinte de cod difer se numete distana Hamming (Hamming, 1950). Semnificaia sa este c dac dou cuvinte de cod sunt desprite de o distan Hamming d, sunt necesare d erori de un singur bit pentru a-1 converti pe unul n cellalt. n multe aplicaii de transmisie de date, toate cele 2m mesaje de date posibile sunt corecte, dar, datorit modului n care sunt calculai biii de control, nu sunt utilizate toate cele 2n cuvinte de cod posibile. Dat fiind algoritmul pentru calculul biilor de control, este posibil s construim o list complet de cuvinte de cod permise i din aceast list s gsim cele dou cuvinte de cod a cror distan Hamming este minim. Aceast distan este distana Hamming a codului complet. Proprietile detectoare i corectoare de erori ale unui cod depind de distana sa Hamming. Pentru a detecta d erori, este nevoie de un cod cu distan d + 1, deoarece cu un asemenea cod nu exist nici o modalitate ca d erori de un singur bit s poat modifica un cuvnt de cod corect ntr-un alt cuvnt de cod corect. Atunci cnd receptorul vede un cuvnt de cod incorect, poate spune c s-a produs o eroare de transmisie. Similar, pentru a corecta d erori, este nevoie de un cod cu distan 2d + 1, deoarece n acest mod cuvintele de cod corecte sunt att de distanate, nct, chiar cu d modificri, cuvntul de cod originar este totui mai apropiat dect alte cuvinte de cod i va fi unic determinat. Ca un exemplu simplu de cod detector de erori s considerm un cod n care la date este adugat un singur bit de paritate. Bitul de paritate este ales astfel, nct numrul de bii 1 din cuvntul de cod estepar (sau impar). De exemplu, atunci cnd 10110101 este trimis n paritate par, prin adugarea unui bit la sfrit devine 101101011, n timp ce 10110001 devine 101100010. Un cod cu un singur bit

172

NIVELULLEGATURADEDATE

CAP.3^

de paritate are distana 2, deoarece orice eroare pe u Singur bit produce un cuvnt de cod cu | paritatea greit. Acesta poate fi utilizat pentru detectarea erorilor singulare. ') Ca exemplu simplu de cod corector de erori, s considerm un cod cu numai patru cuvinte de l cod corecte: . ;; 0000000000, 0000011111, 1111100000 i 1111111111. Acest cod are distanai, ceea ce nseamn c poate corecta erori duble. Dac sosete cuvntul de cod 0000000111, cel ce recepioneaz tie c originalul trebuie s fi fost 00000111111. Dac totui o eroare tripl modific 0000000000 n 0000000111, eroarea nu va fi corectat corespunztor. S ne imaginm c dorim s proiectm un cod cu m bii de mesaj i r bii de control care ne va permite s corectm toate erorile singulare. Pentru fiecare din cele 2m mesaje corecte exist n cuvinte de cod eronate, aflate la distan 1 de el. Acestea sunt formate prin inversarea sistematic a fiecruia dintre cei n bii din cuvntul de cod de n bii format din el. Astfel, fiecare din cele 2m mesaje corecte necesit n+1 abloane asociate. Cnd numrul total de abloane este 2n, trebuie s avem (n+1) 2m < = 2 n . Utiliznd n=m+r, aceast condiie devine (m + r + 1 ) < = 2 r . Dndu-se m, acesta impune o limit inferioar asupra numrului de bii de control necesari pentru a corecta erorile singulare. Aceast limit inferioar teoretic poate fi, de fapt, atins utiliznd o metod atribuit lui Hamming (1950). Biii cuvntului de cod sunt numerotai consecutiv, ncepnd cu bitul 1 de la marginea din stnga. Biii care sunt puteri ale lui 2 (1,2,4,8,16 etc.) sunt bii de control. Restul (3, 5,6,7,9 etc.) sunt completai cu cei m bii de date. Fiecare bit de control foreaz ca paritatea unui grup de bii, inclusiv el nsui, s fie par (sau impar).

ar.
H a m m i n g c o d e

ASCII
/

Bii de control
/ \ \

1001000 00110010000 1100001 10111001001 1101101 11101010101 1101101 11101010101 1101001 01101011001 1101110 01101010110 1100111 11111001111 0100000 10011000000 11111000011 1100011 1101111 00101011111 1100100 11111001100 1100101 00111000101 ordinea transmiterii biilor

Fig. 3-6. Utilizarea unui cod Hamming pentru corectarea erorilor n rafal. Un bit poate fi inclus n mai multe calcule de paritate. Pentru a vedea la care bii de control contribuie bitul de date din poziia k, rescriem k ca o sum de puteri ale lui 2. De exemplu, 11= 1+2+8 i 29=1+4+8+16. Un bit este verificat de acei bii de control care apar n dezvoltarea sa (de exemplu, bitul 11 este verificat de biii 1,2 i 8).

SEC. 3.2

DETECTAREA I CORECTAREA ERORILOR

173

Cnd sosete un cuvnt de cod, receptorul iniializeaz un contor la 0. Acesta examineaz apoi fiecare bit de control, k (k = 1,2,4,8...) pentru a vedea dac are paritatea corect. Dac nu, adaug k la contor. Dac, dup ce au fost examinai toi biii de control, contorul este 0 (adic, dac toi biii au fost coreci), cuvntul de cod este acceptat ca valid. Dac valoarea contorului este nenul, ea reprezint numrul bitului incorect. De exemplu, dac biii de control 1, 2 i 8 sunt eronai, atunci bitul inversat este 11, deoarece este singurul verificat de biii 1, 2 i 8. Fig. 3-6 prezint cteva caractere ASCII pe 7 bii codificate prin cuvinte de cod pe 11 bii, utiliznd codul Hamming. De reamintit c informaia este regsit n biii de pe poziiile 3, 5,6, 7, 9,10 i 11. Codurile Hamming pot corecta numai erori singulare. Totui, exist un artificiu care poate fi utilizat pentru a permite codurilor Hamming s corecteze erorile n rafal. O secven de k cuvinte de cod consecutive este aranjat ca o matrice, avnd cte un cuvnt de cod pe fiecare linie. In mod normal, datele ar fi transmise linie cu linie, de la stnga la dreapta. Pentru a corecta erorile n rafal, datele vor trebui transmise pe coloane, ncepnd cu coloana cea mai din stnga. Cnd au fost trimii toi cei k bii, este transmis a doua coloan i aa mai departe. Atunci cnd un cadru ajunge la receptor, matricea este reconstruit, coloan cu coloan. Dac a aprut o eroare n rafal, de lungime k, va fi afectat cel mult un bit din fiecare dintre cele k cuvinte de cod, dar codul Hamming poate corecta o eroare pe cuvnt de cod, aa nct ntregul bloc poate fi refcut. Aceast metod utilizeaz kr bii de control pentru a face blocuri de km bii de date imune la erorile n rafal de lungime k sau mai mic. 3.2.2 Coduri detectoare de erori Codurile corectoare de erori sunt utilizate uneori pentru transmiterea datelor, de exemplu atunci cnd un canal este simplex, deci nu pot fi cerute retransmisii, dar cel mai adesea este preferat detecia erorii urmat de retransmisie, deoarece este mai eficient. Ca un simplu exemplu, s considerm un canal n care erorile sunt izolate i rata erorilor este de IO"6 per bit. S considerm c dimensiunea unui bloc este de 1000 bii. Pentru a permite corecia erorilor pentru blocuri de 1000 de bii sunt necesari 10 bii de control; un megabit de date va necesita 10000 bii de control. Pentru a detecta uor un bloc cu o singur eroare de un bit, va fi suficient un bit de paritate la fiecare bloc. O dat la fiecare 1000 de blocuri va trebui transmis un extrabloc (1001 bii). ncrcarea suplimentar total n cazul metodei de detecie i retransmisie este de numai 2001 bii pentru un megabit de date, n comparaie cu 10000 bii pentru un cod Hamming. Dac unui bloc i se adaug un singur bit de paritate i blocul este puternic deformat de o eroare n rafal lung, probabilitatea ca eroarea s fie detectat este de numai 0.5, ceea ce este greu de acceptat. ansele pot fi mbuntite considerabil dac fiecare bloc transmis este privit ca o matrice dreptunghiular de n bii lime i k bii nlime. Pentru fiecare coloan este calculat un bit de paritate, care este adugat ntr-o nou linie de la sfritul matricei. Matricea este apoi transmis linie cu linie. La sosirea blocului, receptorul verific toi biii de paritate. Dac oricare din ei este greit, va cere o retransmisie a blocului. Aceast metod poate detecta o singur rafal de lungime n, cu numai un bit pe coloan modificat. O rafal de lungime n+1 va trece totui nedetectat dac primul i ultimul bit sunt inversai, iar toi ceilali bii sunt coreci (o eroare n rafal nu nseamn c toi biii sunt greii, ci c cel puin primul i ultimul sunt greii). Dac blocul este puternic deformat de o rafal lung sau de rafale scurte multiple, probabilitatea ca oricare din cele n coloana s aib, accidental, paritatea corect este 0.5, deci probabilitatea ca un bloc eronat s fie acceptat atunci cnd nu ar trebui este 2'n.

174

NIVELUL LEGTUR DE DATE

CAP. 3

Cu toate c schema de mai sus poate fi uneori adecvat, n" practic este larg utilizat o alt metod: codul polinomial (cunoscut i sub numele de cod cu redundan ciclic - cydic redundancy code sau cod CRC). Codurile polinomiale sunt bazate pe tratarea irurilor de bii ca reprezentri de polinoame cu coeficieni 0 i 1. Un cadru de k bii este vzut ca o list de coeficieni pentru un 1 polinom cu k termeni, de la it la x. Se spune c un astfel de polinom este de gradul k-1. Bitul cel lc 1 2 mai semnificativ (cel mai din stnga) este coeficientul lui x ' ; urmtorul bit este coeficientul lui x*' .a.m.d. De exemplu, 110001 are ase bii i ei reprezint un polinom cu ase termeni cu coeficienii ; 4 1,1,0,0,0 i 1: r +x +x. Aritmetica polinomial este de tip modulo 2, n conformitate cu regulile teoriei algebrice. Nu exist transport la adunare i nici mprumut la scdere. Att adunrile ct i scderile sunt identice cu SAU EXCLUSIV. De exemplu: 10011011 +11001010 01010001 00110011 +11001101 11111110 11110000 -10100110 01010110 01010101 -10101111 11111010

mprirea lung este fcut ca n binar cu excepia faptului c scderea este realizat modulo 2, ca mai sus. Despre un mpritor se spune c intr" ntr-un demprit dac dempritul are tot atia bii ca mpritorul. Atunci cnd este utilizat metoda codului polinomial, emitorul i receptorul se pun de acord n avans asupra unui polinom generator G(x). Att bitul cel mai semnificativ ct i cel mai puin semnificativ trebuie s fie 1. Pentru a calcula suma de control pentru un cadru cu m bii, corespunztor polinomului M(x), cadrul trebuie s fie mai lung dect polinomul generator. Ideea este de a aduga o sum de control la sfritul cadrului, astfel nct polinomul reprezentat de cadrul cu sum de control s fie divizibil prin G(x). Cnd receptorul preia cadrul cu suma de control, ncearc s-1 mpart la G(x). Dac se obine un rest, nseamn c a avut loc o eroare de transmisie. Algoritmul pentru calculul sumei de control este urmtorul: Fie r gradul lui G(x). Se adaug r bii 0 la captul mai puin semnificativ al cadrului, aa nct acesta va conine acum n+r bii i va corespunde polinomului xTvI(x). 2. Se mparte irul de bii ce corespund lui G(x) ntr-un ir de bii corespunznd lui tfM(x), utiliznd mprirea modulo 2. 3. Se scade restul (care are ntotdeauna r sau mai puini bii) din irul de bii corespunznd lui xrM(x), utiliznd scderea modulo 2. Rezultatul este cadrul cu sum de control ce va fi transmis. Numim polinomul su T(x). 1. Fig. 3-7 ilustreaz calculul pentru cadrul 1101011011 i G(x) = x 4 +x+l. Trebuie s fie clar c T(x) este divizibil (modulo 2) cu G(x). n orice problem de mprire, dac din demprit se scade restul, atunci ceea ce rmne este divizibil prin mpritor. De exemplu, n baza 10, dac mprim 210278 la 10941 restul este 2399. Prin scderea lui 2399 din 210278, ceea ce rmne (207879) este divizibil cu 10941. S analizm puterea acestei metode. Ce tipuri de erori vor fi detectate? S ne imaginm c apare o eroare de transmisie, aa nct n loc s soseasc irul de bii pentru T(x), ajunge T(x) + E(X). Fiecare bit din E(x) corespursde unui bit care a fost inversat. Dac n E(x) exist k bii 1, aceasta nseamn c au aprut k erori de un singur bit.

SEC.3.2

DETECTAREA SI CORECTAREA ERORILOR

175

Cadru Generator:

1 1 0 1 0 10 0 11

1 1 0

11

Mesaj dup adugarea a 4 bii de zero: 1 1 o 1 0 1 l 0 0 0 0 1 1 0 0 1 1 1 1 0 1 0 1: 1 0 0 0 0 0 1 0 1 ,1 0 1 0 0 0 0 1 0 0 0 0

1 1 0

1
0 0 0 0 0

1
1

I
1 j 1 0 1 0 1

1 1_ 0 0 0 0 0 0

o o o o o
0 0 1 0 0 - 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0

1 0

o
1 1 0 1 1 1 0 1 0 0 0 0 0

0 1 0 0 1 0 1 0 0

o o
0 1 1 1 1 1 0 0

o
.-- Rest

1 1 1 0

Cadru t r a n s m i s :

1 1 0 1 0 1 1 0 1 1 1 1 1 0

Fig. 3-7. Calculul sumei de control n cod polinomial O singur eroare n rafal este caracterizat de un 1 iniial, un amestec de 0 i 1 i un 1 final, toi ceilali bii fiind 0. La recepia cadrului cu sum de control, receptorul l mparte prin G(x); aceasta nseamn c va calcula [T(x) + E(x)]/G(x). T(x)/G(x) este 0, aa nct rezultatul calculului este pur i simplu E(x)/G(x). Acele erori care se ntmpl s corespund unor polinoame care l au ca factor pe G(x) vor scpa; toate celelalte vor fi detectate.

176

NIVELUL LEGTUR DE DATE

CAP. 3

Dac a aprut o eroare pe un singur bit, E(x) =x", unde / determin care bit este eronat. Dac G(x) conine doi sau mai muli termeni, nu poate fi divizor al lui E(x), aa nct toate erorile pe un singur bit vor fi detectate. Dac au aprut dou erori izolate pe un singur bit, atunci E(x)= xi+xJ, unde i>j. Alternativ, aceasta se poate scrie ca E(x)=^(^+1). Dac presupunem c G(x) nu este divizibil prin x, o condiie suficient pentru detectarea erorilor duble este ca G(x) s nu se divid p r i n Z + l pentru orice k pn la valoarea maxim /-; (adic, pn la lungimea maxim a cadrului). Sunt cunoscute polinoame simple, de grad mic, care asigur protecie cadrelor cu lungime mare. De exemplu, x 1 5 +x 1 4 +1 nu se va divide c u / + i pentru nici o valoare a lui k mai mic dect 32768. Dac exist un numr impar de bii eronai, E(x) conine un numr impar de termeni (adic, 5 x +x 2 +l, dar nu x 2 +l). Destul de interesant, n sistemul modulo 2 nu exist nici un polinom cu numr impar de termeni care s l aib pe x+1 ca factor. Fcndu-1 pe x+1 factor al lui G(x), vom putea depista toate erorile constituite dintr-un numr impar de bii inversai. Pentru a vedea c nici un polinom cu numr impar de termeni nu este divizibil cu x+1, s presupunem c E(x) are un numr impar de termeni i este divizibil cu x+1. Factorizm E(x) n (x+l)Q(x). Acum evalum E(l)= (1+1)Q(1). Deoarece 1+1=0 (modulo 2), E(l) trebuie s fie 0. Daca E(x) are un numr impar de termeni, substituind fiecare x cu 1, rezultatul obinut va fi ntotdeauna 1. Prin urmare nici un polinom cu numr impar de termeni nu este divizibil ai x+1. n sfrit, i cel mai important, un cod polinomial cu r bii de control va detecta toate erorile n rafal de lungime < r. O eroare n rafal de lungime k poate fi reprezentat de x1 (x*'1 + ... +1), unde i determin ct de departe este localizat rafala fa de captul din dreapta al cadrului recepionat. Dac G(x) conine termenul x, atunci nu l va avea ca factor ipex", aa c dac gradul expresiei dintre paranteze este mai mic dect gradul lui G(x), restul nu poate fi niciodat 0. Dac lungimea rafalei este r+1, restul mpririi cu G(x) va fi zero dac i numai dac rafala este identic cu G(x). Prin definiia rafalei, primul i ultimul bit trebuie s fie 1, aa c potrivirea depinde de cei r - 1 bii intermediari. Daca toate combinaiile sunt privite ca egal posibile, atunci probabilitatea ca un cadru incorect s fie acceptat ca valid este l/2 r4 . Trei polinoame au devenit standarde internaionale: CRC-12 =x 1 2 +x 1 1 +x 3 +x 2 +x 1 +l CRC-16 =x 1 6 +x 1 5 +x 2 +l 16 12 5 CRC-CCITT =x +x +x +l Toate trei l conin pe x+1 ca factor prim. CRC-12 este utilizat atunci cnd lungimea caracterului este de 6 bii. Celelalte dou sunt utilizate pentru caractere de 8 bii. O sum de control pe 16 bii, precum CRC-16 sau CRC-CCITT, detecteaz toate erorile singulare i duble, toate erorile cu un numr impar de bii, toate erorile n rafal de lungime 16 sau mai mic, 99,997 % din erorile n rafal de 17 bii i 99,998 % din rafalele de 18 sau mai muli bii. Dei calculele necesare pentru determinarea sumei control pot s par complicate, Peterson i Brown (1961) au artat c pentru a calcula i verifica suma de control poate fi utilizat un simplu registru de deplasare. n practic, acest tip de circuit este utilizat aproape ntotdeauna. Timp de zeci de ani s-a presupus c acele cadre pentru care se calculeaz suma de control conin bii aleatori. Toate analizele algoritmilor pentru calculul sumei de control au fost fcute cu aceast p, mrente ale datelor reale au artat c aceast presupunere nu este corect. Ca

SEC. 3.3

PROTOCOALE ELEMENTARE PENTRU LEGTURA DEDATE

177

o consecin, n unele circumstane, erorile nedetectate sunt mult mai obinuite dect s-a crezut anterior (Partridge .a. 1995).

3 . 3 PROTOCOALE ELEMENTARE PENTRU LEGTURA DE DATE


Pentru a face introducerea n subiectul protocoalelor, vom ncepe prin a analiza trei protocoale de complexitate din ce n ce mai mare. Pentru cititorii interesai, un simulator pentru aceste protocoale i pentru cele care urmeaz este disponibil prin WWW (vezi prefaa). nainte de a analiza protocoalele, este util s explicitm unele dintre ipotezele care stau la baza modelelor de comunicaie. Pentru nceput, considerm c la nivelul fizic, nivelul legtur de date i nivelul reea exist procese independente care comunic transferndu-i mesaje n ambele sensuri. n unele cazuri, procesele de la nivelul fizic i de legtur de date se vor executa pe un procesor dintr-un cip special de intrare/ieire al reelei, iar cele de la nivelul reea n CPU, dar sunt posibile i alte implementri (de exemplu toate cele trei procese ntr-un singur cip de intrare/ieire; nivelurile fizic i legtur de date ca proceduri apelate de procesul nivelului reea etc). n orice caz, tratarea celor trei niveluri ca procese separate va face discuiile conceptuale mai clare i de asemenea va scoate n eviden independena nivelurilor. O alt presupunere cheie este c mainal vrea s trimit un lung ir de date mainii B, folosind un serviciu sigur, orientat pe conexiune. Mai trziu, vom consider cazul n care B vrea de asemenea s-i transmit simultan date lui A Presupunem c A are tot timpul date gata de transmis i nu ateapt niciodat ca aceste date s fie produse. Atunci cnd nivelul legtur de date al lui A cere date, nivelul reea este totdeauna capabil s i le furnizeze imediat. (i aceast restricie va fi abandonat mai trziu.) n ceea ce privete nivelul legtur de date, pachetul care trece de la nivelul reea, prin interfa, ctre el este constituit din date pure, fiecare bit al acestora trebuind s fie trimis la nivelul reea destinaie. Faptul c nivelul reea destinaie poate interpreta o parte din pachetul de date ca antet nu prezint interes pentru nivelul legtur de date. Atunci cnd accept un pachet, nivelul legtur de date l ncapsuleaz ntr-un cadru, adugndu-i un antet i o ncheiere de legtur de date (vezi Fig. 1-11). Deci un cadru se compune dintr-un pachet de date i cteva informaii de control (antetul). Apoi cadrul este transmis ctre alt nivel legtur de date. Vom presupune c exist proceduri de bibliotec adecvate pentru transmitea i recepionarea unui cadru: to_physicaljayer i, respectiv, from_physicaljayer. Echipamentul de transmisie calculeaz i adaug suma de control, astfel nct programele nivelului legtur de date nu trebuie s se preocupe de aceasta. De exemplu, ar putea fi utilizat algoritmul polinomial discutat mai devreme n acest capitol. Iniial, receptorul nu are nimic de fcut. Doar st ateptnd s se ntmple ceva. n exemplele de protocoale din acest capitol artm c nivelul legtur de date ateapt s se produc un eveniment prin apelul de procedur waitjor_event (event). Aceast procedur red controlul numai atunci cnd s-a ntmplat ceva (adic atunci cnd sosete un cadru). La revenire, variabila event spune ce sa ntmplat. Mulimea de evenimente posibile nu este aceeai pentru diferitele protocoale ce vor fi descrise i va fi definit separat, pentru fiecare protocol n parte. De reinut c, ntr-o situaie mai realist, nivelul legtur de date nu va sta pur i simplu n ateptarea unui eveniment, aa cum am sugerat, ci va primi o ntrerupere, care l va determina s se opreasc, indiferent ce fcea n acel moment, i s se ocupe de cadrul care sosete; De asemenea, pentrusimplitate, vom- ignora toate

178

NWELUfc LEGTUR DE DATE

CAP.3

detaliile activitilor paralele din cadrul nivelului legtur de date i vom presupune c este tot timpul dedicat numai canalului nostru. Cnd'un cadru ajunge la receptor, echipamentul calculeaz suma de control. Dac aceasta este incorect (n cazul unei erori de transmisie), atunci nivelul legtur de date este informat corespunztor (event = cksumjrr). Dac un cadru ajunge nealterat, nivelul legtur de date este de asemenea informat (event = framejmival), aa c poate primi cadrul pentru inspecie folosind fivmjyhysicaljayer. De ndat ce nivelul de legtur de date a primit un cadru nealterat, verific informaiile de control din antet i dac totul este n regul, pachetul este transmis nivelului reea. n nici un caz, antetul nu este transmis nivelului reea. Exist un motiv serios pentru care nivelului reea nu trebuie s i se transmit niciodat vreo parte din antet: separarea complet a protocoalelor de reea de cele de legtur de date. Att timp ct nivelul reea nu tie nimic despre protocolul nivelului legtur de date sau despre formatul cadrului, acestea pot fi schimbate, fr s fie necesar schimbarea programelor nivelului reea. Furnizarea unei interfee rigide ntre nivelul reea i nivelul legtur de date simplific considerabil proiectarea programelor, deoarece protocoalele de comunicaie de la niveluri diferite pot evolua independent. Figura 3-8 arat cteva declaraii (n C) comune multor protocoale ce vor fi discutate mai trziu. Sunt definite cinci structuri de date: boolean, seq_nr,packet,frame_kind,frame. Un boolean este de tip enumerativ i poate lua numai valorile true sau false. Seqjir este un numr ntreg mic folosit pentru a numerota cadrele, astfel nct s le putem identifica. Aceste numere de secven sunt cuprinse ntre 0 i MAX_SECV inclusiv, aceasta din urm fiind o constant definit n fiecare protocol n care este necesar. Unpachet este unitatea de informaie schimbat ntre nivelul reea i nivelul legtur de date de pe aceeai main sau ntre niveluri reea similare. n modelul nostru el conine totdeauna MAX_PKT octei, dar mai realist ar fi s aib lungime variabil. XJnframe (cadru) este compus din patru cmpuri: kind, seq, ack, i info, dintre care primele trei conin informaii de control, iar ultimul poate conine datele efective care trebuie transferate. Ansamblul acestor cmpuri de control este numit antetul cadrului (frame header). Cmpul kind (tip) spune dac exist sau nu date n cadru, deoarece unele protocoale fac distincie ntre cadrele care conin exclusiv informaii de control i cele care conin i date. Cmpurile seq i ack sunt utilizate pentru numere de secven i, respectiv, confirmri (acfcnowledgements); utilizarea lor va fi descris n detaliu mai trziu. Cmpul info al unui cadru de date conine un singur pachet de date; cmpul info al unui cadru de control nu este utilizat. O implementare mult mai realist va folosi un cmp info de lungime variabil, omindu-1 cu totul din cadrele de control. Este important s ne dm seama de relaia dintre un pachet i un cadru. Nivelul reea construiete un pachet lund un mesaj de la nivelul transport i adugnd la acesta antetul nivelului reea. Acest pachet este trimis nivelului legtur de date pentru a fi inclus n cmpul info al unui cadru care pleac. Cnd cadrul ajunge la destinaie, nivelul legtur de date extrage pachetul din cadru si l trimite nivelului reea. n aceast manier, nivelul reea poate aciona ca si cnd mainile ar putea s schimbe direct pachete. n figura 3-8 sunt prezentate i cteva proceduri. Acestea sunt rutine de bibliotec ale cror detalii sunt dependente de implementare i al cror mod intern de lucru nu ne intereseaz n continuare. Procedura waitjorjvent st n bucl, ateptnd s se ntmple ceva, aa cum am menionat mai devreme. Procedurile tojietworkjayer ifrornjietworkjayersunt utilizate de nivelul de legtur de date pentru a trimite, respectiv a accepta, pachete de la nivelul de reea. De reinut c from_physkaljayer i to_physical_layer sunt utilizate pentru trimiterea cadrelor ntre nivelurile fizic i

SEC. 3.3

PROTOCOALE ELEMENTARE PENTRU LEGTURA DE DATE

179

legtur de date, n timp ce tojietworkjayer i fromjietworkjayer sunt folosite pentru a trimite pachetele ntre nivelul legtur de date i nivelul reea. Cu alte cuvinte, tojietworkjayer i fromjietworkjayer realizeaz interfaa dintre nivelurile 2 i 3, n timp ce fromj>hysicaljayer i tojyhysicaljayer realizeaz interfaa dintre nivelurile 1 i 2. n cele mai multe dintre protocoale se consider c se utilizeaz un canal nesigur care, ocazional, poate pierde cadre ntregi. Pentru a contracara efectul unor asemenea calamiti, nivelul legtur de date care transmite trebuie s porneasc un contor de timp sau un ceas intern de fiecare dat cnd trimite un cadru. Dac nu s-a primit un rspuns ntr-un interval de timp predefinit, la expirarea acestuia, nivelul legtur de date primete un semnal de ntrerupere. n protocoalele noastre aceasta este asigurat de procedura waitjorjvent care ntoarce event = timeout. Procedurile start Jimer i stop_ timer sunt utilizate pentru a porni, respectiv a opri contorul de timp. Expirarea timpului este posibil numai atunci cnd contorul de timp lucreaz. Este permis explicit s se apeleze start_ timer n timp ce contorul de timp lucreaz; un astfel de apel va reseta pur i simplu contorul de timp, determinndu-1 s genereze urmtorul semnal de expirare de timp dup ce ntregul interval de timp se va epuiza (exceptnd cazul n care este resetat sau dezactivat n acest interval timp). Procedurile startjickjimer i stopjickjimer sunt folosite pentru a controla un contor de timp auxiliar, utilizat pentru a genera confirmri n anumite condiii Procedurile enabkjietworkjayer i disablejietworkjayer sunt utilizate n protocoalele mai sofisticate, n care nu mai presupunem c nivelul de reea are tot timpul pachete de trimis. Cnd nivelul legtur de date activeaz nivelul reea, acestuia i se permite s ntrerup atunci cnd are un pachet de trimis. Indicm aceasta cu event = networkjayerjeady. Cnd un nivel reea este dezactivat, acesta nu poate provoca asemenea evenimente. Gestionnd cu pruden activarea i dezactivarea nivelului reea, nivelul legtur de date poate preveni ca acesta s-1 inunde cu pachete atunci cnd nu mai are spaiu n tampon. Numerele de secven ale cadrelor sunt ntotdeauna de la 0 la MAX_SECV (inclusiv), unde MAX_SECV difer de la protocol la protocol. Deseori este necesar ca numrul de secven s avanseze circular (adic MAX_SECV este urmat de 0). Aceast incrementare este realizat de macroinstruciunea inc. A fost definit ca macroinstruciune, deoarece este utilizat n-line n secvena critic. Asa cum vom vedea mai trziu, factorul care limiteaz performanta reelei este adesea prelucrarea efectuat de protocol, aa c definirea operaiilor simple, ca aceasta, ca macroinstruciuni, nu afecteaz claritatea codului, dar mbuntete performana. Mai mult, de vreme ce MAXJSECVva avea diferite valori n diferite protocoale, definirea de macroinstruciuni face posibil includerea tuturor protocoalelor n acelai fiier binar fr conflict. Aceast posibilitate este util pentru simulator.
Idefine MAX_PKT 1024 typedef typedef typedef typedef /* determin dimensiunea n octei a pachetului */ */ */ */ */

enum {false, true} boolean; /* t i p boolean unsigned int seq_nr; /* numere de secven sau de ack struct {unsigned char data[MAX_PKT];} packet; /* definiia pachetului enum {data, ack, nak} frame_kind; /* definiia t i p u r i l o r de cadre

typedef struct { frame_kind kind; seq_nr seq;

/* la acest nivel sunt transportate cadre */ /* ce fel de cadru este acesta? */ /* numr de secven */

180 seq_nr ack; packet info; } frame;

NIVELUL LEGTUR DE DATE

CAP. 3 /* numr de confirmare */ /* pachetul de nivel reea */

/* Ateapt producerea unui eveniment; ntoarce tipul acestuia n variabila event */ void wait_for_event(event_type *event); /* Preia un pachet de la nivelul reea, spre a-1 transmite prin canal */ void from_network_layer(packet *p); /* Livreaz nivelului reea informaia dintr-un cadru ajuns la destinaie */ void to_network_layer(packet *p); /* Preia cadrul sosit de la nivelul fizic i l copiaz n r. */ void from_physicalJayer(frame * r ) ; /* Livreaz cadrul nivelului fizic, pentru transmisie */ void to_physi cal J a y e r (frame *s); /* Pornete ceasul i activeaz evenimentul timeout */ void start_timer(seq_nr k); /* Oprete ceasul i dezactiveaz evenimentul timeout void stop_timer(seq_nr k); /* Pornete un ceas auxiliar i activeaz evenimentul void start_ack_timer(void); */ ack_timeout */. */

/* Oprete ceasul auxiliar i dezactiveaz evenimentul ack_timeout void stop_ack_timer(void);

/* Permite nivelului reea s provoace un eveniment network_layer_ready */ void enable_network_layer(void); /* Interzice nivelului reea generarea unui eveniment network_layer_ready */ void disable_network_layer(void); /* Macroinstruciunea inc este expandat n-line: l incrementeaz circular pe k */ #define inc(k) if (k ( MAXJEQ) k = k + 1; else k = 0 Fig. 3-8. Cteva definiii necesare n protocoalele care urmeaz. Aceste definiii se gsesc n fiierulprotocol.h. Declaraiile din Fig. 3-8 fac parte din fiecare dintre protocoalele care urmeaz. Pentru a economisi spaiu i pentru a furniza referine convenabile, acestea au fost extrase i listate mpreun, dar din punct de vedere conceptual ele trebuie incluse n protocoalele respective. n C, aceasta se realizeaz punnd definiiile ntr-un fiier antet special, n acest caz protocol.h, i utiliznd facilitatea #include a preprocesorului C pentru a le include n fiierele protocol. 3.3.1 Un protocol simplex fr restricii Ca un prim exemplu vom considera cel mai simplu protocol posibil. Datele sunt transmise ntr-o singur direcie. Cele dou niveluri reea, de transmisie i de recepie, sunt considerate tot timpul pregtite. Timpul de prelucrare poate fi ignorat. Memoria de stocare disponibil este infinit. i, cel

SEC. 3.3

PROTOCOALE ELEMENTARE PENTRU LEGTURA DE DATE

181

mai bun lucru dintre toate, canalul de comunicaie ntre niveluri legtur de date nu pierde i nu altereaz niciodat cadrele. Acest protocol total nerealist, pe care l vom numi "utopia", este prezentat n Fig. 3 - 9; /* Protocolul 1 (utopia) asigur transmitere de transmitor la receptor. Canalul de comunicaie se receptor se presupune c este capabil s prelucreze la intrare. Deci, transmitorul nu face dect s linie ct de repede poate */ typedef enum {frame_arrival} event_type; #include protocol.h" void senderl(void) frame s; packet buffer; while (true) { from_network_layer(&buffer) s.info = buffer; to_physical_layer(&s); /* tampon pentru cadrul transmis */ /* tampon pentru pachetul transmis */ * preia ceva de transmis */ /* l copiaz n s pentru transmitere */ date doar ntr-o direcie, de la presupune a fi fr erori, iar despre infinit de repede tot ce primete de stea ntr-o bucl, pompnd date pe

/* l trimite pe traseu */ /* Tomorrow, and tomorrow, and tomorrow Creeps n this petty pace from day to day To the last syllable of recorded time - Macbeth, V, v */

void receiverl(void)

frame r; event_type event; while (true) { wait_for_event(&event); from_physical_layer(&r); to_network_layer(&r.info);

/* completat de rutina wait, dar neutilizat aici */ /* singura posibilitate este sosirea unui cadru */ /* preia cadrul sosit */ /* pred datele nivelului reea */

Fig. 3-9. Un protocol simplex fr restricii. Protocolul const din dou proceduri distincte, una de emisie i cealalt de recepie. Emitorul lucreaz la nivelul legtur de date al mainii surs, iar receptorul la nivelul legtur de date al mainii de destinaie. Nu.se folosesc nici numere de secven, nici confirmri, aa c nu este nevoie de MAXjSECV. Singurul eveniment posibil GSteframejirrival (sosirea unui cadru nealterat). Emitorul este ntr-un ciclu infinit care doar pompeaz datele pe linie ct poate de repede. Ciclul const din trei aciuni: preluarea unui pachet de date de la nivelul reea (care este ntotdeauna serviabil), construirea unui cadru de ieire folosind variabila s i trimiterea cadrului pe drumul su. Acest protocol utilizeaz numai cmpul info al cadrului, deoarece celelalte cmpuri se refer la erori i secvene de control, iar n cazul nostru nu exist erori sau restricii de control.

182

.NIVELUL LEGTUR DE DATE-

CAP.3

Receptorul este la fel de simplu. Iniial el ateapt s se ntmple ceva, singura posibilitate fiind sosirea unui cadru nealterat. n cele din urm, cadrul ajunge, iar procedura waitjorjvent se ntoarce cu event setat \afmme_arrival (care este oricum ignorat). Apelul rutinei from_physical_layer mut cadrul nou sosit din zona tampon a echipamentului n variabila /*. n cele din urm pachetul de date este trimis nivelului reea i nivelul legtur de date revine la starea de ateptare a cadrului urmtor, autosuspendndu-se pur i simplu pn la sosirea unui nou cadru. 3.3.2 Un protocol simplu Stop-and-Wait (pas-cu-pas) Acum vom renuna la cea mai nerealist restricie utilizat n protocolul 1: posibilitatea ca nivelul' reea receptor s prelucreze datele de intrare cu vitez infinit (sau echivalent, prezena n nivelul legturii de date receptor a unui tampon infinit n care s fie memorate, ct timp i ateapt rndul, toate cadrele sosite). Totui, se presupune n continuare c nu se produc erori pe canalul de comunicaie i c traficul de date este nc simplex. Principala problem pe care trebuie s o rezolvm aici este cum s evitm ca emitorul s inunde receptorul cu date care sosesc mai rapid dect poate acesta s prelucreze. n esen, dac receptorul are nevoie de un timp At ca s execute fromjphysicaljayer i tojietworkjayer, atunci emitorul trebuie' s transmit la o vitez medie mai mic de un cadru la fiecare interval de timp de At. Mai mult, dac presupunem c echipamentul receptor nu realizeaz automat memorarea n zona tampon i gestiunea cozii de ateptare, atunci emitorul nu trebuie s transmit niciodat un nou cadru pn cnd cel vechi nu a fost preluat de rutina fivm_physical_layer, ca nu cumva cel nou s se scrie peste cel vechi. n anumite situaii speciale (de exemplu, transmisie sincron i un nivel legtur de date receptor complet dedicat prelucrrii unei singure linii de intrare) s-ar putea ntmpla ca emitorul s introduc pur i simplu o ntrziere n protocolul 1, pentru a-1 ncetini suficient, astfel nct s se evite inundarea receptorului. Totui, uzual, fiecare nivel legtur de date va avea mai multe linii de luat n considerare i intervalul de timp ntre sosirea unui cadru i nceputul prelucrrii sale poate varia considerabil. Dac cei ce proiecteaz reele pot calcula comportamentul receptorului n cazul cel mai defavorabil, atunci pot programa emitorul s transmit att de ncet, nct, chiar dac fiecare cadru va suferi ntrzierea maxim, nu vor exista depiri. Problema cu aceast abordare este aceea c este prea conservatoare. Ea conduce la o utilizare a lrgimii de band care este cu mult sub optim, cu excepia situaiei n care cazurile cel mai favorabil i cel mai defavorabil sunt aproape la fel (adic, variaia timpului de reacie al nivelului legtur de date este mic). O soluie mult mai general a acestei dileme este ca receptorul s furnizeze o reacie ctre emitor. Dup trimiterea unui pachet ctre nivelul su reea, receptorul trimite un mic cadru fictiv ctre emitor care, de fapt, i d emitorului permisiunea s transmit urmtorul cadru. Dup ce a transmis un cadru, emitorul este obligat de protocol s intre n ateptare un timp, pn cnd sosete micul cadru fictiv (deci confirmarea). Protocoalele n care emitorul trimite un cadru i apoi, nainte de a continua, ateapt o confirmare, se numesc stop-and-wait (pas-cu-pas). Fig. 3-10 prezint un exemplu de protocol simplex stop-and-wait.

SEC. 3.3

PROTOCOALE ELEMENTARE PENTRU IEGTURA DE DATE

183

/* Protocolul 2 (stop-and-wait) asigur la rndul su un flux de date unidirecional, de la emitor la receptor. Despre canalul de comunicaie se presupune din nou c este fr erori, ca i n protocolul 1. Totui, de data aceasta, receptorul are doar un tampon de capacitate limitat i o vitez de prelucrare finit, aa c protocolul trebuie s mpiedice n mod explicit emi-torul s inunde receptorul cu date mai repede dect le poate trata acesta. */ typedef enum {frame_arrival} event_type; #include protocol.h" void sender2(void) { frame s; packet buffer; event_type event; while (true) { from_network_layer(&buffer); s.info = buffer; to_physicaljayer(&s); wait_for_event(&event); /* tampon pentru cadrul trimis */ /* tampon pentru pachetul trimis */ /* singura posibilitate este sosirea unui cadru */ /* preia ceva de trarvsmis /* l copiaz n s pentru transmitere /* pa pa micu cadru /* nu continu pn nu primete semnalul */ */ */ */

void receiver2(void) { /* zone tampon pentru cadre frame r, s; /* singura posibilitate este sosirea unui cadru event_type event; while (true) { wait_for_event(&event); /* singura posibilitate este sosirea unui cadru from_physical_layer(&r); /* preia cadrul sosit to_network_layer(&r.info); /* livreaz datele nivelului reea to_physical_Iayer(&s); /* trimite un cadru fictiv pentru a trezi emitorul */
Fig. 3-10. Un protocol simplex stop-and-wait.

*/ */ */ */ */

Ca i n protocolul 1, emitorul ncepe prin preluarea unui pachet de la nivelul reea, utilizarea lui pentru construirea unui cadru i trimiterea acestuia. Numai c acum, spre deosebire de protocolul 1, emitorul trebuie s atepte pn cnd sosete un cadru de confirmare, nainte de a relua ciclul i a prelua urmtorul pachet de la nivelul reea. Nivelul legtur de date care transmite nu are nevoie s inspecteze cadrul care sosete: nu exist dect o singur posibilitate. Singura diferen dintre receiverl i receiver2 este aceea c dup transmiterea unui pachet ctre nivelul reea, receiverl trimite un cadru de confirmare napoi la emitor, nainte de a intra din nou n bucla de ateptare. Deoarece numai sosirea cadrului de ntoarcere la emitor este important, nu i coninutul lui, receptorul nu trebuie s pun nici o informaie particular n el. Chiar dac traficul de date este simplex, mergnd numai de la emitor la receptor, cadrele se deplaseaz n ambele direcii. n consecin, canalul de comunicaie dintre cele dou niveluri legtur de date trebuie s permit transferul de informaie bidirecional. Totui, acest protocol impune o

184

NIVELUL LEGTURA DE DATE

CAP. 3

alternan strict a fluxului: mai nti emitorul trimite un cadru, apoi receptorul trimite un alt cadru, apoi emitorul trimite alt cadru .a.m.d. n acest caz este suficient un canal fizic semiduplex. 3.3.3 Un protocol simplex pentru un canal cu zgomote S considerm situaia normal a unui canal de comunicaie care produce erori. Cadrele pot fi fie modificate, fie complet pierdute. Totui, presupunem c dac un cadru a fost modificat n tranzit, echipamentul receptor va detecta acest lucru atunci cnd calculeaz suma de control. Dac un cadru este modificat ntr-un asemenea mod, nct suma de control este totui corect, situaie care este foarte puin probabil, acest protocol (i toate celelate protocoale) pot eua (adic, trimit un pachet incorect ctre nivelul reea). La prima vedere s-ar prea c o variant a protocolului 2 va funciona: adugarea unui contor de timp (ceas). Emitorul poate trimite un cadru, dar receptorul va trimite un cadru de confirmare numai dac informaia a fost recepionat corect. Dac la receptor ajunge un cadru modificat, el va fi eliminat. Dup un timp, emitorul va iei din ateptare i va retrimite cadrul. Acest proces va fi repetat pn cnd cadrul va ajunge n final intact. Schema de mai sus conine o eroare fatal. Gndii-v la problem i ncercai s descoperii ceea ce este greit nainte s citii mai departe. Pentru a vedea ceea ce poate merge ru, amintii-v care este sarcina proceselor nivelului legtur de date - aceea de a asigura comunicaie fr erori, transparent ntre procesele nivelului reea. Nivelul reea de pe mainal d o serie de pachete nivelului su legtur de date, care trebuie s asigure o serie identic de pachete nivelului reea de pe maina B prin nivelul su legtur de date. n particular, nivelul reea de pe B nu are nici o posibilitate s tie c un pachet a fost pierdut sau duplicat, aa c nivelul legtur de date trebuie s garanteze c nici o combinaie de erori de transmisie, indiferent ct de puin probabile, nu poate produce un pachet duplicat care s fie transmis nivelului reea. S considerm urmtorul scenariu: Nivelul reea de pe A trimite pachetul 1 ctre nivelul su legtur de date. Pachetul este corect recepionat de B i este trimis nivelului reea de pe B. B trimite un cadru de confirmare napoi lui A 2. Cadrul de confirmare s-a pierdut complet. El nu va mai ajunge deloc. Viaa ar fi cu mult mai simpl n cazul n care canalul ar altera sau pierde doar cadre de date, nu i cadre de control, dar, din nefericire, canalul nu face discriminri. 3. Nivelul de legtur de date de pe A ateapt expirarea timpului limit. Nerecepionnd o confirmare, el presupune (incorect) c acel cadru de date a fost modificat sau pierdut i trimite nc o dat cadrul coninnd pachetul 1. 4. Cadrul duplicat ajunge i el cu bine la nivelul legtur de date B i este trimis nivelului reea de acolo. Dac A trimite un fiier lui B, o poriune de fiier va fi duplicat (adic, copia fiierului fcut de B va fi incorect i eroarea nu va fi detectat). Cu alte cuvinte, protocolul va eua. 1. n mod clar, este necesar o soluie ca receptorul s poat distinge un cadru pe care l vede pentru prima dat de o retransmisie. Soluia evident este aceea ca emitorul s pun un numr de secven n antetul fiecrui cadru pe care l trimite. Apoi receptorul poate verifica

SEC. 3.3

PROTOCOALE ELEMENTARE PENTRU LEGTURA DE DATE

185

numrul de secven al fiecrui cadru sosit pentru a vedea dac este un cadru nou sau un duplicat ce trebuie eliminat. . ' . /* Protocolul 3 (par) permite un flux de date unidirecional, printr-un canal nesigur. */ #define M A X _ S E Q 1 /* trebuie s fie 1 pentru protocolul 3 */ typedef enum {frame_arrival, cksum_err, timeout} event_type; finclude protocol.h" void sender3(void)

eqjrr next_frame_to_send; frame s; packet buffer; event_type event;

/* numrul de secven al urmtorului cadru trimis */ /* variabil temporar */ /* tampon pentru pachetul transmis */ */ */ */ */ */ */ */ */

/* iniializeaz numerele, de secven de ieire next_frame_to_send = 0; fromjietworkjayer(&buffer); /* preia primul pachet while (true) { /* construiete un cadru pentru transmitere s.info = buffer; s.seq = next_frame_to_send; /* insereaz n cadru un numr de secven */ /* l trimite pe traseu to_physi cal_l ayer(&s); start_timer(s.seq); /* dac rspunsul ntrzie prea mult, timpul va expira /* frame_arrival, cksum_err, timeout wait_for_event(&event); if (event == frame_arrival) { /* preia urmtorul pachet de transmis from_network_layer(&buffer); inc(next frame to send); /* inverseaz next_frame_to_send

void receiver3(void) {seq_nr frame_expected; frame r, s; event_type event; frame_expected = 0; while (true) { wai t_for_event(&event); if (event == frame_arrival) { from_physical_layer((r); if (r.seq == frame_expected) { to_network_layer((r.info); i ne(frame_expected);

/* variante: frame_arrival, cksum_err /* a sosit un cadru corect /* preia cadrul nou sosit /* este cel pe care l ateptam /* transfer datele nivelului reea /* incrementeaz numr de secven

*/ */ */ V */ */

} to_physi cal_layer(&s);

/* nici unul dintre cmpuri nu este utilizat */

Fig. 3-11. Un protocol cu confirmare pozitiv i retransmitere.

NIVELUL LEGTUR DE DATE

CAP. 3;

Deoarece este de dorit ca un antet de cadru s nV de dimensiune* mic, se piine ntrebarea urmtoare: care este numrul minim de bii necesari pentru numrul de secven? Singura ambiguitate n acest protocol este ntre un cadru m i succesorul su m+1. n cazul n care cadrul m este pierdut sau modificat, receptorul nu l va confirma, aa nct emitorul va ncerca s-1 retransmit. Odat ce a;fost corect recepionat, receptorul va trimite o confirmare napoi la emitor. Aici este punctul n care putem s avem necazuri. Dup cum cadrul de confirmare ajunge sau nu corect napoi la emitor, emitorul va ncerca s transmit m sau m+1. Evenimentul care determin emitorul s nceap transmiterea lui m+2 este sosirea unei confirmri pentru m+1. Dar aceasta presupune c m a fost recepionat corect i, mai mult, confirmarea a fost de asemenea corect recepionat de emitor (altfel emitorul nu ar fi trimis m+1, ca s nu mai vorbim de m+2 ). n consecin, singura ambiguitate este ntre un cadru i predecesorul sau succesorul su imediat, nu ntre ultimii doi. Este deci suficient un numr de secven de 1 bit (0 sau 1). La fiecare moment de timp, receptorul ateapt un anumit numr de secven. Orice cadru sosit, care conine un numr de secven greit este rejectat ca duplicat. Atunci cnd sosete un cadru cu numr de secven corect, acesta este acceptat, transmis nivelului reea i numrul de secven ateptat este incrementat modulo 2 (adic, 0 devine 1 i 1 devine 0). Un exemplu de astfel de protocol este prezentat n Fig. 3-11. Protocoalele n care emitorul ateapt pentru o confirmare pozitiv naintea de a trece la urmtorul element de date se numesc

deseori PAR (Positive Acknowledgement with Retransmision - confirmare pozitiv cu

retransmitere) sau ARQ (Automatic Repeat reQuest - cerere automat de repetare). Asemenea protocolului 2, i acesta transmite datele ntr-o singur direcie. Chiar dac poate gestiona cadre pierdute (prin expirarea timpului), necesit o perioad de timeout care s fie suficient de lung pentru a preveni expirri premature. Dac timpul emitorului expir prea repede, n timp ce confirmarea este nc pe drum, acesta va trimite un duplicat. Atunci cnd, n cele din urm, ajunge i confirmarea, emitorul va considera, n mod greit, c cel confirmat este cadrul pe care tocmai 1-a trimis i nu i va da seama c este probabil ca un alt cadru de confirmare s se afle undeva pe drum. Dac urmtorul cadru transmis este complet pierdut, dar confirmarea suplimentar ajunge corect, emitorul nu va ncerca s retransmit cadrul pierdut i protocolul va eua. n protocoalele urmtoare, cadrele de confirmare vor conine informaii care s previn tocmai acest gen de probleme. Pentru moment, cadrele de confirmare vor fi doar fictive i vom presupune o alternan strict a emitorului i receptorului. Protocolul 3 se deosebete de predecesorii si prin aceea c i emitorul i receptorul au o variabil a crei valoare este pstrat ct timp nivelul legtur de date este n starea de ateptare. Emitorul pstreaz numrul de secven al urmtorului cadru de transmis n nextjramejojend; receptorul pstreaz numrul de secven al urmtorului cadru ateptat \nframe_expected. Fiecare protocol are o scurt faz d8 Iniializare nainte de a intra n bucla infinit. Dup transmiterea unui cadru, emitorul declaneaz contorul de timp. Dac acesta era deja pornit, atunci va fi resetat pentru un nou interval complet. Intervalul de timp trebuie s fie ales astfel, nct s permit sosirea cadrului la receptor, prelucrarea sa de ctre receptor, chiar i n cazul cel mai defavorabil, i propagarea cadrului de confirmare napoi la emitor. Numai atunci cnd a expirat acest interval de timp putem s spunem cu siguran c s-a pierdut fie cadrul transmis, fie confirmarea sa i se poate trimite un duplicat.

SEC. 3.4

PROTOCOALE CU FEREASTR GLISANT

187

Dup transmiterea unui cadru i pornirea contorului de timp, emitorul ateapt s se ntmple ceva interesant. Exist trei posibiliti: un cadru de confirmare ajunge .nemodificat, sosete un cadru de confirmare modificat sau expir timpul. Dac sosete o confirmare valid, atunci emitorul preia urmtorul pachet de la nivelul reea i l pune n tampon, scriind peste pachetul anterior. De asemenea avanseaz numrul de secven. Dac sosete un cadru modificat sau nu sosete nici un cadru, nu se modific nici tamponul i nici numrul de secven, aa c va fi transmis un duplicat. Atunci cnd la receptor sosete un cadru corect, este verificat numrul de secven, pentru a vedea dac nu cumva este un duplicat. Dac nu, este acceptat, transmis nivelului reea i este generat o confirmare. Cadrele duplicate i cele modificate nu sunt trimise ctre nivelul reea.

3.4

PROTOCOALE CU FEREASTR GLISANT

n protocoalele anterioare, cadrele cu date erau transmise ntr-o singur direcie. n cele mai multe situaii practice, este necesar s se transmit date n ambele direcii. O modalitate de a realiza transmisia de date fuU-duplex este de a avea dou canale de comunicaie separate fiecare dintre ele fiind utilizat pentru traficul de date simplex (n direcii diferite). Dac se face aceasta, vom avea dou circuite fizice separate, fiecare cu un canal "direct" (forward) pentru date i un canal "invers" (reverse) pentru confirmri. n ambele cazuri lrgimea de band a canalului invers este irosit aproape n totalitate. Ca efect, utilizatorul pltete pentru dou circuite care utilizeaz doar capacitatea unuia. O idee mai bun este s se utilizeze acelai circuit pentru date n ambele direcii. n protocoalele 2 i 3 a fost deja utilizat transmiterea cadrelor n ambele sensuri i canalul invers are aceeai capacitate ca i canalul direct. n acest model cadrele cu date de hA la B sunt mixate cu cadrele de confirmare de la A la B. Uitndu-se la cmpul Jdnd din antetul cadrului ce a sosit, receptorul poate spune dac este vorba de un cadru de date sau de confirmare. Cu toate c ntreptrunderea cadrelor de date i control pe acelai circuit constituie o mbuntire fa de cazul utilizrii a dou circuite fizice separate, este posibil nc o mbuntire. Atunci cnd sosete un cadru cu date, n locul emiterii imediate a unui cadru de control separat, receptorul st i ateapt pn cnd nivelul reea i d urmtorul pachet. Confirmarea este ataat cadrului cu date de ieire (utiliznd cmpul ack din antetul cadrului). De fapt, confirmarea este transportat pe gratis de ctre urmtorul cadru cu date de ieire. Tehnica ntrzierii confirmrii, astfel nct s poat fi agat de urmtorul cadru de date, este cunoscut ca ataare (piggybacking). Principalul avantaj al utilizrii tehnicii de ataare n comparaie cu utilizarea cadrelor de confirmare distincte este o mai bun utilizare a lrgimii de band disponibile. Cmpul ack din antetul cadrului ocup doar civa bii, n timp ce un cadru separat va necesita un antet, confirmarea i o sum de control. n plus, mai puine cadre transmise nseamn mai puine ntreruperi datorate "sosirii cadrelor" i probabil mai puine zone tampon n receptor, n funcie de modul n care sunt organizate programele receptorului. n urmtorul protocol ce va fi examinat, cmpul de ataare ocup doar un bit n antetul cadrului. Arareori ocup mai mult de civa bii. Totui, tehnica de ataare introduce o complicaie care nu era prezent n cazul confirmrilor separate. Ct timp trebuie s atepte nivelul legtur pachetul pe care s ataeze confirmarea? Dac nivelul legtur de date ateapt mai mult timp dect perioada de timeout a emitorului, cadrul va fi retransmis, anulnd complet rolul confirmrilor. Dac nivelul legtur de date ar fi.un oracol i ar putea prezice viitorul, ar putea ti cnd va sosi urmtorul

188

NIVELUL LEGTURA DE DATE

CAP.1

pachet de la nivelul reea i ar putea decide dac s l atepte sau s trimit imediat o *-* confirmare separat, n funcie de ct de lung urmeaz s fie ateptarea. Desigur, nivelul legtur de date nu poate prezice viitorul, aa c trebuie s recurgem la cteva scheme ad-hoc, cum ar fi ateptarea, pentru un numr fixat de milisecunde. Dac un nou pachet sosete mai repede, confirmarea este adugat n el, altfel, dac pn la sfritul acestei perioade de timp nu a sosit un nou pachet, nivelul legtur de date trimite un cadru de confirmare separat. n afara faptului c este numai simplex, protocolul 3 poate eua n anumite condiii speciale, ce implic -o expirare prematur a timpului. Ar fi bine s avem un protocol care rmne sincronizat n faa oricrei combinaii de cadre deformate, cadre pierdute i expirri premature ale timpului. Urmtoarele trei protocoale sunt mai robuste i continu s funcioneze chiar n condiii patologice. Toate trei aparin unei clase de protocoale numite protocoale cu fereastr glisant (sliding window). Cele trei difer ntre ele n termeni de eficien, complexitate i necesar de tampoane, aa cum vom vedea mai trziu. n toate protocoalele cu fereastr glisant, fiecare cadru expediat conine un numr de secven cuprins ntre 0 i o valoare maxim. Maximul este de obicei 2n -l, aa c numrul de secven se ncadreaz foarte bine ntr-un cmp de n bii. Protocoalele cu fereastr glisant stop-and-wait utilizeaz n=l, restricionnd numerele de secven la 0 i 1, dar versiuni mai sofisticate pot utiliza o valoare arbitrar a lui n. Esena protocoalelor cu fereastr glisant este aceea c, la orice moment de timp, emitorul menine o mulime de numere de secven care corespund cadrelor pe care are permisiunea s le trimit. Se spune c aceste cadre aparin ferestrei de transmisie (sending window). Similar, receptorul menine de asemenea o fereastr de recepie (receiving window), ce corespunde mulimii de cadre care pot fi acceptate. Fereastra emitorului i fereastra receptorului nu trebuie s aib aceleai limite minime i maxime i nici mcar aceeai dimensiune. n unele protocoale ele au dimensiune fix, dar n altele ele pot crete sau scdea pe msur ce cadrele sunt emise sau recepionate. Chiar dac aceste protocoale dau nivelului legtur de date mai mult independen n ceea ce privete ordinea n care poate primi sau recepiona cadre, nu am renunat la cerina ca protocolul s livreze pachetele la nivelul reea destinaie n aceeai ordine n care acestea sunt trimise ctre nivelul legtur de date de pe maina emitoare. Nu am modificat nici condiia impus canalului fizic de comunicaie, care trebuie s se comporte "ca un fir", adic trebuie s trimit toate cadrele n ordinea emiterii. Numerele de secven din cadrul ferestrei emitorului reprezint cadre transmise dar nc neconfirmate. De fiecare dat cnd de la nivelul reea sosete un nou pachet, acestuia i este atribuit urmtorul numr de secven, iar marginea superioar a ferestrei este avansat cu unu. Atunci cnd sosete o confirmare, crete cu unu limita inferioar a ferestrei. n acest mod, fereastra menine continuu o list de cadre neconfirmate. Deoarece cadrele din fereastra curent a emitorului pot fi pierdute sau modificate pe traseu, emitorul trebuie s pstreze toate aceste cadre n memoria sa pentru o posibil retransmisie. Astfel, dac dimensiunea maxim a ferestrei este n, emitorul are nevoie de n tampoane pentru a pstra cadrele neconfirmate. Dac fereastra crete la dimensiunea maxim, nivelul legtur de date al emitorului trebuie s foreze nchiderea nivelului reea pn cnd se elibereaz un tampon. Fereastra nivelului legtur de date receptor corespunde cadrelor pe care acesta le poate accepta. Orice cadru din afara ferestrei este eliminat fr comentarii. Atunci cnd este recepionat

SEC. 3.4

PROTOCOALE CU FEREASTRA GLISANT

$n cadru al crui numr de ejyen este egal cu marginea inferioar a ferestrei, acesta este trimis nivelului reea, este generat o confirmare i fereastra se deplaseaz cu o unitate. Spre deosebire de fereastra emitorului, fereastra receptorului rmne ntotdeauna la dimensiunea iniial. De notat c o fereastr de dimensiune 1 nseamn c nivelul legtur de date accept numai cadre ordonate, dar pentru ferestre mari afirmaia nu mai este valabil. In contrast, nivelul reea este alimentat ntotdeauna cu date n ordine corect, indiferent de dimensiunea ferestrei nivelului legtur de date.
Emitor 7 , 0

5V
4

\/2
3

5 V
4

V 2
3

5V
4

V 2
3

5V
4

V 2
3

feceptor

(a)

(b)

(c)

(d)

Fig. 3-12. O fereastr glisant de dimensiune 1, cu numr de secven de 3 bii. (a) Iniial, (b) Dup ce a fost transmis primul cadru. (c) Dup ce a fost recepionat primul cadru, (d) Dup ce a fost recepionat prima confirmare. Fig. 3-12 prezint un exemplu cu o fereastr de dimensiune maxim 1. Iniial, nu sunt emise cadre, aa c marginile inferioar i superioar ale ferestrei emitorului sunt egale, dar odat cu trecerea timpului, situaia evolueaz ca n figur. 3.4.1 Un protocol cu fereastr glisant de un bit nainte de a analiza cazul general, s examinm mai nti un protocol cu fereastr glisant avnd dimensiunea maxim a ferestrei 1. Un astfel de protocol utilizeaz metoda stop-and-wait, deoarece emitorul transmite un cadru i ateapt confirmarea sa naintea transmiterii urmtorului cadru. Fig. 3-13 prezint un astfel de protocol. Ca i alte protocoale, acesta ncepe prin definirea unor variabile. Nextjramejojend spune ce cadru ncearc s transmit emitorul. Similar, frame_expected spune ce cadru este ateptat de receptor. n ambele cazuri singurele posibiliti sunt 0 i 1. ' n mod normal, unul dintre cele dou niveluri legtur de date pornete primul. Cu alte cuvinte, numai unul din programele nivelului legtur de date va conine apelurile procedurilor to_physicaljayer i start Jimer n afara buclei principale. n eventualitatea c ambele niveluri legtur

190

NIVELUL LEGTUR DE DATE

CAP. 3

de date pornesc simultan, apare o situaie special, care va fi discutat mai trziu. Maina care pornete prima preia primul pachet de la nivelul reea propriu, construiete din el un cadru i fl trimite. Cnd acest cadru (sau oricare altul) sosete, nivelul legtur de date receptor verific dac nu cumva este un duplicat, exact ca n protocolul 3. Dac respectivul cadru este cel ateptat, atunci este trimis nivelului reea i fereastra receptorului este deplasat. /* Protocolul 4 (fereastr glisant) este bidirecional i mai robust dect protocolul 3 */ #define M A X _ S E Q 1 /* pentru protocolul 4 trebuie s fie 1 */ typedef enum {frame_arrival, cksum_err, timeout} event_type; #include protocol.h" void protocol4(void) seq_nr next_frame_to_send; seq_nr frame_expected; frame r, s; packet buffer; event_type event; next_frame to_send = 0; frame_expected = 0; from_network_layer(&buffer); s.info = buffer; s.seq = next_frame_to_send; s.ack = 1 - frame_expected; to_physica1 layer(&s); start_timer(s.seq); while (true) { wait_for_event(&event).; if (event == frame_arrival) { from_physical_layer(&r); if (r.seq == frame_expected) { to_network_layer(&r.info); inc(frame_expected); /* doar 0 sau 1 /* doar 0 sau 1 /* variabile temporare /* pachetul curent, care este transmis /* urmtorul cadru pe fluxul de ieire /* numrul de secven al cadrului ateptat /* preia un pachet de la nivelul reea /* pregtete trimiterea cadrului iniial /* insereaz n cadru numrul de secven /* confirmare ataat /* transmite cadrul /* pornete ceasul /* frame_arrival, cksum_err sau timeout /* un cadru a ajuns nedeformat /* preia cadrul /* trateaz fluxul de cadre sosite /* pred pachetul nivelului reea /* inverseaz numrul de secven ateptat */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */ */

} if (r.ack == next_frame_to_send) { /* trateaz fluxul de cadre de ieire */ from_network_layer(&buffer); /* preia un nou pachet de la nivelul reea */ inc(next_frame_to_send); /*inverseaz numrul de secven al emitorului */

s.info = buffer;

s.seq = next_frame_to_send; s.acfe = 1 - frame_expected; to_physical_layer(&s);

start_timer(s.seq);

/* construiete cadrul care iese /* insereaz un numr de secven numrul de secven al ultimului cadru primit /* transmite un cadru /* pornete ceasul

*/ */ */ */ */

Fig. 3-13.Un protocol cu fereastr glisant de 1 bit.

SEC. 3.4

PROTOCOALE CU FEREASTRA GLISANTA

*. .-Cmpii de confirmare conine numrul ultimului cadru recpfiqna ff^froare. Pac- acest numr.corespunde cu numrul de secven al cadrului pe care emitorul ncearc s-1 transmit, emitorul tie c a terminat cu cadrul memorat n tampon i poate prelua; urmtorul pachet de la nivelul su reea. Dac numrul de secven nu corespunde, el trebuie s continue s trimit acelai cadru. De fiecare dat cnd este recepionat un cadru, un alt cadru este trimis de asemenea napoi. S examinm acum ct de fiabil este protocolul 4 la condiiile limit. S presupunem c A ncearc s trimit cadrul 0 lui B i B ncearc s trimit cadrul su 0 lui A. S presupunem c A trimite un cadru lui B, dar timpul de expirare al lui A este puin prea scurt. n consecin, datorit expirrii repetate a timpului, A va trimite o serie de eadre identice, toate cu seq=Qiack'!rl. .. ; Atunci cnd la B sosete primul cadru corect, el va fi acceptat i frarm_expectedva. fi setat la 1. Toate cadrele Urmtoare vor fi rejectate, deoarece B ateapt cadre cu numrul de. secven 1, nu 0. Mai mult, deoarece toate duplicatele au ack=l i B este n ateptarea confirmrii lui 0, B nu va prelua un nou pachet de la nivelul su reea. . , Dup sosirea fiecrui duplicat rejeetat, B trimite lui A un cadru coninnd seq=0 i ack-=0. n cele din urm, unul dintre acestea sosete corect I a 4 facndu-1 pev4 s nceap s trimiti urmtorul pachet. Nici o combinaie de cadre pierdute sau de intervale de ceas reduse nu poate face ca protocolul s furnizeze pachete duplicate ctre vreunul dintre nivelurile reea sau s sar un pachet sau s se blocheze.
A trimite (0,1,A0)B primete (0,1, A0)* B trimite (0,0, B0) A primete {0,0, B0>* A trimite (1,0, A1)-_ A primete (1,1, BU* A trimite (0,1, A2) A primete (0,0, B2)*' Atrimite(1,0,A3)B primete (1,0, AU* B trimite (1,1, B1) B primete (0, , A2)* B trimite (0,0, B2) B primete (1,0, A3)* B trimite (1,1, B3) A primete (0,1, B0)* A trimite (0,0, A0) A primete (0,0, B0) A trimite (1,0, AU A primete (1,0, Bl)* A trimite (1,1, Al) A trimite (0,1, A0) B primete (0,1, B0> B primete (0,1,A0)* B trimite (0,0, B0)

B primete (0,0, A0) B trimite (1,0,81) B primete (1,0, AU* B trimite (1,1, B1) B primete (1,1,A1) B trimite (0,1, B2)

(a)

Timp

(b)

Fig. 3-14. Dou scenarii pentru protocolul 4. Notaia este (seq, ack, packet number). Un asterisc arat c nivelul reea accept, un pachet. Totui, dac ambele pri trimit simultan un pachet iniial, atunci apare o situaie special. Aceast dificultate de sincronizare este ilustrat de Fig. 3-14. n partea (a) este prezentat funcionarea normal a protocolului. n (b) este ilustrat situaia special. Dac B ateapt primul cadru de la A nainte de a-1 trimite pe al su, secvena de aciuni este cea artat n (a) i fiecare cadru este acceptat. Totui, dac A i B iniiaz comunicaia, simultan, primele lor cadre se ncrucieaz i nivelurile legtur de date ajung n situaia (b). n (a) fiecare sosire de cadru aduce- un nou pachet pentru nivelul reea; nu exist duplicate. n (b) jumtate din cadre conin duplicate, chiar

192

NIVELUL LEGTUR DE DATE

CAP. 3

dac nu exist erori de transmisie. Situaii similare pot s apar ca rezultat al expirrii premature a timpului, chiar dac una dintre pri ncepe prima. De fapt, dac intervin mai multe expirri premature, atunci cadrele pot fi trimise de trei sau mai multe ori. 3.42 Un protocol de revenire cu n pai (GoBackn) Pn acum am fcut o presupunere tacit c timpul de transmisie necesar pentru ca un cadru s ajung la receptor plus timpul de transmisie a confirmrii este neglijabil. Uneori aceast presupunere este dar fals. n aceste situaii timpul mare de transfer poate avea implicaii importante pentru eficiena utilizrii lrgimii de band. Ca exemplu, s considerm un canal de satelit de 50 kbps cu timpul de ntrziere datorit propagrii de 500 milisecunde. S ne imaginm c ncercm s utilizm protocolul 4 pentru a trimite cadre de 1000 de bii prin satelit. La t = 0 emitorul ncepe s emit primul cadru. Considernd cele mai optimiste condiii (fat ateptare la receptor i un cadru de confirmare scurt), cadrul nu poate ajunge n totalitate la receptor nainte de t = 270 milisecunde, iar confirmarea nu poate ajunge napoi la emitor nainte de t = 520 milisecunde. Aceasta nseamn c emitorul a fost blocat pentru 500/520 sau 96% din timp (adic a fost utilizat doar 4% din lrgimea de band). Evident, combinaia dintre un timp de tranziie lung, lrgime de band mare i un cadru de lungime mic este dezastruoas din punct de vedere al eficienei. Problema descris anterior poate fi privit ca o consecin a regulii care cere ca un emitor s atepte o confirmare naintea trimiterii unui alt cadru. Dac relaxm aceast restricie, poate fi atins o eficien mult mai ridicat. Practic, soluia const n a permite emitorului s transmit pn la w cadre, n loc de unul singur. Cu o alegere potrivit a lui w emitorul va putea s transmit continuu cadre pentru un timp egal cu timpul de tranzit, fr a umple fereastra. n exemplul anterior w va fi minim 26. Emitorul ncepe emiterea cadrului 0 ca mai nainte. n momentul n care se termin trimiterea a 26 de cadre, la / = 520, va sosi i confirmarea pentru cadrul'0. Apoi, confirmrile vor sosi la fiecare 20 milisecunde, aa nct emitorul primete ntotdeauna permisiunea s continue exact atunci cnd dorete. n permanen exist 25 sau 26 cadre neconfirmate. Cu alte cuvinte dimensiunea maxim a ferestrei emitorului este de 26. Aceast tehnic este cunoscut ca band de asamblare (pipelining). Considernd capacitatea canalului de b bii pe secund, dimensiunea cadrului de / bii i timpul de propagare dus-ntors R secunde, timpul necesar pentru a transmite un singur cadru este l/b secunde. Dup ce a fost transmis ultimul bit al unui cadru de date, apare o ntrziere de R/2 nainte ca biii s ajung la receptor i o alt ntrziere de cel puin R/2 pentru sosirea confirmrii, rezultnd o ntrziere total de R. n cazul protocoalelor stop-and-wat linia este ocupat pentru l/b i n ateptare pentru R, rezultnd o utilizare a liniei de l/*(l+bR). Dac 1 < bR, eficiena va fi mai mic de 50%. Deoarece pn la ntoarcerea confirmrii exist ntotdeauna o ntrziere nenul, n principiu poate fi folosit banda de asamblare, pentru a ine linia ocupat tot acest interval, dar dac intervalul este mic, complexitatea suplimentar face efortul inutil. Utilizarea benzii de asamblare n cazul unui canal de comunicaie nesigur ridic probleme serioase. Mai nti s vedem ce se ntmpl dac un cadru din mijlocul unui ir lung este modificat sau pierdut. Numeroase cadre succesive vor ajunge la receptor nainte ca emitorul s observe c ceva este greit. Atunci cnd un cadru modificat ajunge la receptor este evident c el trebuie

SEC. 3.4

PROTOCOALE.CU FEREASTR GLISANT

193

eliminat, dar ce trebuie s fac receptorul cu toate cadrele corecte care urmeaz? S reamintim c nivelul legtur de date receptor este obligat s livreze pachete ctre nivelul reea n secven.
--Interval de expirare a timpuluf*-

2
Eroare

Cadre eliminate de nivelul legtur de date Timp-

(a)
Interval de expirare a timpului--

\\

\\

AX

\X

AX

\X

Eroare

Pstrate n zone tampon de nivelul de legtur

Pachetele 2-8 predate nivelului reea

Fig. 3-15. (a) Efectul unei erori cnd dimensiunea ferestrei receptoare este 1. (b) Efectul unei erori cnd dimensiunea ferestrei receptorului este mare. Exist dou moduri de baz de tratare a erorilor n prezena benzii de asamblare. Un mod, numit revenire cu n pai (go back n), este ca receptorul s elimine pur i simplu cadrele care urmeaz, netrimind confirmri pentru cadrele eliminate. Aceast strategie corespunde unei ferestre de recepie de dimensiune 1. Cu alte cuvinte, nivelul legtur de date refuz s accepte orice cadru exceptndu-1 pe urmtorul care trebuie livrat ctre nivelul reea. Dac fereastra emitorului se umple naintea expirrii contorului de timp, banda de asamblare va ncepe s se goleasc. n cele din urm, timpul emitorului va expira i se vor retransmite toate cadrele neconfirmate, n ordine, ncepnd cu cadrul pierdut sau modificat. Dac rata erorilor este mare, aceast abordate, prezentat n Fig. 3-15 (a), poate risipi o mare parte din lrgimea de band. Cealalt strategie general de tratare a erorilor atunci cnd este folosit banda de asamblare, numit repetare selectiv (selective repeat), este ca nivelul legtur de date receptor s memoreze toate cadrele corecte care urmeaz dup cel incorect. Atunci cnd emitorul observ n cele din urm c ceva este greit, el retransmite doar cadrul incorect, nu toate cadrele succesoare, ca n Fig. 3-15(b). Dac a doua ncercare reuete, nivelul legtur de date receptor va avea mai multe cadre

194

NIVELUL LEGTUR DE DATE

CAP. 3

corecte n secven, aa nct toate acestea pot fi trimise rapid nivelului reea i poate fi confirmat numrul maxim. Aceast strategie corespunde unei ferestre a receptorului mai mare ca 1. Orice cadru din interiorul ferestrei poate fi acceptat i memorat pn cnd toate cele precedente vor fi trimise nivelului reea. Dac fereastra este mare, aceast abordare poate necesita un spaiu mare de memorie pentru nivelul legtur de date. /* Protocolul 5 (linie de asamblare) permite mai multe cadre n ateptare. Emitorul poate trimite pn la M A X _ S E Q cadre fr a atepta confirmare. n plus, spre deosebire de protocoalele precedente, acesta nu presupune c nivelul reea ar avea tot timpul un nou pachet.

n schimb, nivelul reea provoac un eveniment networkjayerjready atunci cnd are de trimis un pachet */

#define MAXJEQ 7 /* trebuie s fie 2 A n - 1 */ typedef enum {frame_arrival, cksum_err, timeout, networkjayerjready} event_type; #include "protocol.h" static boolean between(seq_nr a, seq_nr b, seq nr c) { /* ntoarce adevrat dac a <= b < c n mod circular i fals n caz contrar */ if (((a <= b) && (b < c)) || ((c < a) && (a <= b)) ||'((b < c) && (c < a))) return(true); el se return(false); } static void send_data(seq_nr framejir, seq nr frame_expected, packet buffer[])
/* construiete i trimite un cadru de date */ frame s; /* variabil temporar */ */ */ */ */ */

s.info = buffer[framejirj; /* insereaz pachetul n cadru s.seq = framejir; /* insereaz numrul de secven n cadru s.ack = (frame_expected + MAXJEQ) % ( M A X _ S E Q + 1); /* ataeaz confirmarea to_physical_layer(&s); /* transmite cadrul start_timer(frame_nr); /* pornete ceasul

void protocol5(void) {
seqjir next_frame_to_send; seq_nr ack_expected; seq_nr frame expected; frame r; packet buffer[MAX_SEQ]; seq_nr nbuffered; seq_nr I; event_type event; enable_network_layer(); ack_expected = 0; next frame to send = 0;

/* MAX_SEQ > 1; utilizat pentru fluxul de ieire /* cel mai vechi cadru nc neconfirmat /* urmtorul cadru ateptat, din fluxul de intrare /* variabil auxiliar /* zone tampon pentru fluxul de ieire /* numr de zone tampon de ieire utilizate n prezent /* utilizat ca index n vectorul de zone tampon

*/ */ */ */ */ */ */

/* permite evenimente networkjayer_ready */ /* urmtoarea confirmare ateptat */ /* urmtorul cadru transmis */

SEC. 3.4

PROTOCOALE CU FEREASTRA'GLISANT
:

195

. - frame_expected = 0; nbuffered = 0; while(true) { . wait_for_event(&event);

. =/* numrul cadnrlui ateptat si soseasc */ /* iniial n zonele tampon nu exist nici un pachet */' . /* patru posibiliti: vezi eventjype, mai sus */ */ */ */ */ */

switch(event) { case network_layer_read.y: /* nivelul reea are un pachet de trimis /* accept, salveaz i transmite un nou cadru */ from_networkjayer(&buffer[next_frame_to_send]); /* preia noul pachet nbuffered = nbuffered + 1; /* extinde fereastra emitorului send_data(next_frame_to_send, frame_expected, buffer); /* transmite cadrul inc(next_frame_to_send); /* crete limita superioar a ferestrei emitorului

case frame_arrival: /* a sosit un cadru de date sau de control */ from_physical_layer(&r); /* preia de la nivelul fizic cadrul sosit */ if (r.seq == frame_expected) { /* cadrele sunt acceptate doar n ordine */ to_network_Tayer(&r.info); /* pred pachetul nivelului reea*/ inc(frame_expected);/* crete limita inferioar a ferestrei emitorului*/ } /* Confirmarea lui n implic n-1, n-2 etc. Verific acest lucru. */ while (between(ack_expected, r.ack, next_frame_to_send)) { /* trateaz confirmarea ataat */ nbuffered = nbuffered .- 1; /* un cadru mai puin n zonele tampon */ stop_timer(ack_expected); /* cadrul a sosit intact; oprete ceasul */ inc(ack_expected); /* contract fereastra emitorului */ } case cksum_err: ; /* cadrele eronate sunt pur i simplu ignorate */ case timeout: /* necaz; retransmite toate cadrele neconfirmate */ next_frame_to_send = ack_expected; /* ncepe retransmiterea de aici */ for (i =1; i <= nbuffered; i++) { send_data(next_frame_to_send, frame_expected, buffer);/* retransmite 1 cadru */ inc(next_frame_to_send); /* pregtete transmiterea urmtorului */

if (nbuffered < MAXJEQ) enable_network_layer(); el se disable_network_layer(); Fig. 3-16. Un protocol cu fereastr glisant utiliznd revenirea cu n pai. Aceste dou alternative reprezint compromisuri ntre lrgimea de band i spaiul ocupat de tampoane la nivelul legtur de date. n funcie de resursa cea mai important, poate fi utilizat una sau cealalt. Fig. 3-16 prezint un protocol de tip band de asamblare n care nivelul legtur de date receptor accept cadre ordonate; cadrele ce urmeaz dup o eroare sunt eliminate. n acest protocol, pentru prima dat, am renunat la presupunerea c nivelul reea are o rezerv infinit de pachete care trebuie trimise. Atunci cnd nivelul reea are un pachet pe care dorete s-1 trimit,

196

NIVELUL LEGTURA DE DATE

CAP. 3

poate produce un eveniment networkjayerjeady. Totui, pentru a ntri regula de control al fluxului, conform creia nu pot exista dect cel mult MAX_SECV cadre neconfirmate, nivelul legtur de date trebuie s poat s interzic nivelului reea s l perturbe cu mai multe. Aceast funcie este realizat de funciile de bibliotec enablejietworkjayer i disablejietworkjayer. Observai c n orice moment pot exista cel mult MAX_SECV cadre i nu MAX_SECV+1 cadre neconfirmate, chiar dac existMAX_SECV+\ numere de secven: 0,1,2, ..MAX_SECV. Pentru a vedea de ce este necesar aceast restricie, s considerm urmtorul scenariu cu MAX_SECV = 7. 1. Emitorul trimite cadrele de la 0 la 7. 2. Confirmare ataat pentru cadrul 7 ajunge la emitor. 3. Emitorul trimite alte opt cadre, din nou cu numerele de secven de la 0 la 7. 4. Acum ajunge o alt confirmare ataat pentru cadrul 7. ntrebarea este: toate cele opt cadre aparinnd celui de al doilea lot au ajuns corect ori s-au pierdut n totalitate? n ambele cazuri receptorul va trimite cadrul 7 ca o confirmare. Emitorul nu are posibilitatea s decid. Din acest motiv, numrul maxim de cadre neconfirmate trebuie limitat la

MAXJECV.

Chiar dac protocolul 5 nu pstreaz cadrele sosite dup o eroare, problema memorrii nu dispare. Deoarece un emitor poate avea de retransmis la un moment de timp viitor toate cadrele neconfirmate, el trebuie s pstreze toate cadrele transmise pn cnd va fi sigur c au fost acceptate de receptor. Cnd sosete o confirmare pentru cadrul n, cadrele n-1, n-2 .a.m.d. sunt confirmate automat. Aceast proprietate este foarte important atunci cnd unele dintre cadrele purttoare de confirmri au fost pierdute sau modificate. De fiecare dat, cnd sosete o confirmare, nivelul legtur de date verific s vad dac unele tampoane pot fi eliberate. Dac tampoanele pot fi eliberate (adic exist spaiu disponibil n fereastr), atunci nivelul reea anterior blocat poate primi permisiunea s produc alte evenimente networkjayerjeady.
Timp /real
10:00:00.0 '
10:00:00.5

- *

Referin la urmtoarea expirare a timpului Cadru care este cronometrat Semnale de ceas rmase pn la expirarea timpului [a) (b)

Fig. 3-17. Simularea prin program a contoarelor de timp multiple Deoarece acest protocol are mai multe cadre neconfirmate, este evident c necesit mai multe contoare de timp, cte unul pentru fiecare cadru neconfirmat. Timpul fiecrui cadru expir independent de toate celelalte. Toate aceste contoare pot fi simulate uor prin program, utiliznd un

SEC. 3.4

PROTOCOALECUFEREASTR GOS&NT

1917

singur ceas fizic care produce ntreruperi periodice. Contoarele de timp active formeaz o list nlnuit, n fiecare nod existnd informaii despre cte semnale de ceas mai sunt p n la expirarea timpului, cadrul care este cronometrat i un pointer ctre urmtorul nod. Ca o ilustrare a modului n care pot fi implementate contoarele de timp, s considerm exemplul din Fig. 3-17. Sa presupunem c impulsurile de ceas sunt la fiecare 100 ms. Iniial timpul real este 10:00:00.0 i exist trei timpi de expirare, la 10:00:00.5,10:00:01.3 i 10:00:01.9. La fiecare impuls de ceas produs de echipament, timpul real este actualizat i contorul de impulsuri de la captul listei este decrementat. Atunci cnd contorul de impulsuri de ceas devine zero^ se produce o expirare de timp i nodul este scos din list, ca n Fig. 3-17 (b). Chiar dac aceast organizare cere ca lista s fie parcurs cnd este apelat startJimer sau stop_ timer, nu va necesita multe operaii la fiecare impuls de ceas. n protocolul 5, ambele rutine au un parametru indicnd pentru ce cadru se face contorizarea timpului. 3.43 Un protocol cu repetare selectiv Protocolul 5 lucreaz bine dac erorile sunt rare, dar dac linia este slab, se pierde mult din lrgimea de band cu retransmiterea cadrelor. O alt strategie de tratare a erorilor este ca receptorul s accepte i s numeroteze cadrele care urmeaz dup un cadru deteriorat sau pierdut. Un astfel de protocol nu elimin cadre doar pentru c un cadru'anterior a fost deteriorat sau pierdut. n acest protocol, att emitorul ct i receptorul menin o fereastr de numere de secven acceptabile. Dimensiunea ferestrei emitorului ncepe de la 0 i crete pn la un maxim predefinit MAXJSECV. Spre deosebire de aceasta, fereastra receptorului are dimensiunea fix MAX_SECV. Receptorul are un tampon rezervat pentru fiecare numr de secven din cadrul ferestrei. Fiecare tampon are un bit asociat (arrived - sosit) care ne spune dac tamponul este plin sau gol. De fiecare dat, cnd sosete un cadru, numrul su de secven este verificat de funcia between, pentru a vedea dac face parte din fereastr. Dac da, i dac nu a fost deja recepionat, este acceptat i memorat. Aceast aciune are loc fr s se verifice dac conine sau nu urmtorul pachet ateptat de nivelul reea. Desigur cadrul trebuie pstrat la nivelul legtur de date i nu trebuie trimis ctre nivelul reea dect atunci cnd toate cadrele cu numere mai mici au fost deja livrate nivelului reea n ordinea corect. Un protocol utiliznd acest algoritm este prezentat n figura 3 -18.
/* Protocolul 6 (recepie nesecvenial) accept cadrele n afara secvenei, dar pred pachetele n ordine nivelului reea. Fiecrui cadru neconfirmat i este asociat un ceas. La expirarea timpului este retransmis doar acest cadru i nu toate cele neconfirmate, ca n protocolul 5. */ #define MAXJEQ 7 /* trebuie s f i e 2An - 1 */ fdefine NRJ8UFS ((MAXJEQ + l)/2) typedef enum {frame_arrival, cksum_err, timeout, network_layer_ready, ack_timeout) event_type; #include protocol.h" boolean nojiak = true; /* nc nu a fost trimis nici o confirmare negativ */ static boolean between(seq_nr a, seq_nr b, seq_nr c) < ..

/* La fel ca between din protocolul 5, dar mai scurt i mai obscur. */ return ((a < b) && (b < c ) ) | | ((c < a) && (a <= bj) || ((b < c) && (c < a));

198

NIVELUL LEGTUR DEDATE

CAP. 3

static void send_frame(frame_kind fk, seq_nr frame_nr, seq_nr frame_expected, packet buffer[]) { , /* construiete i trimite un cadru de date, de ack sau de nak */ frame s; /* variabil temporar */ s.kind = fk; /* kind == data, ack sau nak */ if (fk == data) s.info = buffer[frame_nr % NRJUFS]; s.seq = frame_nr; /* are sens doar pentru cadrele de date */ s.ack = (frame_expected + MAXJEQ) % (MAXJEQ + 1); if (fk == nak) nojiak = false; /* un nak per cadru, te rog */ to_physical layer(&s); /* transmite cadrul */ if (fk == data) start_timer(frame_nr % NRJUFS); stop_ack_timer(); 7* nu este nevoie de un cadru de ack separat */
} " " '

void protocol6(void) {

seq_nr = ack_expected; /* limita inferioar a ferestrei emitorului */ seq_nr = next_frame_to_send; /* limita superioar a ferestrei emitorului + 1*/ seq_nr frame_expected; /* limita inferioar a ferestrei receptorului */ seq_nr too_far; /* limita superioar a ferestrei receptorului + 1*/ seqjir oldest_frame; /* crui cadru i-a expirat timpul ? */ int i; /* indicele zonei tampon */ frame r; /* variabil temporar */ packet out_buf[NR_BUFS]; /* zone tampon pentru fluxul de ieire */ packet n_buf[NR_BUFS]; /* zone tampon pentru fluxul de intrare */ boolean arrived [NRJUFS]; /* hart de bii de intrare */ seq_nr nbuffered; /* cte zone tampon de ieire sunt folosite n prezent */ event_type event; enable_network_layer(); /* iniializeaz */ ack_expected = 0; /* urmtoarea confirmare ateptat n fluxul de intrare */ next_frame_to_send = 0 ; /* numrul urmtorului cadru transmis */ frame_expected = 0; too_far = NRJUFS; nbuffered = 0; /* iniial zonele tampon nu conin nici un pachet */ for (i = 0; i < NRJUFS; i++) arrived[i] = false; wait_for_event(); /* cinci variante: vezi event_type, mai sus */ switch(event) { case network_layer_ready: /* accept, salveaz i trimite un nou cadru */ nbuffered = nbuffered + 1; /* extinde fereastra */ from_network_layer(&out_buf[next_frame_to_send % NRJUFS]); /* preia un nou pachet */ send_frame(data, next_frame_to_send, frame_expected, outjuf); /* trimite cadrul */ inc(next_frame_to_send); /* avanseaz limita superioar a ferestrei */ case frame_arrival: /* a sosit un cadru de date sau de control */ from_physical_layer(&r); /* preia cadrul sosit de la nivelul fizic */ if (r.kind == data) { /* A sosit un cadru nedeteriorat */ if ((r.seq != frame_expected) && nojiak) send_frame(nak, 0, frame_expected, outjuf); else start_ack_timer(); if (between(frame_expected, r.seq, too_far) && (arrived[r.seq%NRJUFS]==false)) { /* Cadrele pot fi acceptate n orice ordine */ arrived[r.seq%NRJUFS] = true; /* marcheaz tamponul ca fiind plin */

SEC 3.4

PROTQOMIEC^I^REAS^IGIJSANT

W9

n_buf[r.seq%NR__BUFS] r.info; /* introduce datele n tampon */ whTle (arrived[frame_expected % NRJUFS]) { /* Pred cadrele i avanseaz fereastra */ to_network_layer(&n_buf[frame_expected % NRJUFS]); no_nak = true; arrived[frame_expected % NRJUFS] = false; inc(frame_expected); /* avanseaz limita inferioar a ferestrei receptorului */ inc(too_far); /* avanseaz limita superioar a ferestrei receptorului */ start_ack timer(); /* pentru a stabili dac e necesar ack separat */

} if ((r.kind==nak)&&between(ack_expected, (r.ack+l)%(MAX_SEQ+l),next_frame_to_send)) send_frame(data, (r.ack+l)%(MAX_SEQ+l), frame_expected, out_buf); while Tbetween(ack_expected, r.acl<, next_frame_to_send)) { nbuffered = nbuffered - 1; /* trateaz ack ataat */ stop_timer(ack_expected % NRJUFS); /* cadrul a ajuns intact */ inc(ack_expected); /* avanseaz marginea inferioar a ferestrei emitorului */ } case cksum_err: if (nojiak) send_frame(nak, 0, frame_expected, out_buf); /* cadru deteriorat */ case timeout: send_frame(data, oldest_frame, frame_expected, out_buf); /* a expirat timpul */ case ack_timeout: send_frame(ack, 0, frame_expected, out_buf); /* timpul asociat confirmrii pozitive a expirat; trimite ack */ } if (nbuffered ( NR BUFS) enable_network_layer(); else disable_network_layer();

Fig. 3-18. Un protocol cu fereastr glisant utiliznd repetarea selectiv. Recepia nesecvenial introduce anumite probleme ce nu sunt prezente n protocoalele n care cadrele sunt recepionate numai n ordine. Putem ilustra problemele foarte uor cu un exemplu. S presupunem c avem un numr de secven pe trei bii i deci emitorul poate transmite pn la apte cadre nainte s fie necesar s atepte o confirmare. Iniial ferestrele emitorului i receptorului arat ca n figura 3-19(a). Emitorul trimite acum cadrele de la 0 la 6. Fereastra receptorului i permite s accepte orice cadru cu numr de secven ntre 0 i 6 inclusiv. Toate cele apte cadre sosesc corect, deci receptorul le confirm avansndu-i fereastra pentru a permite recepia cadrelor 7, 0, 1, 2, 3, 4 sau 5, aa cum arat Fig. 3-19 (b). Toate cele 7 tampoane sunt marcate ca fiind goale. n acest punct se produce dezastrul, din cauza unui fulger care lovete linia telefonic, nlturnd toate confirmrile. Emitorul ajunge n cele din urm la timeout i retransmite cadrul 0. Atunci cnd acest cadru sosete la receptor, este fcut o verificare pentru a vedea dac se ncadreaz n fereastra receptorului. Din pcate, n Fig. 3-19(b) cadrul 0 este n interiorul noii ferestre i deci va fi acceptat. Receptorul trimite o confirmare ataat pentru cadrul 6, deoarece au fost recepionate cadrele de la 01a 6.

200

NIVELUL LEGTURA DE DATE

CAP. 3

Emitorul este fericit s afle c toate cadrele transmise au ajuns corect, deci i avanseaz fereastra i trimite apoi imediat cadrele 7, 0, i, 2, 3, 4 i 5. Cadrul 7 va fi acceptat de receptor i pachetul su va fi trimis direct nivelului reea. Imediat dup aceea, nivelul legtur de date receptor verific s vad dac are un cadru 0 corect, descoper c l are i trimite pachetul coninut n el nivelului reea. n consecin, nivelul reea primete un pachet incorect i protocolul eueaz. Esena problemei este aceea c dup ce receptorul i avanseaz fereastra, noul interval de numere de secven corecte se suprapune peste cel vechi. Urmtoarea serie de cadre trebuie s fie sau duplicate (dac toate confirmrile sunt pierdute) sau unele noi (dac toate confirmrile au fost recepionate). Receptorul nu are nici o posibilitate de a distinge cele dou cazuri.

Emitor

0 12 3 4 5 6

0 12 3 4 5 6

0 12 3 4 5 6

0 12 3 4 5 6 7

Receptor

0 12 3 4 5 6

0 12 3 4 5

0 12 3 4 5 6

0 12 3 4 5 6 7 (d)

(a)

(c)

Fig. 3-19. (a) Situaia iniial cu o fereastr de dimensiune 7. (b) Dup ce apte cadre au fost trimise i recepionate, dar neconfirmate. (c) Situaia iniial cu o fereastr de dimensiune patru, (d) Dup ce patru cadre au fost trimise i recepionate, dar neconfirmate. Pentru a iei din aceast dilem, trebuie s ne asigurm c atunci cnd receptorul i deplaseaz fereastra, nu exist nici o suprapunere peste cea anterioar. Pentru a asigura c nu exist suprapunere, dimensiunea maxim a ferestrei trebuie s fie de cel mult jumtate din intervalul numerelor de secven, aa cum se face n Fig. 3-19 (c) i Fig. 3-19 (d). De exemplu, dac pentru numerele de secven sunt utilizai 4 bii, acestea vor lua valori de la 0 la 15. n orice moment trebuie s existe numai opt cadre. Astfel, dac receptorul tocmai a acceptat cadrele de la 0 la 7 i avanseaz fereastra pentru a permite acceptarea cadrelor de la 8 la 15, poate spune cu certitudine dac urmtoarele cadre sunt retransmisii (de la 0 la 7) sau sunt unele noi (de la 8 la 15). n general, dimensiunea ferestrei pentru protocolul 6 va fi (MAX_SECV+l)/2. O ntrebare interesant este: cte tampoane trebuie s aib receptorul? n nici un caz el nu va accepta cadre ale cror numere de secven sunt sub limita minim a ferestrei, sau cadre ale cror numere de secven depesc limita maxim a acesteia. In consecin, numrul de tampoane necesare este egal cu dimensiunea ferestrei, nu cu intervalul de valori al numerelor de secven. n exemplul anterior, cu numere de secven pe 4 bii, sunt necesare 8 tampoane, numerotate de la 0 la 7. Atunci cnd sosete cadrul i, acesta este pus n tamponul i mod 8. De notat c, dei / i (i+8) mod 8 concureaz" pentru acelai tampon, nu vor fi n aceeai fereastr simultan, deoarece aceasta ar implica o dimensiune a ferestrei de cel puin 9. Pentru acelai motiv, numrul de contoare de timp necesare este egal cu numrul de tampoane, nu cu dimensiunea spaiului secvenial. Efectiv, exist un contor de timp asociat fiecrui tampon. Atunci cnd contorul expir, coninutul tamponului este retransmis.

SEC 3.4

PROTOCOALE CU FEREASTR GLISANT

201

n protocolul 5, s-a presupus n mod implicit c acel canal, este puternic ncrcat. Cnd sosete un cadru, nu se trimite imediat o confirmare. Confirmarea este ataat la urmtorul cadru de date de ieire. Dac traficul invers este slab, confirmarea va fi reinut o perioad mare de timp. Dac traficul este intens ntr-o direcie i inexistent n cealalt direcie, atunci sunt trimise numai MAX'_SECVcadre i apoiprotocolulse blocheaz. Aceast problem este rezolvata n protocolul 6. Dup sosirea unei secvene de cadre cu date, este pornit un contor de timp auxiliar, prin startjickjimer. Dac pn la expirarea acestui contor nu a aprut trafic n sens invers, atunci este trimis un cadru de confirmare separat. O ntrerupere datorat contorului auxiliar se numete eveniment ackjimeout. Cu acest artificiu, fluxul de trafic unidirecional este acum posibil, deoarece absena cadrelor de date n sens invers, pe care pot fi ataate confirmri, nu mai este un obstacol. Exist numai un contor auxiliar i dac start_ack_timer este apelat n timpul funcionrii contorului, acesta este resetat la un interval complet de timp de confirmare. Este esenial ca timpul de expirare asociat contorului auxiliar s fie mult mai scurt dect cel utilizat pentru msurarea timpului cadrelor de date de ieire. Aceast condiie este impus pentru a asigura c o confirmare pentru un cadru corect recepionat sosete nainte ca timpul emitorului s expire i acesta s retransmit cadrul. Protocolul 6 utilizeaz pentru tratarea erorilor o strategie mai eficient dect protocolul 5. De fiecare dat cnd receptorul are motiv s suspecteze c a aprut o eroare, trimite napoi la emitor un cadru cu o confirmare negativ (NAK). Un asemenea cadru reprezint o cerere pentru retransmiterea cadrului specificat n NAK. Exist dou cazuri n care receptorul va fi suspicios: a sosit un cadru modificat sau a sosit un alt cadru dect cel ateptat (un posibil cadru pierdut). Pentru a preveni producerea cererilor multiple de retransmisie a aceluiai cadru pierdut, receptorul va ine minte dac un NAK a fost deja trimis pentru un anumit cadru. Variabila nojiak din protocolul 6 are valoarea adevrat dac nici un NAK nu a fost trimis pentru framejxpecte. Dac NAK a fost modificat sau pierdut, nu se ntmpl nimic, deoarece emitorul va ajunge, pn la urm, la timeout i va retransmite cadrul lips. Dac un cadru greit sosete dup ce un NAK a fost transmis i pierdut, nojiak va fi adevrat i va fi pornit contorul de timp auxiliar. La expirarea acestuia, va fi trimis un ACK pentru resincronizarea emitorului cu starea curent a receptorului. n unele situaii, timpul necesar pentru ca un cadru s se propage la destinaie, s fie prelucrat i s se recepioneze confirmarea este (aproape) constant. n aceste condiii, emitorul i poate ajusta contorul de timp s fie puin mai mare dect intervalul de timp normal ateptat ntre emiterea unui cadru i recepionarea confirmrii sale. Totui, dac acest timp variaz puternic, emitorul trebuie s aleag ntre fixarea intervalului la o valoare mic, riscnd transmisii inutile i irosirea lrgimii de band i, respectiv, fixarea la o valoare mare, rmnnd n ateptare timp ndelungat dup producerea unei erori, deci irosind lrgime de band. Dac traficul n sens invers este sporadic, timpul dinaintea confirmrii va: fi neregulat, fiind scurt cnd exist trafic n sens invers i lung cnd nu exist. Variaia timpului de prelucrare la receptor poate fi, de asemenea, o problem. n general, atunci cnd deviaia standard a intervalului de confirmare este mic, n comparaie cu intervalul nsui, intervalul de timp poate fi strmt" i NAK-urile nu sunt utile. Altfel, contorul de timp trebuie s fie setat "larg" i NAK-urile pot accelera apreciabil retransmisia cadrelor eronate sau pierdute. Strns legat de problema expirrii timpului i NAK-urilor este problema determinrii cadrului care a cauzat expirarea timpului. n protocolul 5 acesta este ntotdeauna ackjxpected, deoarece este

202

NIVELUL LEGTUR DE DATE

CAP. 3

ntotdeauna cel mai vechi. n protocolul 6 nu este uor s se determine cel care a produs expirarea timpului. S presupunem c au fost transmise cadrele de la 0 la 4, nsemnnd c lista cadrelor neconfirmate este 0,1,2,3,4, n ordinea de la cel mai vechi la cel mai nou. Acum s ne imaginm c expir timpul pentru 0, este transmis 5 (un nou cadru), expir timpul pentru 1, expir timpul pentru 2 i este transmis 6 (un alt cadru nou). n acest punct, lista cadrelor neconfirmate este 3,4,0,5,1,2, 6, de la cel mai vechi la cel mai nou. Dac tot traficul de ntoarcere este pierdut pentru un timp, expirarea timpului pentru cele apte cadre neconfirmate se va produce n aceast ordine. Pentru a nu face ca exemplul s fie mai complicat dect este deja, nu am artat administrarea timpului. n schimb, am presupus c, la expirarea timpului, variabila oldestjrame este setat astfel, nct s indice cadrul pentru care a trecut timpul.

3.5

SPECIFICAREA I VERIFICAREA PROTOCOALELOR

Protocoalele reale i programele ce le implementeaz sunt adesea destul de complicate. Ca urmare, a fost ntreprins o imens munc de cercetare pentru a gsi tehnici formale, matematice, pentru specificarea i verificarea protocoalelor. n seciunile urmtoare vom studia cteva astfel de modele i tehnici. Chiar dac le privim n contextul nivelului legturii de date, ele sunt, de asemenea, aplicabile i altor niveluri.
3.5.1 Modele de tip automat finit

Un concept cheie folosit n multe modele de protocoale l constituie automatul finit. Cu aceast tehnic, fiecare automat al protocolului (adic transmitor sau receptor) este n fiecare moment de timp ntr-o stare specific. Strile sale constau din toate valorile variabilelor sale, incluznd contorul de instruciuni al programului. n cele mai multe cazuri, un numr mare de stri pot fi grupate mpreun, n vederea analizei. De exemplu, considernd receptorul din protocolul 3, am putea abstractiza toate strile posibile n dou stri importante: ateptarea cadrului 0 sau ateptarea cadrului 1. Toate celelalte stri pot fi considerate ca fiind tranzitorii, simpli pai pe calea spre una din strile principale. De obicei, strile sunt alese ca fiind acele momente n care automatul protocolului ateapt s se petreac urmtorul eveniment [adic s execute apelul de procedur wait(event) din exemplele noastre]. n acest punct, starea automatului este complet determinat de strile variabilelor sale. Numrul de stri este deci 2", unde n este numrul de bii necesari pentru reprezentarea tuturor combinaiilor de variabile. Starea ntregului sistem este combinaia tuturor strilor celor dou automate ale protocolului i a strii canalului. Starea canalului este determinat de coninutul su. Folosind din nou protocolul 3 ca exemplu, canalul are patru stri posibile: un cadru zero sau un cadru unu circulnd de la transmitor la receptor, un cadru de confirmare circulnd n sens invers sau nici un cadru. Dac modelm transmitorul sau receptorul prin dou stri, ntregul sistem are 16 stri distincte. Aici trebuie s spunem cteva cuvinte despre starea canalului. Conceptul de cadru circulnd prin canal" este, bineneles, o abstractizare. Adevratul neles este acela c respectivul cadru a fost parial transmis, parial primit, dar nu a fost nc prelucrat la destinaie. Un cadru rmne pe canal" pn cnd automatul execut FromPhysicalLayer i l prelucreaz. Din fiecare stare, exist zero sau mai multe tranziii posibile spre alte stri. Tranziiile au loc atunci cnd se petrece un eveniment. Pentru un automat, o tranziie trebuie s se fac atunci cnd

SEC. 35

SPECIFICAREA I VERIFICAREA PROTOCOALELOR

203

este trimis un cadru, cnd sosete un cadru, cnd expir, un interval de timp, cnd apare o ntrerupere etc. Pentru canal, evenimentele tipice sunt introducerea unui nou cadru pe canal de ctre automatul protocolului, livrarea, cadrului unui automat sau pierderea unui cadru datorat unei rafale de zgomote. Dat fiind o descriere complet a automatelor protocolului i a caracteristicilor canalului, este posibil s trasm graful orientat care prezint toate strile automatului ca noduri i toate tranziiile ca arce orientate. O singur stare este desemnat ca stare iniial. Aceast stare corespunde descrierii sistemului, atunci cnd e ncepe sa funcioneze, sau unui punct de pornire convenabil imediat urmtor. Unele stri, poate chiar toate strile, pot fi atinse din starea iniial printr-o secven de tranziii. Folosind tehnicile binecunoscute din teoria graiurilor (de exemplu, calculul nchiderii tranzitive a unui graf), este posibil s se determine care stri sunt accesibile i care nu. Aceast tehnic este numit analiza accesibilitii (Lin .a., 1987). Aceast analiz poate fi util n determinarea corectitudinii protocolului. Formal, un model de tip automat finit al unui protocol poate fi privit ca un cvadruplu (S, U, I, T) unde: S M / T este mulimea strilor n care se pot gsi procesele i canalul este mulimea cadrelor care pot fi schimbate prin canal este mulimea strilor iniiale ale proceselor este mulimea tranziiilor ntre stri

La nceputul intervalului de timp, toate procesele se gsesc n strile lor iniiale. Apoi ncep s se produc evenimente, cum ar fi disponibilizarea unor cadre pentru transmisie sau expirarea unor intervale de timp. Fiecare eveniment poate face ca unul dintre procese sau canalul s execute o aciune i s comute ntr-o nou stare. Prin enumerarea atent a fiecrui succesor posibil pentru fiecare stare, se poate construi graful de accesibilitate i se poate analiza protocolul. Analiza accesibilitii poate fi folosit pentru a detecta diferite erori n specificaia protocolului. De exemplu, dac este posibil ca un anumit cadru s apar ntr-o anumit stare i automatul finit s nu tie ce aciune trebuie ntreprins, atunci specificaia este eronat (incompletitudine). Dac exist o mulime de stri fr ieire i din care nu se poate progresa, avem o alt eroare (interblocare). O eroare mai puin serioas este cea n care specificaia protocolului spune cum s se trateze un eveniment ntr-o stare n care evenimentul nu se poate produce (tranziie neesenial). De asemenea pot fi detectate i alte erori. Ca exemplu de model de automat finit s considerm Fig. 3-20(a). Acest graf corespunde protocolului 3 descris anterior: fiecare automat de protocol are dou stri, iar canalul are patru stri. Exist un total de 16 stri, nu toate accesibile din starea iniial. Strile inaccesibile nu sunt artate n figur. Fiecare stare este etichetat cu trei caractere, XYZ, unde X este 0 sau 1, corespunztor cadrului pe care transmitorul (S) ncearc s l expedieze; Y este de asemeriea 0 sau 1, corespunztor cadrului pe care receptorul (R) l ateapt, iar Z este 0, \,A sau vid (-), corespunztor strii canalului. n acest exemplu, starea iniial a fost aleas ca fiind (000). Cu alte cuvinte, transmitorul tocmai a trimis cadrul 0, receptorul ateapt cadrul 0 i cadrul 0 este actualmente pe canal.

204

NIVELUL LEGTURA DE DATE

CAP. 3

Cine Cadru Tranziie ruleaz? acceptat 0 1 2 3 4 5 6 7 8

Cadru emis A 1 A 0 A A 0 1

Spre nivelul reea

(cadru pierdut) R 0 S A R 1 S A R 0 R 1 S (timp expirat) S (timp expirat) Da Da Nu Nu

(b)

Fig. 3-20. (a) Diagrama de stare pentru protocolul 3. (b) Tranziiile. n Fig. 3-20 sunt artate nou tipuri de tranziii. Tranziia 0 corespunde pierderii coninutului canalului. Tranziia 1 corespunde livrrii corecte a pachetului 0 la receptor, receptorul schimbndui starea pentru a atepta cadrul 1 i emind o confirmare. Tranziia 1 include i livrarea pachetului 0 de ctre receptor spre nivelul reea. Celelalte tranziii sunt listate n Fig. 3-20(b). Sosirea unui cadru cu suma de control eronat nu a fost pus n eviden, deoarece nu trebuie schimbat starea (n protocolul 3). Pe parcursul operrii normale, tranziiile 1,2,3 i 4 sunt repetate n ordine, la nesfrit. n fiecare ciclu sunt livrate dou pachete, aducnd transmitorul napoi n starea iniial, n care se ncearc transmiterea unui nou cadru cu numrul de secven 0. n cazul n care canalul pierde cadrul 0, el face o tranziie din starea (000) n starea (00-). Pn la urm, transmitorului i expir intervalul de timp (tranziia 7) i sistemul revine n starea (000). Pierderea unei confirmri este mai complicat, necesitnd dou tranziii, 7 i 5, sau 8 i 6, pentru a repara eroarea. Una din proprietile pe care protocolul cu numr de secven pe 1 bit trebuie s le aib este aceea c, indiferent de secvena de evenimente ce are loc, receptorul nu trebuie s livreze niciodat dou pachete impare fr un pachet par intermediar i invers. Din graful din Fig. 3-20 se vede c aceast cerin poate fi formulat mai riguros astfel: nu trebuie s existe ci din starea iniial care s conin dou apariii ale tranziiei 1 fr ca ntre ele s apar tranziia 3 sau invers." Din figur se poate vedea c protocolul este corect n raport cu aceast cerin. O alt cerin, similar, este aceea c nu trebuie s existe ci pe care transmitorul s-i schimbe starea de dou ori (de exemplu din 0 n 1 i napoi n 0) n timp ce starea receptorului rmne constant. Dac ar exista o astfel de cale, atunci, n secvena corespunztoare de evenimente, dou cadre ar fi iremediabil pierdute, fr ca receptorul s observe. Secvena de pachete livrat ar avea n ea o lips nedetectat, de dou pachete. O alt proprietate important a unui protocol este absena interblocrilor. O interblocare (deadlock) este situaia n care protocolul nu mai nregistreaz nici un progres la transmitere (adic livrare de pachete spre nivelul reea), indiferent de secvena de evenimente produse. n termenii

. SEC. 3.5

SPECIHCAREA I VERIFICAREA PROTOCOALELOR

205

modelului de graf, o interblocare este caracterizat de existena unei su|>mulimi de stci care este accesibil din starea iniial i care are dou proprieti: 1. Nu exist nici o tranziie ntr-o stare din afara submulimii de stri. 2. n submulimea de stri, nu exist tranziii care s determine continuarea transmiterii. Odat ajuns n situaia de interblocare, protocolul rmne aici pentru totdeauna. Din nou, este uor de vzut din graf c protocolul 3 nu are interblocare.

2+5

A )

1+2 3+4

(a)

(0 0 0 ) , (0 1 A), (0 1 0 A), (1 1 1 A), <1 1 A), (0 1 0 ) , (0 1 A), (1 1 1 ) (b)

Fig. 3-21. (a) Graful de stri pentru protocolul 3 i canal duplex integral, (b) Secven de stri ce provoac euarea protocolului. S considerm acum o variant a protocolului 3, n care canalul semi-duplex este nlocuit cu un canal duplex integral. n Fig. 3-21 sunt artate strile ca produs al strilor celor dou automate de protocol i al strilor celor dou canale. De notat c acum canalul de transmisie are trei stri: cadru 0, cadru 1 sau vid, iar canalul de rspuns are dou stri, A sau vid. Tranziiile sunt aceleai ca n Fig. 3-20(b), cu excepia aceleia cnd un cadru de date i o confirmare se gsesc simultan pe canal,

206

NIVELUL LEGTUR DE DATE

CAP. 3

existnd aici o mic ciudenie. Receptorul nu poate elimina el nsui cadrul de date, deoarece aceasta ar determina prezena pe canal a dou confirmri n acelai timp, lucru nepermis de modelul nostru (cu toate acestea este uor de conceput un model care s-1 permit). Similar, transmitorul nu poate terge o confirmare, deoarece aceasta ar determina emiterea unui al doilea cadru de date, nainte ca primul s fi fost acceptat. In consecin, ambele evenimente trebuie s aib loc mpreun, de exemplu, tranziia ntre starea (000A) i starea (11 IA), etichetat cu 1+2 n figur. n Fig. 3-21(a) exist ci care pot face protocolul s eueze. n particular, exist ci pe care transmitorul obine repetat pachete noi, chiar dac pachetele anterioare nu au fost livrate corect. Problema apare deoarece acum este posibil ca transmitorului s i expire timpul i s trimit un cadru nou fr s perturbe confirmarea de pe canalul de rspuns. Atunci cnd aceast confirmare sosete, ea va fi interpretat greit, ca referindu-se la transmisia curent i nu la cea anterioar. O secven de stri ce provoac euarea protocolului este artat n Fig. 3-21 (b). n a patra i a asea stare din aceast secven, transmitorul i schimb starea, indicnd faptul c el preia un nou pachet de la nivelul reea, n timp ce receptorul nu i schimb starea, ceea ce nseamn c nu livreaz nici un pachet nivelului reea. 3.5.2 Modele de tip reea Petri Automatul finit nu este singura tehnic de specificare formal a protocoalelor. n aceast seciune vom descrie o alt tehnic, Reelele Petri (Danthine, 1980). O reea Petri are patru elemente de baz: locuri, tranziii, arce i jetoane. Un loc reprezint o stare n care se poate gsi sistemul (sau o parte a sa). Figura 3-22 prezint o reea Petri cu dou locuri, A i B, reprezentate prin cercuri. Sistemul se afl n starea A, indicat prin jeton (punctul ngroat) n locul A. O tranziie este indicat printr-o bar orizontal sau vertical. Fiecare tranziie are zero sau mai multe arce de intrare, venind dinspre locuri de intrare, i zero sau mai multe arce de ieire, mergnd spre locuri de ieire.

Fig. 3-22. O reea Petri cu dou locuri i dou tranziii. O tranziie este activat dac exist cel puin un jeton de intrare n fiecare din locurile sale de intrare. Orice tranziie activat poate fi executat la dorin, tergnd un jeton din fiecare loc de intrare i depunnd un jeton n fiecare loc de ieire. Dac numrul de arce de intrare i de ieire difer, jetoanele nu vor fi conservate. Dac dou sau mai multe tranziii sunt activate, oricare din ele se poate executa. Alegerea tranziiei care se va executa este nedeterminist, motiv pentru care reelele Petri sunt utile n modelarea protocoalelor. Reeaua Petri din Fig. 3-22 este determinist i poate fi folosit pentru a modela orice proces n dou faze (de exemplu comportamentul unui bebelu: mnnc, doarme, mnnc, doarme .a.m.d.). Ca n cazul tuturor instrumentelor de modelare, detaliile inutile sunt eliminate.

SEC. 35

SPECIFICAREA I VERIFICAREA PROTOCOALELOR

C: Cadru 0 pe linie D: Confirmare pe linie (Ack) E: Cadru 1 pe linie Prelucreaz 0

Emite 0 Ateapt confirmarea pentru 0

Ateaptt 1

Emite 1

Prelucreaz 1

Ateapt confirmarea pentru 1

Ateapt 0

\ Pierdut Starea transmitorului Canal Starea receptorului

Fig. 3-23. Model de tip reea Petri pentru protocolul 3. Figura 3-23 d modelul de tip reea Petri pentru Fig. 3-21. Spre deosebire de modelul de tip automat finit, aici nu exist stri compuse: starea transmitorului, starea canalului i starea receptorului sunt reprezentate separat. Tranziiile 1 i 2 corespund trimiterii cadrului 0 de ctre transmitor, normal i, respectiv, la expirarea timpului. Tranziiile 3 i 4 sunt analoagele pentru cadrul 1. Tranziiile 5, 6 i 7 corespund pierderii unui cadru 0, unei confirmri i, respectiv, a unui cadru 1. Tranziiile 8 i 9 se petrec atunci cnd la receptor sosete un cadru de date cu numr de secven greit. Tranzipe 10 i 11 reprezint sosirea la receptor a urmtorului cadrului din secven i livrarea acestuia ctre nivelul reea. Reelele Petri pot fi utilizate pentru a detecta erori n protocol, ntr-un mod similar folosirii automatelor finite. De exemplu, dac o secven executabil a inclus tranziia 10 de dou ori fr a include tranziia 11 ca intermediar, protocolul ar fi incorect. Conceputul de interblocare ntr-o reea Petri este de asemenea similar corespondentului su de la automatul finit. Reelele Petri pot fi reprezentate ntr-o form algebric convenabil asemntoare gramaticilor. Fiecrei tranziii i corespunde o regul din gramatic. Fiecare regul specific locurile de intrare i

20S

NIVELUL LEGTURA DE DATE

CAP. 3

de ieire ale tranziiei, de exemplu, tranziia 1 din Fig. 3-23 este BD-^AC. Starea curent a reelei Petri este reprezentat ca o colecie neordonat de locuri, fiecare loc fiind reprezentat n colecie de un numr de ori egal cu numrul de jetoane pe care le conine. Orice regul ale crei locuri din membrul stng sunt prezente, poate fi executat, tergnd aceste locuri din starea curent i adugnd locurile sale de ieire la starea curent. Marcajul din Fig. 3-23 este AGG, i astfel, regula 10 (CG-^DF) poate fi aplicat, dar regula 3 (AD->BE) nu poate fi aplicat.

3.6

EXEMPLE DE PROTOCOALE ALE LEGTURII DE DATE

n urmtoarele seciuni vom examina cteva protocoale larg folosite pentru legtura de date. Primul dintre ele, HDLC, este obinuit n X.25 i n multe alte reele. Dup acesta, vom examina protocoalele legturii de date folosite n Internet i, respectiv, n reelele ATM. n urmtoarele capitole vom folosi de asemenea Internet i ATM ca exemple funcionale.
3.6.1 HDLC - Controlul de nivel nalt al legturii de date

n aceast seciune vom examina un grup de protocoale strns legate, puin mai vechi, dar care sunt nc foarte utilizate n reelele din ntreaga lume. Ele sunt toate derivate din protocolul pentru legtura de date utilizat n reeaua SNA a IBM, numit SDLC (Synchronous Data Link Control - protocolul de control sincron al legturii de date). Dup ce a dezvoltat SDLC, IBM 1-a supus examinrii ANSI i ISO pentru acceptare ca standard SUA i, respectiv, internaional. ANSI a modificat protocolul, astfel nct acesta a devenit ADCCP (Advanced Data Communication Control Procedure - procedur de control avansat al comunicaiilor de date), iar ISO 1-a modificat i a produs HDLC (High-level Data Link Control - control de nivel nalt al legturii de date). CCITT a adoptat i modificat HDLC pentru al su LAP (Link Access Procedure - procedur de acces la legtur) care este parte a standardului pentru interfaa de reea X.25, dar, mai trziu 1-a modificat din nou, rezultnd LAPB, n scopul de a-1 face mai compatibil cu o versiune ulterioar de HDLC. Un lucru frumos n ceea ce privete standardele este c sunt multe, dintre care poi alege. Mai mult dect att, dac nu i place nici unul dintre ele, poi atepta modelul care va aprea anul viitor. Toate aceste protocoale se bazeaz pe aceleai principii. Toate sunt orientate pe bii i folosesc inserarea de bii pentru transparena datelor. Ele difer doar n puncte minore, niciodat suprtoare. Discuia care urmeaz, despre protocoalele orientate pe bii, intenioneaz a fi o introducere general. Pentru detaliile specifice fiecrui protocol, consultai definiia corespunztoare.
Bii

8
01111110

8
Adres

8
Control

>0
Date

16
Sum de control

8
01111110

Fig. 3-24. Format de cadru pentru protocoalele orientate pe bii.

SEC. 3.6

EXEMPLE DE PROTOCOALE ALE LEGTURII DE DATE

209

Toate protocoalele orientate pe bii folosesc structura de cadru prezentat n Fig. 3-24. Cmpul Adres este primul ca importan pe liniile cu terminale multiple, unde el este folosit pentru a identifica unul dintre terminale. Pentru liniile punct-la-punct, el este folosit uneori pentru a deosebi comenzile de rspunsuri. Cmpul Control este folosit pentru numere de secven, confirmri i alte scopuri, dup cum se va arta n continuare. Cmpul Date poate conine informaii arbitrare. Poate avea lungime arbitrar, cu toate c eficiena sumei de control scade odat cu creterea lungimii cadrului, datorit creterii probabilitii de apariie a erorilor n rafal. , ^ Cmpul Suma de Control este o variant a binecunoscutului CRC (Cyclic Redundancy Code cod ciclic redundant), folosind CRC-CCITT ca polinom generator. Diferena este c permite detectarea octeilor indicator pierdui. Cadrul este delimitat cu o alt secven indicator (01111110). Pe liniile punct-la-punct inactive secvenele indicator sunt transmise continuu. Un cadru minim conine trei cmpuri i are n total 32 de bii, excluznd indicatorii de la fiecare capt.
5ii (a) 1 0 3 1 P/F 3

Secven

Urmtor

(b)

Tip

P/F

Urmtor

(0

Tip

P/F

Urmtor

Fig. 3-25. Cmpul Control (a) un cadru de informaie, (b) un cadru de supervizare, (c) un cadru nenumerotat. Exist trei tipuri de cadre: Informaie, Supervizor i Nenumerotat. Coninutul cmpului Control pentru fiecare dintre aceste trei tipuri este prezentat n Fig, 3-25. Acest protocol folosete o fereastr glisant, cu un numr de secven reprezentat pe 3 bii. n fereastr pot fi pstrate, la un moment dat, pn la apte cadre neconfirmate. Cmpul Secven din Fig. 3-25(a) este numrul de secven al cadrului. Cmpul Urmtor este o confirmare ataata. Oricum, toate protocoalele ader la convenia c, n loc s ataeze numrul ultimului cadru recepionat corect, s foloseasc numrul primului cadru nerecepionat (adic urmtorul cadru ateptat). Opiunea pentru ultimul cadru primit sau urmtorul cadru recepionat este arbitrar; nu are importan ce convenie este utilizat, dac este folosit cu consecvena. Bitul P/F nseamn Test/Final (Poli/Final). El este folosit atunci cnd un calculator (sau un concentrator) interogheaz un grup de terminale. Cnd este folosit ca P, calculatorul invit terminalul s trimit date. Toate cadrele trimise de terminal, cu excepia celui final, au bitul P/F setat pe P. Pentru cadrul final bitul este setat la F. n cteva dintre protocoale, bitul P/F este folosit pentru a fora cealalt main s trimit imediat un cadru Supervizor, n loc s atepte fluxul invers la care s se ataeze informaia despre fereastr. Bitul are de asemenea cteva utilizri minore referitoare la cadrele nenumerotate.

210

NIVELUL LEGTUR DE DATE

CAP. 3

Numeroasele tipuri de cadre Supervizor sunt difereniate prin cmpul Tip. Tipul 0 este un cadru de confmnare (numit oficial RECEIVE READY) folosit pentru a indica urmtorul cadru ateptat. Cadrul este folosit atunci cnd nu exist flux invers care s poat fi folosit pentru ataare. : Tipul 1 este un cadru de confirmare negativ (oficial numit REJECT). Este folosit pentru a indica detecia unei erori de transmisie. Cmpul Urmtor indic primul cadru din secven ce nu a fost recepionat corect (deci cadrul ce trebuie retransmis). Transmitorului i se cere s retransmit toate cadrele neconfirmate, ncepnd cu Urmtor-ul Aceast strategie este similar mai degrab protocolului 5 dect protocolului 6. Tipul 2 este RECEIVE NOT READY. El confirm toate cadrele, cu excepia lui Urmtor, exact ca RECEIVE READY, dar spune transmitorului s opreasc transmisia. RECEIVE NOT READY este destinat s semnaleze anumite probleme temporare aprute la receptor, cum ar fi lipsa zonelor tampon, i nu ca o alternativ la controlul fluxului cu fereastr glisant. Cnd problema a fost rezolvat, receptorul trimite un RECEIVE READY, REJECT sau anumite cadre de control. Tipul 3 este SELECTIVE REJECT. El cere retransmiterea, ns doar pentru cadrul specificat. Din acest punct de vedere este mai apropiat de protocolul 6 dect de protocolul 5 i de aceea este folositor atunci cnd dimensiunea ferestrei transmitoruui este jumtate sau mai puin din dimensiunea spaiului secvenei. Astfel, dac receptorul dorete s pstreze o secven de cadre pentru posibila folosire ulterioar, el poate s foreze retransmiterea oricrui cadru, folosind SELECTIVE REJECT. HDLC i ADCCP permit acest tip de cadru, dar SDLC i LAPB nu l permit (adic nu exist Selective Reject) i cadrele de tipul 3 nu sunt definite. Cea de-a treia clas o reprezint cadrul Nenumerotat. El este folosit uneori n scopuri de control, dar poate fi folosit i pentru transportul datelor atunci cnd se recurge la un serviciu nesigur, neorientat pe conexiune. Diversele tipuri de protocoale orientate pe bii difer considerabil aici, spre deosebire de celelalte dou tipuri, unde erau aproape identice. Pentru a indica tipul cadrului sunt disponibili cinci bii, dar nu sunt folosite toate cele 32 de posibiliti. Toate protocoalele furnizeaz o comand, DISC (DISConnect), care permite ca o main s anune c se va opri (de exemplu pentru ntreinere preventiv). De asemenea exist o comand ce permite ca o main, care tocmai s-a reconectat, s-i anune prezena i s foreze resetarea tuturor numerelor de secven la zero. Aceast comand poart numele de SNRM (Set Normal Response Mode - stabilete modul normal de rspuns). Din nefericire, modul normal de rspuns" numai normal nu este. Este un mod neechilibrat (adic asimetric) n care unul din capetele liniei este mater iar cellalt este sclav. SNRM dateaz din timpurile cnd comunicaia datelor presupunea un terminal neinteligent comunicnd cu un calculator, ceea ce este, evident, asimetric. Pentru a face protocolul mai potrivit cazurilor n care cei doi parteneri sunt egali, HDLC i LAPB au o comand suplimentar, SABM (Set Asynchronous Balanced Mode - stabilete modul asincron echilibrat), care reseteaz linia i declar ambii parteneri ca fiind egali. De asemenea, aceste protocoale au comenzile SABME i SNRME, care sunt identice cu SABM i, respectiv, SNRM, cu excepia faptului c ele permit folosirea unui format extins pentru cadru, care utilizeaz numere de secven pe 7 bii n locul unora pe 3 bii. A treia comand prevzut de toate protocoalele este FRMR (FRaMe Reject), folosit pentru a indica sosirea unui cadru cu suma de control corect, dar cu semantic imposibil. Exemple de semantic imposibil sunt cadru de tipul 3 Supervizor n LAPB, un cadru mai scurt de 32 de bii, un cadru de control nepermis, confirmarea unui cadru care a fost n afara ferestrei etc. Cadrele FRMR conin un cmp de date de 24 de bii care arat ceea ce a fost eronat la cadrul respectiv. Datele

EXEMPLE DE PROTOCOALE ALE LEGTURII DE DATE

211

fixted^mpul de coritrol al cadrului eronat, parametrii ferestrei i o C&tecie de bii folosii pentru a semnala erori specifice. Cadrele de control pot fi pierdute sau deteriorate ca i cadrele de date, de aceea i ele trebuie confirmate. n acest scop este furnizat un cadru special de control, numit UA (Unnumbered Acknowledgement). Deoarece poate exista un singur cadru de control neconfirmat, nu exist niciodat ambiguiti asupra cadrului care este confirmat. Cadrele de control rmase sunt folosite pentru iniializare, interogare i raportarea strii. Exist, de asemenea, un cadru de control care poate conine informaii arbitrare, UI (Unnumbered Information). Aceste date nu sunt livrate nivelului reea, ci sunt destinate a fi primite chiar de nivelul legtur de date. n ciuda utilizrii pe scar larg, HDLC este departe de a fi perfect. O discuie despre diversitatea problemelor asociate cu acest protocol poate fi gsit n (Fiorini .a., 1995). 3.6.2 Nivelul legtura de date n Internet Internet-ul const din maini individuale (calculatoare gazd i rutere) i o infrastructur de comunicaie care le conecteaz. n cadrul unei singure cldiri sunt larg utilizate LAN-urile pentru interconectare, dar infrastructura de arie larg este construit din linii nchiriate, punct-la-punct. n Cap. 4 vom studia LAN-urile; aici vom examina protocoalele legturii de date folosite pe liniile punct-la-punct n Internet. n practic, comunicaia punct-la-punct este folosit n principal n dou situaii. n primul rnd, mii de organizaii au una sau mai multe LAN-uri, fiecare cu un anumit numr de calculatoare gazd (calculatoare personale, staii de lucru ale utilizatorilor, servere .a.m,d.) i un ruter (sau o punte care este funcional similar). Adeseori, ruterele sunt interconectate printr-un trunchi IsAN. n mod tipic, toate conexiunile cu lumea exterioar se fac printr- unul sau dou rutere care au linii punct-lapunct nchiriate spre rutere aflate la distan. Inteiet-ul este construit din aceste rutere i liniile lor nchiriate care realizeaz subreelele de comunicaie. A doua situaie n care liniile punct-la-punct joac un rol major n Internet o reprezint milioanele de utilizatori individuali care au conexiuni de acas la Internet folosind modemuri i linii telefonicecomutate. De obicei PC-ul casnic al unui utilizator apeleaz un furnizor de servicii Internet, cum ar fi America Online, CompuServe i Microsoft Network, sau una din mai multe universiti i companii ce furnizez conectivitate Internet la domiciliu pentru studenii i angajaii lor. Uneori PC-ul casnic funcioneaz chiar ca un terminal orientat caracter, conectat la sistemul cu divizarea timpului al furnizorului de servicii Internet. In acest mod, utilizatorul poate introduce comenzi i poate executa programe, dar serviciile Internet n mod grafic, cum ar fi World Wide Web, nu sunt disponibile. Acest mod de lucru este cunoscut ca avnd un cont de lucru prin linia de comand (shell account). Alternativ, PC-ul casnic, poate apela un ruter al furnizorului de servicii Internet i poate aciona astfel ca orice calculator gazd Internet. Aceast metod de operare nu este diferit de aceea n care exist o linie nchiriat ntre PC i ruter, cu excepia faptului c se nchide conexiunea atunci cnd utilizatorul i termin sesiunea. In aceast abordare, toate serviciile Internet, inclusiv cele grafice* devin disponibile. n Fig. 3-26 este ilustrat un PC casnic ce apeleaz un furnizor de servicii Internet. Att pentru conexiunea pe linie nchiriat ruter-ruter ct i pentru conexiunea comutat calcalator^azd^raterreste necesar un protocol de legtur-de date punct-la-punct pentru ncadrare,

212

NIVELUL LEGTURA DE DATE

CAP. 3

controlul erorilor i pentru alte funcii ale nivelului legtur de date pe care le-am studiat n acest capitol. n Internet sunt folosite dou astfel de protocoale, SLIP i PPP. n continuare le vorn examina pe amndou. 3.63 SLIP-Serial Line IP SLIP este cel mai vechi dintre cele dou protocoale. El a fost conceput de Rick Adams n 1984 pentru a conecta staiile de lucru Sun n Internet, prin intermediul unei linii comutate folosind un modem. Protocolul, dup cum este descris n RFC 1055, este foarte simplu.
Acas la utilizator Biroul furnizorului de servicii Internet

PC

\ \

Proces client folosind TCP/IP Linie telefonic comutat

Modem Conexiune TCP/IP folosind SLIP sau PPP Proces de rutare

Fig. 3-26. Un calculator personal lucrnd ca un calculator gazda n Internet Staia de lucru trimite pachete IP curate de-a lungul liniei, cu un octet indicator special de ncadrare (OxCO) la sfrit. Dac octetul indicator apare n interiorul pachetului IP, este folosit o form de umplere cu caractere i este trimis n locul acestuia secvena de doi octei (OxDB, OxDC). Dac OxDB apare n interiorul pachetului IP, el va fi, de asemenea, codificat prin umplere. Anumite implementri de SLIP ataeaz un octet indicator att la nceputul ct i la sfritul fiecrui pachet IP trimis. Versiuni mai recente de SLIP fac o oarecare comprimare a antetelor TCP i IP. Ele se bazeaz. pe faptul c pachetele consecutive au adeseori multe cmpuri din antet comune. Acestea sunt comprimate prin omiterea acelor cmpuri care sunt identice cu cmpurile corespunztoare din pachetul IP anterior. Mai mult dect att, cmpurile care difer nu sunt trimise n ntregime, ci ca incremente fa de valoarea lor anterioar. Aceste optimizri sunt descrise n RFC 1144. Cu toate c este larg utilizat, SLIP are cteva probleme deosebit de serioase. n primul rnd el nu face nici un fel de detecie sau corecie a erorilor, astfel nct trebuie ca niveluri superioare s detecteze i s recupereze cadrele pierdute, distruse sau amestecate. n al doilea rnd, SLIP suport doar IP. Odat cu creterea Internet-ului, au aprut i reele care nu folosesc IP ca limbaj nativ (de exemplu LAN-urile Novell), ceea ce face ca aceast restricie s devin din ce n ce mai serioas. n al treilea rnd, fiecare parte trebuie s cunoasc dinainte adresa IP a celeilalte; nici o adres nu poate fi asociat dinamic, la momentul pornirii. Dat fiind limitarea curent a adreselor IP,

SEC. 3.6

EXEMPLE DE PROTOCOALE ALE LEGTURII DE DATE

213

aceast limitare este o problem major, deoarece este imposibil s se atribuie fiecrui utilizator Internet de la domiciliu o adres IP unic. n al patrulea rnd, SLIP nu furnizeaz nici o form de autentificare, astfel nct nici una din entiti nu tie cu cine urmeaz s comunice. Pentru linii nchiriate aceasta nu este o problem, dar este pentru linii comutate. n al cincilea rnd, SLIP nu este un Standard Internet aprobat, astfel c exist multe versiuni diferite (i incompatibile). Aceast situaie nu faciliteaz lucrul n echip. 3.6.4 PPP -Point-to-Point Protocol (protocol punct-la-punct) Pentru a mbunti situaia, IETF a definit un grup pentru proiectarea protocoalelor legturii de date pentru liniile punct-la-punct, care s rezolve toate aceste probleme i care s poat deveni un Standard Internet. Aceast activitate a culminat cu PPP (Point-to-Point Protocol - protocolul punct-la-punct) care este definit n RFC 1661 i dezvoltat n alte cteva RFC-uri (de exemplu RFC-urile 1662 i 1663). PPP face detecia erorilor, suport mai multe protocoale, permite ca adresele IP s fie negociate n momentul conectrii, permite autentificarea i are multe alte mbuntiri fa de SLIP. n timp ce muli furnizori de servicii Internet ofer nc suport att pentru SLIP ct i pentru PPP, viitorul aparine cu siguran PPP-ului, att pentru liniile comutate ct i pentru liniile nchiriate ruter-ruter. PPP furnizeaz trei lucruri: O metod de mprire n cadre care delimiteaz, fr ambiguitate, sfritul unuia i nceputul urmtorului. Formatul cadrului permite i detecia de erori. 2. Un protocol de legtur pentru a obine liniile, a le testa, a negocia opiunile i pentru a elibera liniile atunci cnd nu mai este nevoie de ele. Acest protocol se numete LCP(Link Control Protocol - protocolul de control al legturii). 3. Un mod de a negocia opiunile nivelului reea ntr-un mod independent de protocolul folosit pentru nivelul reea. Metoda aleas este de a avea un NCP (Network Control Protocol - protocolul de control al reelei) pentru fiecare nivel de reea suportat. Pentru a vedea cum lucreaz mpreun aceste pri, s considerm un scenariu tipic n care un utilizator sun de la domiciliu un furnizor de servicii Internet pentru a transforma PC-ul su casnic ntr-un calculator gazd Internet temporar. PC-ul apeleaz mai nti ruterul furnizorului prin intermediul unui modem. Dup ce modemul ruterului a rspuns la telefon i s-a stabilit o conexiune fizic, PC-ul trimite ruterului o serie de pachete LCP n cmpul de informaie util (payload) al unuia sau mai multor cadre PPP. Aceste pachete i rspunsurile lor selecteaz parametri PPP ce vor fi utilizai. Odat ce parametrii s-au stabilit de comun acord, mai multe pachete NCP sunt trimise pentru a configura nivelul reea. n mod obinuit, PC-ul vrea a ruleze o suit de protocoale TCP/IP i va avea nevoie de o adres IP. Deoarece nu exist adrese IP suficiente, fiecare furnizor de Internet ia un bloc din ele i asociaz dinamic cte una pentru fiecare PC nou ataat n reea, pe durata sesiunii de conectare. Dac un furnizor posed n adrese IP, el poate avea pn la n maini conectate simultan, dar numrul total de clieni poate fi de mai multe ori pe att. NCP pentru IP este folosit pentru a realiza asocierea adreselor IP. 1.

214

NIVELUL LEGTURA DE DATE

CAP. 3

n acest moment, PO-ul este un calculator gazd Internet i poate trimite i primi pachete IP, exact aa cum o pot face calculatoarele conectate prin cabluri. Cnd utilizatorul termin, NCP este folosit pentru a ntrerupe conexiunea la nivelul reea i pentru a elibera adresele IP. LCP este folosit pentru a ntrerupe conexiunea la nivelul legtur de date. n final, calculatorul spune modemului s nchid telefonul, elibernd conexiunea la nivel fizic. Formatul cadrului PPP a fost ales foarte asemntor cu formatul cadrului HDLC deoarece nu exista nici un motiv pentru a se reinventa roata. Diferena major ntre PPP i HDLC este c primul este mai degrab orientat pe caractere dect pe bii. n particular, PPP, ca i SLIP, folosete umplerea cu caractere pe liniile comutate prin modem, astfel nct toate cadrele au un numr ntreg de octei. Nu este posibil s se trimit un cadru constnd din 30.25 octei, aa cum era la HDLC. Cadrele PPP pot fi transmise nu numai pe liniile telefonice comutate, ele pot fi transmise i pe linii SONET sau linii HDLC, cu adevrat orientate pe bii (de exemplu pentru conexiuni ruter-ruter), Formatul cadrului PPP este prezentat n Fig. 3-27.
Octei 1 Indicator 01111110

1
Adres 11111111

Variabil rr Jr" Control Protocol Informaie 00000011 utila' Jj

1 sau 2

2 sau 4 Sum de control

1
Indicator 01111110

Fig. 3-27. Formatul complet de cadru PPP pentru operarea n mod nenumerotat. Toate cadrele PPP ncep cu octetul indicator HDLC standard (01111110), pentru care se folosete umplerea cu caractere, dac apare n cadrul cmpului ce specific infonnaia util. Dup acesta urmeaz cmpul Adres, care este ntotdeauna setat la valoarea binar 11111111, indicnd astfel c toate staiile trebuie s accepte cadrul. Folosirea acestei valori evit situaia n care se asociaz adrese legturii de date. Cmpul Adres este urmat de cmpul Control, a crui valoare implicit este 00000011. Aceast valoare indic un cadru nenumerotat. Cu alte cuvinte, PPP nu furnizeaz o transmisie sigur folosind numere de secven i confirmri n mod implicit. n medii cu zgomote, cum ar fi reelele fr fir, poate fi folosit transmisia sigur utiliznd numere de secven. Detaliile exacte sunt definite n RFC 1663. Deoarece cmpurile Adres i Control sunt ntotdeauna constante n configuraiile implicite, LCP furnizeaz mecanismul necesar ca cele dou pri s negocieze opional omiterea amndurora i s salveze astfel doi octei pe cadru. Cel de-al patrulea cmp PPP este cmpul Protocol. Sarcina lui este s spun ce tip de pachet este n cmpul Informaie util. Sunt definite coduri pentru LCP, NCP, IP, IPX, AppleTalk i alte protocoale. Protocoalele ce ncep cu un bit 0 sunt protocoale pentru nivelul reea, cum ar fi IP, IPX, OSI CLNP, XNS. Acelea care ncep cu un bit 1 sunt folosite pentru a negocia alte protocoale. Acestea includ LCP i un NCP diferit pentru fiecare protocol de reea suportat. Dimensiunea implicit a cmpului Protocol este de 2 octei, dar ea poate fi negociat la 1 octet folosind LCP. Cmpul Informaie util este de lungime variabil, pn'la o anumit limit maxim negociat. Dac lungimea nu este negociat folosind LCP n timpul setrii liniei, este folosit o

SEG3.6

EXEMPLE DE PROTOCOALE ALE LEGTUM DE DATE

215

lungime implicit de 1500 de octei. Dac este necesar, dup informaia util pot fi adugate caractere de umplere. Dup cmpul Informaie util urmeaz cmpul Sum de control, care este n mod normal de 2 octei, dar poate fi modificat la 4 octei. n concluzie, PPP este un mecanism de ncadrare multiprotocol potrivit pentru folosirea pe linii cu modem, linii seriale orientate pe bii HDLC, SONET i alte niveluri fizice. Suport detecia erorilor, negociere opional, compresia antetului i, opional, transmisie sigur folosind cadre HDLC. S ne ntoarcem acum de la formatul cadrului PPP la modul n care liniile sunt stabilite (brought up) i eliberate (brought down). Diagrama simplificat din Fig. 3-28 arat fazele prin care trece o linie atunci cnd este stabilit, folosit i eliberat. Secvena se aplic att pentru conexiunile prin modem ct i pentru conexiunile ruter-ruter.
Purttoare detectat Ambele pri se pun de acord asupra opiunilor .Autentificare reuit

Purttoare eliberat

Configurare NCP

Fig. 3-28. O diagrama de faze simplificata pentru stabilirea i eliberarea unei linii. Cnd o linie este DEAD, nu este prezent nici o purttoare la nivel fizic i nu exist nici o conexiune fizic. Dup ce este stabilit conexiunea fizic, linia trece n ESTABLISH. n acest punct ncepe negocierea opional LCP care, dac reuete, conduce la AUTHENTICAE. Acum cele dou pri pot s-i verifice una alteia identitatea, dac doresc. Cnd se intr n faza NETWORK, este invocat protocolul NCP corespunztor pentru a configura nivelul reea. Dac configurarea se face cu succes, este atins faza OPEN i poate avea loc transportul datelor. Gnd transportul datelor este terminat,linia este trecut n faza TERMINATE i, de aici, napoi n DEAD unde purttoarea este ntrerupt. LCP este folosit pentru a negocia ogiuml^rotoTOlului legturii de date n timpul fazei ESTABLISH. Protocolul LCP nu se ocup chiar de opiuni, ci de mecanismul de negociere. El furnizeaz procesului iniiator un mod de a face o propunere i procesului de rspuns un mod de a accepta sau refuza aceast- propunere. De asemenea, el furnizeaz celor dou procese un mecanism de a testa calitatea liniei, de a verifica dac aceasta este suficient de bun pentru a

216

NIVELUL LEGTURA DE DATE

CAP. 3.

defini o conexiune. n fine, protocolul LCP permite liniilor s fie eliberate atunci cnd nu mai este nevoie de ele. ..,..,, n RFC 1661 sunt definite unsprezece tipuri de pachete LCP. Acestea sunt listate n Fig. 3-29. Cele patru tipuri Configure- permit iniiatorului (I) s propun valori pentru opiuni i celui care rspunde (R) s le accepte sau s le refuze. n ultimul caz, cel care rspunde poate face o propunere alternativ sau poate anuna c nu este gata s negocieze n nici un fel anumite opiuni. Opiunile ce vor fi negociate i valorile propuse pentru ele sunt coninute n pachetele LCP.

r Configure-request Configure-ack \

Nume

Direcie I->R I<-R

Descriere Lista opiunilor i valorilor propuse Toate opiunile sunt acceptate Anumite opiuni nu sunt acceptate Anumite opiuni nu sunt negociabile Cerere de eliberare a liniei OK, linia este eliberat Primire cerere necunoscut Cerere protocol necunoscut Rog trimiterea acestui cadru napoi lat cadrul napoi Ignor cadrul (pentru testare)

Configure-nak Configure-reject Terminate-request Terminate-ack Code-reject Protocol-reject Echo-request Echo-replay Discard-request

I<-R I-R I<-R I<-R I<-R I->R I<-R I->R

V
i

Fig. 3-29. Tipurile de pachete LCP Codurile Terminate- sunt folosite pentru a elibera o linie atunci cnd ea nu mai este necesar. Codurile Code-reject i Protocol-reject sunt folosite de ctre cel ce rspunde pentru a spune c a primit ceva ce nu nelege. Aceast situaie poate nsemna c a avut loc o eroare de transmisie, dar, mai degrab, nseamn c iniiatorul i cel ce rspunde folosesc versiuni diferite ale protocolului LCP. Tipurile Echo- sunt folosite pentru a testa calitatea liniei. n sfrit, Discard-request este folosit pentru depanare. Dac unul din capete are probleme cu transmiterea biilor, programatorul poate folosi acest tip pentru testare. Dac el reuete s mearg de la un capt la cellalt, receptorul doar l rejecteaz, fr a ntreprinde nici o aciune care ar putea genera confuzii pentru persoana care testeaz. Opiunile care pot fi negociate includ definirea dimensiunii maxime pentru informaia util din cadrele de date, activarea autentificrii i alegerea protocolului ce va fi folosit, activarea monitorizrii calitii liniei n timpul operaiunilor normale i selectarea diferitelor opiuni pentru comprimarea antetului. Nu se pot spune multe despre protocoalele NCP n general. Fiecare este specific unui anumit protocol de nivel reea i permite s se fac cereri de configurare ce sunt specifice unui anumit protocol. De exemplu, pentru IP, asocierea dinamic a adreselor este cea mai important posibilitate.

SEC. 3.6

EXEMPLE DE PROTOCOALE ALE LEGTURII DE DATE

217

3.6.5 Nivelul legtura de date la ATM


Acum este momentul s ncepem cltoria noastr prin niveluri de protocol ATM din Fig. 3-30. Nivelul fizic ATM acoper cu aproximaie niveluri OSI fizic i legtur de date, cu subnivelul fizic dependent de mediu, identic funcional cu nivelul fizic OSI i cu subnivelul de convergen a transmisiei (TC- transmission convergence) avnd funcionalitatea legturii de date. Nu exist caracteristici ale nivelului fizic specifice pentru ATM. n schimb, celulele ATM pot fi transportate de SONET, FDDI i alte sisteme de transmisie. De aceea ne vom concentra aici asupra funcionalitii de legtur de date a subnivelului TC i vom discuta mai trziu cteva aspecte ale interfeei cu subnivelul inferior. Cnd un program de aplicaie produce un mesaj ce trebuie transmis, mesajul parcurge stiva de protocoale ATM, primind antete i terminatori i este segmentat n celule. n cele din urm celulele ating subnivelul TC pentru transmisie. S vedem ce se ntmpl cu ele n continuare.

Transmisia celulelor
Primul pas este verificarea sumei de control a antetului. Fiecare celul conine un antet de 5 octei ce const din 4 octei ce specific circuitul virtual i informaia de control urmai de suma de control pe 1 octet. Dei coninutul antetului nu este relevant pentru subnivelul TC, cititorii curioi, ce doresc s arunce o-privire asupra acestuia, o pot face n Fig. 5-62. Suma de control acoper primii patru octei din antet, nu cmpul informaie util. Ea const din restul mpririi antetului de 32 de bii la polinomul x8+x2+x+l. La aceasta se adaug constanta 01010101, pentru a asigura robustee n cazul antetelor ce conin mai muli bii 0 dect 1. Decizia de a verifica suma de control doar pentru antet a fost luat pentru a reduce probablitatea de livrare incorect a celulelor datorit unei erori din antet, dar evitnd preul unei verificri a sumei de control pentru cmpul informaie util. Nivelurile superioare vor aplica aceast funcie dac este nevoie. Pentru multe aplicaii de timp real, cum ar fi cele de voce i video, pierderea din cnd n cnd a unor bii este acceptabil (cu toate c pentru anumite scheme de compresie, toate cadrele sunt egale, dar anumite cadre sunt mai egale dect altele). Deoarece acoper numai antetul, cmpul suma de control pe 8 bii este numit HEC (controlul erorilor pentru antet - Header Error Control). Un factor ce a jucat un rol major n realizarea schemei pentru suma de control este acela c ATM a fost proiectat pentru folosirea prin medii de fibr optic ce sunt foarte sigure. Mai mult dect att, un studiu major al reelei telefonice din S.U.A. a artat c n timpul operrii normale, 99.64 % din toate erorile de pe liniile de fibr optic sunt erori de un singur bit (AT&T i Bellcore, 1989). Schema HEC corecteaz toate erorile de un singur bit i detecteaz la fel de bine multe erori multi-bit. Dac presupunem c probabilitatea de a se produce o eroare de un singur bit este de IO"8, atunci probabilitatea ca o celul s conin o eroare antet muli-bit este n jur de IO"13. Probabilitatea ca o celul s se strecoare cu un antet eronat este de aproape IO'20, ceea ce nseamn c la viteza OC-3, o celul cu antet greit va aprea o dat la 90 000 de ani. Cu toate c aceasta pare s reprezinte un timp destul de lung, pentru 1 miliard de telefoane ATM, fiecare utilizat 10 procente din timp, vor scpa nedetectate peste 1000 de celule cu antet eronat pe an. Pentru aplicaii ce necesit transmisie sigur la nivelul legtur de date, Shaeham i McKenney (1990) au dezvoltat o schem n care o secven de celule consecutive este combinat XQR.

218

NIVELUL LEGTUR DE DATE

CAP. 3

Rezultatul, o celul ntreag, este adugat la secven. Dac una din celule este pierdut saii eronat, ea poate fi reconstruit din informaia disponibil. Odat ce HEC-ul a fost generat i inserat n antetul celulei, aceasta este gata pentru a fi transmis. Mediul de transmisie se mparte n dou categorii: asincron i sincron. Cnd se folosete un mediu asincron, o celul poate fi transmis ori de cte ori ea este gata pentru a fi transmis. Nu exist restricii de timp. Cu un mediu sincron, celulele trebuie transmise dup un ablon de timp predefinit. Dac nu exist celule de date disponibile atunci cnd este nevoie, subnivelul TC trebuie s inventeze una. Aceste celule se numesc celule libere (idle cells). Un alt tip de celule ce nu conin date sunt celulele OAM (Operation And Maintenance -operare i ntreinere). Celulele OAM sunt de asemenea utilizate de ctre comutatoarele ATM pentru schimbul de informaii de control i de alte tipuri necesare pentru a menine sistemul n funciune. Celulele OAM au de asemenea i cteva funcii speciale. De exemplu viteza de 155.52 Mbps OC-3 corespunde ratei de date brute a SONET-ului, dar un cadru STM-1 are un total de 10 coloane de suprancrcare din 270, aa c ncrcarea pentru SONET este doar de 260/270x155.52 Mbps sau 149.76 Mbps. Pentru a scap SONET-ul de inundare, o surs ATM ce folosete SONET-ul ar trebui n mod normal s emit o celul OEM la fiecare 27 de celule, pentru a ncetini scderea ratei de date la 26/27 din 155.52Mbps i astfel s se coordoneze exact cu SONET-ul. Sarcina de a potrivi rata de ieire a ATM-ului cu rata sistemului de transmisie inferior este o misiune important a subnivelului TC. Pentru receptor, celulele libere sunt prelucrate n subnivelul TC, dar celulele OAM sunt transmise nivelului ATM. Celulele OAM se deosebesc de celulele de date prin faptul c au primii trei octei din antet egali cu zero, lucru nepermis pentru celulele de date. Cel de-al patrulea octet descrie natura celulei OAM. O alt sarcin important a subnivelului TC este generarea informaiei de ncadrare pentru sistemul de transmisie de la baz, dac exist. De exemplu, o camer video ATM trebuie s produc att o secven de celule pe fir, ct i cadre cu celule ATM incorporate n cmpul de informaie util de la SONET. n acest din urm caz, subnivelul TC ar trebui s genereze ncadrare SONET i s mpacheteze celulele ATM n aceste cadre, ceea ce nu este o sarcin prea uoar, deoarece cmpul de informaie util de la SONET nu cuprinde un numr ntreg de celule de 53 de octei. Dei companiile telefonice intenioneaz s foloseasc SONET-ul ca subsistem de transmisie de baz pentru ATM, au fost definite, i corespondenele de la ATM la cmpurile de informaie util ale altor sisteme, iar actualmente se lucreaz la cele noi. In particular, exist puneri n coresponden pentru TI, T3 i FDDI. Recepia celulelor Sarcina subnivelului TC la ieire este s preia o secven de celule, s adauge un HEC la fiecare, s converteasc rezultatul ntr-un ir de bii i s potriveasc irul de bii la viteza sistemului fizic de transmisie de la baz prin inserarea de celule OAM ca umplutur. La intrare, subnivelul TC procedeaz exact invers. El ia irul de bii de la intrare, localizeaz limitele celulelor, verific antetele (elimin celulele cu antet incorect), proceseaz celulele OAM i transmite celulele n sus spre nivelul ATM. Cea mai dificil parte este localizarea limitelor celulelor n irul de bii de la intrare. La nivel de bii, o celul este doar o secven de 53x8=424 bii. Nu sunt prezeni octei indicatori

SEC.3.6

EXEMPLE DE PROTOCOALE ALEiEGURH DE DATE

219

01111110 pentru a marca nceputul i sfritul unei celule, .cum exist la HDLC. De fapt, nu exist de loc marcaje. Ciimqpot s fie recunoscute n ageast, situai limitele celulelor? n anumite cazuri, nivelul fizic de la baziuinizeaz un ajutor. Cu SONET, de exemplu, celulele pot fi aliniate cu Synchronous Paybad Enyebpe (nveli sincron pentru informaia util), astfel nct pointerul SPE din antetul SONET indic nceputul primei celule complete. Cu toate acestea, uneori nivelul fizic nu furnizez nici o asisten pentru ncadrare. Ce se face atunci? Ideea este s se foloseasc HEC-ul. Pe msur ce biii sosesc, subnivelul TC menine un registru de deplasare de 40 de bii, cu biii intrnd prin stnga i ieind prin dreapta. Subnivelul TC inspecteaz cei 40 de bii s vad dac acetia pot reprezenta un antet corect de celul. Dac da, cei mai nesemnifcativi 8 biii vor fi HEC-ul valid pentru cei mai din stnga 32 de bii. Dac condiia nu este ndeplinit, tamponul nu conine o celul valid, caz n care toi biii din tampon sunt deplasai la dreapta cu un bit, producnd eliminarea unui bit i intrarea unui bit nou la captul din stnga. Procesul este repetat pn cnd este localizat un HEC valid. La acest punct, extremitatea celulei este cunoscut, deoarece registrul de deplasare conine un antet valid. Problema cu aceast euristic este c HEC-ul este format doar din 8 bii. Pentru orice registru de deplasare dat, chiar unul care conine bii aleatorii, probabilitatea de a gsi un HEC valid este 1/256, o valoare destul de mare. Utilizat de sine stttor, aceast procedur ar detecta incorect mult prea des, antetele celulelor.
Verificare Verificare celul cu celul

bitcubit

netec

g e HEC corect

consecutive

incorecte

a HEC-uri

corecte consecutive

8 HEC-uri

Fig. 3-30. Euristica delimitrii celulelor. Pentru a mbunti precizia algoritmului de recunoatere, este folosit automatul finit din Fig. 3-30. Sunt utilizate trei stri: HUNT, PRESYNCH i SYNCH. n Starea HUNT, subnivelul TC deplaseaz biii n registrele de deplasare cte unul la un moment dat, cutnd un HEC valid. Atunci cnd este gsit unul, automatul finit comut n starea PRESYNCH, aceasta nsemnnd c a localizat o extremitate de celul. Acum el va deplasa urmtorii 424 bii (53 octei) fr a-i examina. Dac presupunerea despre extremitatea de celul a fost corect, registrul de deplasare ar trebui s conin acum un alt antet valid de celul, astfel nct s ruleze din nou algoritmul HEC. Dac HEC-ul este incorect, TC merge napoi n starea HUNT i continu cutarea bit cu bit a unui antet al crui HEC este corect. Pe de alt parte, dac al doilea HEC este de asemenea corect, TC poatea gsit ceva, aa c el deplaseaz ali 424 bii i ncearc din nou. El continu s inspecteze antetele n aceast manier

220

NIVELUL LEGTUR DE DATE

CAP. 3

pn cnd gsete 8 antete la rnd, moment la care el presupune c s-a sincronizat i trece n starea SYNCH pentru a ncepe operarea normal. De notat c probabilitatea ca s se intre n starea SYNCH, printr-un accident, cu un ir de bii pur aleator este de 2~, care poate fi fcut arbitrar de mic prin alegerea unui 8 suficient de mare. Preul pltit pentru un 8 mare este totui un timp mai mare de sincronizare. n plus, pentru a se resincroniza dup pierderea sincronizrii (sau la pornire), subnivelul TC are nevoie de o euristic pentru a determina cnd s-a pierdut sincronizarea, de exemplu dup ce un bit a fost inserat sau ters din irul de bii. Ar fi lipsit de nelepciune s se renune dac doar un HEC a fost incorect, deoarece multe erori rezult din inversri de bii, nu din inserri sau din tergeri. Cel mai nelept lucru de fcut aici este s se elimine celula cu antet eronat i s se spere c urmtoarea va fi bun. Totui, dac al a-lea HEC la rnd este eronat, subnivelul TC trebuie s trag concluzia c s-a pierdut sincronizarea i trebuie s revin n starea HUNT. Cu toate c este puin probabil, exist posibilitatea ca un utilizator ru-intenionat s ncerce s nele subnivelul TC prin inserarea unei configuraii de date n cmpul informaie util al multor celule consecutive care imit algoritmul HEC. Atunci, dac sincronizarea a fost vreodat pierdut, ea va fi rectigat ntr-un loc greit. Pentru a face acest artificiu mai greu de aplicat, biii informaie util sunt mixai la transmisie i separai la recepie. nainte s prsim subnivelul TC, este bine s facem urmtorul comentariu. Mecanismul ales pentru delimitarea celulelor necesit ca subnivelul TC s neleag i s foloseasc antetul nivelului ATM superior. Existena unui nivel care utilizeaz antetul unui nivel superior este o violare a regulilor de baz ale ingineriei protocoalelor. Ideea de a avea protocoale structurate pe niveluri este aceea de a realiza independena nivelurilor. Ar fi posibil, de exemplu, s se schimbe formatul antetului nivelului ATM fr a afecta subnivelul TC. Totui, datorit modului n care este realizat delimitarea celulelor, efectuarea unei asemenea schimbri nu este posibil.

3.7 REZUMAT
Sarcina nivelului legtur de date este de a converti irurile de bii oferite de nivelul fizic n iruri de cadre pentru a fi folosite de ctre nivelul reea. Sunt utilizate diferite metode de ncadrare, incluznd numrarea caracterelor, inserarea de caractere i umplerea cu bii. Protocoalele legturii de date pot furniza controlul erorilor pentru retransmiterea cadrelor distruse sau pierdute. Pentru a mpiedica un emitor rapid s suprasolicite un receptor lent, protocolul legturii de date poate furniza i controlul fluxului. Mecanismul cu fereastr glisant este foarte folosit pentru a integra controlul erorilor si controlul fluxului ntr-un mod convenabil. Protocoalele cu fereastr glisant pot fi clasificate dup dimensiunea ferestrei emitorului i dup dimensiunea ferestrei receptorului. Cnd ambele sunt egale cu 1, protocolul este pas-cu-pas (stop-and-wait). Cnd fereastra emitorului este mai mare ca 1, de exemplu pentru a mpiedica emitorul s blocheze un circuit cu o ntrziere mare de propagare, receptorul poate fi programat fie s elimine toate celelalte cadre cu excepia urmtorului din secven (protocolul 5), fie s memoreze cadrele neordonate pn cnd ele vor fi necesare (protocolul 6). Protocoalele pot fi modelate folosind diferite tehnici ce ajut la demonstrarea corectitudinii lor (sau a lipsei acesteia). Modelele bazate pe automate finite i modelele bazate pe reele Petri sunt larg utilizate n acest scop.

PROBLEME

221

reele folosesc la nivelul legtur de date unul dintre protocoalele orientate pe bii g HDLC, ADCCP sau LAPB. Toate aceste protocoale folosesc octei indicatori pentru delimitarea cadrelor i inserarea de bii pentru a preveni apariia octeilor indicatori n cadrul datelor. De asemenea toate aceste protocoale folosesc fereastra glisant pentru controlul fluxului. Internet-ul utilizeaz SLIP i PPP ca protocoale ale legturii de date. Sistemele ATM au propriul lor protocol simplu, care face o minim verificare a erorilor i nici un fel de control al fluxului.

3.8 PROBLEME
1. Un mesaj de la un nivel mai nalt este spart n 10 cadre, fiecare dintre acestea avnd 80% ans de a ajunge nemodificat. Dac nu se face nici un control al erorilor de ctre protocolul legturii de date, de cte ori va trebui transmis mesajul n medie pentru a-1 obine ntreg la destinaie? 2. Urmtorul fragment de date apare n mijlocul unui ir de date pentru care este folosit algoritmul de inserare de caractere descris n text: DLE, STX, A, DLE, B, DLE, ETX. Care este ieirea dup inserare? 3. Dac n irul de bii 0111101111101111110 se insereaz bii, care este irul de ieire?

4. Cnd este utilizat inserarea de bii, este posibil ca prin pierderea, inserarea sau modificarea unui singur bit s se provoace o eroare nedetectabil prin suma de control? Dac nu, de ce? Dac da, de ce? Lungimea sumei de control joac vreun rol aici? 5. Putei concepe o situaie n care un protocol cu bucl deschis (de exemplu un cod Hamming) poate fi preferabil protocoalelor cu bucl de reacie (feedback), discutate pe parcursul acestui capitol? 6. Pentru a furniza o mai mare siguran dect cea pe care o poate da un singur bit de paritate, o schem de codificare cu detecie de erori folosete un bit de paritate pentru verificarea tuturor biilor de ordin impar i un al doilea bit de paritate pentru toi biii de ordin par. Care este distana Hamming pentru un astfel de cod? 7. Un mod de a detecta erorile este de a transmite datele ca un bloc de n rnduri a cte k bii pe rnd i adugarea de bii de paritate pentru fiecare rnd i fiecare coloan. Va detecta aceast schem toate erorile singulare? Dar erorile duble? Dar erorile triple? 8. Un bloc de bii eu n rnduri i k coloane folosete bii de paritate vertical i orizontal pentru detecia erorilor, S presupunem c datorit erorilor de transmisie sunt inversai exact 4 bii. Deducei o expresie pentru exprimarea probabilitii ca eroarea s nu fie detectat. 9. Ce rest se obine prin mprirea lui x 7 +x 5 +l la polinomul generator x 3 +l? 10. Protocoalele legturii de date pun aproape ntotdeauna CRC-ul n partea final i nu n antet. Dece?

222

NIVELUL LEGTUR DE DATE

CAP. 3

11. Un canal are o rat de transmisie a biilor de 4kbps i o ntrziere de propagare de 20 msec. Pentru ce domeniu al dimensiunii cadrelor metoda pas-cu-pas (stop-and-wait) are o eficien de celpuin50%? 12. Un trunchi TI lung de 3000 km este folosit pentru a transmite cadre de 64 de bii folosind protocolul 5. Dac viteza de propagare este de 6 usec/km, pe ci bii trebuie reprezentate numerele de secven? 13. Imaginai un protocol cu fereastr glisant ce folosete suficieni bii pentru numerele de secven, astfel nct s nu apar niciodat suprapuneri. Ce relaie trebuie s existe ntre cele patru limite ale ferestrelor i dimensiunea ferestrei? 14. Dac procedura between din protocolul 5 este verificat pentru condiia a < b < c n locul condiiei a < b < c, ar avea aceasta vreun efect asupra corectitudinii protocolului sau eficienei sale? Explicai rspunsul. 15. n protocolul 6, cnd sosete un cadru de date, este fcut o verificare pentru a se vedea dac numrul de secven difer de cel ateptat i NoNak este adevrat. Dac ambele condiii sunt ndeplinite, este trimis un NAK Altfel, este pornit contorul de timp auxiliar. Presupunei c ar fi omis clauza else. Ar afecta aceasta corectitudinea protocolului? 16. Presupunem c bucla while cu trei instruciuni din finalul protocolului 6 a fost tears din cod. Ar afecta aceasta corectitudinea protocolului sau doar performana? Explicai rspunsul. 17. Presupunem c instruciunea case pentru erorile de sum de control a fost scoas din instruciunea switch din protocolul 6. Cum ar afecta aceasta operarea protocolului? 18. n protocolul 6 codul pentru FrameAnival are o seciune folosit pentru NAK-uri. Aceast seciune este invocat n cazul n care cadrul sosit este un NAK i este ndeplinit nc o condiie. Indicai un scenariu n care prezena acestei condiii este esenial. 19. Imaginai-v c scriei un program la nivelul legtur de date pentru o linie folosit pentru a primi date, dar nu i pentru a trimite. Cellalt capt folosete HDLC, cu un numr de secven pe 3 bii si o dimensiune a ferestrei de 7 cadre. Ati dori s memorai ct mai multe cadre din secven pentru a crete eficiena, dar nu v este permis s modificai programul pentru transmisie. Este posibil s avei o fereastr la receptor mai mare ca 1 i totui s existe garania c protocolul nu va eua? Dac da, care este fereastra cea mai mare care poate fi utilizat n siguran? 20. Considerai operarea protocolului 6 pe o linie fr erori de IMbps. Dimensiunea maxim a cadrului este 1000 bii. Pachetele noi sunt generate la un inteval de aproape 1 secund. Intervalul de expirare a timpului este de 10 msec. Dac ar fi eliminate confirmrile speciale pentru contorul de timp, ar putea aprea expirri de timp inutile. De cte ori ar trebui transmis n medie un mesaj ?

SEC. 3.8

PROBLEME

223

21. n protocolul 6 MaxSeq=T-l. n timp ce aceast condiie este evident necesar pentru a utiliza eficient biii din antet, nu s-a demonstrat c ea este i esenial, Ar lucra protocolul corect pentru MaxSeq=A de exemplu? 22. Cadrele de 1000 de bii sunt transmise pe un canal prin satelit de IMbps, Confirmrile sunt ntotdeauna ataate cadrelor de date. Antetele sunt foarte scurte. Sunt folosite numere de secven pe 3 bii. Care este utilizarea maxim realizabil a canalului pentru: a) Pas-cu-pas (stop-and-wait); b) Protocolul 5; c) Protocolul 6. 23. Calculai fraciunea din lrgimea de band ce este pierdut datorit suprancrcrii (antete i retransmisie) pentru protocolul 6 pe un canal de satelit de 50 kbps, foarte ncrcat cu cadre de date constnd din 40 de bii antet i 3960 bii de date. Cadrele ACK nu apar niciodat. Cadrele NACK sunt de 40 de bii. Rata de erori pentru cadrele de date este de 1% i rata de erori pentru cadrele NACK este neglijabil. Numerele de secven sunt pe 8 bii. 24. Se consider un canal prin satelit fr erori, de 64 kbps, folosit pentru a transmite cadre de date ntr-o singur direcie, cu confirmri foarte scurte ce se ntorc pe alt cale. Care este productivitatea maxim pentru dimensiuni ale ferestrei de 1,7,15 i 127? 25. Un cablu lung de 100 km funcioneaz la rata de transmisie de date TI. Viteza de propagare pe cablu este 2/3 din viteza luminii. Ci bii ncap pe cablu? 26. Redesenai Fig. 3-21 pentru un canal duplex-integral care nu pierde niciodat cadre. Este totui posibil eecul protocolului? * > ' 27. Dai o secven executabil pentru reeaua Petri din Fig. 3-23 corespunztoare secvenei de stri (000), (01A), (01-), (010), (01A) n Fig. 3-20. Explicai n cuvinte ce reprezint secvena respectiv. 28. Date fiind regulile de tranziie AC-^B, B->AC, CD->E i E->CD, desenai reeaua Petri descris de ele. Folosind reeaua Petri, desenai graful finit al strilor accesibile din starea iniial ACD. Ce concept bine-cunoscut din tiina calculatoarelor folosete acest model de reguli de tranziie? 29. PPP se bazeaz pe HDLC, care folosete inserarea de bii pentru a preveni ca octeii indicatori accidentali din interiorul informaiei utile s provoace confuzii. Dai cel puin un motiv pentru care PPP folosete n locul acesteia inserarea de caractere. 30. Care este suprancrcarea minim n transmiterea unui pachet IP folosind PPP? Luai n considerare doar suprancrcarea introdus de PPP nsui, nu i suprancrcarea produs de antetulIP. 31. Considerai o euristic de delimitare a celulelor ATM cu cc=5, 8=6 i o rat de erori pe bit de IO'5. Odat ce sistemul a fost sincronizat, ct timp va rmne astfel, n ciuda erorilor ocazionale de bii n antet? Presupunei c timpul de rulare este OC-3.

224

NIVELUL LEGTUR DEDATE

CAP. 3

32. Scriei un program care s simuleze stocastic comportamentul unei reele Petri. Programul trebuie s citeasc regulile de tranziie i o list de stri corespunznd nivelului legtur al reelei ce emite un nou pachet sau accept un pachet. Din starea iniial, de asemenea citit de pe mediul de intrare, programul trebuie s aleag tranziiile permise i s le execute aleatoriu, s verifice dac un calculator gazd accept dou mesaje fr ca un alt calculator gazd s emit unul nou ntre ele.

SUBNIVELUL DE ACCES LA MEDIU


Aa cum am artat n Cap. 1, reelele pot fi mprite n dou categorii: cele care utilizeaz conexiuni punct-la-punct i cele care utilizeaz canale cu difuzare (broadcast channels). Acest capitol se ocup de reelele cu difuzare (broadcast networks) i de protocoalele lor. n orice reea cu difuzare, problema cheie const n a determina cine poate utiliza canalul, atunci cnd exista mai muli utilizatori concureni. Pentru a lmuri lucrurile, s considerm o teleconferin n care ase persoane, vorbind de la ase telefoane diferite, sunt conectate astfel, nct fiecare i poate auzi pe ceilali i poate vorbi cu ei. Este foarte probabil ca atunci cnd cineva se oprete din vorbit, doi sau mai muli s nceap s vorbeasc simultan, ceea ce va duce la haos. ntr-o ntlnire fa-n-fa, haosul este evitat prin mijloace externe - de exemplu, prin ridicarea minii pentru a cere permisiunea de a vorbi. Cnd este disponibil un singur canal de comunicaie, este mult mai greu s determini cine urmeaz s ia cuvntul. Sunt cunoscute multe protocoale de rezolvare a acestei probleme i ele constituie coninutul acestui capitol. n literatura de specialitate, canalele cu difuzare sunt uneori numite canale multiacces (multiaccess channels), sau canale cu acces aleator (random access channels). Protocoalele folosite pentru a determina cine urmeaz ntr-un canal multiacces aparin unui subnivel al nivelului legtur de date, numit subnivelul MAC (Medium Access Control - controlul accesului la mediu). Subnivelul MAC este important mai ales pentru reelele de tip LAN (le vom numi prescurtat LAN-uri), care utilizeaz aproape toate un canal multiacces ca baz pentru comunicaie. Din contr, reelele de tip WAN (le vom numi WAN-uri) utilizeaz legturi punct-lapunct, cu excepia reelelor prin satelit. Datorit faptului c LAN-urile i canalele multiacces sunt att de strns legate, n acest capitol vom discuta, n general, att despre LAN-uri ct i despre reele prin satelit i alte reele cu difuzare. Tehnic vorbind, subnivelul MAC reprezint partea de jos a nivelului legtur de date, deci logic ar fi fost s l fi studiat nainte de a trece n revist toate protocoalele punct-la-punct din capitolul 3.

226

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Dar, pentru majoritatea oamenilor, nelegerea protocoalelor care implic mai multe pri este mai uoar dup ce au neles bine protocoalele care implic dou pri. Pentru acest motiv am deviat puin de la stilul de prezentare strict ascendent al ierarhiei reelelor.

4.1 PROBLEMA ALOCARE CANALULUI


Tema central a acestui capitol o reprezint modul de alocare a unui singur canal cu difuzare ntre mai muli utilizatori concureni. Mai nti vom arunca o privire general asupra schemelor statice i dinamice de alocare. Apoi vom studia civa algoritmi specifici.
4.1.1 Alocarea static a canalului n reelele LAN i MAN

Modul tradiional de alocare a unui singur canal, cum ar fi cablul telefonic, ntre mai muli utilizatori concureni este multiplexarea cu diviziunea frecvenei (FDM - Frequency Division Multiplexing). Dac exist N utilizatori, banda de transmisie este mprit n N pri egale (vezi Fig. 2-24), fiecrui utilizator fiindu-i alocat una dintre acestea. Deoarece fiecare utilizator are o band de frecven proprie, nu exist interferene ntre utilizatori. Atunci cnd exist doar un numr mic i constant de utilizatori, fiecare avnd un trafic ncrcat (i bazat pe utilizarea zonelor tampon), cum ar fi, de exemplu, oficiile de comutare ale companiilor de telecomunicaie, FDM este un mecanism de alocare simplu i eficient. Cu toate acestea, atunci cnd numrul emitorilor este mare i variaz n permanen, sau cnd traficul este de tip rafal, FDM prezint cteva probleme. Dac spectrul benzii este mprit n N regiuni i mai puin de N utilizatori vor s comunice, o bun parte din band se va risipi. Dac vreau s comunice mai mult de N utilizatori, unii dintre ei nu o vor putea face, din lips de spaiu n banda de transmisie, chiar dac unii dintre utilizatorii care au primit cte o parte din band transmit sau recepioneaz mesaje extrem de rar. Chiar dac presupunem c numrul utilizatorilor ar putea fi meninut n vreun fel constant la valoarea N, divizarea singurului canal disponibil n subcanale statice este, evident, ineficient. Principala problem este c, atunci cnd unii utilizatori sunt inactivi, bucata lor de band se pierde pur i simplu. Ei nu o folosesc, dar nici alii nu au voie s o utilizeze. Mai mult, n majoritatea sistemelor de calcul, traficul de date este extrem de inegal (raporturi de 1000:1 ntre traficul de vrf i cel mediu sunt obinuite). n consecin, majoritatea canalelor vor fi libere n cea mai mare parte a timpului. Performanele slabe ale alocrii FDM statice pot fi uor observate dintr-un simplu calcul fcut cu ajutorul teoriei cozilor. S lum, pentru nceput, ntrzierea medie, T, pentru un canal cu capacitatea C bps, la o rat a sosirilor de X cadre/sec, fiecare cadru avnd o lungime dat de o funcie de densitate de probabilitate exponenial cu media de l/u. bii/cadru:

T =

\iC-X

Acum s divizm canalul n N subcanale independente, fiecare cu o capacitate de CIN bps. Rata medie a intrrilor pe fiecare subcanal va fi acum de XIN. Recalculnd T vom obine:

PROBEEMAAIjOGRnGANMIJEUI

227

\i(C/N)-(k/N) \iC-X

Jt=NT

(44)

ntrzierea medie la FDM este de N ori mai mare dect n cazul n care toate cadrele ar fi fost, printr-o scamatorie, aranjate n ordine ntr-o mare coad central. Exact aceeai logic utilizat la FDM se poate aplica i la multiplexarea cu diviziunea timpului (TDM - Time Division Multiplexing). Fiecrui utilizator i este alocat static fiecare a JV-a cuant. Dac un utilizator nu i folosete timpul alocat, acesta rmne nefolosit. Deoarece nici una dintre metodele statice de alocare a canalului nu merg bine n condiii de trafic n rafal, vom studia n continuare metodele dinamice. 4.12 Alocarea dinamic a canalului n reelele LAN i MAN nainte de a ncepe prezentarea numeroaselor metode de alocare a canalului, care fac obiectul acestui subcapitol, merit s formulm cu atenie problema alocrii. La baza ntregii activiti din acest domeniu stau cinci ipoteze-cheie, descrise n continuare. 1. Modelul staiilor. Acest model const din N staii independente (calculatoare, telefoane, dispozitive de comunicare personal etc), fiecare genernd cadre de transmis. Probabilitatea de generare a unui cadru ntr-un interval de lungime A/ este X&t, unde A este o constant (rata sosirilor de cadre noi). Odat ce a fost generat un cadru, staia se blocheaz i nu mai face nimic pn la transmiterea cu succes a cadrului. Ipoteza canalului unic. Exist un singur canal accesibil pentru comunicaie. Toate staiile pot transmite prin el i pot recepiona de la el. n ceea ce privete partea de hardware, toate staiile sunt echivalente, dei protocolul software le poate acorda prioriti diferite. Ipoteza coliziunii. Dac dou cadre sunt transmise simultan, ele se suprapun, iar semnalul rezultat va fi neinteligibil. Acest eveniment se numete coliziune. Toate staiile pot detecta coliziuni. Un cadru care a intrat n coliziune cu un alt cadru trebuie retransmis ulterior. Nu exist alte erori n afara celor generate de coliziuni. Timp continuu. Transmisia cadrelor poate surveni n orice moment. Nu exist un ceas comun, care s mpart timpul n intervale discrete. Timp discret. Timpul este mprit n intervale discrete (cuante). Transmisia cadrelor pornete ntotdeauna la nceputul unei cuante. O cuanta poate conine 0,1, sau mai multe cadre, corespunztor unei cuante de ateptare, unei transmisiuni efectuate cu succes i, respectiv, unei coliziuni. Detecia purttoarei. Staiile pot afla dac un canal este liber sau nu nainte de a ncerca s-1 utilizeze. Dac el este deja ocupat, nici o staie nu va mai ncerca s l utilizeze pn cnd nu se va elibera. Nedetecia purttoarei. Staiile nu pot afla starea canalului nainte de a ncerca s l utilizeze. Ele pur i simplu ncep s transmit. Abia dup aceea vor putea determina dac transmisia s-a efectuat cu succes sau nu.

2.

3.

4. 5.

6.

7.

228

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Este momentul s discutm puin despre aceste ipoteze. Prima dintre ele spune c staiile sunt independente, iar cadrele sunt generate cu o frecvena constant. De asemenea, se presupune implicit c transmisia fiecrei staii este controlat de un singur program sau de un singur utilizator, deci atta timp ct staia este blocat, ea nu va genera noi cadre. Modelele mai sofisticate permit existena staiilor multiprogramate, care pot genera noi cadre n timp ce staia este blocat, dar analiza acestor staii este mult mai complex. Ipoteza canalului unic este de fapt inima problemei. Nu exist mijloace externe de comunicare. Staiile nu pot ridica minile pentru a cere profesorului permisiunea de a vorbi. Ipoteza coliziunii este, de asemenea, o ipotez de baz, dei n unele sisteme (ntre care remarcm sistemele cu spectru larg de transmisie) ea este relaxat, cu rezultate surprinztoare. De asemenea, unele LAN-uri, cum ar fi cele de tip token-ring, utilizeaz un mecanism de eliminare a conflictelor, care elimin coliziunile.. Exist dou ipoteze alternative despre timp. Intr-una din ele timpul este continuu, iar n cealalt este discret. Unele sisteme consider timpul ntr-un fel, altele n cellalt fel, aa c le vom discuta i analiza pe amndou. Evident, pentru un sistem dat, numai una dintre ipoteze este valabil. n mod similar, o reea poate avea sau nu faciliti de detecie a purttoarei. Reelele LAN au n general detecie de purttoare, dar reelele prin satelit nu (datorit ntrzierii mari de propagare). Staiile din reelele cu detecie de purttoare i pot termina transmisia prematur, dac descoper c au intrat n coliziune cu o alt transmisie. De notat c aici nelesul cuvntului purttoare" se refer la semnalul electric de pe cablu i nu are nimic de a face cu vreun alt tip de purttoare.

4.2 PROTOCOALE CU ACCES MULTIPLU


Sunt cunoscui muli algoritmi de alocare a unui canal cu acces multiplu. n seciunile care urmeaz vom studia un eantion reprezentativ al celor mai interesani algoritmi i vom da exemple de utilizare a lor. 4.2.1 ALOHA n anii 70, Norman Abramson i colegii si de la Universitatea din Hawaii au elaborat o nou i elegant metod de rezolvare a problemei alocrii canalului. De atunci, munca lor a fost continuat de muli cercettori (Abramson, 1985). Dei realizarea lui Abramson, numit sistemul ALOHA, utiliza difuzarea prin radio de la sol, ideea de baz se poate aplica la orice sistem n care utilizatori ce nu pot fi localizai concureaz la utilizarea unui unic canal partajat. Vom discuta dou versiuni ale protocolului ALOHA: ALOHA pur i ALOHA cuantificat. Ele difer prin faptul c timpul este sau nu divizat n intervale discrete, n care trebuie s se potriveasc orice cadru. ALOHA pur nu cere sincronizare de timp global, pe cnd ALOHA cuantificat cere. ALOHA pur Ideea de baz ntr-un sistem ALOHA este simpl: utilizatorii sunt lsai s transmit ori de cte ori au date de trimis. Bineneles c vor exista coliziuni, iar cadrele intrate n coliziune vor fi distruse. Oricum, datorit proprietii de reacie a difuzrii, un emitor poate afla oricnd dac mesajul su a

fest-distrus, ascultnd canalul, la fel ca i ceilali utilizatori. ntr-o reea LAN, reacia este imediat; ntr-o reea prin satelit, exist o ntrziere de 270 msec nainte ca emitorul s aie dac transmisia sa ncheiat cu succes. n cazul n care cadrul trimis a fost distrus, emitorul ateapt un interval oarecare de timp i l trimite din nou. Timpul de ateptare trebuie s fie aleatoriu, altfel aceleai cadre vor intra n coliziune iar i iar, blocndu-se reciproc la nesfrit. Sistemele n care mai muli utilizatori partajeaz un canal comun ntr-un mod care poate duce la conflicte sunt cunoscute sub numele de sisteme cu conflicte (contention systems). n Fig. 4-1 este prezentat o schi de generare a cadrelor ntr-un sistem ALOHA. Am ales s reprezentm cadre de aceeai lungime, pentru c productivitatea sistemelor ALOHA este maximizat n cazul n care avem cadre de lungime uniform, fa de cazul n care avem cadre de lungime variabil.
Utilizator

A B

C : " D E
Timp +

Fig. 4-1. n ALOHA pur, cadrele sunt transmise la momente complet arbitrare. Ori de cte ori dou cadre ncearc s ocupe canalul n acelai timp, se va produce o coliziune i amndou vor fi denaturate. Dac primul bit al unui nou cadru se suprapune cu ultimul bit al unui cadru aproape terminat, amndou cadrele vor fi total distruse i amndou vor trebui retransmise mai trziu. Suma de control nu poate (i nu trebuie) s disting ntre o pierdere total i o ratare la musta". Ceea ce este ru este ru. O ntrebare foarte interesant este: care este eficiena unui canal ALOHA? Cu alte cuvinte, ce fraciune din cadrele transmise nu intr n coliziune n aceste circumstane haotice? S considerm mai nti o colectivitate infinit de utilizatori interactivi stnd n faa calculatoarelor (staiilor) lor. Un utilizator este ntotdeauna ntr-una din cele dou stri: introduce caractere sau ateapt. Iniial, toi utilizatorii sunt n prima stare, scriind. Cnd termin o linie, utilizatorul se oprete din scris, ateptnd un rspuns. Atunci staia transmite pe canal un cadru coninnd linia i verific dac transmisia s-a efectuat cu succes. Dac da, utilizatorul vede rspunsul i se apuc din nou de scris. Dac nu? utilizatorul continu s atepte, iar cadrul va fi transmis n mod repetat, pn cnd transmisia se va ncheia cu succes. S numim interval de cadru" timpul necesar pentru a transmite un cadru standard, de lungime fix (adic lungimea cadrului mprit la rata biilor). Vom presupune c populaia infinit de utilizatori genereaz cadre noi conform unei distribuii Poisson cu media de S cadre pe interval de cadru (ipoteza populaiei infinite este necesar pentru a ne asigura c 5 nu descrete pe msur ce

230

SUBNTVELUL DE ACCES LA MEDIU

CAP. 4

utilizatorii se blocheaz). Dac S > 1, utilizatorii genereaz cadre cu o rat mai mare dect capacitatea de transmisie a canalului i aproape fiecare cadru va suferi o coliziune. Pentru o productivitate rezonabil ar trebui ca 0 < S < 1. n plus fa de noile cadre, staiile mai genereaz i copii ale cadrelor care au suferit anterior coliziuni. S presupunem n continuare c probabilitatea de a avea k ncercri de transmisie pe interval de cadru, incluznd i retransmisiile, are de asemenea o distribuie Poisson, cu media G pe interval de cadru. Evident, G > S. La ncrcare redus (adic S ~ 0), vor fi puine coliziuni, deci puine retransmisii, aa c G ~ S. La ncrcare mare vor fi multe coliziuni, deci G > S. Orice ncrcare am avea, productivitatea este chiar ncrcarea dat, G, nmulit cu probabilitatea ca o transmisie s se ncheie cu succes - adic S = GPQ, unde Po este probabilitatea ca un cadru s nu sufere coliziuni.

Intr n coliziune cu nceputul cadrului umbrit

Intr n coliziune cu sfritul cadrului umbrit

t o +3t Timp Vulnerabil

Fig. 4-2. Perioada vulnerabil pentru cadrul umbrit. Un cadru nu va suferi coliziuni dac nici un alt cadru nu va fi emis n intervalul de un cadru socotit de la nceputul lui, aa cum se arat n Fig. 4-2. n ce condiii cadrul umbrit va ajunge ntreg? Fie t timpul necesar emisiei unui cadru. Dac un alt utilizator a generat un cadru ntre /0 i t0 + t, sfritul acelui cadru va intra n coliziune cu nceputul cadrului umbrit. De fapt, soarta cadrului umbrit era deja pecetluit chiar nainte de transmisia primului bit, dar cum n ALOHA pur, o staie nu ascult canalul nainte de transmisie, nu are cum s tie c un alt cadru se afl deja n curs de transmisie. Similar, orice alt cadru care ncepe ntre t0 +1 i t0 + It va nimeri peste sfritul cadrului umbrit. Probabilitatea ca ntr-un interval de cadru dat s fie generate un numr k de cadre este modelat de distribuia Poisson: Gke Pr[*] = k\
* -G

(4-2)

deci probabilitatea generrii a zero cadre este doar e'G. ntr-o perioad de timp ct dou intervale de cadru, media numrului de cadre generate este 2G. Astfel, probabilitatea ca nici o transmisie s nu nceap n timpul perioadei de timp vulnerabile este dat de Po = e1G.

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

231

Lund 5 = GP0, obinem:

S=Ge

-2G

Relaia dintre traficul oferit i productivitate este prezentat n Fig. 4-3. Productivitatea maxim este obinut la G = 0.5, cu S = l/2e, adic aproximativ 0.184. Cu alte cuvinte, cea mai bun performan la care putem spera este o utilizare a canalului de 18 procente. Acest rezultat nu este prea ncurajator, dar, n situaia aceasta n care fiecare utilizator transmite la dorin, cu greu ne-am fi putut atepta la o performan de sut la sut.

ALOHA cuantificat: S = Ge~

0.5

1.0

1.5

2.0

G (ncercri pe interval de pachet)

Fig. 4-3. Productivitatea n funcie de traficul oferit pentru sistemele ALOHA.


ALOHA cuantificat

n 1972, Roberts a publicat o metod de dublare a capacitii unui sistem ALOHA (Roberts, 1972). Propunerea lui era s se mpart timpul n intervale discrete, fiecare interval corespunznd unui cadru. Aceast abordare cere ca utilizatorii s cad de acord asupra mrimii cuantelor. O cale de a obine sincronizarea ar fi ca o staie special s emit un bip" la nceputul fiecrui interval, ca un tact de ceas. n metoda lui Roberts, care a devenit cunoscut sub numele de ALOHA cuantificat (slotted ALOHA), n contrast cu metoda lui Abramson - ALOHA pur (pure ALOHA), unui calculator nu i este permis s emit ori de cte ori este apsat tasta Return". El este nevoit s atepte nceputul urmtoarei cuante. Astfel, protocolul ALOHA pur este transformat din continuu n discret. Deoarece acum perioada vulnerabil este njumtit, probabilitatea ca n intervalul cadrului nostru de test s nu mai apar un alt trafic este e"6, ceea ce conduce la: S = Ge -a (4-3)

Aa cum reiese din Fig. 4-3, ALOHA cuantificat prezint un maxim la G = 1, cu o productivitate de S = l/e, adic aproximativ 0.368, dublu fa de ALOHA pur. Dac sistemul opereaz la G = 1, probabilitatea unei cuante neutilizate este 0.368 (din ecuaia 4-2). Cea mai bun performan la care

232

SUBNWELUL DE ACCES LA MEDIU

CAP: 4

ne putem atepta de la ALOHA cuantificat este: 37% din cuante neutilizate, 37% cadre transmise cu succes i 26% coliziuni. Lucrul cu valori mai mari ale lui G reduce numrul cuantelor neutilizate, dar l mrete exponenial pe cel al coliziunilor. Pentru a vedea cum se explic rapida cretere a numrului coliziunilor odat cu G, s considerm transmisia unui cadru de test. Probabilitatea ca el G s evite o coliziune este e , adic probabilitatea ca toi ceilali utilizatori s nu transmit n acest G interval. Probabilitatea unei coliziuni este deci 1 - e' . Probabilitatea ca o transmisie s se efectueze exact din k ncercri (adic dup k -1 coliziuni, urmate de un succes) este

Numrul de transmisii prognozat pentru fiecare apsare a tastei Return", E, este deci

k=l

k=\

Ca urmare a dependenei exponeniale a lui E faa de G, creteri mici ale ncrcrii canalului pot reduce drastic performanele sale. 4.2.2 Protocoale cu acces multiplu i detecie de purttoare Cu ALOHA cuantificat poate fi obinut o utilizare a canalului de maxim l/e. Acest lucru nu este surprinztor, dac ne gndim c staiile transmit la dorin, fr a fi atente la ceea ce fac celelalte staii i, n consecin, vor exista numeroase coliziuni. Oricum, n reelele locale, staiile pot detecta ce fac celelalte staii i i pot adapta comportamentul n mod corespunztor. Aceste reele pot obine o utilizare mult mai bun dect 1/e. n aceast seciune vom discuta cteva protocoale de mbuntire a performanei. Protocoalele n care staiile ascult pentru a detecta o purttoare (adic o transmisie) i acioneaz corespunztor se numesc protocoale cu detecie de purttoare (carrier sense protocols). Kleinrock i Tobagi (1975) au analizat n detalid cteva protocoale de acest tip. n continuare vom prezenta cteva versiuni ale protocoalelor cu detecie de purttoare. CSMA persistent i nepersistent Primul protocol cu detecie de purttoare pe care l vom studia n acest material se numete CSMA l-persistent (Carrier Sense Multiple Access - acces multiplu cu detecie de purttoare). Atunci cnd o staie are date de transmis, mai nti ascult canalul pentru a vedea dac nu cumva transmite altcineva n acel moment. n cazul n care canalul este ocupat, staia ateapt pn la eliberarea sa. Atunci cnd staia detecteaz canalul liber, transmite un cadru. Dac se produce o coliziune, staia ateapt o perioad aleatorie de timp i o ia de la nceput. Protocolul se cheam l-persistent, pentru c staia transmite cu o probabilitate de 1 atunci cnd gsete canalul liber. ntrzierea de propagare are o influen important asupra performanei protocolului. Exist o oarecare ans ca, imediat dup ce o staie ncepe s transmit, o alt staie s devin pregtit de transmisie i s asculte canalul. Dac semnalul primei staii nu a ajuns nc la cea de-a doua, aceasta din urm va detecta canalul liber i va ncepe la rndul ei s emit, rezultnd o coliziune. Cu ct este

4 = 2

PROTOCOALE CU ACCES MULTIPLU

233

mai mare ntrzierea de propagare, cu att acest efect devine mai important, iar perfomianta protocolului mai slab. Chiar dac ntrzierea de propagare ar fi zero, tot s-ar mai produce coliziuni. Dac dou staii devin gata de transmisie n timpul transmisiunii unei a treia staii, amndou vor atepta politicos pn la sfritul ei, dup care vor ncepe s transmit simultan, producndu-se o coliziune. Dac ele nu ar fi att de nerbdtoare, s-ar produce mai puine coliziuni. Chiar i aa, acest protocol este de departe mai bun dect ALOHA pur, ntruct ambele staii au bunul sim s nu interfereze cu cadrul celei de-a treia staii. Intuitiv, acest fapt va conduce la o performan mai bun dect ALOHA pur. Acelai lucru este valabil i pentru ALOHA cuantificat. Un al doilea protocol cu detecie de purttoare este CSMA nepersistent (nonpersistent CSMA). n acest protocol, o ncercare contient de transmisie este mai puin lacom" dect n cel anterior, nainte de a emite, staia ascult canalul. Dac nimeni nu emite, ncepe ea s emit. Dac ns canalul este ocupat, staia nu rmne ncontinuu n ascultare, pentru a-1 ocupa imediat dup detectarea sfritului transmisiei precedente. n schimb, ateapt o perioad aleatorie de timp i apoi repet algoritmul. Intuitiv, acest algoritm ar trebui s conduc la o utilizare mai bun a canalului i la ntrzieri mai mari dect la CSMA l-persistent. Ultimul protocol este CSMA p-persistent (p-persistent CSMA). El se aplic la canalele cuantificate i funcioneaz dup cum este descris n continuare. Cnd o staie este gata s emit, ea ascult canalul. Dac acesta este liber, va transmite cu o probabilitate/?. Cu o probabilitate q = 1 -p, ea va atepta urmtoarea cuant. Dac aceast cuant este de asemenea liber, sau va transmite, sau va atepta din nou, cu probabilitile/? i q. Acest proces este repetat pn cnd cadrul este transmis sau alt staie ncepe s transmit. n ultimul caz, staia se comport ca i cnd s-ar fi produs o coliziune (adic ateapt o perioad aleatorie de timp i pornete iar). Dac iniial staia detecteaz canalul ocupat, ateapt cuanta urmtoare i aplic algoritmul de mai sus. Figura 4-4 arat productivitatea n funcie de traficul oferit pentru toate cele trei protocoale, precum i pentru ALOHA pur i ALOHA cuantificat.
CSMA 0.01 persistent CSMA nepersistent CSMA 0.1-persistent CSMA <*""0.5-persistent ALOHA cuantificat CSMA

3 4 5 6 G (ncercri pe interval de pachet)

Fig. 4-4. Comparaie ntre utilizrile canalului n funcie de ncrcare, pentru diferite protocoale cu acces aleator.

234
CSMA cu detecia coliziunii

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Protocoalele CSMA persistent i nepersistent reprezint n mod cert o mbuntire fa de ALOHA, pentru c au grij ca nici o staie s nu nceap s transmit atunci cnd canalul este ocupat. O alt mbuntire este abandonarea transmisiei ndat ce se detecteaz o coliziune. Cu alte cuvinte, dac dou staii gsesc canalul liber i ncep s transmit simultan, amndou vor detecta coliziunea aproape imediat. Dect s i termine de transmis cadrele, care oricum sunt iremediabil denaturate, staiile i vor termina brusc transmisia imediat dup detectarea coliziunii. Terminnd repede cu cadrele distruse, se salveaz timp i lrgime de band. Acest protocol, cunoscut sub numele de CSMA/CD (Carrier Sense Multiple Access with Collision Detection - acces multiplu cu detecia purttoarei i a coliziunii), este des ntrebuinat n LAN-uri n subnivelul MAC. CSMA/CD, ca i multe alte protocoale de LAN, utilizeaz modelul conceptual din Fig. 4-5. n momentul marcat cu t0, o staie oarecare i termin de transmis cadrul. Acum orice alt staie care are de transmis un cadru poate ncerca s transmit. Dac dou sau mai multe staii se decid s transmit simultan, se va produce o coliziune. Coliziunile pot fi detectate urmrind puterea sau limea impulsului semnalului recepionat i comparndu-le cu semnalul transmis. Dup ce o staie a detectat o coliziune, i abandoneaz transmisia, ateapt o perioad de timp oarecare i ncearc iar, dac nici o alt staie nu a nceput s transmit ntre timp. De aceea, modelul nostru pentru CSMA/CD va fi alctuit alternativ din perioade de timp cu transmisii i perioade de timp de conflict, avnd i perioade de ateptare, cnd toate staiile tac (de exemplu, din lips de activitate).
Cuante de conflict

Cadru Perioad de Perioad de transmisie conflict Timp Perioad inactiv

Fig. 4-5. CSMA/CD se poate afla ntr-una din urmtoarele stri: conflict, transmisie sau inactiv. S privim acum mai ndeaproape detaliile algoritmului de tratare a conflictelor. S presupunem c dou staii ncep s transmit simultan, exact la momentul t0. Ct timp le va lua ca s-i dea seama c s-a produs o coliziune? Rspunsul la aceast ntrebare este vital pentru determinarea mrimii perioadei de conflict, deci i a ntrzierii i a productivitii. Timpul minim de detectare a coliziunii este chiar timpul necesar propagrii semnalului de la o staie la alta. Bazndu-ne pe acest raionament, am putea crede c o staie care nu detecteaz nici o coliziune ntr-o perioad de timp egal cu timpul de propagare pe toat lungimea cablului, perioad msurat de la nceputul transmisiei, poate fi sigur c a ocupat canalul. Prin ocupat" nelegem c toate celelalte staii tiu c ea transmite i nu vor interfera cu ea. Aceast concluzie este greit. S considerm cazul cel mai defavorabil, descris n urmtorul scenariu. Fie x timpul de propagare a

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

235

semnalului ntre staiile cele mai ndeprtate. La fo o staie ncepe s transmit. La /0 + (x - ) CU O dip nainte ca semnalul s ajung la cea mai ndeprtat staie, aceasta ncepe la rndul ei s transmit. Bineneles, ea detecteaz coliziunea aproape instantaneu i se oprete, dar scurta rafal de zgomot produs de coliziune nu se va ntoarce la staia de origine dect dup 2x - e. Cu alte cuvinte, n cel mai ru caz, o staie nu poate fi sigur c a ocupat canalul dect dup ce a transmis timp de 2x fr a detecta vreo coliziune. Din acest motiv vom modela intervalul de conflict ca un sistem ALOHA cuantificat, cu dimensiunea cuantei 2x. Pe un cablu coaxial de 1 km, x ~ 5 usec. Simplificnd, vom presupune c fiecare cuant conine un singur bit. Bineneles c, odat ce canalul a fost ocupat, o staie poate transmite cu orice rat dorete, nu neaprat doar 1 bit la 2x sec. Este important s nelegem c detecia coliziunii este un proces analogic. Echipamentul staiei trebuie s asculte cablul n timp ce transmite. Dac ceea ce recepioneaz este diferit fa de ceea ce transmite, nseamn c se produce o coliziune. Aadar, codificarea semnalului trebuie s permit detectarea coliziunilor (de exemplu, o coliziune a dou semnale de 0 voli poate fi imposibil de detectat). Din acest motiv, de obicei se utilizeaz codificri speciale. CSMA/CD este un protocol important. Mai trziu, n acest capitol, vom studia o versiune a sa, IEEE 802.3 (Ethernet), care este un standard internaional. Pentru a evita orice nenelegere, e bine s notm c nici un protocol al subnivelului MAC nu garanteaz o livrare corect a cadrelor. Chiar i n absena coliziunilor, receptorul poate s nu fi copiat corect cadrul din diverse motive (de exemplu, lips de spaiu n zona tampon, sau o ntrerupere ratat).

4.2.3 Protocoale iar coliziuni


Dei n CSMA/CD nu apar coliziuni dup ce o staie a ocupat efectiv canalul, ele mai pot aprea n perioada de conflict. Aceste coliziuni afecteaz negativ performana sistemului, mai ales atunci cnd cablul este lung (adic x mare), iar cadrele scurte. Pe msur ce reelele bazate pe fibre optice foarte lungi i cu lrgime mare de band sunt tot mai folosite, combinaia de valori mari pentru x i cadre scurte va deveni o problem din ce n ce mai serioas. n aceast seciune vom examina cteva protocoale care rezolv conflictul pentru canal fr nici o coliziune, nici mcar n perioada de conflict. n protocoalele ce vor fi descrise, vom presupune c exist N staii, fiecare avnd o adres unic fix, cuprins ntre 0 i N -1. Nu conteaz dac unele staii sunt inactive o parte din timp. ntrebarea de baz rmne: care staie va primi canalul dup o transmisie efectuat cu succes? Vom continua s folosim modelul din Fig. 4-5, cu cuantele sale discrete de conflict.

Protocolul Bit-Map (cu hart de bii)


In primul nostru protocol fr coliziuni, metoda bit-map de baz (basic bit-map method), fiecare perioad de conflict va fi format din exact N cuante. Dac staia 0 are de transmis un cadru, transmite un bit 1 n timpul cuantei 0. Nici o alt staie nu are voie s transmit n timpul acestei cuante. Fr a avea vreo legtur cu ceea ce face staia 0, staia 1 are ocazia s transmit un 1 n timpul cuantei 1, dar doar dac are un cadru de transmis. In general, staia; poate anuna c are de transmis un cadru insernd un bit 1 n cuanta;. Dup ce au trecut toate cele N cuante, fiecare staie va cunoate care dintre staii doresc s transmit. n acest moment, ele ncep s transmit n ordinea cresctoare a adresei de staie (vezi Fig. 4-6).

236

SUBNTVELUL DE ACCES LA MEDIU

CAP. 4

8 cuante de conflic t

0 1 234567 1 1 1

/ > 1 3

C :a<dre / 7

i cuante de conflict
0 1 234567

1 0 12 3 4 5 6 7 1 5 1

6 2

Fig. 4-6. Protocolul bit-map de baz. ntruct toi sunt de acord cine urmeaz, nu vor exista niciodat coliziuni. Dup ce ultima dintre staiile pregtite s emit i-a transmis cadrul, eveniment pe care toate staiile l pot uor urmri, va ncepe o alt perioad de conflict de N bii. Dac o staie devine gata imediat dup ce a trecut cuanta care i corespunde, nseamn c a ratat ocazia i va trebui s atepte urmtoarea perioad de conflict. Protocoalele de acest gen, n care intenia de a transmite este anunat nainte de transmisia propriu-zis, se numesc protocoale cu rezervare (reservation protocols). . S analizm pe scurt performanele acestui protocol. Vom conveni ca timpul s fie msurat n uniti de mrimea cuantelor de un bit ale perioadei de conflict, iar cadrele de date s fie formate din d astfel de uniti de timp. Practic, n condiii de trafic slab, pachetul de bii ai perioadei de conflict va fi transmis n mod repetat, din lips de cadre de date. S privim situaia din punctul de vedere al unei staii cu adres mic, ca de exemplu 0 sau 1. n mod obinuit, cnd ea devine gata s emit, cuanta curent" va fi undeva n mijlocul pachetului de bii. n medie, o staie va trebui s atepte N/2 cuante pentru ca runda curent s se termine i alte JV cuante pn la runda urmtoare, nainte de a putea ncepe transmisia. Perspectivele staiilor cu adrese mari sunt ceva mai luminoase. n general, ele nu vor trebui s atepte dect o jumtate de rund (N/2 cuante) nainte de a ncepe s transmit. Staiile cu adrese mari trebuie rareori s atepte urmtoarea rund. Deoarece staiile cu adrese mici au de ateptat n medie 1.5N cuante, iar cele cu adrese mari 0.5N cuante, media pentru toate staiile este de N cuante. Eficiena canalului la trafic sczut este uor de calculat. ncrcarea suplimentar a unui cadru este de JVbii, iar cantitatea de date este de d bii, rezultnd o eficien de d/(N + d). n condiii de trafic ncrcat, cnd toate staiile vor s emit simultan, perioada de conflict de N bii este mprit la N cadre, rezultnd o ncrcare suplimentar de doar un bit pe cadru, adic o eficien de d/(d + 1). ntrzierea medie pentru un cadru este egal cu suma timpului de ateptare n interiorul staiei, plus o ntrziere suplimentar de N(d + l)/2, care se adaug atunci cnd ajunge la nceputul cozii interne a staiei.
Numrtoarea invers binar

O problem a protocolului de baz bit-map este c ncrcarea suplimentar este de 1 bit pe staie. Putem obine rezultate mai bune utiliznd adresele binare ale staiilor. O staie care vrea s utilizeze canalul i difuzeaz adresa ca un ir de bii, ncepnd cu bitul cel mai semnificativ. Se presupune c toate adresele au aceeai lungime. Biii de pe aceeai poziie din adresele diferitelor staii sunt combinai printr-o operaie logic OR (SAU), iar rezultatul este citit ca o singur adres. Vom numi acest protocol numrtoarea invers binar (binary countdown). El este utilizat n Datakit (Fraser, 1987).

SEC 4.2

PROTOCOALE CU ACCES MULTIPLU

237

Pentru a evita conflictele, trebuie aplicat o regul de arbitrare: de ndat ce o staie observ c unul dintre biii superiori ai adresei sale, coninnd un 0, a fost acoperit de un 1, renun s mai emit. De exemplu, dac staiile 0010,0100,1001 i 1010. ncearc s obin canalul n acelai timp, n timpul primului bit staiile transmit 0, 0,1 i, respectiv, 1. Aceti bii sunt combinai printr-o operaie SAU, rezultnd un 1. Staiile 0010 i 0100 vd acest 1 i tiu c o staie cu o adres superioar ncearc s obin canalul, aa c renun s mai emit n runda curent. Staiile 1001 i 1010 continu. Urmtorul bit este 0 i ambele staii continu. Urmtorul bit este 1, aa c staia 1001 va renuna. Ctigtoare este staia 1010, pentru c are adresa cea mai mare. Dup ce a ctigat licitaia, ea poate transmite un cadru, dup care ncepe o nou rund de licitaii. Protocolul este ilustrat n Fig. 4-7.
Interval de bit 0 12 3 0 0 10 0 10 0 10 0 1 10 10 0 0 10 0 10 11

Rezultat

10 11

Staiile 0010 i 0100 vd acest 1 i renun

Staia 1001 vede acest 1 i renun

Fig. 4-7. Protocolul cu numrtoare invers binar. O liniu indic tcere. Eficiena canalului, n cazul acestei metode, este de df(d + In N). Dac formatul cadrului a fost bine ales, astfel nct adresa emitorului s fie primul cmp al cadrului, chiar i aceti In N bii nu sunt pierdui, iar eficiena este de 100%. Mok i Ward (1979) au descris o variant a numrtorii inverse binare utiliznd o interfa paralel n locul celei seriale. Ei au sugerat, de asemenea, utilizarea de adrese de staie virtuale, cuprinse ntre 0 i numrul staiei ctigtoare inclusiv, adrese ce vor fi permutate dup fiecare transmisie, pentru a da prioritate mai mare staiilor care nu au mai transmis de mult. De exemplu, dac staiile Q H, D, A,G,B,E iFau prioritile 7,6,5,4,3,2,1 i, respectiv, 0, atunci o transmisie cu succes a staiei D o va plasa la sfritul listei, rezultnd ordinea prioritilor: Q H, A, G, B, E, F, D. Astfel, C rmne virtual staia 7, A suie de la 4 la 5, iar D coboar de la 5 la 0. Acum staia D va putea obine canalul numai dac nici o alt staie nu l dorete. 4.2.4 Protocoale cu conflict limitat Am considerat pn acum dou strategii de baz pentru obinerea canalului ntr-o reea cablat: cu conflict, ca n CSMA, i fr coliziuni. Fiecare strategie poate fi cotat dup performane n funcie de doi parametri importani, ntrzierea n condiii de trafic sczut i eficiena canalului la trafic ncrcat. n condiiile unui trafic sczut, conflictul (adic ALOHA pur sau cuantificat) este

238

SUBNTVELUL DE ACCES LA MEDIU

CAP. 4

preferat datorit ntrzierilor miei. Cu ct traficul crete, aceste metode devin tot mai puin atractive, deoarece ncrcarea suplimentar asociat cu arbitrarea canalului, devine tot mai mare. Exact inversul acestui efect este valabil pentru protocoalele fr coliziuni. La trafic slab, ele au ntrzieri mari, dar, pe msur ce traficul crete, eficiena canalului se mbuntete, n loc s se nruteasc, cum se ntmpl la protocoalele cu conflict. Evident, ar fi frumos s putem combina cele mai bune proprieti ale protocoalelor cu conflict cu cele ale protocoalelor fr coliziuni, obinnd un nou protocol care s utilizeze varianta cu conflict la trafic sczut, pentru a avea ntrzieri mici, i varianta fr coliziuni la trafic mare, pentru a putea oferi o eficien bun a canalului. Asemenea protocoale, pe care le vom numi protocoale cu conflict limitat (limited contention protocols), exist i vor ncheia studiul nostru despre reelele cu detecie de purttoare. Pn acum, singurele protocoale cu conflict pe care le-am studiat au fost simetrice, adic fiecare staie ncearc s obin canalul cu o probabilitate p, aceeai pentru toate staiile. Fapt destul de interesant, performana global a sistemului poate fi uneori mbuntit utiliznd un protocol care asociaz probabiliti diferite pentru staii diferite. nainte de a trece la protocoalele asimetrice, s trecem succint n revist performanele cazului simetric. S presupunem c exist k staii care concureaz pentru obinerea accesului la canal. Fiecare are o probabilitate p de a transmite n timpul fiecrei cuante. Probabilitatea ca o staie s obin canalul n timpul unei cuante este kp (1 -pf' \ Pentru a obine valoarea optim pentru p, derivm n raport cup, egalm rezultatul cu zero i rezolvm pentru p. Vom obine c valoarea cea mai bun a lui/? este l/k. Substituind/ = \jk, obinem probabilitatea Pr[succes cu poptim] =
(klT

(4-4)

Aceast probabilitate este reprezentat n Fig. 4-8. Pentru un numr mic de staii ansele de succes sunt mari, dar probabilitatea scade ctre o valoare asimptotic de l/e nainte chiar ca numrul staiilor s ating valoarea cinci. Din Fig. 4-8 reiese clar c probabilitatea ca o staie s obin canalul poate fi crescut doar reducnd concurena. Protocoalele cu conflict limitat fac exact acest lucru. Mai nti, ele mpart staiile n grupuri (nu neaprat disjuncte). Doar membrilor grupului 0 li se permite s concureze pentru cuanta 0. Dac unul din ei reuete, ocup canalul i i transmite cadrul. n cazul n care cuanta rmne nentrebuinat sau apare o coliziune, membrii grupului 1 vor concura pentru cuanta 1 etc. Fcnd o mprire corect a staiilor n grupuri, numrul de conflicte pentru fiecare cuant poate fi redus, aducnd performana corespunztoare fiecrei cuante ctre extrema stnga a Fig. 4-8. Trucul const n modul n care asociem staiile cuantelor. nainte de a analiza cazul general, s considerm cteva cazuri particulare. La o extrem, fiecare grup are un singur membru. O astfel de mprire garanteaz c niciodat nu vom avea coliziuni, pentru c cel mult o staie concureaz pentru o cuant. Am vzut astfel de protocoale anterior (de exemplu, numrtoarea invers binar). Urmtorul caz particular este mprirea n grupuri de cte dou staii. Probabilitatea ca amndou s ncerce s transmit n timpul unei cuante este p2, ceea ce pentru un p mic este o valoare neglijabil. Pe msur ce unei cuante i sunt asociate mai multe staii, probabilitatea unei coliziuni crete, n schimb lungimea pachetului de bii, necesar pentru a da fiecruia o ans, se micoreaz.

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

Gazul limit.este un.singur grup coninnd toate staiile (adic ALQHA cuantificat). Ceea ce ne trebuie este o cale de a asocia staii cuantelor n mod dinamic, cu multe staii pe cuant atunci cnd traficul este sczut i puine staii pe euant (sau chiar una singur) atunci cnd traficul este mare.

1.0
0.8

J
JQ

o 0.6

1 0.4 Jg
Q.

8 0.2

0.0

10 15 Numrul staiilor gata de transmisie

20

25

Fig. 4-8. Probabilitatea de obinere a unui canal cu conflict simetric.


Protocolul cu parcurgere arborescent adaptiv

O cale foarte simpl de a face o asociere bun este utilizarea algoritmului conceput de armata Statelor Unite n scopul testrii pentru sifilis a soldailor n timpul celui de-al doilea rzboi mondial (Dorfinan, 1943). Pe scurt, armata preleva eantioane de snge de la N soldai. O poriune din fiecare eantion era pus n acelai tub de test. Acest eantion mixat era apoi testat pentru anticorpi. Dac nu era gsit nici un anticorp, toi soldaii din grup erau declarai sntoi. Dac ns erau prezeni anticorpi, erau preparate dou noi eantioane mixte, unul corespunztor soldailor de la 1 la N/2, iar altul corespunztor celorlali. Procesul era repetat recursiv pn cnd erau determinai soldaii infectai.

Staii

Fig. 4-9. Arborele pentru opt staii.

240

SUBNTVELUL DE ACCES LA MEDIU

CAP. 4

Pentru versiunea informatic a acestui algoritm (Capetanakis, 1979), cel mai simplu este s ne nchipuim staiile ca fiind frunzele unui arbore binar, ca n Fig. 4-9. n prima cuant de conflict care urmeaz dup un cadru transmis cu succes, i anume cuanta 0, toate staiile au permisiunea de a ncerca ocuparea canalului. Dac numai una din ele ncearc, foarte bine. Dac s-a produs o coliziune, atunci, n timpul cuantei 1, doar staiile de sub nodul 2 din arbore pot concura. Dac una din ele obine canalul, cuanta care urmeaz cadrului ce va fi transmis este rezervat pentru staiile de sub nodul 3. Dac, pe de alt parte, dou sau mai multe staii de sub nodul 2 vor s transmit, se va produce o coliziune n timpul cuantei 1, caz n care va fi rndul nodului 4 n timpul cuantei 2. n principiu, dac apare o coliziune n timpul cuantei 0, este cercetat ntregul arbore n adncime, pentru a localiza toate staiile gata s transmit. Fiecare cuant de un bit este asociat unui nod particular din arbore. Dac se produce o coliziune, cutarea este continuat recursiv cu fiii stng i drept ai nodului. Dac o cuant de un bit este liber sau dac o singur staie transmite n timpul ei, cutarea nodului pentru aceast cuant se poate opri, pentru c toate staiile gata s transmit au fost localizate (dac erau mai multe dect una s-ar fi produs o coliziune). Atunci cnd ncrcarea sistemului este mare, nu prea merit s dedicm cuanta 0 nodului 1, pentru c acest lucru ar avea sens doar n eventualitatea - destul de puin probabil - ca o singur staie s aib un cadru de transmis. Similar, se poate argumenta c nodurile 2 i 3 pot fi lsate la o parte din aceleai motive. n termeni mai generali, ntrebarea este: la ce nivel din arbore ar trebui s nceap cutarea? Este clar c, cu ct traficul este mai mare, cu att cutarea trebuie s nceap mai de jos. Vom considera c fiecare staie deine o estimare corect a numrului de staii gata s transmit, de exemplu q, obinut din monitorizarea traficului recent. Pentru nceput, s numrm nivelurile arborelui ncepnd de la vrf, cu nodul 1 din Fig. 4-9 pe nivelul 0, nodurile 2 i 3 pe nivelul 1 etc. Observai c fiecare nod de pe nivelul i are dedesubt o fraciune de 2~l din totalul staiilor. Dac cele q staii gata s transmit sunt uniform distribuite, numrul celor care se afl sub un anumit nod de pe nivelul i este Tq. Intuitiv, ar trebui ca nivelul optim de ncepere a cutrii s fie cel pentru care numrul mediu de staii care vor s transmit n timpul unei cuante este 1, adic nivelul la care 2~lq = 1. Rezolvnd aceast ecuaie vom gsi c i = log2g. Au fost descoperite numeroase mbuntiri ale algoritmului de baz, care sunt discutate n detaliu de Bertsekas i Gallager (1992). De exemplu, s considerm cazul n care staiile G iH vor s transmit. La nodul 1 se va produce o coliziune, aa c va fi ncercat 2, care va fi gsit liber. Este fr sens s ncercm nodul 3 pentru c este sigur c vom avea o coliziune (tim c dou sau mai multe staii de sub 1 vor s transmit i nici una dintre ele nu se afl sub 2, deci toate sunt sub 3). ncercarea lui 3 poate fi srit i se trece la 6. Dac nici aceast ncercare nu d nici un rezultat, 7 poate fi srit i este ncercat G n continuare. 4.2.5 Protocoale cu acces multiplu cu divizarea frecvenei O abordare diferit a problemei alocrii canalului o reprezint mprirea acestuia n subcanale utiliznd FDM, TDM, sau amndou, i alocarea lor dinamic dup necesiti. Astfel de metode sunt frecvent utilizate n LAN-urile cu fibr optic pentru a permite ca transmisiuni diferite s utilizeze lungimi de und (adic frecvene) diferite n acelai timp. n aceast seciune vom examina un astfel de protocol (Humblet .a., 1992).

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

241

~ O cale simpl de construire a urnii LAN cu fibr optic este utilizarea unui cuplor pasiv de tip stea (vezi Fig. 2-10). Dou fibre de la fiecare staie intr ntr-un cilindru de sticl. O fibr este pentru transmisia ctre cilindru iar cealalt pentru transmisia de la cilindru. Emisia de lumin de la oricare din staii ilumineaz cilindrul i poate fi detectat de toate celelalte staii. Stelele pasive pot cupla pn la sute de staii. Pentru a permite transmisiuni multiple simultane, spectrul este divizat n canale (benzi de frecven), ca n Fig. 2-24. n acest protocol, WDMA (Wavelength Division Multiple Access - acces multiplu cu divizarea frecvenei), fiecrei staii i sunt asociate dou canale. Un canal ngust este folosit drept canal de control pentru semnalizarea ctre staie, iar unul larg pentru ca staia s poat trimite cadre de date prin el.
m cuante de timp pentru control

Staie

Canalul de control al lui A este utilizat de alte staii pentru a-l contacta pe A n + 1 cuante de timp pentru date
1

Canalul de control al lui B Utilizat de B pentru a transmite date

Canalul de date al lui B Canalul de control al lui C Canalul de date al lui C Canalul de control al lui D Canalul de date al lui D Timp-

Fig. 4-10. Acces multiplu cu divizarea frecvenei. Fiecare canal este mprit n cuante de timp, ca n Fig. 4-10. Fie m numrul de cuante ale canalului de control i n + 1 numrul de cuante ale canalului de date, dintre care n sunt pentru date i ultima este utilizat de staie pentru a-i raporta starea (n principal, care dintre cuantele ambelor canale sunt libere). Pe ambele canale secvena de cuante se repet la infinit, cu cuanta 0 marcat special pentru ca cei. care iau parte mai trziu la transmisie s o poat detecta. Toate canalele surit sincronizate de un unic ceas global. Protocolul suport trei clase de trafic: (1) trafic orientat pe conexiune cu rat constant de date, cum este semnalul video necomprimat, (2) trafic orientat pe conexiune cu rat.variabil de date, cum este transferul de fiiere i (3) trafic de datagrame, cum sunt pachetele UDP; Pentru cele dou protocoale orientate pe conexiune, ideea este dk, pentru a comunica caB, trebuie s insereze mai nti un cadru CONNECTION REQUEST (cerere conectare) ntr-o cuant liber de pe canalul de control al lui B. Dac B accept, comunicaia se poate desfura pe canalul de date al lui A

242

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Fiecare staie are doi emitori i doi receptori, dup cum urmeaz: 1. Un receptor cu lungime de und fix, pentru ascultarea propriului canal de control. 2. Un emitor reglabil pentru comunicarea pe canalul de control al altei staii. 3. Un emitor cu lungime de und fix pentru emisia cadrelor de date. 4. Un receptor reglabil pentru selectarea emitorului de ascultat. Cu alte cuvinte, fiecare staie i ascult propriul canal de control pentru cererile care sosesc, dar trebuie s se regleze pe frecvena emitorului pentru a primi datele. Reglarea frecvenei este realizat cu un interferometru Fabry-Perot sau Mach-Zehnder, care elimin prin filtrare toate frecvenele, cu excepia celei dorite. S urmrim acum modul n care staia^ stabilete un canal de comunicaie de clas 2 cu staia B pentru, s zicem, un transfer de fiiere. Mai nti, A i regleaz receptorul de date pe frecvena canalului de date al lui B i ateapt cuanta de stare. Aceast cuant precizeaz care cuante de control sunt ocupate i care sunt libere. De exemplu, n Fig. 4-10 se observ c din cele opt cuante de control ale lui B, 0,4 i 5 sunt libere. Restul sunt ocupate (fapt indicat prin cruciulie). A alege una din cele trei cuante de control, s zicem 4, i i insereaz mesajul CONNECT REQUEST n ea. Cum B i ascult permanent canalul de control, vede cererea i o. aprob acordnd cuanta 4 lui A. Aceast decizie este anunat n cuanta de stare a canalului de control. Atunci cnd A vede anunul, va ti c s-a stabilit o conexiune unidirecional. Dac A cerea o conexiune bidirecional, B ar fi trebuit s repete acelai algoritm cu A Este posibil ca n timp ce A cuta s ocupe cuanta 4 de control a lui B, C s fac acelai lucru. Nici o staie nu o va obine i amndou vor observa eecul supraveghind cuanta de stare din canalul de date al lui B. Ele vor atepta n continuare un interval de timp aleatoriu, dup care vor ncerca din nou. n acest moment, fiecare parte are o cale fr conflicte pentru trimiterea de scurte mesaje de control ctre cealalt. Pentru a realiza transferul de fiiere, A va trimite ctre B un mesaj de control, spunnd, de exemplu, Te rog urmrete-mi urmtoarea cuant 3 de date de ieire. n ea se afl un cadru de date pentru tine". Cnd B primete mesajul de control, i va regla receptorul pe canalul de ieire al lui A pentru a citi cadrul de date. Bazndu-se pe un protocol de nivel mai nalt, B poate utiliza acelai mecanism pentru a trimite napoi o confirmare, dac dorete. De notat c apare o problem cnd A i C au conexiuni ctre B i fiecare i spune s se uite la cuanta 3. B va alege una dintre ele la ntmplare, iar cealalt transmisie va fi pierdut. La trafic constant este utilizat o variant a acestui protocol. Atunci candel cere o conexiune, ea spune n acelai timp ceva de genul: este n regul dac i voi trimite cte un cadru n fiecare cuant 3? Dac B poate accepta (adic nu i-a luat nici un angajament pentru cuanta 3), este stabilit o conexiune cu lrgime de band garantat. Dac nu, A poate ncerca din nou cu o alt propunere, n funcie de cuantele de ieire libere. Traficul de clas 3 (datagrame) utilizeaz o alt variant. n loc s scrie un mesaj CONNECTION REQUEST n cuanta de control pe care tocmai a gsit-o (4), va scrie un mesaj DATA FOR YOU N SLOT 3 (n cuanta 3 se afl date pentru tine). Dac B este liber n timpul urmtoarei cuante 3 de date, transmisiunea va reui. Altfel, cadrul de date se va pierde. n acest fel nu vom avea niciodat nevoie de conexiuni.

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

243

. Simt posibile mai multe variante ale ntregului protocol De exemplu, n loc s i asigurm fiecrei staii propriul canal de control, toate staiile pot partaja un singur canal de control. Fiecrei staii i este asociat un bloc de cuante n fiecare grup, multiplexnd astfel mai multe canale virtuale ntr-un singur canal fizic. De asemenea ne putem descurca cu un singur emitor reglabil i un singur receptor reglabil pe staie, diviznd canalul fiecrei staii n m cuante de control, urmate de n + 1 cuante de date. Dezavantajul const n faptul c emitorii trebuie s atepte mai mult pentru a obine o cuant de control, iar cadrele de date consecutive vor fi separate din cauza informaiilor de control de pe canal. Au mai fost propuse i numeroase alte protocoale WDMA, care se deosebesc prin detalii. Unele au un canal de control, altele au mai multe. Unele iau n considerare ntrzierea de propagare, altele nu; unele consider timpul de reglare a frecvenei ca fcnd parte explicit din model, altele l ignor. De asemenea protocoalele se deosebesc prin complexitatea prelucrrii, productivitate i scalabilitate. Pentru mai multe informaii, vezi (Bogineni .a., 1993; Chen, 1994; Chen i Yum, 1991; Jia i Mukherjee, 1993; Levine i Akyldiz, 1995; Williams .a., 1993). 4.2.6 Protocoale pentru reele LAN iar fir Pe msur ce numrul de echipamente de calcul i comunicaie crete, acelai lucru se ntmpl i cu nevoia lor de conectare la lumea exterioar. Chiar i primele telefoane portabile aveau posibilitatea de a se conecta la alte telefoane. Primele calculatoare portabile nu au avut aceast posibilitate, dar curnd dup aceea, modemurile au devenit un lucru obinuit. Pentru a comunica, aceste calculatoare trebuia s fie conectate la o priz telefonic de perete. Necesitatea unei conexiuni prin cablu la o reea fix nsemna c de fapt calculatoarele, dei erau portabile, nu erau mobile. Pentru a obine o adevrat mobilitate, calculatoarele portabile trebuie s utilizeze pentru comunicaie semnale radio (sau infraroii). Astfel, utilizatorii dedicai pot citi sau trimite pota electronic n timp ce merg cu maina sau cu vaporul. Un sistem de calculatoare portabile care comunic prin radio poate fi privit ca un LAN fr fir. Aceste LAN-uri au proprieti oarecum diferite fa de LAN-urile convenionale i necesit protocoale speciale pentru subnivelul MAC. n aceast seciune vom examina cteva din aceste protocoale. Mai multe informaii despre LAN-urile fr fir pot fi gsite n (Davis i McGuffin, 1995 i Nemzow, 1995). O configuraie obinuit pentru un LAN fr fir este o cldire cu birouri, cu staiile de baz amplasate strategic n jurul cldirii. Toate staiile de baz sunt interconectate prin cabluri de cupru sau fibr optic. Dac puterea de emisie a staiilor de baz i a calculatoarelor portabile este reglat la o raz de aciune de 3 sau 4 metri, atunci fiecare camer devine o singur celul, iar ntreaga cldire devine un mare sistem celular, ca n sistemele de telefonie celular tradiional, pe care le-am studiat n Cap. 2. ns, spre deosebire de sistemele de telefonie celular, fiecare celul are un singur canal, acoperind ntreaga lrgime de band disponibil. n mod normal, lrgimea de band a canalului este de 1-2 Mbps. n discuia care urmeaz vom presupune, pentru simplificare, c toi emitorii radio au un domeniu fix. Atunci cnd un receptor se afl n raza a doi emitori activi, semnalul rezultat va fi, n general, amestecat i neutilizabil (cu cteva excepii care vor fi discutate mai trziu). E important s ne dm seama c n unele LAN-uri fr fir nu toate staiile se afl n domeniul celorlalte, ceea ce

244

SUBNIVELUL DE ACCES LA MEDIU

CAP. +

duce la o serie de complicaii. Mai mult, pentru LAN-uri de incint fr fir, prezena pereilor ntre staii poate avea un impact major asupra domeniului efectiv al fiecrei staii. O abordare naiv n construirea unui LAN fr fir o constituie ncercarea de utilizare a CSMA: ascultarea celorlalte transmisiuni i transmisia numai n cazul n care nimeni nu transmite. Problema este c acest protocol nu este chiar potrivit, pentru c ceea ce conteaz este interferena la receptor, nu la emitor. Pentru a vedea natura problemei, s privim Fig. 4-11, n care apar patru staii nelegate prin cablu. Pentru ceea ce vrem s artm nti conteaz care sunt staii de baz i care sunt calculatoare portabile. Domeniul (de recepie) radio are proprietatea c A i B sunt fiecare n domeniul celeilalte i pot interfera una cu cealalt. i C poate s interfereze att cu B ct i cu D, dar nu cu A

vi/
/T\
* Domeniul radio '

(a)

(b)

Fig. 4-11. Un LAN fr fir. (a) A transmite, (b) B transmite. S considerm mai nti ce se ntmpl atunci candel transmite ctre B, ca n Fig. 4-ll(a). Dac C ascult mediul, ea nu o va auzi pe A pentru c A este n afara domeniului ei, trgnd concluzia fals c poate transmite. Dac C ncepe s transmit, ea va interfera la B cu cadrul de la A, distrugndu-1. Problema staiei care nu poate detecta un potenial competitor la mediu pentru c se afl prea departe este numit uneori problema staiei ascunse (hidden station problem). S considerm acum situaia invers: B transmite ctre A, ca n Fig. 4-ll(b). Dac C ascult mediul, va sesiza transmisia i va deduce n mod incorect c nu poate transmite ctre D, cnd de fapt o asemenea transmisie ar cauza o proast recepie doar n zona cuprins ntre B i C, unde nu se afl nici unul dintre receptorii vizai. Aceast situaie se mai numete i problema staiei expuse (exposed station problem). Problema este c nainte de a ncepe o transmisiune, o staie dorete s tie dac n preajma receptorului se desfoar sau nu vreo activitate. CSMA sesizeaz acest lucru prin simpla detecie a purttoarei. Prin cablu, toate semnalele se propag la toate staiile, aa c, la un moment dat, poate avea loc o singur transmisie, indiferent de zona sistemului n care se desfoar ea. ntr-un sistem bazat pe unde radio cu domeniu mic, se pot desfura mai multe transmisiuni simultan, dac acestea au destinaii diferite i aceste destinaii au domenii disjuncte. Alt cale de abordare a acestei probleme este s ne nchipuim o cldire de birouri n care fiecare angajat are un calculator portabil nelegat prin cablu. S presupunem c Linda vrea s i transmit un mesaj lui Milton. Calculatorul Lindei ascult mediul local i, nedetectnd nici o activitate, ncepe s transmit. Totui, se mai poate produce o coliziune n biroul lui Milton, pentru c o a treia persoan i transmitea deja dintr-un alt loc, att de departe de Linda, nct calculatorul ei nu a putut detecta acest lucru.

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

245

MACAiMACAW
Unul dintre primele protocoale concepute pentru LAN-uri fr fir este MACA (Multiple Access with Collision Avoidance - acces multiplu cu evitarea coliziunii) (Karn, 1990). El a fost utilizat ca baz pentru standardul de LAN fr fir IEEE 802.11. Ideea de baz care st n spatele su este ca emitorul s stimuleze receptorul s emit un scurt cadru, astfel nct staiile apropiate s poat detecta aceast transmisiune i s nu emit i ele pe durata cadrului (mare) de date care urmeaz. MACA este ilustrat n Fig. 4-12.
Domeniul de transmisie al lui A

Domeniul de transmisie al lui B

(a)

(b)

Fig. 4-12. Protocolul MACA. (a) A emite un RTS ctre B. (b) B i rspunde lui A cu un CTS. S vedem aeuni modul n care A i trimite un cadru lui B. A ncepe prin a emite un cadru RTS (Request To Send - cerere de emisie) ctre B, ca n Fig. 4-12(a). Acest scurt cadru (30 de octei) conine lungimea cadrului de date care va urma. Apoi B rspunde cu un cadru CTS (Clear To Send - aprobare transmisie), ca n Fig. 4-12(b). Cadrul CTS conine lungimea datelor (copiat din cadrul RTS). La recepia cadrului CTS, A ncepe transmisia. S urmrim acum modul n care reacioneaz staiile care recepioneaz vreunul din aceste cadre. Orice staie care aude RTS se afl n mod cert n apropierea lui^4 i trebuie s tac suficient de mult pentru ca CTS s poat fi trimis fr conflicte napoi la A Orice staie care recepioneaz CTS se afl n mod cert n apropiere de B i trebuie s tac n timpul transmisiei de date n curs, a crei lungime o poate afla examinnd cadrul CTS. n Fig. 4-12, C se afl n domeniul lui A, ns nu n domeniul lui B. De aceea va auzi RTS de la^4, dar nu i CTS de la B. Ct timp nu interfereaz cu CTS, ea este liber s transmit n timp ce cadrul de date este emis. n schimb D este n domeniul lui B, dar nu i n cel al lui A. Nu aude RTS, dar aude CTS. Recepionnd CTS, i va da seama c este aproape de o staie care este pe cale s primeasc un cadru, aa c se va abine de la a emite ceva pn cnd, dup calculele sale, acel cadru se va termina. Staia E aude ambele mesaje de control i, ca i D, trebuie s tac pn la terminarea cadrului de date.

246

SUBNTVELUL DE ACCES LA MEDIU

CAP. 4

n ciuda acestor precauii, nc mai pot aprea coliziuni. De exemplu, B i C ar putea transmite simultan cadre RTS ctre .4. Ele vor intra n coliziune i se vor pierde. n eventualitatea unei coliziuni, un emitor care nu a avut succes (adic unul care nu aude un CTS n intervalul de timp prevzut) va atepta o perioad de timp aleatorie i va ncerca din nou. Algoritmul utilizat este cel d < regresie exponenial binar, pe care l vom studia cnd vom ajunge la LAN-ul IEEE 802.3. Bazat pe studii de simulare a MACA, Bharghavan .a. (1994) au reuit pn la urma s mbunteasc performanele MACA i au redenumit noul lor protocol MACAW. La nceput, ei aii observat c, fr confirmri ale nivelului legtur de date, cadrele pierdute nu erau retransmise pn cnd, mult mai trziu, nivelul transport le observa absena. Au rezolvat aceast problem introducnd un cadru de confirmare ACK dup fiecare cadru de date transmis cu succes. Tot ei au mai observat c CSMA are o oarecare utilitate, i anume s opreasc o staie de la a transmite un RTS concomitent cu o alt staie apropiat care face acelai lucru ctre aceeai destinaie, aa c a fost adugat i detecia de purttoare. n plus, ei au mai decis s execute algoritmul de regresie separat pentru fiecare flux de date (pereche surs-destinaie), iar nu pentru fiecare staie. Aceast schimbare mbuntete echitatea protocolului. n final, pentru a mbunti performanele sistemului, au mai adugat un mecanism ce permite staiilor s schimbe informaii despre congestia reelei, precum i o cale de a face ca algoritmul de regresie s reacioneze mai puin violent la problemele temporare.
4.2.7 Radioul celular digital

O a doua form de reele fr fir o reprezint radioul celular, succesor al sistemului AMPS, pe care l-am studiat n cap.2. Radioul celular digital prezint un mediu oarecum diferit fa de LANurile fr fir i utilizeaz protocoale diferite. n particular, el este orientat ctre telefonie, care cere mai degrab conexiuni de ordinul minutelor, dect al milisecundelor, deci este mai eficient alocarea canalelor per convorbire, dect per cadru. Oricum, ambele termici sunt egal valabile n cazul traficului de date. n aceast seciune vom trece n revist trei abordri radical diferite n alocarea canalelor pentru sistemele radio digitale fr fir, i anume GSM, CDPD i CDMA.
GSM - sistem global pentru comunicaii mobile

Prima generaie de telefoane celulare a fost analogic, dup cum am descris n capitolul 2, dar generaia actual este digital, utiliznd pachete radio. n cazul comunicaiilor mobile, transmisia digital are cteva avantaje fa de cea analogic. Primul: vocea, datele i faxul pot fi integrate ntrun singur sistem. Al doilea: cu ct sunt descoperii algoritmi mai buni de compresie a vocii, cu att este nevoie de o lrgime de band mai ngust pentru fiecare canal. Al treilea: pentru mbuntirea calitii transmisiunii pot fi folosite coduri corectoare de erori. n fine, semnalele digitale pot fi criptate, pentru asigurarea securitii. Dei ar fi fost frumos ca ntreaga lume s fi adoptat acelai standard digital, acest lucru nu s-a ntmplat. Sistemul Statelor Unite, IS-54, i sistemul japonez, JDC, au fost concepute pentru a fi compatibile cu propriile sisteme analogice aflate n uz, astfel nct fiecare canal AMPS s poat fi utilizat att pentru comunicaii analogice, ct i digitale. n schimb, sistemul digital european, GSM (Global System for Mobile Communications), a fost conceput de la nceput ca un sistem pur digital, fr vreun compromis de dragul

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

247

compatibilitii napoi (de exemplu, utilizarea cuantelor de frecven existente). ntruct GSM este mai naintat fa de sistemul Statelor Unite i este utilizat curent n peste 50 de ri din Europa i din afara ei, l vom folosi ca exemplu de radio celular digital. GSM a fost proiectat iniial pentru a fi utilizat n banda de 900 MHz. Mai trziu au fost alocate frecvene i la 1800 MHz, iar un al doilea sistem, asemntor cu GSM, a fost instalat acolo. El a fost numit DCS1800, dar, n esen, este GSM. Standardul GSM are peste 5000 de pagini [sic!]. O bun parte din acest material se refer la aspectele inginereti ale sistemului, n special la structura receptoarelor care permit propagarea pe mai multe ci i la sincronizarea emitorilor i receptorilor.
Cadru TDM
A

Canal 124' Baz ctre mobil

959.8 MHz 935.4 MHz


xo

1 M MII 935.2 MHz I N I M I

1 ftM I I 1 1 I N I M I

1 1 1 II II i II II

1 1 1 II 1 1 II II 1 1 1

914.8 MHz 890.4 MHz 890.2 MHz

124

N I

W\ I

!,!

I i
Timp

III

pi I

2 1

Mobil ctre baz

Fig. 4-13. GSM utilizeaz 124 de canale de frecven, fiecare utiliznd un sistem TDM cu opt cuante. Un sistem GSM are maxim 200 de canale full-duplex pe celul. Fiecare canal este constituit dintr-o frecven tur (de la staiile mobile la staia de baz) i o frecven retur (de la staia de baz la staiile mobile). Fiecare band de frecven are o lrgime de 200 KHz, ca n Fig. 4-13. Fiecare din cele 124 de canale de frecven suport 8 conexiuni separate utiliznd multiplexarea prin diviziunea timpului. Fiecrei staii active la un moment dat i este repartizat o cuant de timp pe un canal. Teoretic, fiecare celul poate suporta 992 de canale, dar multe din ele nu sunt disponibile, pentru a evita conflictele de frecven cu celulele vecine. n Fig. 4-13, cele opt cuante de timp umbrite aparin aceluiai canal, cte patru pentru fiecare direcie. Dac staia mobil, creia i s-au acordat frecvenele 890.4/935.4 MHz i cuanta 2, vrea s transmit staiei de baz, ea ar utiliza cele patru cuante umbrite de jos (i pe cele care ar urma n timp), punnd date n fiecare cuant, pn cnd sunt transmise toate datele. Cuantele TDM din Fig. 4-13 fac parte dintr-o ierarhie complex de cadre. Fiecare cuant TDM are o structur specific, iar grupurile de cuante TDM formeaz multicadre, de asemenea cu o structur specific. O versiune simplificat a acestei ierarhii este prezentat n Fig. 4-14. Se observ c fiecare cuant TDM este format dintr-un cadru de date de 148 de bii. Fiecare cadru de date ncepe i se termin cu trei bii 0, pentru delimitarea cadrului. De asemenea, mai conine dou

248

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

cmpuri de Informaie (Information) de cte 57 de bii, fiecare avnd un bit de control care ne arat dac urmtorul cmp de Informaie este pentru voce sau date. ntre cmpurile de Informate se afl un cmp (de pregtire) de 26 de bii, Sync, utilizat de receptor pentru a se sincroniza cu capetele cadrului emitorului. Un cadru de date este transmis n 547 usec, dar un emitor are voie sa transmit un cadru de date doar la fiecare 4.615 msec, ntruct mparte canalul cu alte apte staii. Rata total a fiecrui canal este de 270 833 bps, mprit la opt utilizatori. Scznd ncrcarea suplimentar, fiecare conexiune poate transmite un semnal de voce compresat sau 9600 bps de date. Dup cum se poate vedea n Fig. 4-14, opt cadre de date formeaz un cadru TDM, iar 26 de cadre TDM formeaz un multicadru de 120 msec. Din cele 26 de cadre TDM ale unui multicadru, cuanta 12 este utilizat pentru control iar cuanta 25 este rezervat pentru utilizri viitoare, astfel nct doar 24 sunt disponibile pentru traficul utilizatorilor. Totui, pe lng cele 26 de cuante ale multicadrului din Fig. 4-14, este utilizat i un multicadru de 51 de cuante (care nu apare n figur). Unele dintre aceste cuante sunt utilizate pentru a pstra cteva canale de control folosite la administrarea sistemului. Canalul de control al difuzrii (broadcast control channel) este un flux continuu de date emis de staia de baz i conine identitatea acesteia i starea canalului. Toate staiile mobile i urmresc cu atenie semnalul, pentru a sti cnd au trecut ntr-o nou celul.
-Multicadru de 32 5000 de bii transmis n 120 msec I C 4 5 6 7 8 9 10 11 T 13 14 15 16 17 18 19 20 21 22 23 24 L 4 / Rezervat pentru 7
S

0 1 2 3

l 1 I 1
3

r \:adru

TDM de 1250 de bi emis n 4,615 mst!C

II I 1
4

viitoare Timp de siguran de 8,25 bii (30 usec)

....-" Cadru de date de 148 de bii emis n 547 usec 000 Informaie Bii 57 Sync Informaie 000 3

\ 26 / 57 Bit de voce/date

Fig. 4-14. O poriune din structura cadrului GSM. Canalul de control dedicat (dedicated control channel) este folosit la reactualizarea localizm, nregistrarea i stabilirea legturii. n particular, fiecare staie de baz menine o baz de date a staiilor mobile aflate momentan n perimetrul deservit de ea. Informaiile necesare pentru meninerea acestei Base de date sunt transmise prin canalul de control dedicat. n sfrit, mai exist i canalul de control comun (common control channel), care este mprit n trei subcanale logice. Primul dintre aceste subcanale este canalul de avertizare (paging channel), utilizat de staia de baz pentru a anuna apeluri ctre staii. Fiecare staie l ascult permanent,

SEC, 4.2

PROTOCOALE CU ACCES MULTIPLU

,a detecta-. apelurile la. care ..trebuie s rspund.. Al; doilea jeste canalul cu acces aleatoriu (random access channel), care funcioneaz pe principiul unui sistem ALOHA cuantificat, pentru a permite staiilor mobile s cear o cuant pe canalul de control dedicat. Cu ajutorul acestei cuante, o staie poate iniia o convorbire. Cuanta acordat este anunat pe cel de-al treilea subcanal, canalul de acordare a accesului (access grant channel). n concluzie, GSM este un sistem relativ complex. El asigur accesul la canal utiliznd o combinaie de ALOHA cuantificat, FDM i TDM. Pentru mai multe informaii despre GSM, inclusiv despre aspecte ale sistemului pe care nu le-am discutat, de exemplu arhitectura pe niveluri a protocolului, vezi (Rahnema, 1993). CDPD - pachete de date digitale celulare GSM se bazeaz, n principal, pe comutare de circuite. Un calculator mobil cu un modem special poate realiza un apel utiliznd un telefon GSM n acelai mod n care lLar realiza printr-un telefon cablat. Totui, utilizarea acestei strategii nu este lipsit de probleme. Pe de o parte, schimbarea staiei de baz este frecvent, uneori chiar i pentru utilizatorii staionari (staiile de baz i pot transfera utilizatorii ntre ele, pentru echilibrarea ncrcrii), iar fiecare transfer nseamn o pierdere de circa 300 msec de date. Pe de alt parte, GSM poate suferi de o rat nalt a erorilor. Tastarea
A

unui a" i afiarea lui ca m" devine suprtoare. In fine, apelurile fr fir sunt scumpe i nota de plat crete rapid, deoarece taxarea se face pe minut de conectare, nu pe octet transmis. O ncercare de rezolvare a acestor probleme este reprezentat de un serviciu de datagrame digitale cu comutare de pachete numit CDPD (Cellular Digital Packet Data). El este construit deasupra AMPS (vezi Cap. 2) i este pe deplin compatibil cu acesta. n principiu, orice canal liber de 30 KHz poate fi obinut temporar pentru transmisia de cadre de'date la o rat total de 19,2 Kbps. Pentru c CDPD implic o mic ncrcare suplimentar, rata net a datelor se situeaz aproape de 9600 bps. Totui, un sistem de datagrame fr fir, neorientat pe conexiune, pentru transmisia, de exemplu, a pachetelor IP, utiliznd actualul sistem de telefonie celular; este o propunere interesant pentru muli utilizatori i de aceea utilizarea ei este tot mai frecvent. CDPD urmeaz ndeaproape modelul OSI. Nivelul fizic se ocup cu detaliile modulaiei i transmisiei radio, care nu ne intereseaz aici. De asemenea, exist protocoale pentru nivelurile legtur de date, reea i transport, dar nici ele nu ne intereseaz n mod special. n schimb, vom da o descriere general a sistemului, iar apoi vom descrie protocolul de acces la mediu. Pentru mai multe informaii despre ntreg sistemul CDPD, vezi (Quick i Balachandran, 1993). Un sistem CDPD este format din trei tipuri de staii: gazde mobile, staii de baz i staii de baz de interfa (n jargon CDPD: sisteme finale mobile, sisteme de Base de date mobile i, respectiv, sisteme intermediare de date mobile). Aceste staii interacioneaz cu gazdele staionare i eu ruterele standard, de tipul celor care se gsesc n orice WAJNb Gazdele mobile sunt calculatoarele portabile ale utilizatorilor. Staiile de baz sunt emitorii care emit ctre gazdele mobile. Staiile de interfa.de baz sunt noduri speciale care interfaeaz toate staiile de baz din zona unui furnizor de CDPD cu un ruter standard (fix), pentru a transmite mai departe prin Internet sau alt WAN. Aceast configuraie este prezentat n Fig. 4-15. n CDPD sunt definite trei tipuri de interfee. Interfaa E (E-interface), extern furnizorului de CDPD,; conecteaz o zon CDPD la o reea fix. Aceast interfa trebuie bine definit, pentru a permite CDPD, s se conecteze la o varietate de reele. Interfaa I (I-interface), intern furnizorului

250

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

de GDPD, conecteaz dou zone CDPD. Ea trebuie s fie standardizat, pentru a permite utilizatorilor s treac de la o zon la alta. A treia interfa este interfaa A (A-interface), interfaa aerian, ntre staia de baz i gazdele mobile. Aceasta este cea mai interesant, aa c acum o vom examina mai de aproape.
Ctre reeaua fix Ctre reeaua fix
v

Zon a furnizorului de CDPD \ Interfaa Ruter

Staia de interfa de baz Interfaa A

Staie de baz

Gazd mobil

Fig. 4-15. Un exemplu de sistem CDPD. . Datele sunt transmise prin interfaa aerian compresate, criptate i cu corecia erorilor. Buci de cte 274 de bii compresati i criptai sunt mpachetai n blocuri de 378 de bii utiliznd codul corector de erori Reed-Solomon. Fiecrui bloc RS i sunt adugate apte cuvinte indicatoare de cte 6 bii, formnd blocuri de cte 420 de bii. Fiecare bloc de 420 de bii este mprit n apte microblocuri de cte 60 de bii, care sunt transmise consecutiv. Fiecare microbloc i are propriul cuvnt indicator de 6 bii, utilizai pentru a indica starea canalului. Aceste microblocuri trec printrun canal retur (de la baz) de 19.2 Kbps, sau printr-un al doilea canal, canalul tur (spre baz), de 19.2 Kbps, n modul full-duplex. Efectiv, att canalul tur ct i cel retur sunt cuantificate n timp, ca o secven de microblocuri de 60 de bii. Fiecare microbloc dureaz 3.125 msec. Fiecare celul CDPD are o singur pereche tur/retur disponibil pentru date. Canalul retur este uor de administrat, ntruct exist un singur emitor pe celul: staia de baz. Toate cadrele transmise prin el sunt difuzate, fiecare gazd mobil selectndu-le doar pe acelea destinate ei sau tuturora. Partea complicat este canalul tur, pentru care concureaz toate gazdele mobile care vor s transmit. Cnd o gazd mobil are de transmis un cadru, va urmri canalul retur pentru un bit indicator care i spune dac cuanta curent de pe canalul tur este liber sau ocupat. Dac este ocupat, n loc s atepte pentru urmtoarea cuant de timp, sare peste un numr aleatoriu de cuante i ncearc din nou. Dac iari vede canalul tur ocupat, ateapt un timp aleatoriu mai ndelungat i repet procedura. Timpul de ateptare mediu statistic se dubleaz la fiecare ncercare nereuit. Cnd, n sfrit, reuete s prind canalul presupus liber, ncepe s-i transmit microblocul. Esena acestui algoritm, numit DSMA (Digital Sense Multiple Access - acces multiplu cu detecie digital) este s evite ca toate gazdele mobile s se precipite pe canalul tur imediat ce acesta

SEC

. 4.2

PROTOCOALE CU ACCES MULTIPLU

251

d&me; liber. ntr-un fel, se aseamn cu protocolul CSMA p-persistent discret, menionat anterior, deoarece i el utilizeaz cuante de timp discrete pe ambele canale. Necazul este c, n ciuda DSMA, nc mai este posibil o coliziune cu alt gazd mobil, deoarece dou sau mai multe dintre ele pot alege aceeai cuant de timp pentru a ncepe emisia. Pentru a permite gazdelor mobile s descopere dac au suferit sau nu o coliziune, un bit indicator din fiecare microbloc arat dac microblocul precedent de pe canalul tur a fost recepionat corect. Din nefericire, staia de baz nu poate determina acest lucru instantaneu dup terminarea unui microbloc, astfel c recepia corect/incorect a microblocului n este ntrziat pn la microblocul n + 2. ntruct nu poate aprecia dac o transmisiune s-a efectuat cu succes, n cazul n care un emitor are mai multe blocuri de transmis, le va transmite pur i simplu, fr a fi nevoit s capete din nou canalul. Dac n cuanta de timp urmtoare constat c transmisia sa anterioar a euat, se oprete. Altfel, va continua s transmit, pn la un anumit numr maxim de blocuri Reed-Solomon sau pn cnd staia de baz seteaz un bit indicator pe canalul retur, pentru a-i spune c deocamdat a auzit destul de la respectivul emitor. O proprietate suplimentar a CDPD este c utilizatorii de date sunt un fel de ceteni de categoria a doua. Atunci cnd o nou transmisiune de voce este pe cale s primeasc un canal utilizat momentan pentru CDPD, staia de baz emite un semnal special pe retur, nchiznd canalul. Dac staia de baz cunoate deja numrul noului canal CDPD, l anun. Altfel, pentru a-1 gsi, gazdele mobile trebuie s a vneze dintr-o mulime cunoscut de poteniale canale CDPD. n acest fel, CDPD poate absorbi orice capacitate liber dintr-o celul, fr a interfera cu vocea. Ar trebui s rezulte clar din aceast descriere c CDPD a fost adugat sistemului de voce dup ce acesta din urm era deja operaional, iar proiectarea sa era constrns de faptul c nu se puteau efectua modificri asupra sistemului de voce. n consecin, atunci cnd se execut selecia canalului pentru transmisiuni vocale, algoritmul nu ine cont de existena CDPD. Acesta este motivul pentru care canalul CDPD este uneori confiscat brusc. Oricum, nimic nu ne mpiedic s avem canale CDPD dedicate. Cu ct CDPD crete n popularitate, cu att este mai probabil ca furnizorii s rezerve canale exclusiv pentru el.

CDMA - acces multiplu cu diviziunea codului


GSM ar putea fi descris ca o soluie brutal pentru alocarea canalului. El utilizeaz o combinaie de, practic, toate tehnicile cunoscute (ALOHA, TDM, FDM), ntreesute complex. CDPD folosit la transmisiuni de cadre singulare este la baz CSMA nepersistent. Vom examina acum nc o metod de alocare a unui canal fr fir, CDMA (Code Division Multiple Access). CDMA este complet diferit de toate celelalte tehnici de alocare studiate pn acum. Unele dintre ele erau bazate pe mprirea canalului n benzi de frecven i repartizarea acestora static (FDM) sau la cerere (multiplexare cu diviziunea frecvenei), deintorul utiliznd banda neprecizat de mult, Alte tehnici alocau canalul,n rafale, repartiznd ntregul canal static (TDM cu cuante de timp fixe) sau dinamic (ALOHA). CDMA permite fiecrei staii s transmit ncontinuu pe ntreg spectrul de frecven. Transmisiunile multiple simultane sunt separate cu ajutorul teoriei codificrii. CDMA relaxeaz de asemenea presupunerea c acele cadre care intr n coliziune sunt total denaturate. n schimb, el presupune c semnalele multiple sunt nsumate.

252

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

nainte de a prezenta algoritmul, s considerm teoria petrecerii (cocktail party theory) referitoare la accesul la canalul de comunicaie. ntr-o camer foarte mare discut mai multe perechi de oameni. TDM este atunci cnd toi se afl n mijlocul camerei i vorbesc pe rnd. FDM este atunci cnd oamenii se strng n grupuri larg distanate, n fiecare grup purtndu-se cte o conversaie independent de celelalte grupuri, dar n acelai timp cu ele. CDMA este atunci cnd toi se afl n mijlocul ncperii vorbind n acelai timp, dar fiecare pereche n alt limb. Cuplul francez discut doar n francez, ignornd orice altceva ca pe un zgomot. Astfel, esena CDMA const n a extrage semnalul dorit, respingnd n acest timp restul ca pe un zgomot oarecare. n CDMA fiecare interval de bit este divizat n m intervale scurte numite achii (chips). n mod obinuit sunt 64 sau 128 de achii/bit, dar n exemplul de mai jos, pentru simplificare, vom folosi doar 8 achii/bit. Fiecare staie are un cod unic pe m bii, numit i secven de achii (chip sequence). Pentru a transmite un bit 1, o staie i trimite propria secven de achii. Pentru a transmite un bit 0, ea va trimite complementul secvenei sale de achii. Nici o alt secven nu este permis. Astfel, pentru m = 8, dac staia A are secvena 00011011, va trimite un 1 cu 00011011 i un 0 cu 11100100. Creterea cantitii de informaie transmis de la b bii/sec la mb achii/sec poate fi realizat dac lrgimea de band disponibil este mrit de m ori, fcnd astfel ca CDMA s fie o form de comunicaie cu spectru larg (presupunnd c nu se fac schimbri n tehnicile de modulaie sau codificare). Dac avem o band de 1 MHz pentru 100 de staii, cu FDM fiecare ar avea 10 kHz i ar putea emite la 10 kbps (presupunnd 1 bit pe Hz). Cu CDMA, fiecare staie folosete toat banda de 1 MHz, astfel c rata achiilor este de 1 megaachie pe secund. Cu mai puin de 100 de achii pe bit, lrgimea de band efectiv pentru fiecare staie este mai mare la CDMA dect la FDM, iar problema alocrii canalului este de asemenea rezolvat, aa cum vom vedea pe scurt. Din motive pedagogice, este mai convenabil folosirea unei notaii bipolare, cu 0 binar reprezentat ca -l, iar 1 binar ca +1. Vom scrie secvenele de achii ntre paranteze, aa c un bit 1 pentru staia A va deveni (-1-1-1 +1 +1-1 +1 +1). n Fig. 4-16(a) sunt prezentate secvenele de achii binare asociate celor patru staii luate ca exemplu. n Fig. 4-16(b) ele sunt prezentate n notaia noastr bipolar. Fiecare staie are propria sa secven de achii. Vom folosi simbolul S pentru a indica vectorul de m achii pentru staia S i ~S pentru negaia sa. Toate secvenele de achii sunt ortogonale dou cte dou, prin aceasta nelegnd c produsul scalar normat al oricror dou secvene distincte de achii, S i T, notat S T, este 0. n termeni matematici,

- -s,i; =0
;=i

(4-5)

Altfel spus, toate perechile care se pot forma sunt diferite ntre ele. Aceast proprietate de ortogonalitate se va dovedi crucial mai trziu. De notat c dac S T = 0, atunci i S ~T este tot 0. Produsul scalar normat al oricrei secvene de achii cu sine nsi este 1:

SEC. 4.2

PROTOCOALE CU ACCES MULTIPLU

253

A:0001 1 0 1 1 B: 0 01 01 1 1 0 C: 01:01 1 100 D: 01 0 0 0 0 1 0 (a) ase exemple: 1-1110-1011111 1101

A: (-1-1-1+1+1 -1+1+1) B: (-1 -1 +1 -1 +1 +1 +1 -1) C:(-1 +1 -1 +1 +1 +1-1 -1) D: (-1 +1 -1 -1 -1 -1 +1 -1) (b)

C B+C A+B A + B +C A+B+C+D A + B + C +D

S, = (-1+1-1+1+1+1-1-1) S2 = (-2 0 0 0+2+2 0-2) S 3 = (0 0-2+2 0-2 0+2) S 4 = (-1+1-3+3-1-1-1+1) S 5 = (-4 0-2 0+2 0+2-2) S6 = (-2-2 0 - 2 0-2 + 4 0)

(c) s,. c = (1+1+1+1+1+1+1 5 2 . C = (2 +0 +0 +0 +2 +2 +0 +2)/8 = 1 5 3 . C = (0 +0 +2 +2 +0 -2+0 -2)/8 = 0 5 4 . C = (1 +1 +3 +3 +1 -1 +1 -1)/8 = 1 5 5 . C = (4 +0 +2 +0+2 +0 -2 +2)/8 = 1 5 6 . C = (2 -2 +0 -2 +0 -2 -4 +0)/8 = -1 (d) Fig. 4-16. (a) Secvenele de achii binare pentru patru staii, (b) Secvenele de achii bipolare, (c) ase exemple de transmisii, (d) Recuperarea semnalului staiei C. Acest lucru se ntmpl deoarece fiecare din cei m termeni ai produsului scalar este 1, astfel c suma este m. De notat de asemenea c S " S = -1. n timpul fiecrui interval de bit, o staie poate transmite un 1 emind propria secven de achii, sau poate transmite un 0 emind complementul secvenei sale de achii, sau poate s nu transmit nimic. Pentru moment vom presupune c toate staiile sunt sincronizate n timp, astfel c toate secvenele de achii ncep n acelai moment. Cnd dou sau mai multe staii transmit simultan, semnalele lor bipolare se adun liniar. De exemplu, dac ntr-un interval de achie trei staii emit +1 i o staie emite -l, rezultatul este +2. Putem privi aceasta ca pe o adunare de tensiuni: trei staii emit +1 volt i o staie emite -l volt, rezultnd 2 voli. n Fig. 4-16(c) avem ase exemple de una sau mai multe staii transmind simultan. n primul exemplu, C transmite 1 bit 1, deci vom obine secvena de achii a lui C. n al doilea exemplu, att B ct i C transmit bii de 1, deci vom obine suma secvenelor lor de achii bipolare, i anume: (-1 -l +1 -l +1 +1 +1 -1) + (-1 +1 -l +1 +1 +1 -l -1) = (-2000+2 +20-2) n cel de-al treilea exemplu, staia A emite un 1 iar staia B emite un 0. Celelalte tac. n al patrulea exemplu, A i C emit cte un bit 1, n timp ce B emite un bit 0. n al cincilea exemplu, toate cele patru staii emit cte un bit 1. n final, n ultimul exemplu, A, B, i D emit cte un bit 1, n timp

254

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

ce C emite un bit 0. S notm c fiecare dintre cele ase secvene, Si pn la S6, date n Fig. 4-16(c) reprezint durata unui singur bit. Pentru a reface irul de bii al unei staii individuale, receptorul trebuie s cunoasc dinainte secvena de achii a staiei. El face recuperarea calculnd produsul scalar normat ntre secvena de achii recepionat (suma liniar a tuturor staiilor care au transmis) i secvena de achii a staiei al crei ir de bii ncearc s l refac. Dac secvena de achii recepionat este S i receptorul ncearc s asculte de la o staie a crei secven de achii este C, atunci va calcula doar produsul scalar normat, S*C. Pentru a vedea de ce se ntmpl aa, imaginai-v dou staii, A i C, ambele transmind un bit 1 n acelai timp n care B transmite un bit 0. Receptorul primete suma: S = A + ~B + Ci calculeaz: SC = (A + ~B + C)C = AC + -BC + O C = 0 + 0 + 1 = 1 Primii doi termeni dispar, deoarece toate perechile de secvene de achii au fost alese cu grij pentru a fi ortogonale, ca n ecuaia (4-5). Acum ar trebui s fie clar de ce aceast proprietate trebuie impus secvenelor de achii. Un alt mod de a gndi relativ la aceast situaie este de a ne imagina toate cele trei secvene de achii sosite separat, n loc s fie nsumate. Atunci receptorul ar calcula produsul scalar cu fiecare separat i ar aduna rezultatele. Datorit proprietii de ortogonalitate, toate produsele interne n afar de C C ar fi 0. Adunndu-le i apoi fcnd produsul lor scalar este, de fapt, acelai lucru cu calculul produselor interne i adunarea acestora. Pentru a face procesul de decodificare mai concret, s considerm din nou cele 6 exemple din Fig. 4-16(d). S presupunem c receptorul este interesat n extragerea bitului trimis de staia C din fiecare din cele ase sume de la Si la S6. Ea calculeaz acest bit prin nsumarea perechilor de produse ntre vectorul S recepionat i vectorul C din Fig. 4-16(b), lund apoi 1/8 din rezultat (deoarece n acest caz m - 8). Aa cum am artat, de fiecare dat este decodificat bitul corect. Este ca i cum s-ar fi vorbit franceza. ntr-un sistem CDMA ideal, fr zgomote, capacitatea (adic numrul de staii) poate fi mrit arbitrar de mult, aa cum i capacitatea unui canal Nyquist fr zgomote poate fi mrit arbitrar de mult prin utilizarea unui numr tot mai mare de bii pe eantion. n practic, limitrile fizice reduc considerabil capacitatea. La nceput, am presupus c toate achiile sunt sincronizate n timp. n realitate, aceasta este imposibil de realizat. Ceea ce se poate face este ca emitorul i receptorul s se sincronizeze prin expedierea de ctre emitor a unei secvene de achii cunoscute, suficient de lung pentru ca receptorul s o poat localiza. Astfel, toate celelalte transmisii (nesincronizate) sunt percepute ca un zgomot aleatoriu. Dac ele nu sunt prea numeroase, algoritmul fundamental de decodificare funcioneaz totui destul de bine. Exist multe situaii referitoare la suprapunerea secvenei de achii cu nivelul de zgomot (Pickholtz .a., 1982). Aa cum v putei atepta, cu ct o secven de achii este mai lung, cu att este mai mare probabilitatea detectrii ei corecte n prezena zgomotului. Pentru o mai mare siguran, secvena de bii poate folosi un cod corector de erori. Secvenele de achii nu folosesc niciodat coduri corectoare de erori. O presupunere implicit n discuia anterioar este c nivelurile de putere ale tuturor staiilor sunt aceleai cu cele percepute de receptor. Protocolul CDMA este folosit n mod obinuit pentru sistemele fr fir cu o staie de baz fix i multe staii mobile la distane variabile de aceasta. Nivelurile de putere

SEC. 43

STANDARDUL ffiEE 802 PENTRU LAN-URI I MAN-URI

255

recepionate la staia de baz depind dest de departe sunt emt^toL^n acest caz, o euristic bun este ca fiecare staie mobil s emit ctre staia de baz la un nivel invers de putere fa cel primit de la staia de baz, astfel nct o staie mobil eare recepioneaz un semnal slab de la baz va folosi mai mult putere dect una care primete un semnal puternic. De asemenea, staia de baz poate s comande staiilor mobile s creasc sau s scad puterea lor de emisie. De asemenea, am presupus c receptorul tie cine este emitorul. n principiu, avnd suficient capacitate de calcul, receptorul poate asculta toi emitorii deodat, prin rularea algoritmului de decodificare pentru fiecare dintre ei n paralel. n viaa real ns, este suficient s spunem c este mai uor de zis dect de fcut. CDMA are nc i muli ali factori complicai, care au fost trecui cu vederea nr aceast scurt introducere. Cu toate acestea, CDMA este o strategie inteligent care este rapid introdus n comunicaiile mobile fr fir. Cititorii care au cunotine solide de inginerie electric i care vor s aprofundeze studiul CDMA pot citi (Viterbi, 1995). Q strategie alternativ de eantionare, n care eantionarea se face mai degrab n timp dect n frecven, este descris n (Crespo .a., 1995).

43

STANDARDUL BEEE 802 PENTRU LAN-URII MAN-URI

Discuia noastr general asupra protocoalelor abstracte de alocare a canalelor s-a ncheiat, aa c este timpul s vedem cum se aplic aceste principii sistemelor reale, n particular LAN-urilor. Aa cum am discutat n seciunea 1.7.2, IEEE a produs cteva standarde pentru LAN-uri. Acestea, cunoscute colectiv ca IEEE 802, includ CSMA/CD, token-bus i token-ring. Diversele standarde difer la nivelul fizic i la subnivelul MAC, dar sunt compatibile la nivelul legturii de date. Standardele IEEE 802 au fost adoptate de ANSI ca standarde naionale americane, de NIST ca standarde guvernamentale i de ISO ca standarde internaionale (cunoscute ca ISO 8802). Ele sunt surprinztor de inteligibile (fa de alte standarde). Standardele sunt divizate n pri, fiecare parte fiind publicat ca o carte separat. Standardul 802.1 face o introducere n setul de standarde i definete primitivele de interfa. Standardul 802.2 descrie partea superioar a nivelului legtur de date, care folosete protocolul LLC (Logical Iink Control - controlul legturii logice). Prile ntre 802.3 i 802.5 descriu trei standarde de LAN, CSMA/CD, token-bus i, respectiv, token-ring. Fiecare standard acoper protocoalele de nivel fizic i de subnivel MAC. Urmtoarele trei seciuni se refer la aceste trei sisteme. Informaii suplimentare pot fi gsite n (Stallings, 1993b). 4.3.1 Standardul IEEE 8023 i ETHERNET Standardul IEEE 802.3 este proiectat pentru un LAN CSMA/CD l-persistent. Pentru a trece n revist ideea, atunci cnd o staie dorete s transmit, ascult cablul. Dac este ocupat, staia ateapt pn cnd acesta devine liber; dac nu, transmite imediat Dac dou sau mai multe staii ncep s transmit simultan pe un cablu liber, ele vor intra n coliziune. Toate staiile intrate n coliziune ntrerup transmisia, ateapt o perioad de timp aleatorie i repet ntregul proces de la capt. Standardul 802.3 are o istorie interesant. Adevratul nceput a fost sistemul ALOHA construit pentru a permite comunicaii radio ntre calculatoarele mprtiate n insulele Hawaii. Mai trziu, a fost adugat detecia purttoarei, iar Xerox PARC a construit un sistem CSMA/CD de 2.94 Mbps .pentru a conecta peste 100 de staii de lucru personale pe cablu de 1 lan(Metcalfe iBoggs, 1976).

256

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Acest sistem a fost numit Ethernet^ dup eterni luminifer prin cate se credea cndva c se propag radiaiile electromagnetice. (Cnd fizicianul britanic din secolul al nousprezecelea, James Qerk Maxwell, a descoperit c radiaia electromagnetic poate fi descris printr-o ecuaie de unda, savanii au presupus c spaiul este umplut cu un mediu eteric prin care se propag radiaia. Abia dup faimosul experiment Michelson-Morley din 1887 fizicienii au descoperit c radiaia electromagnetic se poate propaga n vid.) Soluia Ethernet a firmei Xerox a fost att de reuit, nct Xerox, DEC i Intel au elaborat un standard pentru Ethernet la 10 Mbps. Acest standard a constituit baza pentru 802.3. Standardul 802.3 publicat difer de specificaia Ethernet prin faptul c descrie o ntreag familie de sisteme CSMA/CD l-persistente, lucrnd la viteze cuprinse ntre 1 i 10 Mbps n diverse medii. De asemenea, cmpul de antet difer ntre cele dou (cmpul de lungime de la 802.3 este folosit n Ethernet pentru tipul pachetului). Standardul iniial mai ofer i parametri pentru un sistem de 10 Mbps n banda de baz, folosind cablu coaxial de 50 de ohmi. Seturile de parametri pentru alte medii i viteze au venit mai trziu. Muli oameni utilizeaz (incorect) numele Ethernet" ntr-un sens general, pentru a se referi la toate protocoalele CSMA/CD, chiar dac el se refer n realitate la un produs specific care, n mare, implementeaz 802.3. n urmtoarele cteva paragrafe vom utiliza termenii 802.3" i CSMA/CD", cu excepia cazului n care ne referim n mod special la produsul Ethernet.
Cablarea 802.3

ntruct numele Ethernet" se refer la cablu (eterul), s pornim discuia noastr de aici. n mod obinuit, sunt utilizate cinci tipuri de cabluri, dup cum se arat n Fig. 4-17. Din punct de vedere istoric, cablul 10Base5, numit popular i Ethernet gros (thick Ethernet), a fost primul. El se aseamn cu un furtun galben de grdin cu semne la fiecare 2.5 metri pentru a arta unde vin conectorii (Standardul 802.3 nu impune de fapt cabluri de culoare galben, dar sugereaz acest lucru). Conexiunile cu el sunt fcute n general utiliznd conectori-vampir (vampire taps), la care un pin este introdus cu grij pn n miezul cablului coaxial. Notaia 10Base5 nseamn c funcioneaz la 10 Mbps, utilizeaz semnalizare n banda de baz i poate suporta segmente de pn la 500 metri.
Nume 10Base5 10Base2 10Base-T 10Base-F Cablu coaxial gros coaxial subire perechi torsadate fibr optic Seg. maxim 500 m 200 m 100 m 2000 m Noduri / seg. 100 30 1024 1024 Avantaje Bun pentru coloane vertebrale Cel mai ieftin sistem ntreinere uoar Cel mai bun ntre cldiri

Fig. 4-17. Cele mai obinuite tipuri de LAN-uri 802.3 n banda de baz. Istoricete vorbind, al doilea tip de cablu a fost 10Base2, sau Ethernet subire (thin Ethernet), care, spre deosebire de Ethernet gros ca un furtun de grdin", se ndoaie uor. Conexiunile cu el sunt fcute utiliznd conectori standard industriali BNC pentru a forma jonciuni n T, mai curnd dect conectori-vampir. Ei sunt mai uor de folosit i mai siguri. Ethernet-ul subire este mult mai ieftin i mai uor de instalat, dar el poate suporta lungimi ale cablului de maxim 200 de metri i poate trata numai 30 de calculatoare pe segment de cablu.

SEC. 4.3

STANDARDUL IEEE 802 PENTRU LANDURI SI MAN-URI

257

j. Detectarea ntreruperilor de cablu, a conectorilor proti sau a conectorilor desprini poate fi o problem major pentru ambele medii de transmisie. Din acest motiv au fost dezvoltate tehnici care s le detecteze. n esen, n cablu este injectat un impuls cu o form cunoscut. Dac impulsul ntlnete un obstacol sau ajunge la captul cablului, va fi generat un ecou care este trimis napoi. Msurnd cu grij timpul scurs ntre emiterea impulsului i recepionarea ecoului, este posibil localizarea originii ecoului/Aceast tehnic este numit reflectometrie n domeniul timp (linie domain reflectometry). Problemele asociate cu gsirea ntreruperilor de cablu au condus sistemele ctre un alt tip de model de cablare, n care toate staiile au un cablu care duce la un concentrator (hub). De obicei, aceste fire sunt perechi torsadate ale companiei de telefoane, deoarece majoritatea cldirilor cu birouri sunt deja cablate n acest fel i, n mod normal, exist o mulime de perechi disponibile. Aceast strategie se numete lOBase-T. Aceste trei strategii de cablare sunt ilustrate n Fig. 4-18. Pentru 10Base5, n jurul cablului este prins strns un transiver (transceiver), astfel nct conectorul su face contact cu miezul cablului. Transiverul conine partea de electronic ce se ocup cu detecia purttoarei i cu detecia coliziunilor. Atunci cnd este detectat o coliziune, transiverul trimite pe cablu un semnal nepermis special, pentru a se asigura c i celelalte transivere i dau seama c s-a produs o coliziune.

Controlor

Controlor Cablul transiverul ui Conector-vampir Transiver Conector Concentrator

Miez

o Q 0 Q Q (TOTl
(b)
(O

(a)

Fig. 4-18. Trei tipuri de cablare 802.3 . (a) 10Base5. (b) 10Base2. (c)lOBase-T. La 10Base5, un cablu de transiver (transceiver cable) conecteaz transiverul cu o plac de interfa din calculator. Cablul transiverului poate avea pn la 50 de metri lungime i conine 5 perechi torsadate izolate individual. Dou dintre perechi sunt pentru datele de intrare i respectiv datele de ieire. Alte dou sunt pentru semnalele de control de intrare i de ieire. A cincea pereche, care nu este ntotdeauna folosit, permite calculatorului s alimenteze electronica transiverului. Pentru a reduce numrul de transivere necesare, unele transivere permit s le fie ataate pn la 8 calculatoare nvecinate. Cablul transiverului se termin la placa de interfa din interiorul calculatorului. Placa de interfa conine un cip controlor care transmite cadre ctre transiver i recepioneaz cadre de la

258

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

acesta. Controlorul este responsabil cu asamblarea datelor n formatul de cadru corespunztor, precum i cu calculul sumelor de control pentru cadrele trimise i verificarea lor pentru cadrele primite. Unele tipuri controlor gestioneaz i un set de zone tampon pentru cadrele primite, o coad de zone tampon pentru transmisie, transferurile DMA cu calculatoarele gazd i alte aspecte legate de administrarea reelei. La 10Base2, conexiunea cu cablul se face printr-un conector BNC pasiv cu jonciune n T. Electronica transiverului este pe placa controlorului i fiecare staie are ntotdeauna propriul transiver. La lOBase-T, nu exist nici un cablu, ci doar un concentrator - o cutie plin de electronic. Adugarea sau ndeprtarea unei staii este mai simpl n aceast configuraie, iar ntreruperile cablului pot fi detectate uor. Dezavantajul lui lObasc-T este acela c dimensiunea maxim a cablului care pleac de la concentrator este de numai 100 de metri, poate chiar 150 de metri, dac sunt folosite perechi torsadate de foarte bun calitate (categoria 5). De asemenea, un concentrator mare cost mii de dolari. Totui, lOBase-T devine tot mai popular datorit uurinei de ntreinere. O versiune mai rapid de lOBase-T (lOOBase-T) va fi discutat mai trziu n acest capitol. A patra opiune de cablare pentru 802.3 este lOBase-F, care folosete fibre optice. Aceast alternativ este scump datorit costului conectorilor i a terminatorilor, dar are o imunitate excelent la zgomot i este metoda care este aleas atunci cnd transmisia se face ntre cldiri sau concentratoare aflate la distante mari.
A B
A B

ii

yo
Coloan vertebral

Repetor

(a)

(b)

(c)

(d)

Fig. 4-19. Topologii de cablu, (a) Liniar, (b) Coloan, (c) Arbore, (d) Segmentat. Figura 4-19 arat diferite moduri de cablare a unei cldiri. n Fig. 4-19(a), un singur cablu este erpuit din camer n camer, fiecare staie fiind conectat la el n punctul cel mai apropiat. n Fig. 4-19(b), o coloan vertical suie de la parter pn la acoperi, cu cabluri orizontale conectate la ea la fiecare etaj prin amplificatoare speciale (repetoare). n unele cldiri, cablurile orizontale sunt subiri, iar coloana este groas. Cea mai general topologie este cea de arbore, ca n Fig. 4-19(c), deoarece o reea cu dou ci ntre unele perechi de staii ar suferi din cauza interferenei dintre cele dou semnale. Fiecare versiune de 802.3 are o lungime maxim de cablu pe segment. Pentru a permite reele mai largi, mai multe cabluri pot fi conectate prin repetoare (repeaters), aa cum se arat n Fig. 4-19(d). Un repetor este un dispozitiv de nivel fizic. El recepioneaz, amplific i retransmite semnale n ambele direcii. n ceea ce privete programarea, o serie de segmente de cablu conectate prin repetoare nu prezint nici o diferen fa de un singur cablu (cu excepia unei oarecare ntrzieri introduse de repetoare). Un sistem poate conine segmente

SEC. 4.3

STANDARDUL IEEE 802 PEMMJ LAM-llRI I MAN-URI

multiple i repetoare multiple, dar dou transivere nu pot fi la o distan mai mare de 2 5 km i nici o cale ntre oricare dou transivere nu poate traversa mai mult de 4 repetoare. Edificarea Manchester Nici una din versiunile lui 802.3 nu folosete o codificare binar direct, cu 0 voli pentru un bit 0 si 5 voli pentru un bit 1, deoarece aceasta conduce la ambiguiti. Dac o staie trimite irul de bii 00010000, altele l-ar putea interpreta fals ca 10000000 sau 01000000 ntruct nu pot distinge diferena ntre un emitor inactiv (0 voli) i un bit 0 (0 voli). Ceea ce le trebuie receptorilor este un mijloc de a determina fr dubii nceputul, sfritul i jumtatea fiecrui bit fr ajutorul unui ceas extern. Dou astfel de abordri se numesc codificarea Manchester (Manchester encoding) i codificarea Manchester difereniala (diferential Manchester encoding). n cazul codificrii Manchester, fiecare perioad a unui bit este mprit n dou intervale egale. Un bit 1 este trimis stabilind un voltaj ridicat n timpul primului interval i sczut n cel de-al doilea. Un 0 binar este trimis exact invers: nti nivelul sczut iar apoi cel ridicat. Aceast strategie asigur c fiecare perioad a unui bit are o tranziie la mijloc, uurnd sincronizarea ntre emitor i receptor. Un dezavantaj al codificrii Manchester este acela c necesit o lrgime de band dubl fa de codificarea binar direct, deoarece impulsurile au durata pe jumtate. Codificarea Manchester este prezentat n Fig. 4-20(b).
Flux de bii Codificare binar

Codificare Manchester Codificare Manchester diferenial

Aceast tranziie indic un 0

Lipsa tranziiei aici indic un 1

Fig. 4-20. (a) Codificare binar, (b) Codificare Manchester. (c) Codificare Manchester diferenial. Codificarea Manchester diferenial, prezentat n Fig. 4-20(c), este o variant a codificrii Manchester clasice. n aceasta, un bit .1 este indicat prin absena tranziiei la nceputul unui interval. Un bit 0 este indicat prin prezena unei tranziii la nceputul intervalului. n ambele cazuri, exist i o tranziie la mijloc. Strategia diferenial necesit un echipament mai complex, dar ofer o mai bun imunitate la zgomot. Toate sistemele 802.3 n banda de baz folosesc codificarea Manchester datorit simplitii sale. Semnalul nalt este de +0.85 voli iar semnalul sczut este de -0.85 voli, dnd o valoare n curent continuu de 0 voli.

260

SUBNIVELUL DE ACCES LA MEDIU

Protocolul subnivelului MAC 802.3

-**fljrf

Structura cadrului 802.3 (IEEE, 1985a) este prezentat n Fig. 4-21. Fiecare cadru ncepe cu un Preambul (Preamble) de 7 octei, fiecare octet coninnd ablonul de bii 10101010. Codificarea Manchester a acestui ablon furnizeaz o und dreptunghiular de 10 Mhz timp de 5.6 usec pentru a permite ceasului receptorului s se sincronizeze cu cel al emitorului. Urmeaz un octet de nceput de cadru (Start of frame), coninnd 10101011, pentru a semnala nceputul propriu-zis al cadrului. 'Cadrul conine dou adrese, una pentru destinaie i una pentru surs. Standardul permite adrese pe 2 i pe 6 octei, dar parametrii definii pentru standardul n banda de baz de 10 Mbps folosesc numai adrese pe 6 octei. Bitul cel mai semnificativ al adresei destinaie este 0 pentru adresele obinuite i 1 pentru adresele de grup. Adresele de grup permit mai multor staii s asculte de la o singur adres. Cnd un cadru este trimis la o adres de grup, toate staiile din grup l recepioneaz. Trimiterea ctre un grup de staii este numit multicast (trimitere multipl). Adresa avnd toi biii 1 este rezervat pentru broadcast (difuzare). Un cadru coninnd numai bii de 1 n cmpul destinaie este distribuit tuturor staiilor din reea.
Octei Preambul

2 sau 6 Adresa destinaiei

2 sau 6 Adresa sursei

0-1500
{{ ))

0-46 Cmp de completare

4
Sum de control

Delimitator de nceput de cadru

t 1

Lungimea cmpului de date

t I

Date
fT

Fig. 4-21. Formatul cadrului 802.3. O alt trstur interesant a adresrii este utilizarea bitului 46 (vecin cu cel mai semnificativ bit) pentru a distinge adresele locale de cele globale. Adresele locale sunt stabilite de fiecare administrator de reea i nu au semnificaie n afara reelei locale. n schimb, adresele globale sunt asignate de IEEE pentru a se asigura c oricare dou staii din lume nu au aceeai adres global. Cu 48 - 2 = 46 bii disponibili, exist aproximativ 7xlO13 adrese globale. Ideea este c orice staie poate adresa n mod unic orice alt staie specificnd numai numrul corect pe 48 de bii. Este sarcina nivelului reea s-si dea seama cum s localizeze destinatarul. Cmpul Lungime (Length) arat ci octei se afl n cmpul de date, de la minim 0 pn la maxim 1500. Deoarece este permis un cmp de date de 0 octei, apare urmtoarea problem. Atunci cnd un transiver detecteaz o coliziune, el trunchiaz cadrul curent, ceea ce nseamn c pe cablu apar tot timpul bii rtcii i buci de cadre. Pentru a distinge mai uor cadrele corecte de cele deteriorate, 802.3 stabilete c lungimea cadrelor corecte trebuie s fie de cel puin 64 de octei, de la adresa destinaie pn la suma de control. Dac poriunea de date a unui cadru este mai mic de 46 de octei, pentru a umple cadrul pn la dimensiunea minim este folosit cmpul de completare (pad). Un alt motiv (i mai important) de a avea o lungime minim a cadrului este de a preveni situaia n care o staie termin transmisia unui cadru scurt nainte ca primul bit s ajung la captul cel mai ndeprtat al cablului, unde poate intra n coliziune cu un alt cadru. Aceast problem este ilustrat

SEC. 4.3

STANDARDUL IEEE 802 PENTRU LAN-URI SI MAN-URI

261

n Fig. 4-22. La momentul 0, staia^4, de la un capt al reelei, expediaz lin cadru. S notfii cu t timpul de propagare al cadrului pn la cellalt capt. Exact nainte de sosirea cadrului la cellalt capt (adic la momentul x - E), cea mai ndeprtat staie, B, ncepe s transmit. Cnd B observ c primete mai mult putere dect emite, tie c a aprut o coliziune, prin urmare abandoneaz transmisia i genereaz o rafal de 48 de bii de zgomot pentru a avertiza toate celelalte staii. Aproximativ la momentul 2x, emitorul observ apariia zgomotului i i abandoneaz la rndul su transmisia. Apoi ateapt un timp aleatoriu nainte de a ncerca din nou. Dac o staie ncearc s transmit un cadru foarte scurt, este posibil s apar o coliziune, dar transmisia se termin nainte ca zgomotul produs s se ntoarc la momentul 2x. Emitorul va ajunge incorect la concluzia c transmisia cadrului s-a ncheiat cu succes. Pentru a preveni apariia acestei situaii, transmisia fiecrui cadru trebuie s ia mai mult de 2x. Pentru un LAN la 10 Mbps cu o lungime maxim de 2500 metri i patru repetoare (conform specificaiei 802.3), cadrul minim permis trebuie s dureze 51.2 usec. Acest timp corespunde unui numr de 64 de octei. Cadrele cu mai puini octei sunt completate pn la 64 octei.
Pachetul pornete / l a momentul 0 Pachetul ajunge aproape de B \ la momentul x-e

(a)

(b)

Rafala de zgomot / ajunge napoi la A la momentul 2%

(O

Coliziune la momentul T

(d)

Fig. 4-22. Detectarea coliziunii poate dura 2x. Pe msur ce viteza reelelor crete, lungimea minim a cadrului trebuie s creasc sau lungimea maxim a cablului trebuie s scad proporional. Pentru un LAN de 2500 de metri opernd la 1 Gbps, dimensiunea minim a cadrului ar trebui s fie de 6400 octei. Alternativ, dimensiunea minim a cadrului ar putea fi de 640 octei, iar distana maxim ntre dou staii de 250 de metri. Aceste restricii devin din ce n ce mai neplcute pe msur ce ne ndreptm spre reele cu viteze de ordinul gigabiilor. Ultimul cmp la 802.3 este Suma de control (Checksum). Aceasta este de fapt un cod de dispersie pe 32 de bii (32-bit hash-code) al datelor. Dac anumii bii de date sunt recepionai eronat (datorit zgomotului de pe cablu), suma de control va fi aproape sigur greit i va fi detectat o eroare. Algoritmul sumei de control este un control cu redundan ciclic de tipul celui discutat n capitolul 3.

262

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4,

Algoritmul de regresie exponenial binar


S vedem acum cum se genereaz timpii aleatorii atunci cnd apare o coliziune. Modelul este cel din Fig. 4-5. Dup o coliziune, timpul este mprit n intervale discrete, a cror lungime este egal cu timpul de propagare dus-ntors prin mediu n cazul cel mai defavorabil (2x). Pentru a se potrivi cti cea mai lung cale permis de 802.3 (2.5 km i patru repetoare), mrimea cuantei a fost fixat la 512 intervale de bit, adic 51.2 usec. Dup prima coliziune, fiecare staie ateapt fie 0, fie 1 cuante nainte s ncerce din nou. Dac dou staii intr n coliziune i fiecare alege acelai numr aleatoriu, vor intra din nou n coliziune. Dup a doua coliziune, fiecare ateapt la ntmplare 0,1,2 sau 3 cuante. Dac se produce o a treia coliziune (probabilitatea este de 0.25), atunci, data viitoare, numrul de cuante ateptate va fi ales 3 aleatoriu din intervalul de la 0 la 2 - 1 . n general, dup / coliziuni, se ateapt un numr aleatoriu de cuante ntre 0 i 2' - 1 . Oricum, dup un numr de 10 coliziuni, intervalul de ateptare este ngheat la un maxim de 1023 de cuante. Dup 16 coliziuni, controlorul arunc prosopul* i raporteaz eec calculatorului. Recuperarea ulterioar a erorii cade n sarcina nivelelor superioare. Acest algoritm, numit algoritmul de regresie exponenial binar (binary exponenial backoff algorithm), a fost conceput s se poat adapta dinamic la numrul staiilor care ncearc s transmit. Dac intervalul de generare aleatorie a fost pentru toate coliziunile 1023, ansa ca 2 staii s intre n coliziune pentru a doua oar este neglijabil, dar timpul mediu de ateptare dup o coliziune ar fi de sute de cuante, introducnd o ntrziere semnificativ. Pe de alt parte, dac fiecare staie ateapt mereu sau zero sau o cuant, atunci dac 100 de staii ar ncerca s transmit deodat, ele ar intra n coliziune iar i iar, pn cnd 99 dintre ele aleg 0 i una 1 sau invers. Aceasta ar putea dura ani de zile. Lsnd intervalul de generare aleatorie s creasc exponenial pe msur ce apar tot mai multe coliziuni, algoritmul asigur o ntrziere minim cnd se cioGnesc numai cteva staii, dar garanteaz de asemenea c ciocnirea este rezolvat ntr-un interval rezonabil atunci cnd este vorba de mai multe staii. Aa cum am artat pn acum, CSMA/DC nu ofer confirmri. Cum simpla absen a coliziunilor nu garanteaz c biii nu au fost modificai de zgomotul de pe cablu, pentru o comunicaie sigur, destinaia trebuie s verifice suma de control i, dac este corect, s trimit napoi ctre surs un cadru de confirmare. n mod normal, din punct de vedere al protocolului, aceast confirmare ar fi doar un alt cadru i ar trebui s lupte pentru timp de canal, ca orice cadru de date. Totui, o simpl modificare a algoritmului de tratare a conflictelor ar permite o confirmare rapid a recepionrii cadrului (Tokoro i Tamaru, 1977). Tot ceea ce ar fi necesar este s se rezerve prima cuant de conflict care urmeaz unei transmisii cu succes pentru staia destinaie.

Performanele standardului 802.3


S examinm pe scurt performanele standardului 802.3 n condiii de ncrcare mare i constant, adic, k staii gata mereu s transmit. O analiz riguroas a algoritmului de regresie exponenial binar ar fi complicat. n schimb vom proceda ca Metcalfe i Boggs (1976) i vom presupune o probabilitate de retransmisie constant pentru fiecare cuant. Dac fiecare staie

* Aa cum procedeaz antrenorul unui boxer cnd hotrte ca acesta s abandoneze lupta.

.SEC.43

STANDARDUL IEEE 802 PENTRU LAN-URI SI MAN-URI

263

timpul unei cuante:de conflict cu probabilitatea p, probabilitatea A ea o staie s primeasc canalul n aceast cuant este A = kp(l-p)k'1 (4-6)

A este maxim cnd/? = l/k, CVLA -> l/e atunci cnd k -> >. Probabilitatea ca intervalul de conflict s aib exact/ cuante este A (1 - A) y'\ astfel c numrul mediu de cuante pe conflict este dat de:

;=O

ntruct fiecare cuant dureaz-2% intervalul de conflict mediu, w, este 2%IA. Presupunnd/? optim, numrul mediu de cuante de conflict nu este niciodat mai mare dect e, deci w este cel mult 2TC = 5.4T. Dac pentru a transmite un cadru de lungime medie sunt necesare P secunde pentru a fi transmis, atunci cnd multe staii au cadre de transmis, Eficienta canalului = (4-7)

Aici vedem cum intr lungimea maxim a cablului dintre oricare dou staii n calculul performanelor, sugernd i alte topologii dect cea din Fig. 4-19(a). Cu ct cablul este mai lung, cu att intervalul de conflict este mai lung. Permind cel mult 2.5 km de cablu i patru repetoare ntre oricare dou transiyere, timpul dus-ntors (round-trip time) poate fi limitat la 51.2 usec, care la 10 Mbps corespunde la 512 bii sau 64 de octei, lungimea minim a unui cadru. Este instructiv s formulm ecuaia (4-7) n termeni lungime de cadru i7," lrgime de band a reelei B, lungime a cablului L i vitez de propagare a semnalului c, pentru cazul optim cu e cuante de conflict pe cadru. Cu P = F/B, ecuaia (4-7) devine: Eficienta canalului = \ + 2BLe/cF (4-8) '

Atunci cnd al doilea termen al numitorului este mare, eficiena reelei va fi mic. Mai precis, creterea lrgimii de band sau a distanei (produsul BL) reduce eficiena pentru o lungime dat a cadrului. Din nefericire, o mare parte din cercetarea n domeniul hardware-ului de reea a intit exact creterea acestui produs. Oamenii doresc lrgime de band mare pe distane lungi (de exemplu, MAN-urile cu fibr optic), ceea ce sugereaz c 802.3 poate s nu fie cel mai bun sistem pentru aceste aplicaii. In Fig. 4-23 este trasat eficiena canalului n funcie de numrul staiilor gata de transmisie, pentru 2% = 51.2 usec i o rat de transmisie a datelor de 10 Mbps, folosind ecuaia (4-12). Cu o mrime a cuantei de 64 de octei, nu este surprinztor faptul c nu sunt eficiente cadrele de 64 de

264

SUBNIVELUL DE ACCES LA MEDIU

octei. Pe de alt parte, cu cadre de 1Q24 de octei i o valoare asimptotic de e cuante de 64 de pe interval de conflict, perioada de conflict este de 174 de octei, iar eficiena este 0.85.
1.0 0.9 0.8 5 0.7 "5 0.6 Cadre de 256 de octei Cadre de 1024 de octei Cadre de 512 de octei

0.5

0.4
0.3 0.2 0.1 0 1

Cadre de 128 de octei Cadre de 64 de octei

2 4 8 16 32 64 128 Numrul staiilor care ncearc s transmit

_L

J_

I
256

Fig. 4-23. Eficiena 802.3 la 10 Mbps cu dimensiunea cuantelor de 512 bii. Pentru a determina numrul mediu de staii gata de transmisie n condiiile unei ncrcri mari, putem utiliza urmtoarea observaie (brut). Fiecare cadru acapareaz canalul pentru o perioad de conflict i un interval de transmisie a unui cadru, totaliznd un timp de P + w secunde. Numrul de cadre pe secund este prin urmare 1/(P + w). Dac fiecare staie genereaz cadre cu o rat medie de A, cadre/sec, atunci cnd sistemul este n starea k*, rata total de intrare combinat a tuturor staiilor neblocate este de kX cadre/sec. Deoarece la echilibru ratele de intrare i de ieire trebuie s fie identice, putem egala aceste dou expresii i rezolva pentru k (notai c w este funcie de k). O analiz mai sofisticat este dat n (Bertsekas i Gallager,1992). Probabil c merit s menionm c s-au realizat numeroase analize teoretice ale performanelor pentru 802.3 (i pentru alte reele). De fapt, toat aceast munc a presupus c traficul este de tip Poisson. Pe msur ce cercettorii au nceput s se uite la datele reale, s-a descoperit c traficul n reea este rareori Poisson, n schimb este autosimilar (Paxson i Floyd,1994; i Willinger .a., 1995). Aceasta nseamn c prin calcularea unor medii pe perioade lungi de timp nu se netezete traficul. Numrul mediu de pachete n fiecare minut'alunei ore variaz la fel de mult ca i numrul mediu de pachete n fiecare secund a unui minut* Consecina acestei descoperiri este c majoritatea modelelor de trafic n reea nu se aplica lumii reale i ar trebui luate cu un pic (sau, mai bine, cu o ton) de sare!

k staii gata de transmisie

SEC. 4.3

STANDARDUL IEEE 802 PENTRU LAN-URIIMAN-URI

265

LAN^uri 802.3 comutate

Pe msur ce la un LAN 802.3 sunt adugate tot mai multe staii, traficul va crete. n cele din urm, LAN-ul se va satura. O cale de ieire din aceast situaie este mrirea vitezei, s zicem, de la 10 Mbps la 100 Mbps. Aceast soluie necesit renunarea la toate plcile de adaptoare de 10 Mbps si cumprarea altora noi, ceea ce este scump. Dac cipurile 802.3 se afl pe plcile de baz ale calculatoarelor, s-ar putea chiar ca nlocuirea lor s nu fie posibil. Din fericire, este posibil o soluie diferit, mai puin drastic: un LAN 802.3 comutat ca cel din Fig. 4-24. Inima acestui sistem este un comutator care conine un fund de sertar (backplane) de mare vitez i, tipic, loc pentru 4 pn la 32 de plci de reea plug-n, fiecare avnd ntre unu i opt conectori. Cel mai des, fiecare conector are o conexiune prin perechi torsadate de tip lOBase-T cu un singur calculator gazd.
Comutator Spre gazde

Conector

LAN 802.3

Hub

I Spre gazde

\
Conexiune 10Base-T' Spre calculatoarele gazd

Spre gazde

Fig. 4-24. Un LAN 802.3 comutat. Atunci cnd o staie dorete s transmit un cadru 802.3, trimite un cadru standard ctre comutator. Placa plug-n care primete cadrul verific dac el este destinat pentru una din celelalte staii conectate la aceeai plac. Dac da, cadrul este copiat acolo. Dac nu, cadrul este trimis prin fundul de sertar de mare vitez ctre placa staiei destinaie. Fundul de sertar ruleaz n mod obinuit la peste 1 Gbps folosind protocolul proprietar. Ce se ntmpl dac dou calculatoare legate la aceeai plac plug-n transmit cadre n acelai timp? Depinde de cum a fost construit placa. O posibilitate este ca toate porturile de pe plac s fie legate mpreun pentru a forma un LAN local pe-plac. Coliziunile din acest LAN pe-plac vor fi detectate si tratate la fel ca orice alt coliziune dintr-o reea CSMA/CD - cu retransmisii utiliznd algoritmul de regresie binar. Cu acest tip de plac plug-n, este posibil o singur transmisie pe plac la un moment dat, dar toate plcile pot transmite n paralel. Astfel concepute, fiecare dintre plci i formeaz propriul su domeniu de coliziune (collision domain), independent de celelalte. Cu cellalt tip de plac plug-n, fiecare port de intrare utilizeaz un registru tampon, astfel nct cadrele care vin sunt stocate n memoria RAM inclus n plac, pe msur ce sosesc. Aceast concepie permite tuturor porturilor de intrare s recepioneze (i s transmit) cadre

266

SUBNIYELUL DE ACCES LA MEDIU

CAP. 4

n acelai timp, pentru operare full-duplex, n paralel. Odat ce un cadru a fost recepionat n ntregime, placa poate verifica dac el este destinat pentru un alt port de pe aceeai plac, sau
A A

pentru un port aflat la distan. In primul caz, el poate fi transmis direct la destinaie. In cel de-al doilea, el trebuie transmis prin fundul de sertar ctre placa corespunztoare. n acest mod, fiecare port este un domeniu de coliziune separat, deci nu se mai produc coliziuni. Adesea productivitatea ntregului sistem poate fi mrit cu un ordin de mrime peste 10Base-5, care are un singur domeniu de coliziune pentru ntreg sistemul. ntruct comutatorul st i ateapt cadre standard 802.3 pe fiecare port de intrare, putem folosi unele porturi drept concentratori. n Fig. 4-24, portul din colul din dreapta sus este conectat nu la o singur staie, ci la un concentrator cu 12 porturi. Pe msur ce cadrele sosesc la concentrator, ele concureaz pentru LAN-ul 802.3 n mod obinuit, cu coliziuni i algoritm de regresie binar. Cadrele transmise cu succes ajung la comutator, unde sunt tratate ca orice cadru de intrare: sunt ndreptate ctre linia de ieire corect prin fundul de sertar de vitez mare. Dac toate porturile de intrare sunt conectate la concentratoare, nu la staii individuale, comutatorul devine doar o punte ntre reele de tip 802.3. Punile vor fi studiate mai trziu n acest capitol.
4.3.2 Standardul IEEE 802.4: LAN de tip jeton pe magistral

Dei 802.3 este larg utilizat n birouri, n timpul dezvoltrii standardului 802, cei de la General Motors i din alte companii interesate n automatizarea fabricilor au avut serioase rezerve referitoare la acesta. n primul rnd, datorit protocolului MAC probabilistic, cu puin neans o staie ar putea atepta un timp nedefinit pentru a expedia un cadru (adic, cazul cel mai defavorabil este nelimitat). n al doilea rnd, cadrele 802.3 nu au prioriti, ceea ce le face nepotrivite pentru sistemele de timp real n care cadrele importante nu trebuie s atepte dup cele neimportante. Un sistem simplu n care se cunoate cazul cel mai defavorabil este un inel n care staiile trimit pe rnd cadre. Dac exist n staii, iar expedierea unui cadru dureaz T secunde, nici un cadru nu va avea de ateptat vreodat mai mult de nT secunde pentru a fi transmis. Persoanelor din comitetul 802 nsrcinate cu automatizarea fabricilor le-a plcut ideea conceptual a unui inel, dar nu i implementarea fizic, deoarece o ntrerupere n cablul inelului ar cauza cderea ntregii reele. Pe deasupra, ei au observat c un inel se potrivete prea puin cu topologia liniar a majoritii liniilor de asamblare. Ca rezultat, a fost dezvoltat un nou standard, avnd robusteea cablului de difuzare 802.3, dar comportarea cunoscut n cazul cel mai defavorabil a unui inel.
17
20

Cablu coaxial de band larg,.

\ Inel logic

\
Aceast staie II nu face parte 19 din inelul logic

13

11 7 Direcia micrii jetonului

Fig. 4-25. Un token-bus.

SEC. 4.3

STANDARDUL JEEE 802 PENTRU LAN-URI I MAN-URI

267

, Acest standard, 802.4 (Dirvin i Miller, 1986; i IEEE, 1985b), descrie un LAN numit token-bus (LAN cu jeton pe magistral). Din punct de vedere fizic, token-bus este un cablu liniar sau n form de arbore, la care sunt ataate staiile. Din punct de vedere logic, staiile sunt organizate ntr-un inel (vezi Fig. 4-25), fiecare staie cunoscnd adresele staiilor din stnga" sa i din dreapta" sa. Atunci cnd inelul logic este iniializat, staia cu cel mai mare numr poate trimite primul cadru. Dup aceea, transfer permisiunea de a transmite ctre vecinul imediat urmtor, emind ctre acesta un cadru special de control numit jeton (token). Jetonul strbate circular inelul logic, numai deintorul jetonului avnd permisiunea de a transmite cadre. ntruct o singur staie deine jetonul la un moment dat, nu se produc coliziuni. O observaie important de care trebuie s ne dm seama este c ordinea fizic n care staiile sunt conectate la cablu nu are importan. Deoarece cablul este n esen un mediu de difuzare, fiecare staie recepioneaz fiecare cadru, ignorndu-le pe cele care nu i sunt destinate. Atunci cnd o staie transfer jetonul, ea emite un cadru jeton adresat special vecinului ei logic din inel, indiferent unde se afl acesta localizat fizic pe cablu. Merit de asemenea s notm c, atunci cnd staiile sunt pornite prima oar, ele nu se vor afla n inel (de exemplu, staiile 14 i 19 din Fig. 4-25), deci protocolul MAC are prevzut posibilitatea de adugare i de eliminare a staiilor din inel. Protocolul MAC 802.4 este foarte complex, fiecare staie trebuind s gestioneze zece ceasuri diferite i peste dou duzini de variabile interne de stare. Standardul 802.4 este mult mai lung dect 802.3, umplnd mai mult de 200 de pagini. Cele dou standarde sunt, de asemenea, destul de diferite ca stil, 802.3 oferind protocoalele ca proceduri Pascal, n timp ce 802.4 le d ca automate cu stri finite, cu aciunile scrise n Ada . Pentru nivelul fizic, token-bus utilizeaz cablul coaxial de band larg de 75 ohmi, utilizat la televiziunea prin cablu. Sunt admise att sistemele cu cablu simplu ct i cele cu cabluri duale, cu sau fr terminatori. Sunt permise trei scheme diferite de modulaie analogic: deplasare de frecven cu faz continu, deplasare de frecven cu faz coerent i deplasare de faz cu modulaie de amplitudine duo-binar multinivel. Sunt posibile viteze de 1, 5 i 10 Mbps. n plus, schemele de modulaie nu furnizeaz doar modaliti de reprezentare pentru 0,1 i cablu liber, ci i trei alte simboluri utilizate pentru controlul reelei. n concluzie, nivelul fizic este total incompatibil cu 802.3 i mult mai complicat. Protocolul subnivelului MAC la token-bus Atunci cnd este iniializat inelul, staiile sunt inserate n el n ordinea adreselor de staie, de la cea mai mare la cea mai mic. Transferul jetonului se face de asemenea de la adresele mari la cele mici. De fiecare dat cnd o staie capt jetonul, ea poate transmite cadre o anumit perioad de timp; dup aceea trebuie s transfere jetonul mai departe. n cazul n care cadrele sunt destul de scurte, pot fi trimise mai multe cadre con|qei|v. Dac staia nu are date de transmis, ea transfer jetonul de ndat ce 1-a recepionat. ii Token-bus definete patru clase de prioriti: 0,2,4 i 6 pentru trafic, cu 0 cea mai mic i 6 cea mai mare. Cel mai uor este s ne gndim c fiecare staie este mprit intern n patru substaii, una pentru fiecare nivel de prioritate. Pe msur ce datele intr n subnivelul MAC venind de deasupra, ele sunt verificate pentru a determina prioritatea i apoi dirijate ctre una din cele patru substaii. Astfel, fiecare staie i pstreaz propria a coad de cadre de transmis.

268

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Atunci cnd jetonul sosete la staie prin cablu, el este transferat n interior substaiei cu prioritatea 6, care poate ncepe s transmit cadre, dac are vreunul. Cnd a terminat (sau cnd timpul su a expirat), jetonul este transferat intern substaiei cu prioritatea 4, care apoi poate transmite cadre pn cnd timpul ei expir, moment n care jetonul este transferat substaiei cu prioritatea 2. Acest proces se repet pn cnd substaia cu prioritatea 0 i-a transmis toate cadrele sau timpul ei a expirat. n ambele cazuri, n acest moment jetonul este trimis urmtoarei staii din inel. Fr a intra n toate detaliile despre cum sunt gestionate diferitele ceasuri, ar trebui s fie clar c, setnd corect ceasurile, putem fi siguri c o fraciune garantat din timpul total de deinere al jetonului poate fi alocat traficului de prioritate 6. Prioritile mai mici vor fi nevoite s foloseasc ceea ce a mai rmas. Dac substaiile cu prioriti mari nu au nevoie de ntreg timpul care le-a fost alocat, substaiile cu prioriti mai mici pot beneficia de timpul rmas, deci acesta nu va fi pierdut. Aceast schem de prioriti, care garanteaz traficului de prioritate 6 o fraciune cunoscut din lrgimea de band a reelei, poate fi folosit pentru implementarea traficului de timp real. De exemplu, s presupunem c parametrii unei reele de 50 de staii rulnd la 10 Mbps au fost reglai pentru a da traficului de prioritate 61/3 din lrgimea de band. Atunci fiecare staie are garantai 67 Kbps pentru traficul de prioritate 6. Aceast lrgime de band poate fi utilizat pentru sincronizarea roboilor pe o linie de asamblare sau pentru un canal digital de voce pe staie, iar puinul care a mai rmas pentru informaiile de control. Formatul cadrului token-bus este prezentat n Fig. 4-26. Din nefericire, acesta este diferit de formatul cadrului 802.3. Preambulul este folosit pentru sincronizarea ceasului receptorului, ca la 802.3, cu excepia faptului c aici poate fi i un singur octet. Cmpurile Delimitator de nceput (Starting delimiter) i Delimitator de sfrit (Ending delimiter) sunt folosite pentru a marca limitele cadrului. Ambele cmpuri conin codificarea analogic a simbolurilor, altele dect 0 sau 1, astfel nct ele nu pot aprea accidental n datele utilizatorilor. n consecin nu este nevoie de cmp de lungime.
Octei > 1 1 1 2 sau 6 Adresa destinaiei Controlul cadrului Delimitator de nceput Preambul Delimitator de sfrit 2 sau 6 Adresa sursei 0-8182

ff
Date Sum de control

Fig. 4-26. Formatul cadrului 802.4. Cmpul Controlul cadrului (Frame control) este folosit pentru a deosebi cadrele de date de cele de control. Pentru cadrele de date, acest cmp conine prioritatea cadrului. De asemenea el poate conine un indicator care s cear staiei destinaie confirmarea recepiei corecte sau incorecte a cadrului. Fr acest indicator, destinaiei nu i va fi permis s transmit nimic, deoarece nu posed jetonul. Acest indicator transform token-bus-ul n ceva asemntor cu schema de confirmare Tokoro i Tamaru. Pentru cadrele de control, cmpul Controlul cadrului este folosit pentru a specifica tipul cadrului. Tipurile permise includ cadre de transfer al jetonului i diverse cadre de ntreinere a

SEC 4.3

STANDARDUL IEEE 802 PENTRU IAN-URI I MAN-URI

siy mecanismul care.; la noi staii s intre n inel, mecanismul care permite staiilor prsirea inelului i aa mai departe. Notai c protocolul 802.3 nu are nici un cadru de control. Tot ce face nivelul su MAC este s furnizeze o cale de a transmite cadre prin cablu; nu i pas ce conin acestea. Cmpurile Adres destinaie (Destination address) i Adres surs (Source address) sunt la fel ca n 802.3 (ntr-adevr, cele dou grupuri au discutat ntre ele; dar nu prea au czut de acord). Ca i n 802.3, o reea dat trebuie s utilizeze numai adrese pe 2 octei sau numai adrese pe 6 octei, nu un amestec pe acelai cablu. Standardul 802.4 iniial permite ambele dimensiuni. Adresarea individual si de grup i desemnarea adreselor locale i globale sunt identice cu cele de la 802.3. Cmpul Date (Data) poate avea pn la 8182 de octei atunci cnd sunt utilizate adrese de 2 octei i pn la 8174 de octei atunci cnd sunt utilizate adrese de 6 octei. Acesta este de mai mult de 5 ori mai lung dect cadrul 802.3 maxim, care a fost fcut scurt pentru a preveni situaia n care o staie ocup canalul prea mult. Cu token-bus, ceasurile pot fi utilizate ca o msur mpotriva acaparrii, dar este bine s putem transmite cadre lungi atunci cnd traficul de timp real nu este o cerin. Suma de control (Checksum) este folosit pentru detectarea erorilor de transmisie. Ea folosete acelai algoritm i polinom ca i 802.3. Cadrele de control ale token-bus-ului sunt prezentate n Fig. 4-27. Ele vor fi discutate n continuare. Sigurul cadru pe care l-am vzut pn acum este cadrul jeton, folosit pentru a trece jetonul de la o staie la alta. Majoritatea celorlalte cadre se refer la adugarea i eliminarea staiilor din inelul logic.
Cmpul de control al cadrului 00000000 00000001 00000010 00000011 00000100 00001000 00001100 Nume Claimjoken (Cerejeton) Solicit_successor_1 (Solicit_succesor_) Solicitisuccessor_2 (Solcit_suecesor_2) Whojollows (Cine_urmeaz) Resolve_contention (Rezolvare_conflict) Token (Jeton) Set_succesor (Stabilire_succesor) Semnificaie Cere jetonul la iniializarea inelului Permite staiilor s intre n inel Permite staiilor s intre n inel

Recuperare dup pierderea jetonului Utilizat atunci cnd mai multe staii vor s intre Transmite jetonul Permite staiei s ias din inel

Fig. 4-27. Cadrele de control la token-bus.


ntreinerea inelului logic

Din cnd n cnd, unele staii sunt pornite i vor s se ataeze la inel. Altele sunt oprite i vor s l prseasc. Protocolul subnivelului MAC furnizeaz o specificare detaliat a modului n care este realizat exact acest lucru, meninnd n acelai timp limita cunoscut a rotaiei jetonului n cazul cel rriai defavorabil. n continuare vom schia pe scurt mecanismele utilizate. Odat ce inelul a fost stabilit, interfaa fiecrei staii pstreaz intern adresele staiilor predecesoare i succesoare. Periodic, deintorul jetonului trimite unul din cadrele SOLICIT_SUCCESSOR (solicit succesor) prezentate n Fig. 4-27, pentru a solicita cereri de la staiile care doresc s se alture inelului. Cadrul ofer adresa expeditorului i adresa succesorului.

270

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Doar staiile cuprinse ntre aceste limite pot cere intrarea (pentru a menine inelul sortat descresctor dup adresele staiilor). Dac nici o staie nu cere s intre n timpul unei cuante (2r, ca n 802.3), fereastra de rspuns (response window) este nchis, iar deintorul jetonului i continu activitatea normal. Dac exact o staie se ofer s intre, ea este inserat n inel i devine succesorul deintorului jetonului. Dac dou sau mai multe staii cer s intre, cadrele lor se vor ciocni i vor fi distruse, ca n 802.3. Apoi deintorul jetonului va rula un algoritm de arbitrare, ncepnd cu difuzarea unui cadru RESOLVE_CONTENTION (rezolvare conflict). Algoritmul este o variant a numrtorii inverse binare, folosind doi bii deodat. Mai mult, toate interfeele staiilor menin intern doi bii aleatorii. Aceti bii sunt utilizai pentru a ntrzia toate cererile cu 0,1, 2 sau 3 cuante, pentru a reduce conflictele. Cu alte cuvinte, dou staii intr n coliziune atunci cnd fac o cerere numai dac cei doi bii de adres cureni sunt identici i se ntmpl s aib aceiai doi bii aleatorii. Pentru a prentmpina ca staiile care trebuie s atepte 3 cuante s fie permanent dezavantajate, biii aleatorii sunt regenarai de fiecare dat cnd sunt folosii sau periodic la fiecare 50 msec. Solicitarea de noi staii nu poate interfera cu cazul cel mai defavorabil garantat pentru rotaia jetonului. Fiecare staie are un ceas care este resetat ori de cte ori primete jetonul. Cnd sosete jetonul, vechea valoare a acestui ceas (adic timpul de rotaie anterior al jetonului) este inspectat chiar nainte ca ceasul s fie resetat. Dac el depete o anumit valoare de prag, nseamn c n ultima vreme traficul a fost prea aglomerat, aa c acum nu mai poate fi solicitat nici o cerere de alturare. Oricum, numai o singur staie poate intra la fiecare solicitare, pentru a limita timpul consumat cu ntreinerea inelului. Nu exist nici o garanie n privina timpului de ateptare necesar pentru ca o staie s se alture inelului atunci cnd traficul este aglomerat, dar n practic el nu ar trebui s fie mai mare de cteva secunde. Aceast incertitudine este nefericit, fcnd 802.4 mai puin potrivit pentru sistemele de timp real dect pretind adesea suporterii lui. Prsirea inelului este uoar. O staie X, cu succesorul S i predecesorul P, prsete inelul prin trimiterea ctre P a unui cadru SET_SUCCESOR (stabilire succesor) care i spune c de acum ncolo succesorul lui va fi 5 n loc de X. Apoi X nceteaz transmisia. Iniializarea inelului este un caz special de adugare de noi staii. Considerai un sistem inactiv, cu toate staiile oprite. Atunci cnd prima staie pornete, ea observ c nu exist trafic o anumit perioad de timp. Apoi emite un cadru CLAIM_TOKEN (cere jeton). Neauzind pe nimeni concurnd pentru jeton, creeaz un jeton i iniializeaz un inel care o conine numai pe ea. Periodic, solicit cereri pentru ca noi staii s se alture. Pe msur ce sunt pornite noi staii, ele vor rspunde acestor solicitri i se vor altura inelului conform algoritmului de tratare a conflictelor descris anterior. n cele din urm, fiecare staie care vrea s intre n inel va putea s o fac. Dac primele dou staii sunt pornite simultan, protocolul rezolv acest lucru lsndu-le s cear jetonul folosind algoritmul numrtorii inverse binare standard modificat i cei doi bii aleatorii. Datorit erorilor de transmisie sau a problemelor hardware, se pot ivi probleme n legtur cu inelul logic sau cu jetonul. De exemplu, ce se ntmpl dac o staie ncearc s transfere jetonul unei staii care a czut? Soluia este simpl. Dup ce a transferat jetonul, o staie ascult s vad dac succesorul ei transmite un cadru sau transfer jetonul. Dac nu face nici una, nici alta, jetonul este transferat a doua oar. Dac nici de data asta nu se ntmpl nimic, staia transmite un cadru WHO_FOLLOWS (cine urmeaz), specificnd adresa succesorului ei. Cnd succesorul staiei czute vede un cadru

STANDARDUL ffiEE 802 PENTRU LAN-URI I.MAN-URI

271

mdjen^pe^ecesoijul: ei, .ea rspunde? itrimiBiun cadru SETJSU.GEQR crei succesor a czut, numindu-se pe sine ca nou succesor. n acest fel staia czut este eliminat din.ineL Acum s presupunem c o staie nu reuete s transfere jetonul succesorului ei i nici s localizeze succesorul succesorului ei, care poate fi de asemenea czut. Atunci adopt o nou strategie, trimind un cadru SOLICIT_SUCCESOR_2 pentru a vedea dac mai este cineva viu. Protocolul standard de tratare a conflictelor este rulat nc o dat, cu toate staiile care vor s intre n inel concurnd pentru un loc. n cele din urm, inelul este refcut. Un alt tip de problem apare dac deintorul jetonului cade i, odat cu el, dispare i jetonul. Aceast problem este rezolvat folosind algoritmul de iniializare a inelului. Fiecare staie are un ceas care este reiniializat ori de cte ori n reea apare un cadru. Cnd acest ceas atinge o valoare de prag, staia emite un cadru CLAIM_TOKEN i algoritmul numrtorii inverse binare modificat, cu bii aleatorii, determin cine primete jetonul. O alt problem o reprezint jetoanele multiple. Dac o staie deintoare de jeton sesizeaz o transmisie de la o alt staie, ea renun la propriul jeton. Dac au fost dou, acum va fi unul. Dac au fost mai mult de dou, acest proces-va fi repetat mai devreme sau mai trziu, pn cnd va rmne unul singur. Dac, accidental, sunt eliminate toate jetoanele, atunci lipsa activitii va determina una sau mai multe staii s ncerce obinerea unui nou jeton. 4.33 Standardul DEEE 802.5: LAN de tip jeton pe inel Reelele de tip inel exist de muli ani (Pierce,1972) i au fost ndelung utilizate att pentru reele locale ct i pentru cele de mare ntindere. Printre multele lor caracteristici atractive se afl i faptul c un inel nu este de fapt un mediu real de difuzare, ci o colecie de legturi punct-la-punct individuale care ntmpltor formeaz un cerc. Legturile punct-la-punct implic o tehnologie bine pus la punct i testat n practic i pot funciona pe cabluri din perechi torsadate, cabluri coaxiale sau fibre optice. Ingineria inelului este de asemenea aproape n ntregime digital, n timp ce 802.3, de exemplu, are o component analogic substanial pentru detecia coliziunii. Un inel este i echitabil i are o limit superioar cunoscut pentru accesul la canal. Din aceste motive, IBM a ales inelul ca LAN al su, iar IEEE a aprobat standardul token-ring sub denumirea de 802.5 (IEEE, 1985c; Latif .a., 1992). O parte important n proiectarea i analiza oricrei reele de tip inel este lungimea fizic" a unui bit. Dac rata datelor n inel este de JR Mbps, un bit este emis la fiecare l/R usec. n cazul unei viteze tipice de propagare a semnalului de aproximativ 200 m/usec, fiecare bit ocup 200/R metri pe inel. Aceasta nseamn, de exemplu, c un inel de 1 Mbps, a crui circumferin este de 1000 m, poate conine doar 5 bii simultan. Implicaiile numrului de bii de pe inel vor fi clarificate mai trziu. Dup cum am menionat anterior, un inel const n realitate dintr-o colecie de interfee de inel conectate prin linii punct-la-punct. Fiecare bit sosit la o interfa este copiat ntr-un tampon de 1 bit i apoi copiat iari pe inel. n timp ce se afl n tampon, bitul poate fi inspectat i eventual modificat nainte de a fi expediat. Acest pas de copiere introduce o ntrziere de 1 bit la fiecare interfa. n Fig. 4-28 sunt artate un inel i interfeele sale. ntr-un token-ring, un ablon special de bii, numit jeton, circul de-a lungul inelului ori de cte ori toate staiile sunt inactive. Gnd o staie vrea s transmit un cadru, trebuie s preia jetonul i s l elimine din inel nainte de a transmite. Acest lucru este realizat inversnd un singur bit din cei 3

272

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

octei ai jetonului, care se transform instantaneu n primii 3 octei ai unui cadru normal'de date. Deoarece exist un singur jeton, numai o singur staie poate transmite la un moment dat, rezolvnd astfel problema accesului la canal n acelai mod n care este rezolvat i de token-bus.
Interfaa cu inelul Staie ntrziere Interfaa de 1 bit cu inelul

(a)

(b)

(c)

Fig. 4-28. (a) O reea de tip inel. (b) Modul recepie, (c) Modul transmisie. O consecin a proiectrii la token-ring este c inelul nsui trebuie s aib o ntrziere suficient pentru a conine un jeton complet care s circule atunci cnd toate staiile sunt inactive. ntrzierea are dou componente: o ntrziere de 1 bit introdus de fiecare staie i ntrzierea de propagare a semnalului. n aproape toate inelele proiectanii trebuie s presupun c staiile pot fi oprite oricnd, n special noaptea. Dac interfeele sunt alimentate de inel, nchiderea staiilor nu are efect asupra lor, dar dac interfeele sunt alimentate extern, ele trebuie proiectate astfel, nct s conecteze intrarea la ieire atunci cnd alimentarea este oprit, eliminnd astfel ntrzierea de 1 bit. Aici ideea este c ntr-un inel scurt ar putea fi nevoie de introducerea unei ntrzieri artificiale noaptea, pentru a fi siguri c ncape un jeton n el. Interfeele inelului au dou moduri de operare, recepie i transmisie. n modul recepie, biii de intrare sunt pur i simplu copiai la ieire, cu o ntrziere de 1 bit, aa cum se arat n Fig. 4-28(b). n modul transmisie, n care se ajunge numai dup ce s-a primit jetonul, interfaa ntrerupe legtura ntre intrare i ieire, introducnd propriile informaii pe inel. Pentru a putea comuta din modul recepie n modul transmisie n interval de 1 bit, interfaa are nevoie, de obicei, s stocheze unul sau mai multe cadre proprii, dect s le aduc de la staie ntr-un timp att de scurt. Pe msur ce biii care s-au propagat pe inel se ntorc, ei sunt eliminai din el de ctre emitor. Staia emitoare poate fie s i salveze, pentru a-i compara cu datele originale, monitoriznd astfel sigurana transmisiei prin inel, fie s i elimine. Deoarece pe inel nu apare niciodat ntregul cadru n acelai timp, aceast arhitectur de inel nu limiteaz dimensiunea cadrelor. Dup ce o staie a terminat transmisia ultimului bit al ultimului su cadru, ea trebuie s regenereze jetonul. Atunci cnd ultimul bit al cadrului a executat un tur i s-a ntors, el

SEC. 4.3

STANDARDUL ffiEE 802 PENTRU LAN-URI SI MAN-URI

273

ttebuieeliminat,iar interfaa:trebuie.s.omute imediat napoi m modul recepie, pentru a evita eliminarea jetonului care ar putea urma dac nici o alta staie nu 1-a eliminat. ntr-un token-ring confirmrile sunt simplu de folosit Formatul cadrului trebuie s includ numai un cmp de 1 bit pentru confirmri, iniial pus pe 0. Atunci cnd staia destinaie a recepionat un cadru, seteaz bitul respectiv pe 1..Desigur, dac o confirmare nseamn c suma de control a fost verificat, bitul trebuie s urmeze sumei de control, iar interfaa de inel trebuie s fie capabil s verifice suma de control imediat dup ce a sosit ultimul ei bit. Atunci cnd un cadru este difuzat mai multor staii, trebuie utilizat un mecanism de confirmare mai complicat (dac se utilizeaz vreunul). Atunci cnd traficul este redus, jetonul va petrece mare parte din timp nconjurnd nestingherit inelul. Ocazional, o staie l va prelua, va transmite un cadru i apoi va elibera un nou jeton. Oricum, atunci cnd traficul este ncrcat, astfel nct exist o coad la fiecare staie, imediat ce o staie i termin transmisia i regenereaz jetonul, urmtoarea staie de pe parcurs va observa siva elimina jetonul. In acest fel permisiunea de a transmite este cedat circular prin inel, n genul round-robin. n condiii de ncrcare mare, eficiena reelei poate s se apropie de 100%.
-Staie

Cablu Releu de ocolire

Conector

' Centru de cablaj

Fig. 4-29. Patru staii conectate printr-un centru de cablaj. Acum s ne ntoarcem de la token-ring-uri n general la standardul 802.5 n particular. La nivelul fizic, 802.5 cere perechi torsadate ecranate funcionnd la 1 sau 4 Mbps, dei IBM a introdus mai trziu o versiune la 16 Mbps. Semnalele sunt codificate utiliznd codificarea Manchester diferenial [vezi Fig. 4-20(c)] cu nivelurile nalte i sczute alese ca fiind semnale pozitive i negative cu valori

274

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

absolute ntre 3.0 i 4.5 voli. n mod normal, codificarea Manchester diferenial utilizeaz combinaii sus-jos sau jos-sus pentru fiecare bit, dar 802.5 utilizeaz i sus-sus i jos-jos n anumii octei de control (de exemplu, pentru a marca nceputul i sfritul unui cadru). Aceste semnale nepurttoare de informaie apar ntotdeauna n perechi consecutive, astfel nct s nu introduc o component de curent continuu n voltajul inelului. O problem cu reelele inel este c dac se ntrerupe cablul undeva, inelul moare. Aceast problem poate fi rezolvat foarte elegant prin utilizarea unui centru de cablaj (wire center), aa cum se arat n Fig. 4-29. Dei logic este un inel, din punct de vedere fizic fiecare staie este conectat la centru de cablaj printr-un cablu coninnd (cel puin) dou perechi torsadate, una pentru datele ctre staie i alta pentru datele de la staie nuntrul centrului de cablaj se afl relee de ocolire ce sunt alimentate cu curent de la staii. Dac inelul se ntrerupe sau o staie pic, pierderea de curent va decupla releul i va izola staia. Releele pot fi dirijate i prin software pentru a permite programelor de diagnosticare s elimine staiile pe rnd, pentru a gsi staiile i segmentele de inel vinovate. Inelul poate apoi s i continue activitatea, segmentele defecte fiind ocolite. Dei standardul 802.5 nu cere oficial acest tip de inel, denumit adesea inel cu configuraie de stea (star-shaped ring) (Saltzer .a., 1983), pentru a mbunti sigurana i ntreinerea, majoritatea LAN-urilor 802.5 utilizeaz de fapt centre de cablaj. Atunci cnd o reea const din multe grupuri de staii, grupuri aflate la mari distane, poate fi utilizat o topologie cu mai multe centre de cablaj. Imaginai-v numai cum cablul ctre una din staiile din Fig. 4-29 a fost nlocuit printr-un cablu ctre un centru de cablaj ndeprtat. Dei logic toate staiile sunt pe acelai inel, cerinele cablrii sunt mult reduse. Un inel 802.5 care folosete un centru de cablaj are o topologie similar cu o reea 802.3 lOBase-T bazat pe concentratoare, ns formatele i protocoalele sunt diferite. Protocolul subnivelului MAC la Token Ring Funcia de baz a protocolului MAC este simpl. Atunci cnd pe inel nu exist trafic, un jeton de 3 octei circul la nesfrit, ateptnd ca o staie s l preia prin setarea unui bit specific de la 0 la 1, convertind astfel jetonul n secvena nceput-de-cadru. Staia emite apoi restul unui cadru normal de date, aa cum se arat n Fig. 4-30. n condiii normale, primul bit al cadrului va nconjura inelul i se va ntoarce la emitor nainte ca ntregul cadru s fi fost transmis. Numai un inel foarte lung va fi capabil s in chiar i un cadru scurt. n consecin, staia emitoare trebuie s dreneze inelul n timp ce continu s transmit. Aa cum este artat n Fig. 4-28(c), aceasta nseamn c biii care au fcut un tur complet al inelului se ntorc la emitor i sunt eliminai. O staie poate pstra jetonul pentru un interval de deinere a jetonului (token-holding time), care este de 10 msec, dac nu cumva este fixat o valoare diferit la instalare. Dac dup ce a fost transmis primul cadru a rmas destul timp pentru a expedia mai multe cadre, acestea pot fi i ele transmise. Dup ce toate cadrele aflate n ateptare au fost transmise sau dac transmisia unui alt cadru ar depi timpul de deinere a jetonului, staia regenereaz cadrul jeton de 3 octei i l pune n inel.

SEC. 4.3
1

STANDARDUL IEEE 802 PENTRU LANDURI SI MAN-URI


1

275

SDAC ED

(a)
Octei 11 1 2 sau 6 Adresa destinaiei Controlul cadrului Controlul accesului Delimitator de nceput 2 sau 6 Nelimitat Date Sum de control 1 1

SDAC FC

Adresa sursei

-HKDelimitator de sfrit Stare cadru

ED FS

Fig. 4-30. (a) Formatul jetonului, (b) Formatul cadrului de date. Cmpurile Delimitator de nceput (Starting delimiter) i Delimitator de sfrit (Ending delimiter) din Fig. 4.30(b) marcheaz nceputul i sfritul cadrului. Fiecare conine abloane Manchester diferenial nevalide (sus-sus i jos-jos), pentru a le deosebi de octeii de date. Octetul de Control al accesului (Access control) conine bitul de jeton, precum i Bitul de monitor (Monitor bit), Biii de prioritate (Priority bits) i Biii de rezervare (Reservation bits, descrii n continuare). Octetul de Control al cadrului (Frame control) deosebete cadrele de date de diferitele cadre de control posibile. Urmeaz cmpurile Adres destinaie (Destination address) i Adres surs (Source ddress), care sunt aceleai ca i n 802.3 i 802.4. Acestea sunt urmate de date, care pot fi att de lungi ct este necesar, cu condiia ca transmisia cadrului s poat fi efectuat n timpul de deinere a jetonului. Cmpul Sum de control (Checksum), la fel ca i adresele surs i destinaie, este acelai de la 802.3 i 802.4. Un octet interesant, care nu este prezent n celelalte dou protocoale, este octetul de Stare a cadrului (Frame status). Acesta conine biii A i C. Atunci cnd un cadru sosete la interfaa staiei care are adresa de destinaie, ea comut bitul ^4 de pe 0 pe 1, n timp ce acesta trece. Dac interfaa copiaz cadrul pentru staie, ea comut i bitul C de pe 0 pe 1. O staie poate eua n copierea unui cadru datorit lipsei de spaiu n zona tampon sau din alte motive. Atunci cnd staia emitoare preia cadrul din inel, testeaz biii A i C. Sunt posibile trei combinaii: 1. A = 0 i C = 0: destinaia nu exist sau nu este pornit. 2. A =1 i C = 0: destinaia exist, dar cadrul nu este acceptat. 3. A = 1 i C = 1: destinaia exist i cadrul este copiat. Aceast convenie furnizeaz o ronfirmare automat pentru fiecare cadru. Dac un cadru este rejectat, dar staia este prezent, emitorul poate opta s ncerce din nou peste puin timp. Pentru a crete sigurana, biii A i C sunt prezeni de dou ori n octetul de Starea cadrului, ntruct ei nu sunt protejai de suma de control.

276

SUBNWELUL DE ACCES LA MEDIU

CAP. 4

Delimitatorul de sfrit conine un bit E, care este setat atunci cnd o interfa detecteaz o eroare (de exemplu, un ablon non-Manchester acolo unde nu este permis). El mai conine i un bit care poate fi folosit pentru a marca ultimul cadru dintr-o secven logic, ca un fel de bit end-of-file (sfrit de fiier). Protocolul 802.5 are o strategie complex pentru tratarea cadrelor cu prioriti multiple. Cadrul jeton de 3 octei conine n octetul din mijloc un cmp care d prioritatea jetonului. Atunci cnd o staie vrea s transmit un cadru cu prioritatea n, el trebuie s atepte pn cnd poate captura un jeton a crui prioritate este mai mic sau egal cu n. Mai mult, atunci cnd trece un cadru de date, o staie poate ncerca s rezerve urmtorul jeton, scriind prioritatea cadrului pe care dorete s l transmit n Biii de rezervare ai cadrului. Dac acolo a fost deja rezervat o prioritate mai mare, staia nu mai poate face rezervarea. Atunci cnd cadrul curent s-a terminat, urmtorul jeton este generat la prioritatea care a fost rezervat. Gndindu-ne puin, vom vedea c acest mecanism acioneaz ca o prghie unidirecional, ridicnd prioritatea rezervat din ce n ce mai sus. Pentru a elimina aceast problem, protocolul conine cteva reguli complexe. Esena ideii este c staia care crete prioritatea este responsabil pentru micorarea ei atunci cnd a terminat. Notai c aceast schem de prioriti difer substanial de schema de la token-bus, n care fiecare staie i primete ntotdeauna poriunea corect de lrgime de band, indiferent de ce fac celelalte staii. La token-ring, o staie care are numai cadre cu prioritate sczut poate muri de foame ateptnd apariia unui jeton cu prioritate sczut. Este clar, cele dou comitete au avut gusturi diferite cnd au negociat ntre servicii bune pentru traficul de prioritate nalt i egalitate pentru toate staiile.
ntreinerea inelului
A

Protocolul token-bus tinde ctre lungimi considerabile pentru a realiza ntreinerea inelului ntr-un mod complet descentralizat. Protocolul token-ring realizeaz ntreinerea destul de diferit. Fiecare token-ring are o staie monitor (monitor station) care supravegheaz inelul. Dac monitorul cade, un protocol de tratare a conflictelor asigur c o alt staie este aleas rapid ca monitor (fiecare staie are capacitatea de a deveni monitor). Ct timp monitorul funcioneaz corect, numai el este responsabil de funcionarea corect a inelului.
Cmpul de control 00000000 00000010 00000011 00000100 00000101 00000110 Nume Duplicate address test (Test de adres duplicat) Beacon (Baliz) Claim token (Cere jeton) Purge (Epurare) Active monitor present (Exist monitor activ) Standby monitor present (Exist monitor n ateptare) Semnificaie Testeaz dac dou staii au aceeai adres Utilizat la localizarea ntreruperilor din inel ncercare de a deveni monitor Reiniializeaz inelul Emis periodic de monitor Anun prezena unor poteniale monitoare

Fig. 4-31. Cadrele de control la Token Ring.

SEC. 4.3

STANDARDUL IEEE 802 PENTRU LAN-URI I MAN-URI

271

ta crearea inelului sau atunci cnd o staie observ c nu mai exist monitor, ea poate transmite un cadru de control CLAIM_TOKEN (cere jeton). Dac acest cadru nconjoar inelul nainte ca s fie trimis un alt cadru CLAIMJTOKEN, emitorul devine noul monitor (fiecare staie are ncorporat capacitatea de a deveni monitor). Cadrele de control ale token-ring-ului sunt prezentate n Fig. 4-31. Printre responsabilitile monitorului se afl aceea de a observa c jetonul nu s-a pierdut, dar i preluarea iniiativei atunci cnd inelul se ntrerupe, curarea inelului atunci cnd apar cadre deteriorate i supravegherea cadrelor orfane. Un cadru orfan apare atunci cnd o staie transmite n ntregime un cadru scurt ntr-un inel mare i apoi cade sau este oprit nainte de absorbia cadrului. Dac nu se face nimic, cadrul va circula la infinit. Pentru a detecta jetoanele pierdute, monitorul are un ceas care este setat la cel mai lung interval de timp posibil fr jeton: cel n care fiecare staie transmite pe ntregul interval de deinere a jetonului. La expirarea intervalului de timp, monitorut golete Meiul i emite un nou jeton. La apariia unui cadru deteriorat, monitorul l detecteaz datorit formatului su incorect sau a sumei de control, deschide inelul pentru a-1 goli i emite un nou jeton atunci cnd inelul a fost curat. n final, monitorul detecteaz cadrele orfane setnd bitul monitor din octetul de Control al accesului ori de cte ori trec pe la el. Dac un cadru sosit are acest bit setat, nseamn c ceva este n neregul, ntruct acelai cadru a trecut pe la monitor de dou ori fr s fi fost absorbit, aa c monitorul l va absorbi. O ultim funcie a monitorului vizeaz lungimea inelului. Jetonul are o lungime de 24 de bii, ceea ce nseamn c inelul trebuie s fie destul de mare pentru a cuprinde 24 de bii. Dac ntrzierile de 1 bit din staii plus lungimea cablului adunate dau mai puin de 24 de bii, monitorul insereaz bii suplimentari de ntrziere pentru ca jetonul s poat circula. O funcie de ntreinere care nu poate fi realizat de monitor este localizarea ntreruperilor n inel. Dac o staie observ c unul dintre vecinii ei pare mort, trimite un cadru BEACON (baliz), dnd adresa presupusei staii moarte. Cnd acest cadru s-a propagat ct de departe a putut, se poate vedea cte staii sunt oprite i acestea sunt eliminate din inel, utiliznd releele de ocolire din centrul de cablaj, totul realizndu-se fr intervenia operatorului. Este instructiv s comparm abordrile alese pentru controlul token-bus-ului i cel al token-ringului. Comitetul 802.4 a fost speriat de moarte de ideea de a avea vreo component centralizat care ar putea cdea pe neateptate i prbui i sistemul odat cu ea. De aceea ei au proiectat un sistem n care deintorul curent al jetonului are puteri speciale (de exemplu, solicitarea cererilor de alturare la inel), dar n care nici o staie nu este diferit n vreun fel de celelalte (de exemplu, responsabilitatea administrativ atribuit curent pentru ntreinere). Pe de alt parte, comitetul 802.5 a simit c avnd un monitor centralizat se pot trata mult mai uor jetoanele pierdute, cadrele orfane i aa niai departe; n plus, ntr-un sistem normal, staiile cedeaz foarte rar, aa c suportarea ocazional a concurenei pentru un nou monitor nu este o mare dificultate. Preul pltit este c dac vreodat monitorul chiar o ia razna, dar continu s emit periodic cadre de control ACTIVE MONITOR PRESENT (exist monitor activ), nici o staie nu-1 va nlocui. Monitoarele nu pot fi puse la ndoial. Aceast diferen n abordri vine de la domeniile diferite de aplicaii avute n vedere de cele dou comitete. Comitetul 802.4 se gndea la fabrici cu mase mari de metal micndu-se sub controlul calculatorului. Cderile reelei puteau provoca pagube serioase i trebuia prevenite cu.

278

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

orice pre. Comitetul 802.5 era interesat n automatizarea birourilor, unde cderi rare puteau fi tolerate ca pre pentru un sistem mai simplu. Dac 802.4 este sau nu mai fiabil dect 802.5 rmne un subiect controversat. 4.3.4 Comparaie ntre 8023,802.4 i 802.5 Datorit existenei a trei tipuri de LAN-uri diferite i incompatibile, fiecare cu proprieti diferite, multe organizaii sunt confruntate cu ntrebarea: pe care ar trebui s-1 instalm? n aceast seciune vom arunca o privire asupra tuturor celor trei standarde LAN 802, evideniind punctele lor tari i slabe, asemnrile i deosebirile. Pentru nceput, merit s notm c cele trei standarde LAN folosesc aproximativ aceeai tehnologie i au performane relativ similare. In timp ce cercettorii i inginerii din domeniul calculatoarelor pot discuta ore ntregi despre meritele cablului coaxial n comparaie cu cele ale perechii torsadate, cei din departamentele de marketing, personal i contabilitate probabil c nu sunt prea interesai n realitate de una sau alta dintre opiuni. S ncepem cu avantajele lui 802.3. Este de departe tipul cel mai larg folosit n prezent, cu o baz instalat imens i experien n funcionare considerabil. Protocolul este simplu. Staiile pot fi instalate din mers, fr a opri reeaua. Este utilizat un cablu pasiv i nu sunt necesare modemuri. Mai mult, ntrzierea la ncrcare sczut este practic nul (staiile nu trebuie sa atepte pentru un jeton; ele pur i simplu transmit imediat). . Pe de alt parte, 802.3 are o component analogic substanial. Fiecare staie trebuie s fie capabil s detecteze semnalul celei mai slabe staii, chiar i atunci cnd ea nsi transmite, iar toate circuitele de detectare a coliziunilor din transiver sunt analogice. Datorit posibilitii de a avea cadre eliminate prin coliziune, cadrul corect minim este de 64 de octei, ceea ce reprezint o ncrcare suplimentar substanial atunci cnd datele constau doar dintr-un singur caracter de la un terminal. Mai mult, 802.3 este nedeterminist, ceea ce adesea este inadecvat pentru lucru n timp real [dei o oarecare funcionare n timp real este posibil simulnd prin software un token-ring (Venkatramani i Chiueh, 1995)]. De asemenea, el nu are prioriti. Lungimea cablului este limitat la 2.5 km (la 10 Mbps), ntruct lungimea dus-ntors a cablului determin mrimea cuantei, deci i performana. Pe msur ce viteza crete, eficiena scade deoarece timpul de transmisie a cadrului scade, dar intervalul de conflict nu (mrimea cuantei este 2x, indiferent care este rata datelor). Ca o alternativ, cablul ar trebui scurtat. De asemenea, la ncrcare mare, prezena coliziunilor devine o problem major i poate afecta serios productivitatea. Acum s considerm standardul 802.4, token-bus. El utilizeaz echipament de televiziune prin cablu de nalt fiabilitate, care este disponibil n stoc la numeroi furnizori. Este mai determinist dect 802.3, dei pierderi repetate ale jetonului la momente critice pot introduce mai mult nesiguran dect vor suporterii si s admit. Poate lucra cu cadre scurte de lungime minim. De asemenea, token-bus suport prioriti i poate fi configurat s furnizeze o fraciune garantat a limii de band pentru trafic de nalt prioritate, cum ar fi vocea digitizat. De asemenea, are o excelent productivitate i eficien la ncrcare mare, devenind efectiv TDM. n fine, cablul de band larg poate suporta mai multe canale, nu numai pentru date, dar i pentru voce si televiziune.

&r.

SEG. 4.3

STANDARDULIEEE 802 PENTRU LAN-URI I MAN-URI

279

i-; ;-Ba GapMtdimmusurir5istemele.jea-band larg utilizeaz mult tehnologie anabgica:i includ m@cemuri i amplificatoare de band larg. Protocolul este extrem de complex i are o ntrziere substanial la ncrcare sczut (staiile trebuie s atepte ntotdeauna jetonul, chiar i ntr-un sistem inactiv). n sfrit, el este puin potrivit pentru implementri cu fibre optice i are un numr mic de utilizatori. Acum s considerm standardul token-ring. El utilizeaz conexiuni punct-la-punct, ceea ce nseamn c tehnologia este simpl i poate fi complet digital. Inelele pot fi construite utiliznd practic orice mediu de transmisie, de la porumbei cltori la fibre optice. Perechea torsadat standard este ieftin i simplu de instalat. Utilizarea centrelor de cablaj face din token-ring singurul LAN care poate detecta i elimina automat defeciunile de cablu. Ca i la token-bus, sunt posibile prioriti, dei strategia nu este att de corect. Tot ca la tokenbus, sunt posibile cadrele scurte, dar, spre deosebire de token-bus, sunt posibile i cele arbitrar de mari, limitate numai de intervalul de deinere a jetonului. n fine, productivitatea i eficiena la ncrcare mare sunt excelente, ca la token-bus i n contrast cu 802.3. Dezavantajul major este prezena unei funcii de monitor centralizat, care introduce o component critic. Chiar dac un monitor mort poate fi nlocuit, unul bolnav poate cauza dureri de Cap. Mai mult, ca n toate strategiile de transfer al jetonului, exist ntotdeauna ntrzieri la ncrcare sczut, datorit faptului c emitorul trebuie s atepte jetonul. Este de asemenea demn de subliniat faptul c s-au fcut numeroase studii asupra tuturor celor trei LAN-uri. Principala concluzie pe care o putem trage din aceste studii este c nu se poate trage nici o concluzie din ele. ntotdeauna se poate gsi un set de parametri care face ca unul dintre LANuri s par mai bun dect celelalte. n cele mai multe situaii, toate trei funcioneaz bine, aa c, pentru a face o alegere, probabil c sunt mai importani ali factori dect performana.

4.3.5 Standardul IEEE 802.6: Magistral dual cu coad distribuit


Nici unul dintre LAN-urile 802 pe care le-am studiat pn acum nu este potrivit pentru a fi utilizat ca un MAN. Limitrile lungimii cablului i problemele de performan n cazul conectrii a mii de staii le limiteaz la arii de mrimea unui campus. Pentru reele care acoper un ora ntreg, IEEE a definit un MAN, numit DQDB (Distributed Queue Dual Bus), ca standard 802.6. n aceast seciune vom vedea cum lucreaz el. Pentru informaii suplimentare, vezi (Kessler i Train, 1992). O bibliografie de 171 de pagini despre DQDB este dat m (Sadiku i Arvindj 1994). Geometria de baz a 802.6 este ilustrat n Fig. 1-4. Dou magistrale unidirecionale paralele erpuiesc prin ora, cu staii ataate la amndou n paralel. Ambele magistrale au un capt care genereaz un flux constant de celule de cte 53 de octei. Fiecare celul pleac de la capt i merge n josul fluxului. Cnd ajunge la cellalt capt, iese de pe magistral. Fiecare celul transport un cmp de informaie tM de 44 de octei, realiznd compatibilitatea cu unele moduri AAL. De asemenea mai are i 2 bii de protocol, Ocupat, setat pentru a arta c o celul este ocupat, iCerere, care poate fi setat atunci cnd o staie dorete s fac o cerere. Pentru a transmite o celul, o staie trebuie s tie dac destinaia este la stnga sau la dreapta ei. Dac destinaia este la dreapta, emitorul folosete magistralavlv Altfel folosete magistrala B. Datele sunt puse pe una din magistrale utiliznd un circuit cablat OR (SAU), astfel nct defectarea unei staii s nu conduc la cderea reelei.

280

SUBNTVELUL DE ACCES LA MEDIU

CAP. 4

Spre deosebire de toate celelalte protocoale de LAN 802,802.6 nu este lacom. n toate celelalte, dac o staie are ansa s transmit, o va face. Aici, staiile se aeaz la coad n ordinea n care devin pregtite s emit i transmit dup politica FIFO. Partea interesant din acest protocol este cum se obine ordinea FTFO fr existena unei cozi centrale. Regula de baz este c staiile sunt politicoase: ele cedeaz n favoarea celor aflate n aval de ele. Aceast politee este necesar pentru a preveni situaia n care staia cea mai apropiat de capt nha toate celulele goale care vin i le umple, nfometnd pe cei din aval. Pentru simplificare, vom examina numai transmisia pe magistrala^!, dar acelai lucru se ntmpl i cu magistrala B. Pentru a simula coada FIFO, fiecare staie menine dou contoare, RC i CD. RC (Request Counter - contor de cereri) numr cererile din aval aflate n ateptare nainte de momentul n care staia nsi are un cadru de transmis. n acel moment, RC este copiat n CD, RC este resetat la 0 i numr acum cererile fcute dup ce staia a devenit pregtit. De exemplu, dac pentru staia k CD = 3 i RC = 2, urmtoarele trei celule goale care trec pe la staia k sunt rezervate pentru staiile din aval, dup care staia k poate emite, iar apoi nc dou celule sunt rezervate pentru staiile din aval. Pentru a simplifica vom presupune c o staie poate ave,a o singur celul gata de transmis la un moment dat. Pentru a expedia o celul, o staie trebuie s fac mai nti o rezervare prin setarea bitului de Cerere (request) ntr-o celul de pe magistrala de ntoarcere (adic pe magistrala B pentru o transmisie care va avea loc mai trziu pe magistrala^). Pe msur ce aceast celul se propag pe magistrala de ntoarcere, fiecare staie de-a lungul drumului ei o observ i i incrementeaz RC. Pentru a ilustra acest concept, vom folosi un exemplu. Iniial toate contoarele RC sunt 0, iar n coad nu exist nici o celul, aa cum se arat n Fig. 4-32(a). Apoi staia D face o cerere care determin staiile C, B i A s i incrementeze contoarele RC, dup cum se arat n Fig. 4-32(b). Dup aceasta, B face o cerere i copiaz valoarea curent din RC n CD, rezultnd situaia din Fig. 4-32(c). n acest moment, captul de pe magistrala^ genereaz o celul goal. Cnd ea trece prinB, acea staie vede c propriul CD>0, deci nu poate utiliza celula goal (cnd o staie are o celula n coad, CD reprezint poziia sa n coad, 0 nsemnnd capul cozii). n schimb decrementeaz CD. Atunci cnd celula nc goal ajunge la D, acea staie vede c CD - 0, nsemnnd c nimeni nu este n faa ei n coad, aa c i pune datele n celul executnd un SAU ntre datele ei i celul i seteaz bitul Ocupat. Dup ce a terminat transmisia, avem situaia din Fig. 4-32(d). Atunci cnd este generat urmtoarea celul goal, staia B vede c este prima din coad i ocup celula (prin setarea unui bit), aa cum este ilustrat n Fig. 4-32(e). n acest fel, staiile stau la coad pentru a le veni rndul, fr s existe un administrator al unei cozi centralizate. Sistemele DQDB sunt acum instalate de multe companii de telecomunicaii n orae ntregi. Ele au pn la 160 km la viteze de 44.736 Mbps (T3).
4.3.6 Standardul IEEE 802.2: Controlul legturii logice

Acum este probabil timpul s facem un pas napoi i s comparm ce am nvat n acest capitol cu ce am studiat n cel anterior. n Cap. 3, am vzut cum dou maini pot comunica n siguran pe o linie nesigur folosind diverse protocoale ale legturii de date. Aceste protocoale furnizau un control al erorilor (folosind confirmri) i un control al fluxului (folosind o fereastr glisant).

SEC. 4.3

STANDARDUL ffiEE 802 PENTRU LAN-URI SI MAN-URI

281

Capt T
A

Magistrala A
T

'
(

B "

C "

- D " =IC = O
(

LJJ

RC = O CD = O
J i

=IC = O

:D = O I

I:D = O

RC = 0

:D = O

RC = 0

:D = o

Capt

tI

Magistrala B (a)

A a
RC=1 CD = O
ir

- B '

r C

i D " ^^Pachet , E RC = 0 CD = 0
1

RC = 1 CD = O
I

RC=1 CD = 0

RC = 0 CD = 0

'

V . "
(b)
Pachet V

CERERE

i- A ' RC = 2 CD = O
V
iL

r B "

C "

, D

il

RC = O CD=1

RC=1 CD = 0

RC = 0 CD = 0

RC = 0 CD = 0
i

,.

"

CERERE

(0
Date ,Pachet - C " RC = 0 CD = 0
- '; 1

LU

v A " RC = 1 CD = O
ir

ir

B '

u D " RC = 0 CD = 0
:'

RC = O CD = 6
: ' \r

RC = 0 CD = 0
i

-"'ii

. " '

i i

(d)
(
i- A RC = O CD = O
\r

Date

c
RC = 0 CD = 0
l

C0-

i D '

LU

RC = O CD = O

RC = 0 CD = 0
Ji
V .

RC = 0 CD = 0
V
( _

Fig. 4-32, (a) Iniial reeaua MAN este inactiv, (b) Dup ce D face o cerere, (c) Dup ce B face o cerere, (d) Dup ce D transmite, (e) Dup ce B transmite. n schimb, n acest capitol nu am spus nici un cuvnt referitor la comunicaiile fiabile. Tot ce ofer MAN-ul i LAN-urile 802 este un serviciu datagram de tipul best-efforts" (cea mai bun ncercare). Uneori, acest serviciu este adecvat. De exemplu, pentru transportul pachetelor IP, nu sunt cerute sau ateptate garanii. Un pachet IP poate fi pur i simplu inserat ntr-un cmp de informaie util al 802 i trimis pe traseul su. Dac se pierde, asta este.

282

SUBNTVELUL DE ACCES LA MEDIU

CAP. 4

Cu toate acestea, exist sisteme n care este de dorit un protocol al legturii de date cu control al erorilor i al fluxului. IEEE a definit unul care poate sta deasupra tuturor protocoalelor MAN i LAN 802. n plus, acest protocol, numit LLC (Logical Link Control), ascunde diferenele dintre diferitele tipuri de reele 802 prin furnizarea unui singur format i a unei singure interfee pentru nivelul reea. Formatul, interfaa i protocolul sunt strns legate de OSI. LLC formeaz jumtatea superioar a nivelului legturii de date, cu subnivelul MAC sub el, aa cum se arat n Fig. 4-33.
Nivelul reea

Nivelul legtur -s dedate

LLC

Pachet j ; \ Pachet Pachet

LLC MAC LLC

] MAC

MAC

Nivelul fizic (a)

Reea (b)

Fig. 4-33. (a) Poziia LLC. (b) Formatele protocoalelor. Folosirea obinuit a LLC este descris n continuare. Nivelul reea de pe maina emitoare trimite un pachet ctre LLC folosind primitivele de acces ale LLC. Subnivelul LLC adaug apoi un antet LLC, coninnd numerele de secven i de confirmare. Structura rezultat este apoi inserat n cmpul de informaie util al unui cadru 802.x i transmis. La receptor are loc procesul invers. LLC furnizeaz opional trei servicii: serviciul datagram nesigur, serviciul datagram cu confirmare i serviciul sigur orientat pe conexiune. Antetul LLC este bazat pe protocolul mai vechi HDLC. Pentru date si control este folosit o varietate de formate diferite. Pentru serviciul datagram cu confirmare sau cel orientat pe conexiune, cadrele de date conin o adres surs, o adres destinaie, un numr de secven, un numr de confirmare i ali civa bii. Pentru serviciul datagram nesigur, numrul de secven i cel de confirmare lipsesc.

4.4

PUNI

Multe organizaii au LAN-uri multiple i doresc s le conecteze. LAN-urile pot fi conectate prin dispozitive numite puni (bridges), care opereaz la nivelul legturii de date. Aceasta nseamn c punile nu examineaz antetul nivelului de reea i pot astfel s copieze la fel de bine pachete IP, IPX i OSI. Dimpotriv, un ruter strict IP, IPX sau OSI poate lucra numai cu pachetele corespunztoare protocolului su. n urmtoarele seciuni vom analiza arhitectura punilor, n special pentru conectarea LANurilor 802.3,802.4 i 802.5. Pentru o tratare cuprinztoare a punilor i a altor subiecte nrudite, vezi (Perlman, 1992). nainte de a intra n tehnologia punilor, merit s aruncm o privire asupra ctorva situaii obinuite n care acestea sunt folosite. Vom meniona ase motive pentru care o singur organizaie poate ajunge s aib LAN-uri multiple. n primul rnd, multe universiti i departamente ale unor corporaii au propriile lor LAN-uri, n principal pentru a-i conecta

SEC. 4.4

PUOT1

calculatoarele personale, staiile de -lucru i serverele. Deoarece scopurile departamentelor difer, departamente diferite vor alege LAN-uri diferite, indiferent de ce fac alte departamente. Mai devreme sau mai trziu, este nevoie de interaciune, deci este nevoie de puni. n acest exemplu, LAN-urile multiple au aprut datorit autonomiei proprietarilor lor. n al doilea rnd, organizaia poate fi rspndit geografic n mai multe cldiri separate aflate la distane considerabile. Poate fi mai ieftin soluia cu LAN-uri separate n fiecare cldire, conectate prin puni i legturi n infrarou, dect soluia cu ntinderea unui singur cablu coaxial pe ntreaga suprafa.
Coloan vertebral LAN

H Server I de fiier

Grup pe un singur LAN Staie de lucru

LAN

Fig. 4-34. LAN-uri multiple conectate printr-o coloan vertebral pentru a trata un trafic total mai mare dect capacitatea unui singur LAN. n al treilea rnd, pentru a face fa traficului poate fi necesar s desprim ceea ce logic este un singur LAN n LAN-uri separate. La multe universiti, de exemplu, mii de staii de lucru sunt disponibile pentru profesori i studeni. Fiierele sunt inute de obicei pe servere i sunt ncrcate pe mainile utilizatorilor la cerere. Dimensiunea mare a acestui sistem mpiedic punerea tuturor staiilor de lucru pe un singur LAN - lrgimea de band total necesar este mult prea mare. n schimb sunt folosite LAN-uri multiple conectate prin puni, dup cum este artat n Fig. 4-34. Fiecare LAN conine un grup de staii de lucru cu propriul su server de fiiere, astfel nct cea mai mare parte a traficului este limitat la un singur LAN nencrcnd suplimentar coloana.vertebral. n al patrulea rnd, n anumite situaii, un singur LAN ar fi potrivit n ceea ce privete traficul, dar distana fizic ntre cele mai ndeprtate calculatoare este prea mare (de exemplu, mai mult de 2.5 km pentru 802.3). Chiar dac este uor de ntins cablul, reeaua nu ar funciona din cauza ntrzierilor excesiv de mari pentru propagarea dus/ntors a semnalelor. Singura soluie este partiionarea LAN-ului i instalarea de puni ntre segmente. Folosind punile, poate fi mfit distana fizic total acoperit. n al cincilea rnd, trebuie considerat problema siguranei. Pe un singur LAN, un nod defect, care trimite tot timpul un ir continuu de date alterate, va compromite LAN-ul. Punile pot fi

284

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4'

inserate topunetecritice pentru a preveni ca un singur nod care funcioneaz defectuos s afecteze ntregul sistem. Spre deosebire de un repetor, care doar copiaz ceea ce vede, o punte poate fi programat s exercite un anumit control privind ceea ce trimite mai departe i ceea ce nu trimite. n al aselea (i ultimul) rnd, punile pot contribui la securitatea organizaiei. Cele mai multe interfee LAN au un mod transparent de lucru (promiscuous mode), n care toate cadrele sunt transferate calculatorului, nu numai cele care sunt adresate acestuia. Spionilor si bgreilor le place acest lucru. Prin inserarea punilor n diferite locuri i prin grija de a nu transmite traficul de date senzitive, este posibil izolarea unor pri din reea, astfel nct datele s nu cad n minile cui nu trebuie.
Gazd A Gazd B

Reea

LANCSMA/CD

LANTokenbus

Fig. 4-35. Funcionarea unei puni de LAN de la 802.3 la 802.4. Dup ce am vzut de ce sunt necesare punile, s ne ntoarcem la felul n care funcioneaz acestea. Fig. 4-35 ilustreaz funcionarea unei puni simple, dublu-port. Gazda A are un pachet de trimis. Acest pachet coboar la subnivelul LLC i dobndete un antet LLC. Apoi trece la subnivelul MAC i i este ataat un antet 802.3 (ca de altfel i o ncheiere, care nu este artat n figur). Aceast structur iese apoi pe cablu i n cele din urm este predat subnivelului MAC din punte, unde antetul 802.3 este ndeprtat. Pachetul simplu (cu antetul LLC) este predat subnivelului LLC din punte. In acest exemplu, pachetul este destinat unei subretele 802.4 conectat la punte, astfel nct i face drum pe partea 802.4 a punii i pleac mai departe. De notat c o punte conectnd k LAN-uri diferite va avea k subniveluri MAC diferite i k niveluri fizice diferite, cte unul pentru fiecare tip. 4.4.1 Puni de la 802.x la 8O2.y Aparent, o punte de la un LAN 802 la altul este ceva banal. Nu este cazul. n aceast seciune vom atrage atenia asupra ctorva dintre dificultile care vor fi ntlnite atunci cnd se ncearc construirea unei puni ntre LAN-uri 802 diferite.

SEC. 4.4

PUNI

285

;. Fiecare dintre cele nou combinaii de 802 JC la 8O2.y prezinlisetul su unic de probleme. Totui, nainte de a le considera pe fiecare n parte, s considerm cteva probleme generale comune tuturor punilor. Pentru nceput, fiecare dintre LAN-uri folosete un format de cadru diferit (vezi Fig. 4-36). Nu exist nici un motiv tehnic viabil pentru aceast incompatibilitate. Doar c niciuna dintre corporaiile care promoveaz cele trei standarde (Xerox, GM, i IBM) nu au vrut s l schimbe pe al ei. Drept care orice transfer ntre LAN-uri diferite cere reformatare, ceea ce consum timp CPU, necesit o nou calculare a sumei de control i introduce posibilitatea erorilor nedetectate datorat biilor eronai n memoria punii. Nimic dintre cele menionate nu ar fi fost necesar dac cele trei comitete ar fi putut s cad de acord asupra unui singur format.
Adresele surs DelimitatorControl Control i Preambul start acces cadru destinaie Lungime
i

Date

Umplu- Sum Delimitator Stare tur de control sfrit cadru

802.3
:

!
i 1
i

i
i
i

802.4 802.5

Fig, 4-36. Formatele cadrelor IEEE 802. O a dou problem este c LAN-urile interconectate nu funcioneaz neaprat la aceeai rat de transfer. Atunci cnd se transmite un ir lung de cadre concatenate de la un LAN rapid la unul mai lent, puntea nu va putea transmite cadrele n ritmul n care sosesc. Va trebui s le memoreze, spernd s nu i se termine memoria. De asemenea, problema exist ntr-o anumit msur de la 802.4 la 802.3 la 10 Mbps, deoarece ceva din banda lui 802.3 se pierde n coliziuni. n realitate 802.3 nu are 10 Mbps, pe cnd 802.4 chiar are (aproape). Punile care conecteaz trei sau mai multe LANuri au o problem similar n cazul n care mai multe LAN-uri ncearc s alimenteze acelai LAN de ieire n acelai moment. O problem subtil dar important referitoare la gtuirea traficului prin punte este valoarea ceasurilor n nivelurile superioare. S presupunem c nivelul reea al unui LAN 802.4 ncearc s trimit un mesaj foarte lung ca succesiune de cadre. Dup ce trimite ultimul cadru, pornete un ceas care s atepte o confirmare. Dac mesajul trebuie s tranziteze o punte spre un LAN 802.5 mai lent, exist pericolul ca intervalul de timp s se termine nainte ca ultimul cadru s fie transmis LAN-ului mai lent. Nivelul reea va crede c problema se datoreaz unui cadru pierdut i va transmite din nou ntreaga secven. Dup n ncercri nereuite s-ar putea s renune i s spun nivelului transport c destinaia este moart. O a treia, i potenial cea mai serioas problem dintre toate, este c toate aceste trei LAN-uri 802 au o lungime maxim de cadru diferit. Pentru 802.3 depinde de parametrii configuraiei, dar pentru sistemul standard 10 Mbps informaia util este de maxim 1500 octei. Pentru 802.4 este fixat la 8191 octei. Pentru 802.5 nu exist o limit superioar, cu excepia faptului c o staie nu poate s transmit mai mult dect timpul de deinere a jetonului. Cu valoarea implicit de 10 msec, lungimea maxim a cadrului este de 5000 de octei.

286

SUBNWELUL DE ACCES LA MEDIU

CAP^l

O problem evident apare atunci cnd un cadra lung trebuie transmis unui LAN care nu 8 "i poate accepta. La acest nivel, mprirea cadrului iese din discuie. Toate protocoalele presupun recepionarea total sau nu a cadrelor. Nu exist posibilitatea de reasamblare a cadrelor din uniti mai mici. Aceasta nu nseamn c asemenea protocoale nu ar putea fi inventate. Ele pot fi i au fost. Doar c 802 nu are aceast caracteristic. Fundamental, nu exist nici o soluie. Cadrele care sunt prea lungi pentru a fi transmise trebuie eliminate. Cam att n ceea ce privete transparena. S analizm acum, pe scurt, fiecare dintre cele nou cazuri de punte de la 802.x la 8O2.y, pentru a vedea ce alte probleme se mai ascund n umbr. Pentru 802.3 la 802.4 este uor. Singura! lucru care poate s mearg prost este ca LAN-ul destinaie s fie att de tare ncrcat, nct cadrele se tot adun n punte, iar puntea nu poate scpa de ele. Dac aceast situaie dureaz suficient de mult, puntea poate s rmn fr spaiu de memorie i s nceap s abandoneze cadre. Din moment ce problema poate s apar ntotdeauna cnd se transmite spre un LAN 802.3, nu o vom mai aminti n cele ce urmeaz. n cazul celorlalte dou LAN-uri fiecrei staii, inclusiv punii, i se garanteaz obinerea periodic a jetonului aa nct nu poate fi dezactivat pentru mult timp. De la 802.4 la 802.3 exist dou probleme. Prima: cadrele 802.4 conin bii de prioritate pe care cadrele 802.3 nu i au. Drept urmare, dac dou LAN-uri 802.4 comunic printr-un LAN 802.3, prioritatea va fi pierdut de LAN-ul intermediar. O a dou problem este cauzat de o caracteristic special a lui 802.4: predarea temporar a jetonului. Este posibil ca un cadra 802.4 s aib un bit din antet setat la 1 pentru a pasa temporar jetonul destinaiei, permindu-i s trimit un cadra de confirmare. Totui, dac un asemenea cadru este transmis de o punte, ce ar trebui s fac puntea? Dac trimite ea nsi un cadra de confirmare minte, pentru c, n realitate, cadrai nu a fost livrat nc. De fapt, destinaia poate fi moart. Pe de alt parte, dac nu genereaz confirmarea, expeditorul va concluziona mai mult ca sigur c destinaia este moart i va raporta eec superiorilor si. Se pare c aceast problem nu are soluie. De la 802.5 la 802.3 avem o problem similar. Formatul cadrului 802.5 are biii A i C n octetul de stare al cadrului. Aceti bii sunt setai de ctre destinaie ca s-i spun expeditorului dac staia adresat a vzut cadrul i dac 1-a copiat. Din nou puntea poate s mint i s anune copierea cadrului, dar dac mai trziu rezult c destinaia este inactiv, pot aprea probleme serioase. n esen, inserarea unei puni ntr-o reea a schimbat semantica biilor. Este greu de imaginat o soluie potrivit acestei probleme. De la 802.3 la 802.4 problema este: ce s punem n biii de prioritate. Se poate argumenta c puntea trebuie s retransmit toate cadrele la cea mai mare prioritate, pentru c probabil au suferit deja suficiente ntrzieri. De la 802.4 la 802.4 singura problem este ce s facem n cazul predrii temporare a jetonului. Cel puin aici avem posibilitatea ca puntea s reueasc transmiterea cadrului suficient de repede pentru a primi rspuns nainte de expirarea timpului. Totui ne asumm un risc. Prin transmiterea cadrului cu cea mai mare prioritate, puntea spune o minciun cusut cu a alb, dar mrete probabilitatea primirii rspunsului la timp. De la 802.5 la 802.4 avem aceeai problem cu biii A i C ca mai nainte. De asemenea, definiia biilor de prioritate este diferit pentru cele dou LAN-uri, dar ceretorii nu au de ales. Cel puin cele dou LAN-uri au acelai numr de bii de prioritate. Tot ceea ce poate s fac puntea este s copieze biii de prioritate dintr-o parte n cealalt i s spere c totul va fi bine. De la 802.3 la 802.5 puntea trebuie s genereze bii de prioritate, dar nu exist alte probleme speciale. De la 802.4 la 802.5 o problem posibil este cea a cadrelor prea lungi i apare din nou

SEC. 4.4

PUNI

287

'- problema predrii jetonului. n sfrit, de la 8015;la 802.5 se jpuse problema tratrii biilor A i C. Piferitele probleme pe care le-am discutat sunt rezumate n Fig 4-37.
LAN destinaie 802.3 (CSMA/CD) 802.4 (Token-bus) 802.4 (Token-ring) 802.3 UN 802.4 surs 802.5 1,5,8,9,10 1,2,5,6,7,10 1,4 9 1,2,3,6,7 1,2,4,8 1,2,3,8,9,10 6,7

Aciuni: 1. Reformateaz cadrele i calculeaz noua sum de control. 2. Inverseaz ordinea biilor. 3. Copiaz prioritatea, indiferent dac are sau nu nsemntate. 4. Genereaz o prioritate fictiv. 5. Elimin prioritatea. 6. Dreneaz inelul (n vreun fel). 7. Seteaz biii A i C (prin minciun). 8. Se ocup de congestie (LAN-uri rapide la LAN-uri lente}. 9. Se ocup de transferul jetonului, confirmarea fiind ntrziat sau imposibil. 10. Se alerteaz n cazul unui cadru prea lung pentru LAN-ul destinaie. Parametrii presupui: 802.3: cadre de 1500 octei, 802.4: cadre de 8191 octei, 802.5: cadre de 5000 octei,

10 Mbps (minus coliziunile) 10 Mbps 4 Mbps

Fig. 4-37. Problemele ntlnite n construirea punilor de la 802.x la 8O2.y. Atunci cnd comitetul IEEE 802 a dorit s vin cu un standard LAN, nu a putut s hotrasc asupra unui singur standard, drept care a produsira standarde incompatibile, dup cum tocmai am vzut n detaliu. Pentru acest eec a fost criticat de toat lumea ulterior. Dup aceea, cnd i s-a dat sarcina s proiecteze un standard pentru punile care s interconecteze cele trei LAN-uri incompatibile, i-a propus s se achite mai bine i a fcut-o. A venit cu dou arhitecturi de puni incompatibile. Pn acum nimeni nu i-a cerut s proiecteze o poart standard care s conecteze cele dou puni incompatibile, dar cel puin ne ndreptm n direcia cea bun. Aceast seciune s-a ocupat de problemele ntlnite n conectarea a dou LAN-uri IEEE printr-o singur punte. Urmtoarele dou seciuni se vor ocupa de problemele conectrii reelelor mari care conin multe LAN-uri i multe puni i cele dou abordri IEEE n ce privete proiectarea acestor puni. 4.42 Puni transparente Prima punte 802 este o punte transparent sau punte cu arbore de acoperire (Perlman, 1992). Preocuparea dominant a celor care sprijin aceast arhitectur a fost transparena total. n

288

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

viziunea lor, un sit cu LAN-url multiple ar trebui s fie capabil s se duc i s cumpere puni proiectate dup standardul IEEE, s stabileasc conexiunile i totul s funcioneze perfect, instantaneu. Nu ar trebui s fie nevoie de modificri de hardware, de modificri de software, de setarea adreselor, de ncrcarea tabelelor sau parametrilor, nimic altceva. Se conecteaz numai cablurile i funcioneaz. Mai mult, funcionarea LAN-urilor existente nu ar trebui s fie afectat n nici un fel de puni. Destul de surprinztor, chiar au reuit. O punte transparent opereaz n mod transparent (promiscuous mode), acceptnd orice cadru transmis pe oricare dintre LAN-urile la care este ataat. De exemplu, s considerm configuraia din Fig. 4-38. Puntea Bl este conectat la LAN-urile 1 i 2, iar puntea B2 este conectat la LANurile 2, 3 i 4. Un cadru destinat lui A de la LAN 1 care ajunge la puntea Bl poate fi eliminat imediat, pentru c este deja pe LAN-ul care trebuie, dar un cadru care ajunge de la LAN 1 pentru C sau F trebuie transmis. La sosirea unui cadru, o punte trebuie s decid dac s fl elimine sau s l transmit mai departe, iar dac l transmite, pe ce LAN s l pun. Aceast decizie este luat cutnd adresa destinaiei ntro tabel (de dispersie) mare din interiorul punii. Tabelul poate s includ fiecare destinaie posibil i crei linii de ieire (LAN) i aparine. De exemplu, tabelul lui B2 ar include A ca aparinnd lui LAN 2, din moment ce tot ce trebuie s tie B2 este pe care LAN s pun cadrele destinate lui A. Nu prezint interes faptul c mai trziu, vor avea loc mai multe transmisii. La prima conectare a punilor, toate tabelele de dispersie sunt vide. Niciuna dintre puni nu tie unde se afl destinaiile, astfelnct folosesc algoritmul de inundare: orice cadru care vine pentru o destinaie necunoscut este trimis pe toate LAN-urile la care este conectat puntea, cu excepia celui de pe care a venit. Cu trecerea timpului, punile afl unde se gsesc destinaiile, dup cum este descris n cele ce urmeaz. Odat ce o destinaie este cunoscut, cadrele destinate ei sunt puse pe LAN-Ul care trebuie, n loc s fie inundate. Algoritmul folosit de punile transparente este nvare regresiv (backward learning). Dup cum a fost menionat anterior, punile lucreaz n mod transparent (promiscuous), astfel nct vd fiecare cadru trimis pe oricare dintre LAN-urile lor. Uitndu-se la adresa sursei, ele pot spune care calculator este accesibil pe care LAN. De exemplu, dac puntea Bl din Fig. 4-38 vede un cadru pe LAN 2 venind de la C, tie c C trebuie s fie accesibil prin LAN 2, deci creeaz o intrare n tabela de dispersie, n care noteaz c pentru cadrele care merg la C ar trebui s foloseasc LAN 2. Orice cadru ulterior adresat lui C care vine pe LAN 1 va fi transmis, dar un cadru pentru C care vine pe LAN 2 va fi abandonat. Topologia se poate schimba dup cum calculatoarele i punile sunt n funciune sau nu, sau mutate de colo-colo. Pentru a trata topologii dinamice, de cte ori se creeaz o intrare n tabela de dispersie, n ea este notat timpul de sosire a cadrului. De cte ori sosete un cadru a crui destinaie se afl deja n tabel, intrarea sa este adus la zi cu timpul curent. Astfel, timpul asociat fiecrei intrri arat ultimul moment n care a fost primit un cadru de la respectivul calculator. Periodic, un proces din punte scaneaz tabela de dispersie i cur toate intrrile mai vechi de cteva minute. n acest fel, dac un calculator este scos din LAN-ul su, plimbat prin cldire i reinstalat n alt parte, n cteva minute va reveni la funcionarea normal, fr vreo intervenie manual. Acest algoritm semnific de asemenea c dac un calculator este inactiv pentru cteva minute, orice trafic trimis spre el va trebui inundat, pn cnd calculatorul respectiv va trimite un cadru.

PUNI

LAN1

LAN 2

LAN 3

Fig. 4-38. O configuraie cu patru LAN-uri i dou puni. Procedura de dirijare pentru un cadru sosit depinde de LAN-ul pe care sosete (LAN-ul surs) i de LAN-ul n care se afl destinaia sa (LAN-ul destinaie), dup cum urmeaz: 1. 2. 3. Dac LAN-ul surs este acelai cu LAN-ul destinaie, abandoneaz cadrul. Dac LAN-ul surs i cel destinaie sunt diferite, transmite cadrul. Dac LAN-ul destinaie nu este cunoscut, folosete inundarea.

Acest algoritm trebuie aplicat pentru fiecare cadru care sosete. Exist cipuri VLSI speciale care realizeaz cutarea i actualizarea n tabela de dispersie, doar n cteva microsecunde. Pentru a mri sigurana, unele situri folosesc dou sau mai multe puni n paralel ntre perechi de LAN-uri, dup cum este artat n Fig. 4-39. Totui, acest aranjament introduce i unele probleme suplimentare, ntruct creeaz bucle n topologie.
Cadru copiat deB1\ LAN 2 Cadru copiat / d e B2

LANl -Cadru iniial

Fig. 4-39. Dou puni transparente paralele. n Fig. 4-39 este prezentat modul n care este tratat un cadru, F, cu destinaie necunoscut. Fiecare punte, urmnd regulile obinuite pentru tratarea destinaiilor necunoscute, folosete inundarea care, n acest exemplu, nu nseamn dect copierea cadrului pe LAN 2. Puin dup aceea, puntea 1- vede F2, un cadru cu destinaie necunoscut, pe care l copiaz pe LAN 1, genernd F3 (care nu este artat n figur). La fel, puntea 2 copiaz FI pe LANl genernd F4 (care nu este artat). Acum puntea 1 trimite F4 i puntea 2 copiaz F3. Acest ciclu se continu la nesfrit.

290 Puni cu arbore de acoperire

SUBNIVELULDE ACCES LA MEDIU

CAP.4

Soluia acestei probleme este ca punile s comunice unele cu altele i s suprapun peste topologia actual un arbore "de acoperire care ajunge la fiecare LAN. De fapt, n interesul construirii unei topologii fictive fr bucle, sunt ignorate cteva conexiuni posibile ntre LAN-uri. De exemplu, n Fig. 4-40(a) apar nou LAN-uri interconectate prin zece puni. Aceast configuraie poate fi rezumat ntr-un graf cu LAN-urile drept noduri. Un arc leag oricare dou LAN-uri care sunt conectate de o punte.

LAN

Punte

Punte care face parte din arborele de acoperire

H
Punte care nu face parte din arborele de acoperire

(a)

(b)

Fig. 4-40. (a) LAN-uri interconectate (b) Arbore de acoperire pentru LAN-uri. Liniile punctate nu fac parte din arborele de acoperire. Graful poate fi redus la un arbore de acoperire renunnd la arcurile figurate ca linii punctate n Fig. 4-40(b). Folosind acest arbore de acoperire, exist exact un drum de la fiecare LAN la fiecare alt LAN. Odat ce punile s-au neles asupra arborelui de acoperire, toat transmiterea dintre LAN-uri urmrete arborele de acoperire. Din moment ce exist un drum unic de la fiecare surs la fiecare destinaie, buclele sunt imposibile. Pentru a construi arborele de acoperire, punile trebuie s aleag mai nti o punte reprezentnd rdcina arborelui. Ele fac aceast alegere prin emiterea de ctre fiecare punte a numrului de serie, instalat de fabricant, garantat ca fiind unic n ntreaga lume. Puntea cu cel mai mic numr serial devine rdcin. Apoi se construiete un arbore de drumuri minime de la rdcin la fiecare punte i LAN. Acest arbore este un arbore de acoperire. Dac o punte sau un LAN cade, este calculat un nou arbore de acoperire. Rezultatul acestui algoritm este c se stabilete un drum unic de la fiecare LAN la rdcin, i astfel la fiecare alt LAN. Dei arborele acoper toate LAN-urile, nu neaprat toate punile sunt prezente n arbore (pentru a evita buclele). Dup ce a fost stabilit arborele de acoperire, algoritmul continu s ruleze pentru a detecta automat schimbri n topologie i a actualiza arborele. Algoritmul distribuit, folosit pentru construirea arborelui de acoperire, a fost inventat de Perlman i este descris n detaliu n (Perlman, 1992).

SEC.4.4

PUNI

291

Punile pot fi folosite i pentru conectarea LAN-urilor aflate la mare distan. n acest model, fiecare sit const dintr-o colecie de LAN-uri i puni, dintre care una are o legtur la un WAN. Cadrele pentru LAN-urile ndeprtate circul prin WAN. Algoritmul arborelui de acoperire de baz poate fi folosit, preferabil cu anumite optimizri, pentru a selecta un arbore care micoreaz volumul traficului n WAN. 4.43 Puni cu dirijare de la surs Punile transparente au avantajul de a fi uor de instalat. Le conectezi i pleci. Pe de alt parte,, nu folosesc optim lrgimea de band, din moment ce nu folosesc dect un subset al topologiei (arborele de acoperire). Importana relativ a acestor doi factori (i a altora) a dus la o ruptur n interiorul comitetelor 802 (Pitt, 1988). Partizanii CSMAVCD i token bus au ales puntea transparent, partizanii inelului (cu ncurajri de la IBM) au preferat o schem denumit dirijare de la surs (source routing), pe care o s-b descriem n continuare. Pentru detalii suplimentare, vezi (Dixon, 1987). Redus la esen, dirijarea de la surs presupune c emitorul fiecrui cadru tie dac destinaia este sau nu n propria reea local. Atunci cnd se trimite un cadru la o reea local diferit, maina surs seteaz la 1 bitul cel mai semnificativ din adresa destinaie, pentru a marca acel cadru. Mai mult, include n antetul cadrului traseul exact pe care acesta l va urma. Acest drum este construit astfel: fiecare LAN are un numr unic, de 12 bii, iar fiecare punte are un numr de patru bii care o identific n mod unic n contextul reelelor locale. Astfel, dou puni ndeprtate pot avea ambele numrul trei, dar dou puni dintre aceleai dou LAN-uri trebuie s aib numere diferite. Un drum este astfel o secven de numere de punte, LAN, punte, LAN ... Referindu-ne kt Fig. 4-38, un drum de la A la D ar fi (LI, Bl, L2, B2, L3). O punte de tip dirijare de Ia surs este interesata numai de acele cadre care au bitul cel mai semnificativ al adresei destinaie setat la valoarea 1. Pentru fiecare astfel de cadru, puntea scaneaz traseul cutnd numrul LAN-ului pe care a sosit cadrul; Dac acest numr de LAN este urmat de ctre propriul numr de punte, puntea trimite mai departe cadrul spre LAN-ul al crui numr urmeaz dup numrul ei. Dac numrul LAN-ului pe care a sosit cadrul este urmat de numrul unei alte puni, puntea nu trimite mai departe cadrul. Acest algoritm duce la trei implementri posibile: 1. Software: puntea lucreaz n mod transparent, copiind in memoria sa toate cadrele, pentru a vedea dac au bitul cel mai semnificativ al adresei destinaie setat la 1. Dac da, cadrul este inspectat n continuare, altfel, nu. 2. Hibrid: interfaa LAN a punii inspecteaz bitul cel mai semnificativ al adresei destinaie i accept numai cadrele cuiaeest bit setat la 1. Interfaa este simplu de implementat n hardware i reduce foarte mult numrul de cadre pe care trebuie s le inspecteze puntea. 1. Hardware: interfaa LAN a punii, nu numai c testeaz bitul cel mai semnificativ al adresei destinaie, dar scaneaz i traseul pentru a vedea dac puntea trebuie s fac trimiterea mai departe. Punii i sunt predate numai cadrele care trebuie trimise mai departe. Aceast implementare necesit hardware-ul cel mai complex, dar n schimb nu ncarc unitatea central a punii cu prelucrarea cadrelor nerelevante care sunt filtrate.

292

SUBNIVELUL DE ACCES LA MEDIU

CAR4

Aceste trei implementri difer, prin costuri i performane. Prima, nu are costuri suplimentare de hardware pentru interfa, dar pentru a putea trata toate cadrele poate necesita o unitate central foarte rapid. Ultima necesit un cip special VLSI, dar preia de la punte o mare parte din prelucrri,.astfel c poate fi folosit i o unitate central mai lent sau, alternativ, puntea poate trata mai multe LAN-uri. : ;...{. n proiectarea dirijrii de la surs n mod implicit, orice main din inter-reea tie, sau poate afla, drumul optim spre orice alt main. O parte important a algoritmului dirijm de la surs este modul n care sunt descoperite aceste trasee. Ideea de baz este c dac destinaia este necunoscut, sursa emite un cadru de difuzare pentru a aia unde se afl aceasta. Acest cadra de descoperire (discoveiy frame) este trimis mai departe de fiecare punte astfel nct el ajunge la fiecare LAN din inter-reea. La sosirea rspunsului, punile i nregistreaz identitatea n acesta, astfel nct expeditorul iniial poate vedea traseul exact urmat i n cele din- urm alege cel mai buri traseu.
Punte

Gazd

o -o / \ -O-- o - -O- o - -o
\ / / \

LAN

Nivel

Fig. 4-41. 0 serie de LAN-uri conectate prin puni triple. Dei n mod evident acest algoritm gsete cel mai bun traseu (gsete toate traseele), el sufer de o explozie de cadre. S considerm configuraia din Fig. 4-41, cu N LAN-uri conectate liniar prin puni triple. Fiecare cadru de descoperire trimis de staia 1 este copiat de fiecare din cele trei puni pe LAN 1, conducnd la trei cadre de descoperire pe LAN 2. Fiecare dintre acestea este copiat de fiecare dintre puni conectate pe LAN 2, rezultnd nou cadre pe- LAN 3. n momentul n care ajungem la LAN N, circul 3N cadre. Dac sunt traversate dousprezece seturi de puni, n ultimul LAN vor trebui injectate mai mult de jumtate de milion de cadre de descoperire, cauznd o congestie sever. Un proces oarecum analog are loc n cazul punii transparente, numai c nu este, nici pe departe, att de sever. Atunci cnd sosete un cadru necunoscut, este inundat, dar numai de-a lungul arborelui de acoperire, astfel nct volumul total, de cadre este proporional cu dimensiunea reelei, nu exponenial. ; Odat ce un calculator gazd a descoperit un traseu spre o anumit destinaie, memoreaz traseul ntr-o memorie tampon, astfel nct data viitoare s nu mai fie necesar execuia procesului de descoperire. Dei aceast abordare limiteaz mult impactul exploziei cadrelor, ngreuneaz administrativ toate gazdele i, evident, ntregul algoritm nu este transparent, ceea ce era .unul din scopurile iniiale, dup cum am menionat anterior.

SEC. 4.4

PUNTI

293 . . . -

4.4.4 Compararea punilor 802

Punile transparente i'cele de tip dirijare de la surs au fiecare avantaje i dezavantaje. n aceast seciune vom discuta cteva dintre cele mai importante, rezumate n Fig. 442 i prezentate mai detaliat n (Soha i Perlman, 1988; i Zhang, 1988). Avei grij, totui, c fiecare punct este foarte contestat.
Caracteristic
Orientare Transparen Configurare Dirijare Localizare Eecuri Complexitate

Punte transparent
Fr conexiune Complet transparent Automat Suboptimal nvare regresiv Tratate de puni La nivelul punilor

Punte cu dirijare de la surs


Orientat conexiune Netransparent Manual Optimal Cadre de descoperire Tratate de gazd La nivelul gazdelor

Fig. 4-42. Comparaie ntre puni transparente i de tip dirijare de la surs. La bazja diferenei dintre cele dou tipuri de puni este diferena dintre reelele orientate conexiune i cele fr conexiune. Punile transparente dirijeaz independent fiecare cadru, fr yreo legtur cu conceptul de circuit virtual. Spre deosebire de acestea, punile de tip dirijare de. la surs determin un traseu utiliznd cadre de descoperire i apoi utilizeaz numai acel traseu. Punile transparente sunt complet invizibile pentru gazde i n ntregime compatibile cu toate produsele 802 existente; Punile cu dirijare de la surs nu sunt nici transparente nici compatibile. Pentru a folosi dirijarea de la surs, gazdele trebuie s fie n ntregime contiente de schema de legtur (bridging scheme) i trebuie s participe activ la ea. mprirea unui LAN existent n dou LAN-uri conectate de o punte cu dirijare de la surs necesit efectuarea de schimbri nsoftwarerul gazdei. Atunci mnsQ folosesc puni transparente, administrarea reelei nu este necesar. Punile se configuieaz automat la topologia reelei. n cazul punilor dirijate de la surs, administratorul reelei trebuie s instaleze manual LAN-ul i numerele punilor. Greeli cum ar fi duplicarea numrului unui LAN sau al unei puni sunt foarte greu de detectat, ntruct pot cauza ca numai anumite cadre s cicleze pe diverse trasee. Mai mult, cnd se conecteaz dou inter-reele, iniial disjuncte, n cazul punilor transparente nu este altceva de fcut dect conectarea lor, pe cnd n cazul dirijrii de la surs poate fi necesar schimbarea manual a multor numere LAN, pentru a le face unice n inter-reeaua combinat. Unul-jdintre puinele avantaje ale dirijrii de la sursa este c, n teorie, poate folosi dirijarea optim, pe cnd puntea transparent se restrnge la arborele de acoperire. Mai mult, dirijarea de la surs poate beneficia de puni paralele ntre dou LAN-uri pentru a mpri traficul. Este discutabil dac punile reale vor fi suficient de inteligente pentru a folosi aceste avantaje teoretice. Localizarea destinaiilor se realizeaz folosind nvarea regresiv n cazul punilor transparente, iar n cazul punilor cu dirijare de la surs, prin cadre de descoperire. Dezavantajul nvrii regresive este c pentru a descoperi unde este o main, punile trebuie s atepte pn cnd se ntmpl s vin un cadru de la respectiva main. Dezavantajul

294

SUBISfIVELUL DE ACCES LA MEDIU

CAP.4

cadrelor de descoperire este explozia exponenial a cadrelor n inter-reele de dimensiuni moderate pn la mari, cu puni paralele. Tratarea defectrilor este total diferit n cele dou cazuri. Punile transparente afl despre defectrile punilor i LAN-urilor i alte schimbri de topologie repede i automat, numai ascultndu-i una alteia cadrele de control. Gazdele nu remarc deloc aceste schimbri. n cazul dirijrii de la surs, situaia este cu totul alta. Atunci cnd se defecteaz o punte, mainile care dirijeaz prin ea remarc iniial absena confirmrii cadrelor, astfel nct dup expirarea timpului se ncearc din nou i din nou. In cele din urm, trag concluzia c ceva este n neregul, dar nc nu tiu dac problema este cu destinaia sau cu traseul curent Numai trimind un alt cadru de descoperire pot s afle dac destinaia este disponibil. Din nefericire, atunci cnd se defecteaz o punte important, expirarea timpului se va produce la un mare numr de gazde care vor trimite noi cadre de descoperire nainte ca problema s fie rezolvat, chiar dac este disponibil un traseu alternativ. Aceast mai mare vulnerabilitate la defectri este una dintre cele mai mari slbiciuni ale tuturor sistemelor orientate pe conexiune. n sfrit, am ajuns la complexitate i cost, un subiect foarte controversat. Dac punile de tip dirijare de la surs au un circuit VLSI care accept doar acele cadre care trebuie trimise mai departe, aceste puni vor fi mai puin ncrcate cu prelucrarea de cadre i vor da rezultate mai bune pentru o anumit investiie n hardware. Fr acest cip ele funcioneaz mai prost, deoarece se fac mult mai multe prelucrri pentru fiecare cadru. n plus, dirijarea de la surs adaug complexitate la nivelul gazdelor: ele trebuie s memoreze traseele, s trimit cadre de descoperire i s copieze informaie despre traseu n fiecare cadru. Toate aceste lucruri necesit memorie i timp unitate central. Din moment ce numrul de gazde este, de regul, cu unul sau dou ordine de mrime mai mare dect cel de puni, ar fi mai bine s se pun costul i complexitatea suplimentare mai degrab n cteva puni dect n toate gazdele. 4.4.5 Puni aflate Ia distan Punile sunt n mod obinuit folosite pentru conectarea a dou (sau mai multe) LAN-uri aflate la distan unele de altele. De exemplu, o companie poate avea fabrici n mai multe orae, fiecare dintre acestea cu propriul su LAN. Ideal ar fi ca toate aceste LAN-uri s fie interconectate pentru ca sistemul n ntregime s funcioneze ca un mare LAN. Punte

y Linie punct la punct LAN1 LAN 2

LAN 3 Fig. 4-43. Puni aflate la distan folosite pentru a interconecta LAN-uri ndeprtate.

SEC. 4.5

LAN-URI DE MARE VITEZ

295

Acest el poate fi atins punnd cte o punte fiecrui LAN i conectnd punile n perechi cu linii punct-la-punet (de exemplu linii nchiriate de la o companie de telefoane). Un sistem simplu, cu trei LAN-uri, este prezentat n Fig. 4-43. Aici se aplic algoritmul de dirijare obinuit. Cel mai simplu este s se priveasc cele trei linii punct-la-punct ca LAN-uri. frclgazde. Adic, un sistem obinuit de ase LAN-uri interconectate.prin patru puni. Nimic din ce am studiat pn acum nu spune c un LAN trebuie s aib gazde. Pe liniile punct-la-punct pot fi folosite diverse protocoale. O posibilitate este alegerea unui protocol de legtur de date punct-la-punct standard, punnd cadre MAG complete n cmpul de informaie util. Aceast strategie funcioneaz cel mai bine dac LAN-urile sunt identice i singura problem este transmiterea cadrelor la LAN-ul care trebuie. Alt posibilitate este eliminarea antetului i a ncheierii cadrelor MAC la puntea surs, punnd ceea ce a mi rmas n cmpul de informaie util al protocolului punct-la-punct. Un nou antet i o nou ncheiere MAC pot fi apoi generate la puntea destinaie. Un dezavantaj al acestei abordri este c suma de control care ajunge la puntea destinaie nu este cea calculat de gazda surs, existnd posibilitatea ca erori cauzate de bii eronai n memoria unei puni s nu fie detectai.

4.5 LAN-URI DE MARE VITEZ


Toate LAN-urile i MAN-urile 802 pe care le-am studiat sunt bazate pe un singur fir de cupru (dou fire de cupru pentru 802.6). Pentru viteze mici i distane scurte funcioneaz bine, dar pentru viteze i distane mari LAN-urile trebuie bazate pe fibr optic sau pe reele paralele de fire de cupru. Fibra optic are band larg, este subire i uoar, nu este afectat de interferene electromagnetice provenind de la maini grele (important atunci cnd cablarea trece prin tunelul de la lift), variaiile de tensiune, fulgere i prezint o excelent securitate, ntruct este aproape imposibil s nu se detecteze o interceptare. n consecin, LAN-urile rapide folosesc deseori fibr optic. n urmtoarele seciuni vom analiza att unele reele locale care folosesc fibr optic, ct i un LAN de foarte mare vitez care folosete demodata srm de cupru (dar foarte mult). 4.5.1 FDDI FDDI (Fiber Distributed Data Interface - interfaa de date distribuite pe fibr optic) este un LAN token ring cu fibr optic, de mare performan, funcionnd la 100 Mbps pe distane de pn la 200 km cu cel mult 1000 staii conectate (Black, 1994; Jain, 1994; Mirchandani i Khanna, 1993; Ross i Hamstra, 1993; Shah i Ramakrishnan, 1994; Wolter, 1990). Poate fi folosit n acelai mod ca oricare dintre LAN-urile 802, dar pentru c are band de transfer mult mai mare, o alt utilizare obinuit este cea de coloan vertebral pentru conectarea LAN-urilor de cupru, aa cum se arat n Fig. 4-44: FDDI-II este succesorul lui FDDI, modificat s trateze sincron date PCM prin comutare de circuite pentru voce sau trafic ISDN, n plus fa de datele obinuite. Ne vom referi la FDDI i FDDI-II simplu FDDI. Aceast seciune se ocup att de nivelul fizic ct i de nivelul MAC al FDDI. FDDI folosete fibre multimod, deoarece costurile adiionale ale fibrelor monomod nu sunt necesare pentru reele funcionnd la numai 100 Mbps.- De asemenea, folosete LED-uri mai degrab dect lasere, nu numai datorit costului lor mai mic, dar i pentru c FDDI

296

CAP. 4

poate fi utilizat uneori pentru a se conecta directIastai3e derhicm afe utffizatEBifer. Existpericolul ca utilizatori curioi s scoat oc^anaieene^mlxfefiffqat^ a vedea cum trec biii la 100 Mbps. Ctrimlasercurio^utiMzatoEar pHteasfii.ctLo:gaHr.n:retkv LED-urile sunt prea slabe pentra a rnr 0ebM, darsu&aientrde ptttenriaeLpenrro a transporta: cu 10 acuratee date la 100 Mbps. Proiectarea FDDI spedSc'rBrmarrnnB: de o efoaran 23xlO bii. Multe implementri se comport mult maibke.

Token-bus

Punte

Inei FDDI Punte Calculator Token-ring

Ethernet

Ethernet

Fig. 4-44. Un inel FDDI reprezentnd coloana vertebral pentru conectarea LAN-urilor i calculatoarelor. Cablarea FDDI const din dou inele de fibr, unul transmind n sensul acelor de ceasornic i cellalt n sens invers, dup cum este ilustrat n Fig. 4-45(a). Dac unul se defecteaz, n locul lui poate fi folosit cellalt. Dac amndou se ntrerup n acelai punct, de exemplu din cauza unui foc sau a altui accident n conducta cablului, cele dou inele pot fi conectate ntr-un singur inel aproximativ de dou ori mai lung, dup cum este artat n Fig. 4-45(b). n eventualitatea unor probleme la staie, fiecare staie conine relee care pot fi folosite pentru conectarea celor dou inele sau untarea staiei. De asemenea pot fi folosite panouri de cablare, ca la 802.5.

(a)

(b)

Fig. 4-45. (a) FDDI const din dou inele rotindu-se n sensuri opuse, (b) n eventualitatea ntreruperii ambelor inele htr-un punct, ele pot fi legate pentru a forma un singur inel mai lung.

see.4-5

Nivdai M c : nu..folosete, codiilcare de tip Maucfaester^ kmct eoGifcaxea. Manchester la 10OMI)SHe^stfeMknaafela20^ fofoseteo schem deraamit codificarea. 4 cfe 5b Efecte. gHr de- 4 siiEfoluri MAC (6-uri, l-uri i anumite simboluri catemi surt de-tip dat, cam ar ftifef^-^^dte^-Siait ca^SScate ca un grup de 5 tai. Dintre cele 32 de combmaii 16. sunt pentoE cfete^ 3 p e s t e ddimitatori, 2 pentru contool, 3 pentoi avertizarea hardware^ului i 8 sunt ne&loste..(adKiez3ervate, pentru versiuni ulterioare ale acestui protocol). Avantajul acestei scheme este c economisete band, dar dezavantajul este pierderea proprietii de autosincronizare din codificarea Manchester. Pentru a compensa aceast pierdere^ se utilizeaz un preambul lung pentru a sincroniza receptorul cu ceasul emitorului. Mai mult, toate ceasurile trebuie s fie stabile la cel puin 0.005%. Cu aceast stabilitate, cadrele de pn la 4500 octei pot fi trimise fr pericolul ca ceasurile receptoarelor s se abat prea mult i s ias din sincronismul cu fluxul de date.
r

Protocoalele FDDI de baz urmeaz ndeaproape modelul protocoalelor 802.5. Pentru a transmite date, o staie trebuie mai nti s captureze jetonul. Dup aceea transmite un cadru i l elimin atunci cnd apare din nou la staie. O diferen ntre FDDI i 802.5 este c n 802.5 o staie nu poate genera un nou jeton pn cnd cadrul su nu a parcurs tot drumul i nu s-a ntors napoi. n FDDI, cu posibiliti de 1000 de staii i 200 km de fibr, timpul pierdut ateptnd cadrul s nconjoare ntregul inel poate fi substanial. Din acest motiv s-a decis s se permit unei staii s pun un nou jeton n inel imediat ce a terminat de transmis cadrele. ntr-un inel mare, mai multe cadre pot fi prezente n acelai timp.
Octei

>8
Preambul

2 sau 6 Adres destinaie

2 sau 6 Adres surs

Fr limit Date Sum de control

1 1

Control cadru Delimitator de sfrit - Delimitator de nceput Stare cadru

Jt

Fig. 4-46. Formatul cadrelor FDDI. Cadrele de date FDDI sunt asemntoare cu cadrele de date 802.5. Formatul FDDI este

prezentat n Fig. 4-46. Cmpurile Delimitator de nceput (Start delimiter) i Delimitator de sfrit (End

delimiter) marcheaz capetele cadrului. Cmpul Control cadru spune ce fel de cadru este (dat, control etc). Octet-ul Stare cadru pstreaz bii de confirmare, similari cu aceia ai 802.5. Celelalte cmpuri sunt analoage celor de la 802.5. n plus fa de cadrele obinuite (asincrone), FDDI permite i cadre speciale sincrone pentru date sincrone PCM prin comutare de circuite sau date ISDN. Cadrele sincrone sunt generate la fiecare 125 microsecunde de o staie mater, pentru a furniza cele 8000 de eantioane pe secund de

298

SUBNVEEULDE ACCES LA MEDIU

CAP.$

care au nevoie sistemele PCM. Fiecare dintre aceste cadre are un antet, 16 octei de date transmii fr comutare de circuite i cel mult 96 octei de date transmii cu comutare de circuite (adic pn la 96 de canale PGM pe cadru). Numrul 96 a fost ales pentru c permite ca ntr-un cadru s ncap patru canale TI (4x24) la 1.554 Mbps sau trei canale CCITT El (3x32) la 2.048 Mbps, fcndu-1 astfel potrivit oriunde n lume. Un cadru sincron la fiecare 125 de microsecunde consum 6.144 Mbps de band pentru cele 96 de canale cu comutare de circuite. Un maxim de 16 cadre sincrone la fiecare 125 de microsecunde permite cel mult 1536 canale PGM i consum 98.3 Mbps. Odat ce o staie a dobndit una sau mai multe cuante de timp ntr-un cadru sincron, acele cuante i sunt rezervate pn cnd sunt eliberate n mod explicit. Banda total nefolosit de cadrele sincrone este alocat la cerere. n toate aceste cadre este prezent o masc indicnd cuantele disponibile pentru alocare la cerere. Traficul nesincron este mprit n clase de prioriti, prioritile mari findprimele care au acces la banda rmas. Protocolul MAC FDDI folosete trei contoare de timp. Contorul de timp de reinere a jetonului (token holding timer) determin ct timp poate continua s transmit o staie dup ce a dobndit jetonul. Acest contor de timp previne situaia n care staia ar ocupa inelul la nesfrit Contorul de timp de rotaie a jetonului (token rotation timer) este repornit la fiecare trecere a jetonului. Dac acest contor de timp expir, nseamn c jetonul nu a fost vzut pentru un interval prea lung. Probabil c a fost pierdut, astfel nct este iniiat procedura de recuperare a jetonului, in sfrit, contorul de timp de transmisie corect (valid transmission timer) este folosit la detectarea i recuperarea unor erori temporare n inel. FDDI are, de asemenea, un algoritm de prioritate similar cu 802.4. El determin care clas de prioritate va transmite la o anumit trecere a jetonului. Dac jetonul este n avans fa de planificare, pot transmite toate clasele de prioritate, dar dac jetonul este n urm, pot transmite numai clasele de prioritate ridicat. 4.5.2 Ethernet rapid Se presupunea c FDDI va fi urmtoarea generaie de LAN, dar nu a ptruns mai departe de piaa coloanelor vertebrale (unde continu s fie utilizat). Administrarea staiilor era prea complicat, ceea ce a dus la cip-uri complexe i preuri mari. Costul substanial al cip-urilor FDDI i-a fcut pe productorii de staii de lucru s nu o doreasc s devin reeaua standard, astfel nct nu sa trecut la producia de mas i FDDI nu a ptruns puternic pe pia. Lecia care trebuia nvat de aici era KISS (Keep It Simple, Stupid), adic PLSP (pstreaz lucrurile simple, prostule). n orice caz, eecul lui FDDI n a se impune a lsat loc unei varieti de LAN-uri la viteze mai mari de 10 Mbps. Multe instalri necesitau mai mult band i de aceea aveau numeroase LAN-uri de 10 Mbps conectate printr-un labirint de repetoare, puni, rutere i pori, dei administratorii de reea aveau cteodat impresia c erau inute la un loc prin gum de mestecat. n aceste condiii, IEEE a convocat din nou, n 1992, comitetul 802.3 instruindu-1 s proiecteze un LAN mai rapid. O propunere era s se pstreze 802.3 identic, dar s fie fcut s mearg mai repede. Alt propunere era ca 802.3 s fie total reproiectat, s i se dea o mulime de noi caracteristici, cum ar fi trafic n timp real i voce digitizat, dar s i se pstreze vechiul nume (din motive de marketing). Dup dispute zgomotoase, comitetul a decis s pstreze 802.3 aa cum era, doar s-1 fac mai rapid. Cei din spatele propunerii respinse au fcut ceea ce ar fi fcut n aceste

SEC. 45

IAN-URI DE MARE VITEZ

299

circumstane oricine,din industria calculatoarelor - au format propriul lor comitet i i-au standardizat LAN-ul (n cele din urm ca 802.12). Cele trei motive principale pentru care comitetul .802.3 a decis s mreasc puterea LAN-ului 802.3 au fost urmtoarele: 1. 2. 3. Nevoia de a fi compatibil cu miile de LAN-uri existente din versiunea precedent. Teama c un nou protocol ar avea probleme neprevzute. Dorina de a rezolva problema nainte ca tehnologia s se schimbe.

Reproiectarea s-a fcut repede (dup normele comitetelor de standarde) i rezultatul, 802.3u, a fost aprobat oficial de IEEE n iunie 1995. Tehnic, 802.3u nu este un standard nou, ci o completare la standardul-existent (pentru a sublinia compatibilitatea eu versiunea precedent). De vreme ce toat lumea i spune Ethernet rapid (fast Ethernet), mai degrab dect 802.3u, aa vom face i noi. Ideeade baz din spatele Ethemet-ului rapid era simpl: pstreaz toate vechile formate de pachete, interfee i reguli procedurale, n schimb se reduce durata de bit de la 100 nsec la 10 nsec. Tehnic, ar fi fost posibil s se copieze 10Base-5 sau 10Base-2 i s se detecteze coliziunile la timp numai prin reducerea lungimii maxime a cablului de zece ori. Totui, avantajele cablrii lOBase-T au fost att de copleitoare, nct Ethernet-ul rapid se Baseaz n ntregime pe acest mod de cablare. Astfel toate sistemele Ethernet rapide folosesc concentratoare; nu sunt permise cablurile multipunct cu conectori vampir sau BNC. Cu toate acestea, tot mai trebuia luate anumite decizii, cea mai important fiind ce fel de srm s fie folosit. O alternativ a fost reprezentat de perechi torsadate de categoria 3. Argumentul era c practic fiecare birou occidental are cel puin patru fire torsadate categoria 3, mergnd de la el la o central telefonic aflat la cel mult 100 m, cteodat existnd chiar dou asemenea cabluri. Astfel, folosirea perechilor torsadate de categoria 3 ar face posibil legarea calculatoarelor de birou prin Etherne-ul rapid, fr s fie necesar o recablare a cldirii, un avantaj enorm pentru multe organizaii. Dezavantajul principal al firelor torsadate categoria 3 este incapacitatea lor de a purta semnale de 200 Mbozi (100 Mbps cu codificarea Manchester) pe o distan de 100 m, distana maxim calculator - concentrator specificat pentru lOBase-T (vezi Fig.4-17). n contrast, cablarea cu fire torsadate categoria 5 poate s controleze uor 100 de metri, iar fibra merge i mai departe. Compromisul ales a fost s se permit toate cele trei posibiliti, aa cum se arat n Fig. 4-47, dar s se mbunteasc soluia cu categoria 3 pentru a i se da capacitatea de transport necesar.
Nume 100Base-T4 100Base-TX 100Base-F
;

Cablu Fire torsadate Fire torsadate Fibr optic

Segment max. 100 m 100 m 2000 m

Avantaje Folosete categoria 3UTP Full duplex la 100 Mbps Full dup[ex la 100 Mbps pentru distane mari

Fig. 4-47. Cablarea Ethemet-ului rapid.

Schema cu fire categoria 3 UTP, numita 100Base-T4, folosete o vitez de semnalizare de 25 MHz, numai cu 25% mai mare dect cei 20 de MHz ai standardului 802.3 (amintii-v c, dup cum se arata n Fig. 4-20, codificarea Manchester necesit dou perioade de tact pentru fiecare bit din

300

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

cele 10 milioane n fiecare secund). Pentru a: dobndi banda necesar, lOOBase^ necesit patrii perechi torsadate. Din moment ce de zeci de ani telefonia standard a folosit patru perechi torsadate per cablu, cele mai multe dintre birouri pot s se descurce. Bineneles, nseamn abandonarea telefonului de la birou, dar aceasta este desigur un pre mic pentru un e-mail mai rapid. Dintre cele patru perechi torsadate, una este ntotdeauna nspre concentrator, una este ntotdeauna dinspre concentrator, iar celelalte dou sunt comutabile n direcia transmisiei curente. Pentru a obine banda necesar nu se folosete codificarea Manchester, dar cu ceasurile moderne i asemenea distane scurte, nici nu este nevoie. n plus, sunt trimise semnale ternare, aa nct n timpul unei singure perioade de tact firul poate conine un 0, un 1 sau un 2. Cu trei perechi torsadate mergnd n direcia de transmitere i semnale ternare, oricare din cele 27 de simboluri posibile poate fi transmis, fcnd posibil, cu o anumit redundan, transmiterea a 4 bii. Transmiterea a patru bii n fiecare din cele 25 de milioane de perioade de tact pe secund d cei 100 Mbps necesari. n plus, ntodeauna exist un canal invers de 33.3 Mbps care folosete perechea torsadat rmas. Aceast schem, cunoscut ca 8B(7T (8 bii reprezint 6 trii), nu va ctiga premii pentru elegan, dar funcioneaz cu cablarea existent. Pentru cablajul categoria 5, arhitectura, lOOBase-TX, este mai simpl deoarece cablul poate suporta frecvene de pn la 125 MHz i peste. Sunt folosite numai dou fire torsadate pe direcie, unul mergnd la concentrator i unul venind de la concentrator. Mai degrab dect s se foloseasc o codificare binar direct, la 125 MHz este folosit o schem numit 4B5B. Fiecare grup de cinci perioade de tact este folosit pentru a trimite 4 bii, urmrind s asigure redundana, s furnizeze suficiente tranziii pentru a permite o sincronizare simpl a ceasurilor, s creeze abloane unice pentru delimitarea cadrelor i s fie compatibil cu FDDI la nivelul fizic. n consecin, lOOBase-TX este un sistem full-duplex; staiile pot transmite la 100 Mbps i primi la 100 Mbps n acelai timp. n plus, poi avea dou telefoane n birou pentru comunicaii adevrate n cazul n care calculatorul este ocupat cu navigarea pe Web. Ultima opiune, lOOBase-FX, folosete dou fire de fibr multimod, cte unul pentru fiecare direcie, aa nct i ea este full-duplex cu 100 Mbps n fiecare direcie. n plus, distana dintre staie i concentrator poate fi pn la 2 km. n cazurile 100Base-T4 i lOOBase-TX sunt posibile dou tipuri de concentratoare, reunite sub numele lOOBase-T. ntr-un concentrator partajat, toate liniile care intra (sau cel puin toate liniile care ajung la o plac "plug-n") sunt conectate logic, formnd un singur domeniu de coliziuni. Toate regulile standard, inclusiv algoritmul de regresie binar n caz de coliziune (binary back-off), se aplic, astfel nct sistemul funcioneaz ca 802.3. n particular, la un moment dat nu poate transmite dect o singur staie. ntr-un concentrator comutat, fiecare cadru sosit este memorat ntr-un modul de intrare. Dei aceast caracteristic crete preul concentratorului, are proprietatea c toate staiile pot transmite (i primi) n acelai timp, mbuntind semnificativ banda total a sistemului, de cele mai multe ori cu un ordin de mrime sau chiar mai mult. Cadrele memorate sunt trecute printr-un fund de sertar de vitez mare de la placa surs la placa destinaie. Fundul de sertar nu a fost standardizat i nici nu trebuie s fie, din moment ce este ascuns adnc n interiorul comutatorului. Dac ne putem ghida dup experiena trecut, comercianii de comutatoare se vor ntrece serios pentru a produce funduri de sertar de i mai mare vitez, pentru a mbunti productivitatea sistemului. Deoarece cablurile lOOBase-FX sunt prea lungi pentru algoritmul Ethernet de coliziune obinuit, ele trebuie conectate

SEC. 4.5

LAN-URI DE MARE VITEZ

301

la concentratoare de tip comutatoare cu memorie tampon, astfel c fiecare este un domeniu de coliziune cu el nsui. Ca o observaie final, aproape,toate comutatoarele pot trata un amestec de staii de 100 Mbps i 10 Mbps, pentru a face modernizarea mai uoar. Pe msur ce o reea dobndete tot mai multe staii de lucru de 100 Mbps, tot ceea ce trebuie fcut este s se cumpere necesarul de module standard care s fie inserate n comutator. Mai multe informaii despre Ethemet-ulrapid pot fi gsite n (Johnson, 1996). Pentru o comparaie a reelelor locale de mare vitez, n particular, FDDI, Ethernetul rapid, ATM i VGAnyLAN, vezi (Croninet al., 1994). 4.53 HIPPI- Interfaa paralel de mare vitez n timpul rzboiului rece, Laboratorul Naional Los Alamos, centrul guvernamental al SUA de proiectare a armelor nucleare, a achiziionat cte un supercalculator din fiecare tip aflat pe pia. Los Alamos a achiziionat de asemenea periferice deosebite, cum ar fi dispozitive de stocare de mare capacitate i staii grafice speciale pentru vizualizare tiinific. La momentul respectiv, fiecare productor avea o interfa diferit pentru conectarea perifericelor la supercalculatorul su, astfel nct nu a fost posibil s se partajeze perifericele sau s se interconecteze dou supercalculatoare. n 1987, cercettorii de la Los Alamos au nceput lucrul la o interfa standard ntre supercalculatoare, cu intenia de a o standardiza i de a convinge apoi toi productorii s o foloseasc. (Datorit bugetului su pentru calculatoare, cnd Los Alamos vorbea, productorii ascultau.) Interfaa i propunea s fie implementat rapid i eficient de oricine. Principiul de baz era KISS (Keep It Simple, Stupid). Interfaa nu urma s aib opiuni nici s necesite proiectarea unor noi cip-uri, dar s aib performanele unui furtun de pompieri. Specificaiile iniiale cereau o rat de transfer de 800 Mbps, ntruct pentru urmrirea filmelor cu bombe explodnd era nevoie de cadre de 1024x1024 pixeli cu 24 de bii pe pixel i 30 de cadre pe secund, pentru o rat de transfer agregat de 750 Mbps. Mai trziu s-a strecurat o opiune: o a dou rat de transfer de 1600 Mbps. Cnd aceast propunere, denumit HIPPr(HIgh Performance Paralled Interface - interfaa paralel de mare vitez) a fost oferit la ANSI pentru standardizare, cei care au propus-o au fost privii ca o band de nebuni, deoarece LAN-urile din anii '80 nsemnau Ethernet-uri de 10 Mbps. HIPPI a fost proiectat iniial pentru a fi mal degrab un canal de transfer de date dect un LAN. Canalele de transfer opereaz punct-la-punct, de la un mater (un calculator) la un slave (un periferic), cu cabluri dedicate i fr comutare. Nu apar conflicte i funcionarea este n ntregime previzibil. Mai trziu, nevoia de a comuta un echipament periferic de la un supercalculator la altul a devenit presant i astfel la proiectul HIPPI a fost adugat un comutator matricial, dup cum este ilustrat n Fig. 4-48. ' ' Pentru a obine asemenea performane ridicate folosind numai cipuri standard existente, interfaa de baz a fost fcut de 50 de bii; 32 de bii de date i 18 bii de control, astfel nct cablul HIPPI conine 50 de fire torsadate. La fiecare 40 nsec prin interfa este transferat, n paralel, un cuvnt. Pentru a obine 1600 Mbps, sunt folosite dou cabluri i se transfer dou cuvinte pe ciclu. Toate transferurile sunt simplex. Pentru a obine comunicaie n ambele sensuri, este nevoie de dou (sau patru) cabluri. La aceste viteze, lungimea maxim a cablului este de 25 de metri.

302

SUBNIVELUL DE ACCES IA MEDIU

CAP/4

Memorie de mare capacitate


Supercalculator 2 Supercalculator

comutator matricial 4x4

Supercalculator 4

50 pn la 100 de perechi torsadate

Fig.4-48. HIPPI folosind un comutator matricial. Dup ce a depit ocul iniial, comitetul ANSI X3T9.3 a produs un standard HIPPI bazat pe propunerea de la Los Alamos. Standardul acoper nivelul fizic i nivelul legtur de date. Tot ce este deasupra depinde de utilizatori. Protocolul de baz este urmtorul: pentru a comunica, o gazd i cere mai nti comutatorului matricial s stabileasc o legtur; dup aceea trimite (de obicei) un singur mesaj i elibereaz legtura. Mesajele sunt structurate ntr-un cuvnt de control, un antet de cel mult 1016 bii i o parte de date de pn la 2 32 - 2 octei. Din motive legate de controlul fluxului, mesajele sunt mprite n cadre de cte 256 de cuvinte. Atunci cnd receptorul este capabil s accepte un cadru, atenioneaz emitorul, care apoi trimite un cadru. De asemenea receptorii pot s cear cadre multiple. Controlul erorilor const dintr-un bit paritate orizontal pe cuvnt i un cuvnt de paritate vertical la sfritul fiecrui cadru. Sumele de control tradiionale sunt privite ca inutile i prea lente. HIPPI a fost implementat rapid de muli productori i a fost standardul de interconectare a supercalculatoarelor timp de ani de zile. Pentru mai multe informaii, vezi (Hughes i Frana, 1994; Tolmie, 1992; i Tolmie i Renwick, 1993). 4.5.4 Canalul de fibr optic Atunci cnd a fost proiectat HIPPI, fibra optic era prea costisitoare i nu era considerat suficient de sigur, astfel c cel mai rapkl LAN era construit din fire de telefon de calitate sczut. Cu trecerea timpului, fibra a devenit mai ieftin i mai sigur, fiind natural ncercarea de a reface HIPPI folosind o singur fibr n loc de 50 sau 100 de fire torsadate. Din nefericire, bunul obicei ca Los Alamos s analizeze propunerile noi de ndat ce se iveau, se pierduse pe drum. Succesorul lui HIPPI, numit canal de fibr optic, este mult mai complicat i mai costisitor de implementat. Rmne de vzut dac acesta se va bucura de succesul comercial al HIPPI. Canalul de fibr trateaz att canale de transfer de date, ct i legturi de reea. n particular, poate fi folosit pentru a transporta canale de transfer de date incluznd HIPPI, SCSI i canalul

SEC.4.6

REELE DE SATELII

303

multiplexor folosit pe mainframe-urile IBM. Poate de asemenea s transfere pachete de reea, incluznd IEEE 802, IP i ATM. Ca la HIPPI, structura de baz a canalului de fibre este un comutator matricial care conecteaz intrrile la ieiri. Legturile pot fi stabilite pentru un pachet sau pentru un interval mult mai lung. Canalele de fibre suport trei dasede servicii. Prima clas este simpla comutare de circuite, care garanteaz livrarea n ordine. Lucrul n mod canal de date folosete aceast clas de servicii. A dou clas este comutarea de pachete cu livrare garantat. A" treia clas este comutarea de pachete fr livrare garantat. Canalul de fibr are o structur de protocol complexa, dup cum se arat n Fig. 4-49. Se pot observa cinci niveluri care acoper nivelul fizic i cel al legturii de date. Cel mai de jos nivel se ocup cu mediul fizic. Deocamdat, suport rate de transfer de 100,200,400 i 800 Mbps. Cel de-al doilea nivel se ocup de codificarea biilor. Sistemul folosit se aseamn ntructva cu FDDI, dar n loc de a folosi 5 bii pentru codificarea a 16 simboluri valide, sunt folosii 10 bii pentru a codifica 256 de simboluri valide, furniznd i o oarecare redundan. mpreun, aceste dou nivele sunt funcional echivalente nivelului fizic al OSI.
Nivel Canale de date IBM SCSI 802 Reele IP ATM Nivel ["legtur de date I Nivel .[ fizic

FC-4 HIPPI FC-3 FC-2 FC-1 FC-0 100 Mbps

Servicii obinuite Protocol de cadru 8/10 Codificare/Decodificare 200 Mbps 400 Mbps 800 Mbps Viitor

Fig. 4-49. Nivelurile de protocol ale canalului de fibr. Nivelul de mijloc definete structura cadrului i formatele antetului. Datele sunt transmise n cadre a cror parte util poate fi de pn la 2048 octei. Nivelul urmtor permite ca serviciile obinuite s fie oferite n viitor nivelului superior, dup cerin. n sfrit, nivelul cel mai de sus asigur interfeele cu diferite tipuri de calculatoare i periferice admise. Ca observaie, dei canalul de fibr a fost proiectat n Statele Unite, ortografia numelui su a fost aleas de editorul standului, care era britanic. Informaii suplimentare despre canalul de fibre se gsesc n (Tolmie, 1992). O comparaie ntre acesta HIPPI i ATM este prezentat n (Tolmie, 1995).

4.6 REELE DE SATELII


Dei majoritatea canalelor de acces multiplu se gsesc n LAN-uri, exist un tip de WAN care folosete canale de acces multiplu: WAN-uri bazate pe comunicaii prin satelii. n seciunile urmtoare, vom studia pe scurt unele dintre problemele care apar n cadrul reelelor cu ntindere

304

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

mare bazate pe satelii. De asemenea ne vom ocupa de unele dintre protocoalele care au fost create pentru a le trata. Sateliii de comunicaii au de obicei n jur de dousprezece sau mai multe transpondere. Fiecare transponder are un fascicul care acoper o poriune din pmntul de dedesubt, variind de la un fascicul larg cu diametrul de 10 000 km, la un fascicul localizat cu diametrul de numai 250 km. Staiile din interiorul suprafeei acoperite de fascicul pot trimite cadre satelitului pe frecvena de ridicare. Satelitul le retransmite apoi pe frecvena de coborre. Pentru ridicare i coborre se folosesc frecvene diferite pentru a mpiedica transponderul s intre n oscilaie. Sateliii care nu fac prelucrare local, ci doar amplific i retransmit orice aud (cei mai muli dintre ei) se numesc satelii de tip conduct cotit (bent pipe). Fiecare anten se poate orienta ctre o anumit suprafa, poate transmite cteva cadre, i apoi reorienta ctre alt suprafa. Poziionarea (orientarea) se face electronic, dar tot dureaz un numr de microsecunde. Timpul n care un fascicul st poziionat pe o suprafa dat se numete timp de staionare (dwell time). Pentru eficien maxim, acesta nu trebuie s fie prea scurt, pentru c altfel s-ar pierde prea mult timp cu mutarea fasciculului. La fel ca i n cazul LAN-urilor, una dintre problemele cheie de proiectare este cum s fie alocate canalele transponderelor. Totui, spre deosebire de LAN-uri, detectarea purttoarei este imposibil, datorit unei ntrzieri de propagare de 270 msec. Cnd o staie detecteaz starea unui canal de coborre, aude ce s-a ntmplat cu 270 msec n urm. Detectarea unui canal de ridicare este n general imposibil. Drept rezultat, protocoalele CSMA/CD (care presupun c o staie care transmite poate detecta coliziunile pe durata primilor bii transmii i apoi s se retrag dac are loc o coliziune) nu pot fi folosite n cazul sateliilor. De aici nevoia de alte protocoale. Pe canalul de acces multiplu (ridicare) sunt folosite cinci clase de protocoale: interogare, ALOHA, FDM, TDM i CDMA. Dei le-am studiat pe fiecare dintre acestea, funcionarea sateliilor adaug cteodat noi dificulti. Problema principal este cu canalul de ridicare, deoarece canalul de coborre nu are dect un expeditor (satelitul) i nu are probleme de alocare a canalului. 4.6.1 Interogare Modul tradiional de a aloca un singur canal ntre utilizatori concureni utilizeaz interogarea acestora. Este prohibitiv de costisitor ca satelitul s interogheze pe rnd fiecare staie pentru a vedea dac are un cadru, din cauza timpului de 270 msec necesar pentru fiecare secven ntrebare/rspuns. Totui, dac toate staiile de la sol sunt legate la o reea de comutare de pachete (n mod obinuit de band ngust), se poate concepe o variant a acestei idei. Ideea este s se aranjeze toate staiile ntr-un inel logic, astfel nct fiecare staie s-i cunoasc succesorul. Prin acest inel terestru circul un jeton, pe care satelitul nu l vede niciodat. Unei staii i este permis s transmit pe ridicare numai atunci cnd a capturat jetonul. Dac numrul staiilor este mic i constant, dac timpul de transmitere al jetonului este scurt i dac rafalele de date transmise pe canalul de ridicare sunt mult mai lungi dect timpul de rotaie a jetonului, schema are o eficien moderat.

SEG.4.6

REELE DE SATELII

305

4.6.2 ALOHA ALOHA simplu se implementeaz uor: fiecare staie transmite atunci cnd vrea. Problema este c eficiena canalului nu se ridic peste 18%. n general, un asemenea factor de utilizare redus este inacceptabil pentru satelii care cost zeci de milioane de dolari fiecare.

Satelit \
/ / / / / / / / l / J / v

/
W

Satelit \
J

////////////
///////// ffj

(fv^^

Un canal de coborre

Dou canale de ridicare

Fig. 4-50. (a) Un sistem ALOHA standard, (b) Adugarea unui al doilea canal de ridicare Folosind ALOHA cuantificat, se dubleaz eficiena, dar apare problema sincronizrii tuturor staiilor, pentru ca toate s tie cnd ncepe fiecare cuant de timp. Din fericire, chiar satelitul are rspunsul, din moment ce este implicit un mediu de difuzare. O staie terestr, staia de referin, transmite periodic un semnal special, a crui redifuzare este folosit de toate staiile terestre ca origine a timpului. Dac toate cuantele de timp au lungimea AT, fiecare staie tie acum c cuanta de timp k ncepe la un interval kAT de la originea timpului. Deoarece ceasurile merg puin diferit, este necesar resincronizarea periodic, pentru a menine toate staiile n faz. O complicaie n plus este c timpul de propagare de la satelit este diferit pentru fiecare staie terestr, dar aceasta se poate corecta. Pentru a mri utilizarea canalului de ridicare peste l/e, putem s trecem de la canalul cu un singur flux de ridicare din Fig. 4-50(a) la schema cu dou fluxuri de ridicare din Fig. 4-50 (b). O staie care are un cadru de transmis alege la ntmplare unul dintre cele dou canale de ridicare i trimite cadrul n urmtorul interval. Fiecare canal de ridicare opereaz apoi un canal ; ALOHA cuantificat independent. Dac unul dintre canalele de ridicare conine un singur cadru, acesta este pur i simplu transmis n cuanta de coborre corespunztoare mai trziu. Dac amndou canalele au succes, satelitul poate s memoreze unul dintre cadre, transmindu-1 mai trziu n timpul unei cuante libere. Calculnd probabilitile, se poate arta c, dat fiind un spaiu de memorare nelimitat, utilizarea coborrii poate fi adus la 0.736, cu condiia mririi cu 50% a necesitilor de band.

306

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

4.6.3 FDM
Multiplexarea prin divizarea frecvenei este cea mai veche i probabil nc cea mi folosit metod de alocare a canalelor. Un transponder de 36-Mbps poate fi mprit static if 500 canale PCM de 64Kbps, fiecare opernd la frecvena sa unic, pentru a evita interferena cu altele. Dei simpl, FDM are anumite dezavantaje. n primul rnd, este nevoie de benzi de gard ntre canale pentru a menine staiile separate. Aceast cerin exist pentru c nu este posibil construirea unor emitori care emit toat energia n banda principal i nimic n benzile laterale/secundare. Cantitatea de band risipit n benzile de gard poate reprezenta o fraciune important din total. n al doilea rnd, staiile trebuie controlate cu grij n ceea ce privete puterea semnalului de ieire. Dac o staie emite putere prea mare n banda principal, va pune automat prea mult putere n benzile secundare, revrsndu-se peste canalele adiacente i cauznd interferene. n sfrit, FDM este n ntregime o tehnic analogic i nu este adecvat implementrii n software. Dac numrul de staii este mic i fixat, canalele de frecven pot fi alocate static n avans. Totui, dac numrul de staii sau ncrcarea pe fiecare dintre acestea poate fluctua rapid, este nevoie de o form de alocare dinamic a benzilor de frecven. Un asemenea mecanism este sistemul SPADE folosit pe civa satelii Intelsat timpurii. Fiecare transponder SPADE a fost mprit n 794 canale de voce PCM mai simple (64-kbps) mpreun cu un canal obinuit de semnalizare, de 128-kbps. Canalele PCM erau folosite n perechi pentru a oferi serviciu full-duplex. Banda total folosit de un transponder era de 50 Mbps pentru poriunea de ridicare i de nc 50 Mbps pentru coborre. Canalul obinuit de semnalizare era mprit n uniti de 50 msec. O unitate coninea 50 de cuante de 1 msec (128 bii). Fiecare cuant "aparinea" cel mult uneia dintre cele 50 de staii terestre. Cnd o staie terestr avea informaie de trimis, alegea la ntmplare un canal curent nefolosit i scria numrul acelui canal n urmtoarea cuant de 128 de bii. n cazul n care canalul selectat era n continuare nefolosit atunci cnd cererea era vzut pe coborre, canalul era considerat alocat i toate celelalte staii se abineau de la a ncerca s-1 dobndeasc. Dac dou sau mai multe staii ncercau s aloce acelai canal n acelai cadru, se producea o coliziune i trebuia s ncerce din nou mai trziu. Atunci cnd o staie termina de folosit canalul, trimitea un mesaj de eliberare a cuantei sale din canalul comun.

4.6.4 TDM
La fel ca FDM, TDM este bine neles i larg folosit n practic. Necesit sincronizarea cuantelor de timp, dar aceasta poate fi oferit de o staie de referin, dup cum este descris pentru ALOHA cuantificat de mai sus. Asemntor cu FDM, pentru un numr de staii mic i care nu variaz, atribuirea cuantelor poate fi stabilit n avans i niciodat schimbat, dar pentru un numr variabil de staii sau pentru un numr fixat de staii cu ncrcare variabil n timp, cuantele de timp trebuie atribuite dinamic. Atribuirea cuantelor se poate face n mod centralizat sau descentralizat. Ca exemplu de atribuire centralizat de cuante, s considerm ACTS-ul experimental (Advanced Communication Tecnology Satellite - Satelitul cu tehnologie avansat de comunicare), care a fost proiectat pentru cteva zeci de staii (Palmer i White, 1990). ACTS a fost lansat n 1992 i are patru canale TDM independente de

SEC. 4.6

REELE DE SATELIT!

307

110 Mbps, dou de ridicare i dou de coborre. Fiecare canal este organizat ca o secven de cadre de 1-msec, fiecare cadru coninnd 1728 cuante de timp. Fiecare cuant de timp are partea util de
64 bii, permind includerea unui canal de voce de 64 Kbps.

Fasciculele pot fi mutate de la o suprafa geografic la alta, dar din moment ce mutarea consum cteva cuante de timp, n mod normal canalelor care au originea sau se termin n aceeai arie geografic le sunt atribuite cuante de timp succesive, pentru a mri timpul de staionare i a micora pierderea de timp datorat mutrii fasciculului. Astfel gestionarea cuantelor de timp necesit o cunoatere n profunzime a amplasrii geografice a staiilor pentru a minimiza numrul de cuante de timp risipite. Pentru acest motiv i pentru altele, gestiunea cuantelor de timp se face de ctre una dintre staiile terestre, MCS (Mater Control Station - staia de control principal). Funcionarea ACTS este un proces continuu n trei pai, fiecare pas lund 1 msec. n pasul 1, satelitul primete un cadru i fl stocheaz ntr-un RAM cu 1728 intrri, aflat la bordul satelitului. n pasul 2, un calculator (aflat la bord) copiaz fiecare intrare la ieirea corespunztoare (posibil pentru o alt anten). n pasul 3, cadrul de ieire este transmis pe coborre. Iniial, fiecrei staii i este atribuit cel puin o cuant de timp. Pentru a dobndi canale suplimentare (pentru alte apeluri de voce), o staie trimite un scurt mesaj de cerere la MCS. Aceste mesaje folosesc un numr mic de bii suplimentari i ofer un canal de control special la MCS cu o capacitate de aproximativ 13 mesaje/sec pe staie. Canalele sunt dedicate; nu exist dispute pentru ele. Alocarea dinamic de cuante TDM este de asemenea posibil. n cele ce urmeaz vom discuta trei scheme. n fiecare dintre acestea, cadrele TDM sunt mprite n cuante de timp, cu fiecare cuant avnd un posesor (temporar). Cuanta de timp poate fi folosit numai de posesor. Prima schem presupune c exist mai multe cuante dect staii, astfel nct fiecrei staii i este atribuit o cuant implicit (Binder, 1975). Dac sunt mai multe cuante dect staii, cuantele suplimentare nu sunt asociate nimnui. Dac posesorul unei cuante nu o dorete pe durata ciclului curent, trece n ateptare. O cuant fr nimic este un semnal pentru toi ceilali c posesorul ei nu are trafic. n timpul cadrului urmtor, cuanta devine disponibil oricui o vrea, pe baz de concuren (ALOHA).
Subsloturi de rezervare

Proprietar G A F E B C D Grupi G A F Grup 2 G A

B C D

A F A A A

G G

D E D E D D D

i
i

B C D B
m
ffi

Grup 3 G A A E Grup 4 G A

A G A
(b)

E B B (a)

Fig. 4-51. Scheme de rezervare, (a) Binder, (b) Crowther. (c) Roberts. Ptrelele umbrite indic coliziuni. Pentru fiecare dintre cele trei scheme, sunt artate patru grupuri consecutive de cuante.

(O

308

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4;

Dac posesorul dorete s-i recupereze cuanta sa "implicit", trimite un cadru, fornd astfelo coliziune (dac mai exist trafic). Dup coliziune, orice staie n afar de posesor trebuie s renune s foloseasc cuanta n urmtorul cadru. Astfel posesorul poate ntotdeauna s nceap transmisia ntr-un interval de dou cadre (n cel mai ru caz). La utilizare redus a canalelor sistemul nu are performane la fel de bune ca ALOHA cuantificat normal din moment ce, dup fiecare coliziune, staiile intrate n coliziune trebuie s se abin de la un cadru pentru a vedea dac posesorul vrea cuanta napoi. Fig. 4-51(a) prezint un cadru cu opt cuante, dintre care apte sunt deinute de G, A, F, E, B, C i, respectiv, D. Cea de-a opta cuant nu aparine nimnui i poate fi disputat. O a doua schem este aplicabil, chiar dac numrul staiilor este necunoscut i este variabil (Crowther .a., 1973). n aceast metod, cuantele nu au posesori permaneni, spre deosebire de metoda lui Binder. n schimb, staiile concureaz pentru cuante folosind ALOHA cuantificat. De cte ori o transmisie este reuit, staia care a fcut-o are dreptul la aceeai cuant i n urmtorul cadru. Astfel, ct timp o staie are de trimis informaie, poate s o fac la nesfrit (supus unor reguli tip Te-rog-nu-fii-mgar). n esen propunerea permite un amestec dinamic de ALOHA cuantificat i TDM, cu numrul cuantelor atribuite fiecreia variind la cerere. Fig. 4-51(b) prezint un cadru cu opt cuante. Iniial, E folosete ultima cuant, dar dup dou cadre, nu mai are nevoie de aceasta. Trece n ateptare timp de un cadru, apoi D o culege i o pstreaz pn cnd termin. O a treia schem, datorat lui Roberts (1973), impune ca staiile s fac cereri n avans, nainte de a transmite. Fiecare cadru conine, s zicem, o cuant special (ultima din Fig. 4-5 l(c)) care este mprit n V subcuante mai mici, folosite pentru a face rezervri. Atunci cnd o staie vrea s trimit date, emite un scurt cadru de cerere ntr-o subcuant de rezervare aleas la ntmplare. Dac rezervarea este reuit (adic nu au loc coliziuni), atunci este rezervat urmtoarea cuant (sau cuante) obinuit. Toate staiile trebuie s in n permanen evidena lungimii cozii (numrul de cuante rezervate), astfel ca, atunci cnd orice staie face o rezervare reuit, s tie peste cte cuante trebuie s sar nainte de a transmite. Staiile nu trebuie s in evidena celor aflai n coad; trebuie s cunoasc doar lungimea cozii. Atunci cnd lungimea cozii scade la 0, toate cuantele se transform n subcuantele de rezervare pentru a mri viteza procesului de rezervare. Dei TDM este larg folosit, cu i fr schemele de rezervare, are i el unele defecte. n primul rnd impune ca toate staiile s fie sincronizate n timp, ceea ce nu este aa de uor n practic din cauz c sateliii au tendina de a aluneca pe orbit, ceea ce schimb timpul de propagare la fiecare staie terestr. De asemenea necesit ca fiecare staie terestr s fie capabil de viteze rafal foarte mari. De exemplu, chiar dac o staie ACTS poate avea numai un canal de 64 Kbps, ea trebuie s fie capabil s emit o rafal de 64 bii ntr-o cuant de timp de 578 nsec. Cu alte cuvinte, trebuie de fapt s opereze la 110 Mbps. n schimb, o staie FDM de 64 Kbps opereaz ntr-adevr la 64 Kbps.
4.6.5 CDMA

Ultima schem este CDMA. CDMA evit problema sincronizrii n timp i cea a alocrii canalelor. Este complet descentralizat i n ntregime dinamic. Totui, are trei dezavantaje principale. n primul rnd, capacitatea unui canal n prezena zgomotelor i a staiilor necoordonate este n mod obinuit mai mic dect ce poate realiza TDM. n al doilea rnd, cu 128 cipuri/bit (o valoare obinuit), dei rata de transfer nu este mare, rata de cipuri este mare, necesitnd un emitor rapid i scump (la citire). n al treilea rnd, puini ingineri

SEC. 4.7

REZUMAT

309

neleg de faptCMDA, ceea ce n general nu crete ansele ca ei s-1 foloseasc, chiar dac este cea mai bun metod pentru o anumit aplicaie. Cu toate acestea, CDMA a fost folosit de armat zeci de ani i acum devine din ce n ce mai obinuit i n aplicaiile comerciale.

4.7

REZUMAT

Anumite reele au un singur canal care este folosit pentru toate comunicaiile. n aceste reele, principala problem de proiectare este alocarea acestui canal ntre staiile concurente care doresc s l foloseasc. Au fost pui la punct numeroi algoritmi de alocare a canalului. Un rezumat al unora dintre cele mai importante metode de alocare a canalului este prezentat nFig.4-52.
Metod FDM TDM ALOHA pur ALOHA cuantificat CSMA1-persistent CSMA nepersistent CSMA p-persistent CSMA/CD Hart de bii (bit map) Numrare binar invers Parcurgere arborescent Divizarea lungimii de und MACA, MACAW GSM CDPD CDMA Ethernet Token-bus Token-rihg DQDB FDDI HIPPI Canal de fibr SPADE ACTS Binder Crowther Roberts Descriere Dedic o band de frecven fiecrei staii Dedic o cuant de timp fiecrei staii Transmisie nesincronizat n orice moment Transmisie aleatoare n cuante de timp bine definite Acces multiplu standard cu detectarea purttoarei ntrziere aleatoare cnd canalul este ocupat CSMA cu probabilitatea de persisten p CSMA cu oprire n cazul detectrii unei coliziuni Utilizeaz o hart de bii pentru planificare de tip rulare prin rotaie Urmtoarea este staia pregtit cu cel mai mare numr Reduce conflictele prin activare selectiv Schem FDM dinamic pentru fibre optice Protocoale LAN fr fir FDM plus TDM pentru telefonie celular Comutare de pachete radio ntr-un canal AMPS Toi vorbesc n acelai timp, dar n limbaj diferit CSMA/CD cu algoritm cu regresie exponenial binar Inel logic pe o magistral fizic Trimite un cadru dup primirea jetonului MAN cu dou magistrale utiliznd cozi distribuite de mesaje Token-ring pe fibr optic Comutator matricial care utilizeaz 50 -100 de perechi torsadate Comutator matricial folosind fibr optic FDM cu alocare dinamic a canalului TDN cu alocarea centralizat a cuantelor TDM cu ALOHA cnd deintorul cuantei nu este interesat ALOHA cnd deintorul cuantei o pstreaz Rezervarea n avans a canalului prin ALOHA

Fig. 4-52. Metode i sisteme de alocare a canalului pentru un canal obinuit. Cele mai simple scheme de alocare sunt FDM i TDM. Acestea sunt eficiente atunci cnd numrul de staii este mic iar traficul continuu. Amndou sunt larg folosite n aceste condiii, de exemplu pentru a diviza banda de legtur utilizat pentru trunchiuri telefonice.

310

SUBNIVELUL DE ACCES LA MEDIU

CAP. 4

Dac numrul staiilor este mare i variabil, iar traficul de tip rafal, atunci FDM i DM nu sunt alegeri bune. Ca alternativ a fost propus protocolul ALOHA, cu sau fr cuantificare i control. ALOHA i numeroasele sale variante i derivate a fost pe larg discutat, analizat i folosit n sisteme reale. Atunci cnd starea canalului poate fi detectat, staiile pot evita nceperea unei transmisii ct timp transmite alt staie. Aceast tehnic, detectarea purttoarei, a condus la o diversitate de protocoale care pot fi folosite pe LAN-uri i MAN-uri. Exist o clas de protocoale care elimin total conflictele, sau cel puin le reduce considerabil. Numrarea binar invers elimin complet conflictele. Protocolul de parcurgere arborescent le reduce mprind dinamic staiile n dou grupuri disjuncte, unuia permindu-i-se s transmit iar celuilalt nu. Acesta ncearc s fac mprirea astfel, nct transmisia s-i fie permis unei singure staii dintre cele pregtite s trimit. LAN-urile fr fir au propriile lor probleme i soluii. Cea mai mare problem este cauzat de staii ascunse, astfel nct CSMA nu funcioneaz. O clas de soluii, tipizat de MACA, intenioneaz s stimuleze transmisiile n jurul destinaiei, pentru a mbunti funcionarea CSMA. Pentru calculatoare i telefoane mobile, tehnologia radio celular vine din urm. GSM, CDPD i CDMA sunt larg folosite. LAN-urile IEEE 802 sunt: CSMA/CD, token-bus i token-ring. Fiecare dintre acestea are propriile sale avantaje i dezavantaje, fiecare i-a gsit propria sa comunitate de utilizatori i probabil va continua s serveasc acea comunitate i n viitor. Convergena la un singur standard LAN este un eveniment improbabil. O nou adugare la aceast familie este DQDB, vndut ca MAN n multe orae. O organizaie cu multe LAN-uri le conecteaz deseori prin puni. Atunci cnd o punte conecteaz dou sau mai multe tipuri de LAN-uri, apar noi probleme, dintre care unele nerezolvabile. n timp ce 802 sunt caii de traciune ai zilei, caii de curse sunt FDDI, Ethernet-ul rapid, HIPPI i canalul de fibre. Toate acestea ofer band n domeniul de 100 Mbps i peste. n sfrit, reelele de satelii folosesc de asemenea canale de acces multiplu (pentru ridicare). n acest caz se utilizeaz diferite metode de alocare a canalului, incluznd ALOHA, FDM, TDM i CDMA.

4.8 PROBLEME
1. Un grup de N staii folosesc n comun un canal ALOHA pur de 56 Kbps. Fiecare staie emite n medie un cadru de 1000 de bii la fiecare 100 sec, chiar dac cel precedent nu a fost nc trimis (de exemplu, staiile folosesc zone tampon). Care este valoarea maxim a lui N? Comparai ntrzierea unui canal ALOHA pur cu aceea a unui canal ALOHA cuantificat la ncrcare mic. Care dintre ele este mai mic? Motivai rspunsul. Zece mii de staii de rezervare a biletelor de avion concureaz pentru folosirea unui singur canal ALOHA cuantificat. O staie obinuit face 18 cereri/or. O cuant este de 125 usec. Care este ncrcarea total aproximativ a canalului?

2. 3.

SEG.4.8

PROBLEME

311

4 . 0 populaie mare de utilizatori ALOHA genereaz 50 cereri/sec, inclusiv originalele i retransmisiile. Timpul este cuantificat n uniti de 40 msec. Care este ansa de succes a primei ncercri? Care este probabilitatea unui numr de exact k coliziuni urmate de un succes? Cte ncercri de transmisie ne ateptm s fie necesare? 5. Msurtorile fcute asupra unui canal ALOHA cuantificat, cu un numr infinit de utilizatori, arat ca 10% din cuante sunt nefolosite. , a) Care este ncrcarea canalului^ G? b) Care este productivitatea? c) Canalul este subhcrcat sau suprancrcat? 6. ntr-un sistem cuantificat ALOHA cu o populaie infinit, numrul mediu de cuante pe care o staie le ateapt ntre o coliziune i retransmisia ei, este 4. Reprezentai curba ntrzierii n funcie de productivitate, pentru acest sistem. 7. Un LAN folosete versiunea lui Mpk i Ward pentru numrtoarea invers binar. La un anumit moment, cele zece staii au numerele virtuale de staie 8, 2, 4, 5, 1, 7, 3, 6, 9 i 0. Urmtoarele trei staii care trebuie s emit sunt 4, 3 i 9, n aceast ordine. Care sunt noile numere virtuale de staie dup ce toate cele trei i-au terminat transmisiile?

8. aisprezece staii concureaz pentru folosirea unui canal comun folosind protocolul cu parcurgere arborescent adaptiv. Dac toate staiile ale cror adrese sunt numere prime devin brusc simultan disponibile, cte intervale de bit sunt necesare pentru a rezolva conflictul? 9. O colecie de 2n staii folosesc protocolul cu parcurgere arborescent adaptiv pentru a arbitra accesul la un cablu comun. La un moment dat, dou dintre ele devin disponibile. Care este numrul minim, maxim i mediu de cuante pentru a parcurge arborele dac2n>>l? 10. LAN-urile fr fir pe care le-am studiat foloseau protocoale ca MACA n loc de CSMA/CD. n ce condiii ar fi posibil s foloseasc CSMA/CD? 11. Care sunt caracteristicile comune ale protocoalelor de acces la canal WDMA i GSM? 12. Folosind structura de cadru GSM dat n figura 4-14, determinai ct de des un utilizator dat poate trimite un cadru de date. 13. Presupunei c A, B i C transmit simultan bii 0 folosind un sistem CDMA cu secvenele de achii din figura 4-16(b). Care este secvena de achii rezultat? 14. n discuia despre ortogonalitatea secvenelor de achii CDMA, se afirm c dac S*T=0, atunci S~T=0. Demonstrai acest lucru. 15. S considerm un alt mod de a privi proprietatea de ortogonalitate a secvenelor de achii ale CDMA Fiecare bit dintr-o pereche de secvene se poate potrivi sau nu. Exprimai proprietatea de ortogonalitate n termeni de potriviri sau nepotriviri.

312

SUBNIVELULDE ACCES LA MEDIU

CAP. 4

16. Un receptor CDMA primete urmtoarele achii: (-1 +1-3 +1 -1-3 +1 +1). Considernd secvenele de achii definite n figura 4-16(b), care staii au transmis i ce bii a trimis fiecare staie? 17. O cldire cu 7 etaje are 15 birouri alturate pe fiecare etaj. Fiecare birou conine o priz de perete pentru un terminal pe peretele din fa, astfel nct prizele formeaz o reea rectangular n plan vertical, cu o distan de 4 m ntre prize, att pe orizontal ct i pe vertical. Presupunnd c este posibil s se monteze cte un cablu direct ntre orice pereche de prize, pe orizontal, vertical sau diagonal, ci metri de cablu sunt necesari pentru conectarea tuturor prizelor folosind: a) O configuraie stea cu un singur ruter n mijloc? b) Un LAN 802.3? c) O reea de tip inel (fr fir central)? 18. Care este viteza (n bauds) a unui LAN 802.3 standard de 10 Mbps? 19. Un LAN CSMA/CD de 10 Mbps (care nu e 802.3), lung de 1 km, are o vitez de propagare de 200 m/usec. Cadrele de date au o lungime de 256 bii, incluznd 32 de bii de antet, suma de control i alte date suplimentare. Primul interval de bit dup o transmitere efectuat cu succes este rezervat pentru receptor spre a ocupa canalul pentru a trimite un cadru de confirmare de 32 de bii. Care este viteza efectiv de date, excluznd ncrcarea suplimentar i presupunnd c nu sunt coliziuni? 20. Dou staii CSMA/CD ncearc s transmit fiecare fiiere mari (multicadru). Dup ce este trimis fiecare cadru, ele concureaz pentru canal folosind, algoritmul de regresie exponenial binar. Care este probabilitatea terminrii conflictului la runda k, i care este numrul mediu de runde per conflict? 21. S considerm cazul unei reele CSMA/CD de lGbps, cu un cablu mai lung de 1 km, fr repetoare. Viteza semnalului pe cablu este de 200.000 km/sec. Care este dimensiunea minim a cadrului? 22. Schiai codificarea Manchester pentru irul de bii: 0001110101. 23. Schiai codificarea Manchester diferenial pentru irul de bii din problema precedent. Presupunei c linia este iniial n stare jos. 24. Un sistem token-bus funcioneaz n modul uftntor. Cnd un jeton ajunge la o staie, un ceas este resetat la 0. Staia ncepe apoi s transmit cadre cu prioritate 6 pn cnd ceasul ajunge la T6. Apoi ea trece la cadre de prioritate 4 pn cnd ceasul ajunge la T4. Acest algoritm este apoi repetat pentru prioritatea 2 i prioritatea 0. Dac toate staiile au valorile ceasului de 40, 80,90 i 100 msec pentru T6 pn la T0, respectiv, ce fraciuni din limea total de band este rezervat pentru fiecare clas de prioritate? 25. Ce se ntmpl ntr-o reea token-bus dac o staie accept jetonul dup care se blocheaz imediat? Cum trateaz protocolul descris n capitol acest caz?

SEC. 4.8

PROBLEME

313

26. La o rat de. transmisie de 5 Mbps i o vitez de propagare de 200 m/usec, cu ci metri de cablu este echivalent ntrzierea de 1 bit din interfaa token-ring? 27. ntrzierea din reeaua token-ring trebuie s fie suficient de mare pentru a conine ntregul jeton. n cazul n care cablul nu este suficient de lung, trebuie introduse unele ntrzieri artificiale. Explicai de ce este necesar aceast ntrziere suplimentar n conflictul unui jeton de 24 bii i un inel cu doar 16 bii de ntrziere. 28. Un token-ring de 10 Mbps, lung de 1 km i foarte ncrcat, are viteza de propagare de 200 m/usec. Cincisprezece staii sunt uniform rspndite n jurul inelului. Cadrele de date sunt de 256 de bii, inclusiv 32 de bii de ncrcare suplimentar. Confirmrile sunt ataate la cadrele de date i astfel incluse ca bii de rezerv n interiorul cadrelor de date i sunt efectiv gratuite. Jetonul este de 8 bii. Este viteza de transfer efectiv a acestui inel mai mare sau mai mic dect aceea a unei reele CSMA/CD de 10 Mbps? 29. ntr-un token-ring emitorul terge cadrul. Ce modificare a sistemului este necesar pentru ca receptorul s tearg cadrul i care ar fi consecinele? 30. Un token-ring de 4 Mbps are un ceas pentru pstrarea jetonului cu valoarea de 10 msec. Care este cel mai lung cadru care poate fi trimis n acest inel? 31. Are folosirea unui centru de cablaj vreo influen asupra performanelor unei reele token-ring? 32. O reea token-ring cu fibr optic folosit ca MAN are o lungime de 200 km i funcioneaz la 100 Mbps. Dup trimiterea unui cadru, o staie scoate cadrul din inel nainte de a regenera jetonul. Viteza de propagare a semnalului prin fibr este de 200.000 km/sec, iar dimensiunea maxim a cadrului este 1 Koctet. Care este eficiena maxim a inelului (ignornd orice alte surse de ncrcare suplimentar) ? 33. n figura 4-32, staia D dorete s transmit o celul. Ctre ce staie vrea s o trimit? 34. 'Sistemul din figura 4-32 este n ateptare (liber). Puin mai trziu, staiile C, A i B devin gata de transmitere, n aceast ordine i n succesiune rapid. Presupunnd c nici un cadru de date nu este transmis nainte ca toate cele trei staii s emit cte o cerere, artai care sunt valorile pentru RC i CD dup fiecare cerere i dup cele trei cadre de date. 35. Se spune uneori c Ethernet-ul nu este folositor pentru calcule n timp real datorit faptului c intervalul de retransmitere n cazul cel mai defavorabil este nelimitat. n ce situaii acest argument poate fi invocat n cazul token-ring? n ce condiii se poate cunoate cazul cel mai defavorabil pentru reeaua token-ring? Presupunei c numrul de staii n token-ring este fix i cunoscut. 36. Cadrele Ethernet trebuie s aib o lungime minim de 64 de octei pentru a avea sigurana c emitorul nc mai emite, n cazul unei coliziuni la captul cellalt al cablului. Fast Ethernet-ul are aceeai dimensiune minim a cadrului de 64 de octei, dar poate emite biii de zece ori mai rapid. Cum este posibil s se menin aceeai dimensiune minim a cadrului?

314

SUBNWELUL DE ACCES LA MEDIU

CAP. 4

37. Imaginai-v.dou puni LAN, amndou conectnd o pereche de reele 802.4. Prima punte primete 1000 de cadre pe secund cu o lungime de 512 octei, care trebuie transmise mai departe. Cea de a doua punte primete 200 de cadre pe secund cu lungimea de 4096 octei. Care punte credei c va avea nevoie de o UCP mai rapid? Justificai. 38. Presupunei c cele dou puni din problema precedent conectau fiecare un LAN 802.4 la un LAN 802.5. Ar avea aceast modificare vreo influen asupra rspunsului precedent? 39. O punte ntre un LAN 802.3 i un LAN 802.4 are o problem legat de erorile intermitente de memorie. Poate aceast problem s cauzeze erori nedetectate n cadrele transmise sau acestea vor fi detectate de ctre sumele de control ale cadrelor? 40. Departamentul de informatic al unei universiti are 3 segmente Ethernet, conectate prin dou puni transparente ntr-o reea liniar. ntr-o zi administratorul de reea demisioneaz i este nlocuit temporar de ctre cineva de la centrul de calcul, centru care este o reea token-ring IBM. Noul administrator, observnd c nu sunt conectate capetele reelei, comand urgent o nou punte transparent i le conecteaz, construind un inel nchis. Ce se va ntmpla dup aceea? 41. Un inel FDDI mare are 100 de staii i un timp de rotaie a jetonului de 40 msec. Timpul de deinere a jetonului este de 10 msec. Ce eficien maxim poate fi atins n inel? 42. S considerm cazul interconectrii unor supercalculatoare folosind abordarea HIPPI, dar n tehnologie modern. Calea pentru date are acum limea de 64 de bii, iar un cuvnt poate fi trimis la fiecare 10 nsec. Care este lrgimea de band a canalului? 43. n acest capitol se afirm c un satelit cu dou canale ALOHA cuantificate unul de ridicare i unul de coborre poate ajunge la o utilizare a canalului de coborre de 0.736, avnd la dispoziie o cantitate infinit de spaiu tampon. Artai cum poate fi obinut acest rezultat.

NIVELUL REEA
Nivelul reea are ca sarcin preluarea pachetelor de la surs i transferul lor ctre destinaie. Atingerea destinaiei poate presupune realizarea mai multor salturi prin rutere intermediare de-a lungul drumului. Aceast funcie contrasteaz clar cu cea a nivelului legtur de date, care avea scopul mult mai modest de a transfera cadre de la un capt al unui fir la cellalt. Astfel nivelul reea este cel mai sczut nivel care are de-a face cu trarsrnisii capt la capt. Pentru mai multe informaii despre aceasta, vezi (Huitema, 1995 i Perlman, 1992). Pentru realizarea scopurilor propuse, nivelul reea trebuie s cunoasc topologia subreelei de comunicaie (de exemplu mulimea tuturor ruterelor) i s aleag calea cea mai potrivit prin aceasta. De asemenea trebuie s aleag cile de urmat astfel, nct s nu ncarce excesiv unele legturi de comunicaie sau rutere n timp ce altele sunt inactive. n fine, cnd sursa i destinaia fac parte din reele diferite, este sarcina nivelului reea s se ocupe de diferenele existente i s rezolve toate problemele care decurg din acestea. n acest capitol vom studia toate aceste aspecte i le vom exemplifica cu dou exemple n funciune la ora actual, Internet i ATM.

5.1

CERINELE DE PROIECTARE ALE NIVELULUI REEA

Vom prezenta, n continuare, o introducere a cerinelor pe care proiectantul nivelului reea trebuie s le rezolve. Acestea includ serviciile furnizate nivelului transport i proiectarea intern a subreelei.

5.1.1 Servicii furnizate nivelului transport


Nivelul reea furnizeaz servicii nivelului transport la interfaa dintre cele dou niveluri. Aceast interfa este important i dintr-un alt motiv: n mod frecvent este interfaa ntre furnizor i client, 315

316

NIVELUL REEA

CAP. 5

adic este grania subreelei. De obicei furnizorul are controlul protocoalelor i interfeelor pn la nivelul reea inclusiv. Sarcina sa este de a livra pachetele pe care clienii i le trimit. Acesta este motivul pentru care aceast interfa trebuie s fie deosebit de bine definit. Serviciile nivelului reea au fost proiectate avnd rfvedere urmtoarele scopuri: 1. 2. Serviciile trebuie s fie independente de tehnologia subreelei. Nivelul transport trebuie s fie independent de numrul, tipul i topologia subreelelor existente. 3. Adresele de reea disponibile la nivelul transport trebuie s foloseasc o schem de numerotare uniform, chiar n cadrul reelelor LAN i WAN. Obiectivele fiind stabilite, proiectantul nivelului reea are o mare libertate n a scrie specificaiile detaliate ale serviciilor oferite nivelului transport. Aceast libertate degenereaz adesea ntr-o aprig btlie ntre dou tabere opuse. Disputa are la baz ntrebarea d p nivelul reea trebuie s furnizeze servicii orientate pe conexiune sau servicii neorienfaie pe conexiune. O tabr (reprezentat de comunitatea Internet) afirm c menirea subreelei este de a transfera bii i nimic mai mult. n viziunea lor (bazat pe experiena a aproape 30 de ani de exploatare a unei reele de calculatoare n funciune), subreeaua este inerent nesigur, indiferent cum ar fi proiectat. De aceea calculatoarele gazd trebuie s accepte faptul c ea este nesigur i s fac controlul erorilor. Acest punct de vedere duce rapid la concluzia c serviciul reea trebuie s fie neorientat pe conexiune, cu dou primitive SEND PACKET i REGEIVE PACKET i cu foarte puin n plus. n particular, nu trebuie fcut nici o operaie pentru controlul ordinii sau fluxului pachetelor pentru c oricum calculatorul gazd va face acest lucru, iar dublarea acestor operaii aduce un ctig nesemnificativ. n continuare, fiecare pachet va trebui s poarte ntreaga adres de destinaie, pentru c fiecare pachet este independent de pachetele predecesoare, dac acestea exist. Cealalt tabr, reprezentat de companiile de telefoane, afirm c subreeaua trebuie s asigure un serviciu orientat pe conexiune, garantnd o siguran rezonabil. Ei susin c 100 de ani de experien cu sistemul telefonic mondial reprezint un bun ghid. n aceast perspectiv, conexiunile trebuie s posede urmtoarele proprieti: 1. nainte de a trimite datele, un proces al nivelului reea de pe calculatorul care trimite trebuie s stabileasc o conexiune cu partenerul de pe calculatorul care va recepiona. Aceast conexiune, care va primi un identificator special, este apoi folosit pn ce toate datele au fost trimise, dup care este eliberat explicit. 2. Cnd se stabilete o conexiune, cele dou procese pot iniia o negociere privind parametrii, calitatea si costul serviciului furnizat. 3. Comunicaia este bidirecional, iar pachetele sunt livrate n secven. 4. Controlul fluxului este asigurat automat, pentru a preveni ca un emitor rapid de s trimit pachete pe conexiune la o rat mai mare dect cea la care receptorul le poate prelua, aceasta putnd conduce la apariia unei depiri. Alte proprieti, cum ar fi garantarea livrrii, confirmarea explicit a livrrii i pachete cu prioritate ridicat sunt opionale. Aa cum am artat n Capitolul 1, serviciile neorientate pe conexiune se aseamn sistemului de pot uzual, iar serviciile orientate pe conexiune sunt asemntoare sistemului telefonic.

SEC. 5.1

CERINELE DE PROIECTARE ALE.NIVELULUI REEA

317

Alegerea ntre un serviciu orientat pe conexiune i unul neorie.ntat pe conexiune se reduce n ultim instan la alegerea locului n care s fie plasat complexitatea. n cazul serviciului orientat pe conexiune e vorba de .nivelul, reea (subreea); n cazul serviciului neorientat pe conexiune este vorba, de nivelul;, transport (calculator gazd). Susintorii serviciilor neorientate pe conexiune afirm c resursele de calcul de care poate dispune un utilizator au devenit suficient de ieftine, astfel nct s nu existe nici un motiv s nu plasm complexitatea la nivelul calculatoarelor gazd. n continuare se argumenteaz c subreeaua este o investiie (inter)naional important, care va exista pentru decenii, deci nu trebuie ncrcat inutil cu faciliti care-pot fi depite repede, dar, care vor intra n structura preului pentru muli ani. Mai mult,, anumite aplicaii, cum ar fi vocea digitizat sau culegerea de informaii n timp real pot considera rapiditatea livrrii mult mai important dect acurateea acesteia. .., Pe de alt parte, suporterii serviciilor orientate pe conexiune spun c majoritatea utilizatorilor nu sunt interesai s ruleze protocoale complicate de nivel transport pe mainile proprii. Ceea ce doresc este s foloseasc servicii sigure, fat defecte i aceste servicii;pot fi furnizate cel mai bine folosind conexiuni la nivelul reea. Mai departe, anumite servicii, ca audio-video n timp real, sunt mai uor de realizat deasupra unui nivel reea, orientat pe conexiune dect deasupra unui nivel reea neorientat pe conexiune. Dei rareori se pune problema n felul acesta, aici sunt implicate dou idei distincte. Prima, dac reeaua s fie orientat pe conexiune (ceea ce presupune existena unei faze de stabilire a parametrilor) sau neorientat pe conexiune (unde faza de stabilire a parametrilor nu este necesar). A doua, dac reeaua este sigur (fr pierderea, duplicarea sau alterarea pachetelor) sau nesigur (n care pachetele pot fi pierdute, duplicate sau alterate). Teoretic sunt posibile toate cele patru combinaii; ns cele mai rspndite combinaii sunt servicii sigure orientate pe conexiune i servicii nesigure neorientate pe conexiune, astfel nct celelalte dou tind s dispar.
Pota electronic FTP TCP IP ATM Legtur de date Fizic

Fig. 5-1. Implementarea TCP/IP deasupra unei subretele ATM. Aceste dou tabere sunt reprezentate de cele dou exemple n funciune de care am amintit. Reeaua Internet are un nivel reea neorientat pe conexiune, iar reelele ATM au nivelul reea orientat pe conexiune. Se ridic o ntrebare evident asupra modului n care Internet funcioneaz cnd este implementat deasupra unei subretele bazate pe ATM. Rspunsul este acela c maina surs mai nti Stabilete o conexiune ATM la nivel reea cu calculatorul destinaie i apoi trimite pachete (IP) independente pe aceasta, aa cum se arat n Fig. 5-1. Dei aceast abordare funcioneaz, ea este ineficient datorit duplicrii unor funcii la cele dou niveluri. De exemplu, nivelul reea ATM garanteaz livrarea plachetelor n ordine, ns codul TCP conine ntregul mecanism pentru gestionarea i rearanjarea pachetelor n afara secvenei normale. Pentru mai multe informaii despre cum funcioneaz IP deasupra ATM vezi RFC 1577 i (Armitage i Adams, 1995).

318

NTVELULREpA

CAP.5

5.1.2 Organizarea intern a nivelului reea Dup ce am vzut cele dou clase de servicii pe care nivelul reea le furnizeaz utilizatorilor si, e timpul s vedem cum lucreaz el intern. Exist dou filozofii de baz distincte pentru organizarea subreelei, una folosind conexiuni, iar a doua lucrnd fr conexiuni. n contextul operrii interne a subreelei, o conexiune este numit de obicei circuit virtual, prin analogie cu circuitele fizice care se stabilesc n sistemul telefonic. Pachetele independente ale organizrii neorientate pe conexiune se numesc datagrame, prin analogie cu telegramele. Circuitele virtuale sunt folosite de obicei n subretele care ofer un serviciu primar orientat pe conexiune, deci vor fi descrise n acest context. Ideea care se afl la baza circuitelor virtuale este evitarea alegerii unei noi ci (rute) pentru fiecare pachet sau celul trimise. n consecin, cnd se stabilete o conexiune, se alege i memoreaz o cale ntre maina surs i maina destinaie, ca parte component a parametrilor conexiunii. Aceast cale va fi folosit pentru tot traficul de pe conexiune, exact n acelai mod n care funcioneaz sistemul telefonic. Cnd conexiunea este eliberat, circuitul virtual se elibereaz. n contrast cu o reea datagram, nici o cale nu este stabilit n avans, chiar dac serviciul este orientat pe conexiune. Fiecare pachet trimis este dirijat independent de predecesorii si. Pachete consecutive pot urma ci diferite. Cu toate c subreelele bazate pe datagrame au ceva mai mult de lucru, ele sunt, de obicei, mai robuste i se adapteaz la defecte i congestii mai uor dect subreelele bazate pe circuite virtuale. Vom discuta argumentele pro i contra pentru aceste dou abordri mai trziu. Deoarece pachetele vehiculate de-a lungul unui circuit virtual parcurg ntotdeauna aceeai cale prin subreea, fiecare ruter trebuie s memoreze unde s trimit pachetele pentru fiecare dintre circuitele virtuale deschise care trec prin el. Fiecare ruter trebuie s pstreze o tabel cu o intrare pentru fiecare circuit virtual deschis care trece prin el. Fiecare pachet care navigheaz prin subreea trebuie s conin un cmp pentru pstrarea numrului circuitului virtual, pe lng numrul de secven, sume de control i celelalte cmpuri uzuale. Cnd un pachet ajunge la un ruter, rutenii tie pe ce legtur a sosit i ce numr are circuitul virtual asociat. Pe baza acestei singure informaii pachetul trebuie s fie dirijat pe linia corect de ieire. Cnd se stabilete o conexiune la nivel reea, se alege ca identificator al conexiunii un numr ntreg, care s nu fie deja utilizat pe maina respectiv. Deoarece fiecare main alege aceste numere de circuite virtuale independent, ele au doar semnificaie local. Dac ar fi avut semnificaie global, n ntreaga reea, ar fi fost posibil ca dou circuite virtual distincte cu acelai indicator s treac prin acelai nod, crend confuzii. Deoarece circuitele virtuale pot fi iniiate de la ambele capete, apare o problem atunci cnd apelul pentru stabilirea conexiunii se propag simultan n ambele direcii, de-a lungul unui lan de rutere. La un moment dat ele ajung n rutere adiacente. Fiecare ruter trebuie s aleag un numr de circuit virtual pentru conexiunea n curs de stabilire. Dac ele sunt programate s aleag cel mai mic numr disponibil pentru legtur, vor alege acelai numr, fcnd s existe dou circuite virtuale independente pe aceeai legtur fizic. Cnd un pachet de date este recepionat ulterior, rutenii care 1-a primit nu poate s decid dac este vorba de un pachet direct pe primul circuit sau un pachet n sens invers pe al doilea. Dac circuitele sunt simplex, nu exist ambiguiti. Este important de reinut c fiecrui proces i se cere s specifice cnd termin de folosit un circuit virtual, astfel nct acest circuit s poat fi eliminat din tabelele interului, pentru a economisi

SEC. 5.1

CERINELE DE PROIECTARE ALE NIVELULUI REEA


5

319

spaiu. n reelele publice motivaia este alta (thestick rather ihan the carroi ): utilizatorii pltesc att timpul de conectare ct i volumul datelor transmise. In plus, trebuie luate unele msuri de precauie pentru a rezolva situaiile mainilor care termin circuitele virtuale forat, din cauza unor defeciuni, m loc s le elibereze, politicos atunci cnd au terminat. Att despre folosirea intern a circuitelor virtuale n cadrul subreelei. Cealalt posibilitate este sa se foloseasc intern datagramele, caz n care ruterele nu dein o tabel cu o intrare pentru fiecare circuit virtual deschis. n schimb, ele dispun de o tabel care precizeaz linia de ieire utilizat pentru fiecare dintre ruterele destinaie. Aceste tabele sunt necesare i n cazul folosirii interne a circuitelor virtuale pentru a stabili calea pe care o urmeaz pachetul iniial. Fiecare datagram trebuie s conin adresa complet a destinaiei. Pentru o reea mare, aceste adrese pot s fie destul de lungi (12 octei sau chiar mai mult). Cnd este recepionat un pachet, ruterul stabilete linia de ieire care trebuie folosit i trimite pachetul pe acest drum. De asemenea, stabilirea i eliberarea conexiunilor de nivel reea sau transport nu necesit nici un efort deosebit din partea ruterului.
5.13 Comparaie ntre subretele bazate pe circuite virtuale i datagrame

Att circuitele virtuale ct i datagramele au suporteri i oponeni. Vom ncerca acum s rezumm argumentele ambelor tabere. Principalele aspecte sunt prezentate n Fig. 5-2, dei cei extrem de riguroi ar putea probabil gsi un contraexemplu pentru toate cele descrise n aceast figur.
Problem Stabilirea circuitului Adresare Informaii de stare Dirijare Efectul defectrii ruterului Controlul congestiei Subreea datagram Nu e necesar Fiecare pachet conine adresa complet pentru surs i destinaie Subreeaua nu pstreaz informaii de stare Fiecare pachet este dirijat independent Nici unul, cu excepia pachetelor pierdute n timpul defectrii Dificil Subreea CV Obligatorie Fiecare pachet conine un numr mic de CV Fiecare CV are nevoie de informaii despre subreea Calea este stabilit la iniierea CV; toate pachetele urmeaz aceast rut Toate circuitele virtuale care trec prin ruterul defect sunt terminate Simplu, dac se aloc n avans suficiente zone tampon pentru fiecare CV

Fig. 5-2. Comparaie ntre subreelele bazate pe circuite virtuale i cele bazate pe datagrame. n interiorul subreelei exist situaii n care trebuie s se aleag ntre faciliti antagoniste specifice fie circuitelor virtuale, fie datagramelor. Un astfel de compromis este acela ntre spaiul de memorie al ruterului i limea de band, Circuitele virtuale permit pachetelor s conin numere de circuite n locul unor adrese complete. Dac pachetul tinde s fie foarte mic, atunci existena unei adrese complete n fiecare pachet poate reprezenta o suprancrcare (overhead) important i deci o irosire a limii de band. Preul pltit pentru folosirea intern
' N.T. Btaia este mai eficient dect duhul blndeii.

320

NIVELUL REEA

CAP. 5

a circuitelor virtuale este spaiul necesar pstrrii tabelei n ruter. Soluia mai ieftin este determinat de raportul ntre costul circuitelor de comunicaie i cel al memoriei ruterului. Alt compromis este cel ntre timpul necesar stabilirii circuitului i timpul de analiz a adresei. Folosirea circuitelor virtuale presupune existena unei faze iniiale de stabilire a cii, care cere timp i consum resurse. Oricum, este uor s ne imaginm ce se ntmpl cu un pachet de date ntr-o subreea bazat pe circuite virtuale: ruterul folosete numrul circuitului ca un index ntr-o tabel pentru a afla unde merge pachetul. ntr-o reea bazat pe datagrame, se folosete o procedur mult mai complicat pentru a stabili unde merge pachetul. Circuitele virtuale au unele avantaje n evitarea congestionrii subreelei, deoarece resursele pot fi rezervate n avans, atunci cnd se stabilete conexiunea. La sosirea pachetelor, limea de band necesar i capacitatea ruterului vor fi deja pregtite. Pentru o reea bazat pe datagrame, evitarea congestionrii este mult mai dificil. Pentru sistemele de prelucrare a tranzaciilor (de exemplu apelurile magazinelor pentru a verifica cumprturi realizate cu cri de credit) overhead-ul necesar pentru stabilirea i eliberarea unui circuit virtual reduce considerabil folosirea acestora. Dac majoritatea traficului este de acest tip, folosirea intern a circuitelor virtuale comutate n cadrul subreelei nu prea are sens. Pe de alt parte, ar putea fi de folos circuite virtuale permanente, stabilite manual si care s dureze luni sau chiar ani. Circuitele virtuale au o problem de vulnerabilitate. Dac un ruter se defecteaz (cade") i i pierde coninutul memoriei, toate circuitele virtuale care treceau prin el sunt terminate forat, chiar dac acesta.i revine dup o secund. Prin contrast, dac un ruter bazat pe datagrame cade, doar acei utilizatori care aveau pachete memorate temporar n cozile de ateptare ale sale vor fi afectai i e posibil ca numrul lor s fie i mai mic, n funcie de cte pachete au fost deja confirmate. Pierderea liniei de comunicaie este fatal pentru circuitele virtuale care o folosesc, ns poate fi uor compensat dac se folosesc datagrame. Datagramele permit de asemenea ruterului s echilibreze traficul prin subreea, deoarece cile pot fi modificate oriunde de-a lungul conexiunii. Este bine s subliniem c serviciul oferit (orientat pe conexiune sau fr conexiune) difer de structura subreelei (circuit virtual sau datagram). Teoretic, toate combinaiile sunt posibile. Evident, o implementare cu circuite virtuale a unui serviciu orientat pe conexiune sau o implementare cu datagrame a unui serviciu fr conexiune sunt rezonabile. De asemenea, implementarea unui serviciu orientat pe conexiune folosind datagrame are sens dac se dorete furnizarea unui serviciu foarte robust.
Nivelul superior Fr conexiune Datagrame UDP peste IP Tip subreea Circuite virtuale UDP peste IP peste

ATM

Orientate pe conexiune

TCP peste IP

ATMAAL1 peste ATM

Fig. 5-3. Exemple ale diferitelor combinaii de servicii i structuri ale subreelei.

SEC. 5.2

ALGORITMI DE DIRIJARE

321

A patra posibilitate, serviciu fr conexiune, folosind o subreea bazat pe circuite virtuale, pare ciudat, dar cu siguran apare. Un exemplu imediat este folosirea IP deasupra unei subretele ATM. Aici s-a dorit folosirea unui protocol fr conexiune existent peste un nou serviciu reea orientat conexiune. Aa cum s-a mai menionat deja, aceasta este mai degrab o soluie ad-hoc a problemei dect o proiectare bun. ntr-un sistem nou, proiectat s lucreze peste o subreea ATM, nu s-ar plasa n mod normal un protocol fr conexiune ca IP deasupra unui nivel reea orientat conexiune ca ATM i apoi un nivel transport orientat conexiune deasupra acestui protocol neorientat pe conexiune. Exemple din cele patru cazuri sunt prezentate n Fig. 5-3.

5.2 ALGORITMI DE DIRIJARE


Funcia principal a nivelului reea este dirijarea (dirijarea) pachetelor de la maina surs ctre maina destinaie. n rnajoritatea subreelelor pacheele vo face salturi jnultipje pentru a-i face cltoria. Singura excepie remarcabil o reprezint reelele cu dozare, dar chiar i aici dirijarea este important, atunci cnd sursa i destinaia nu sunt n aceeaireea. Algoritmii care aleg calea i structurile de date folosite de acetia reprezint un domeniu important al proiectrii nivelului reea. Algoritmul de dirijare (routing algorithm) este acea parte a software-ului nivelului reea care rspunde de alegerea liniei de ieire pe care un pachet recepionat trebuie trimis mai departe. Dac subreeaua folosete intern datagrame, aceast decizie trebuie luat din nou pentru fiecare pachet recepionat, deoarece e posibil ca cea mai bun rut s se fi modificat ntre timp. Dac subreeaua folosete circuite virtuale, decizia de dirijare se ia doar la stabilirea unui nou circuit virtual. Dup aceea pachetele ,de date vor urma doar calea stabilit anterior. Acest ultim caz este numit uneori sesiune de dirijare, deoarece calea rmne n funciune pentru o ntreag sesiune utilizator (de exemplu o sesiuriTde conectare de la un terminal -login- sau un transfer de fiiere). Indiferent dac ruta se alege independent pentru fiecare pachet sau doar la stabilirea unei noi conexiuni, exist anumite proprieti pe care un algoritm de dirijare trebuie s le aib: corectitudine, simplitate, robustee, stabilitate, prevenirea defavorizrii nodurilor, optimalitate. Corectitudinea i simplitatea nu mai au nevoie de comentarii, dar necesitatea robusteei poate fi mai puin evident la prima vedere. Odat ce apare pe pia o reea important, este de ateptat ca ea s funcioneze continuu ani ntregi, fr defecte generale ale sistemului. n acest timp vor exista defecte hardware i software de tot felul. Calculatoare gaz, rutere, linii de comunicaie vor cdea i vor reveni repetat i topologia se va schimba de multe ori. Algoritmul de dirijare trebuie s fac fa acestor modificri ale topologiei i traficului, fr a impune ca toate job-urile de pe toate calculatoarele s fie abandonate i reeaua s fie reiniializat de fiecare dat cnd un ruter se defecteaz. Stabilitatea este de asemenea un obiectiv important pentru algoritmii de dirijare. Exist algoritmi de dirijare care niciodat nu converg la echilibru, indiferent ct timp ar rula. Prevenirea defavorizrii nodurilor i optimalitatea sunt evidente - nimeni nu se opune lor ns,, aa cum se va arta, sunt obiective contradictorii. Un exemplu simplu al acestui conflict este prezentat n Fig. 5-4. Presupunem c ntre A i A', ntre B i B' i ntre C i C exist un trafic suficient pentru a satura legturile orizontale, Pentru a maximiza fluxul total, traficul ntre X i X' trebuie oprit. Din pcate acest lucru ar defavoriza pe X i X'. Evident, este necesar un compromis ntre eficiena global i prevenirea defavorizrii anumitor conexiuni.

322

NIVELUL REIEA
B

CAP. 5

l
r
A1 B'
r

Fig. 5-4. Conflict ntre optimalitate i prevenirea defavorizrii. nainte de a ncerca s gsim rezolvarea acestui conflict ntre optimalitate i prevenirea defavorizrii, trebuie s stabilim c^^m^a_ogtimizm. Minimizarea ntrzierihnedii a unmpachet este un candidat evident, ns la fel este i n^wQnmea^g^im^l^mi^^) totale a reelei. Mai mult, i aceste dou obiective sunt n conflict, deoarece funcionarea unui sistem cu cozi de ateptare la limita capacitii sale produce ntrzieri majore. Pentru a realiza un compromis, n multe reele se ncearc minjmizarea numrului^ dejsalturi pe care un pachet trebuie s le fac, deoarece reducerea numrului de salturi tinde s mbunteasc ntrzierea i de asemenea s reduc limea de band consumat, ceea ce tinde s mbunteasc i productivitatea. Algoritmii de dirijare pot fi grupai n dou mari clase: nead^ptiy^siadapjrvi. Algoritmii neadaptivi nui bazeazdgdzjilg.de dirijare pe msurtori sau estimri^ale traficului i topologiei curente. Astfel, alegerea cii folosite pentru a a]unge~de la nodul / la nodul J (oricare ar fi / i Jf) se calculeaz n avans, off-line i parvine ruterului la iniializarea reelei. Aceast procedur se mai numete i dirijare static. Algoritmii adaptivi, prin contrast, i modific deciziile de dirijare pentru a reflecta modificrile de topologie i de multe ori i pe cele de trafic. Algoritmii adaptivi difer prin locul de unde i iau informaia (de exemplu local, de la un ruter vecin sau de la toate ruterele), prin momentul la care schimb rutele (de exemplu la fiecare AT secunde, cnd se schimb ncrcarea sau cnd se schimb topologia) i prin metrica folosit pentru optimizare (de exemplu distana, numrul de salturi sau timpul estimat pentru tranzit). In seciunile urmtoare, vom discuta o varietate de algoritmi de dirijare, att statici ct i dinamici. 5.2.1 Principiul optimalitii nainte de a intra n algoritmii specifici, ar fi poate folositor s observm c se poate face o afirmaie despre rutele optimale fr a ne referi la topologia reelei sau la trafic. Aceast afirmaie este cunoscut sub numele de principiul optimalitii. El stabilete c dac ruterul J este pe calea optim de la ruterul I ctreruterul^K, atunci cajea^pjim deJaJJa Kje^te^e^e^TruTPerjSu a vedea aceasta, snotm cu ri partea din cale de la I la J, iar cu r2 restul rutei. Dac ar exista o rut mai bun dect r2 de la J la K, ea ar putea fi concatenat cu ri i ar mbunti ruta de la I la K, ceea ce ar contrazice presupunerea c r^ este optimal.

SEC. 5.2

ALGORITMI DE DIRIJARE

323

&n, putem observa c mulimea rutelor deja Ca o c toate sursele ctre_o anume destinaie formeaz un arbore avnd rdcina n destinaie. Acest arbore se numete arbore de scufundare (sink tree) i este prezentat n Fig. 5-5, undelnetnca aleas este numrul de salturi. Observai c arborele de scufundare nu este unic, putnd exista i ali arbori cu aceeai lungime a cii. Scopul tuturoralgoritmilor de dirijare este de a descoperi i folosi arborii de scufundare pentru toate ruterele.

B \

K M O M

(a)

(b)

Fig. 5-5. (a) O subreea. (b) Un arbore de scufundare pentru ruterul B. Deoarece arborele de scufundare este ntr-adevr un arbore, el nu conine bucle, deci fiecare pachet va fi livrat ntr-un numr finit i mrginit de salturi. In practic viaa nu e chiar aa de uoar. Legturile i ruterele pot s se defecteze i s-i revin n timpul operaiilor, astfel nct diferite rutere pot avea imagini diferite asupra topologiei curente. De asemenea, am trecut mai repede peste ntrebarea dac fiecare ruter trebuie s obin individual informaia necesar calculrii arborelui de scufundare sau dac aceast informaie este colectat prin alte mijloace. Vom reveni ns la aceast problem n curnd. Cu toate acestea, principiul optimalitii i arborele de scufundare furnizeaz referine cu care pot fi comparai ceilali algoritmi. n urmtoarele trei seciuni, vom studia trei algoritmi statici diferii. Apoi vom trece la cei adaptivi.
5.2.2 Dirijarea pe calea cea mai scurt

S ncepem studiul algoritmilor de dirijare cu o tehnic des utilizat n multe forme deoarece este simpl i uor de neles. Ideea este de a construi un graf al subreelei, fiecare nod al grafului fiind un ruter, iar fiecare arc al grafului fiind o linie de comunicaie (numit adesea legtur). Pentru a alege o cale ntre o pereche dat de rutere, algoritmul trebuie s gseasc calea cea mai scurt pe graf ntre cele dou rutere. Conceptul de cea mai scurt cale (shortest path routing) necesit unele explicaii. O modalitate de a msura lungimea cii este numrul de salturi. Folosind aceast metric, cile ABC iABE din Fig. 5-6 sunt la fel de lungi. O alt metric este distana geografic n kilometri, caz n care ABC este clar mult mai mare dect ABE (presupunnd c figura este desenat la scar).

324

NIVELUL REEA

CAP. 5

Oricum, sunt posibile multe alte metrici n afar de salturi i dis^antaje^rafic. De exemplu, fiecare arc poate fi etichetat cu valojile_rnedji ale ateptrii n coad i ntrzierii de transmisie pentru anumite pachete standard de test, aa cum sunt determinate de msurtori care se fac dufor n or. Cu aceast etichetare cea mai scurt cale este cea mai rapid, nu neaprat cea cu mai puine arce sau kilometri. n cazul cel mai general, etichetele de pe arce ar putea fi calculate ca funcii de distant, lrgime de band, trafic mediu, cost al comunicaiei, lungime medie a cozilor de ateptare, ntrzieri msurate i ali factori. Prin modificarea ponderilor, algoritmul ar putea calcula cea mai scurt" cale, n conformitate cu oricare dintre aceste criterii sau cu combinaii ale acestor criterii.
B (2, A) C (oo, -)

D (oo, -)

G(6,A)

(b)

H(oo,-)

B (2, A)

C (9, B)

B(2,A)

C (9, B)

D(oo,1)

G(6,A)

(0

H(oo,-)

G (5, E) (d)

H (oo, -)

B(2,A)

C (9, B)

D (oo,-)

G (5, E)

H (9, G)

G (5, E)

(f)

/ H (8, F)

Fig. 5-6. Primii cinci pai folosii n calcularea celei mai scurte ci de la A la D. Sgeile indic nodul curent. Se cunosc mai muli algoritmi pentru calculul celei mai scurte ci ntre dou noduri dintr-un graf. Cel mai cunoscut este cel propus de Dijkstra (1959). Fiecare nod este etichetat (n paranteze) cu jjijana de la nodul surs pn la el, de-a lungul celei mai bune ci cunoscute. Iniial nu se, cunoate nici o cale, aa c toate nodurile vor fi etichetate cu infinit. Pe msur ce se execut algoritmul i se gsesc noi ci, etichetele se pot schimba, reflectnd ci mai bune. O etichet poate fi fie temporar, fie permanent. Iniial toate etichetele sunt Jemp_orare. Atunci cnd se descoper c o etichet

SEC: 5-2

ALGORITMI DE DIRIJME

325

reprezint cea mai scurt cale posibil de la surs ctre acel nod, ea devine permanent i nu se mai Pentru a ilustra cum funcioneaz algoritmul de etichetare, s ne uitm la graful neorientat, etichetat din Fig. 5-6(a), unde etichetele reprezint, de exemplu, distana. Dorim s aflm cea mai scurt cale de la/1 la D. ncepem prin rrmc^j^diAji^^rrnM^pLt, indicnd aceasta printr-un 0316 e s t e cerc colorat. Apoi vom examina fiecjje^od^adiaffn SL,^ l acum nodul curent), reetichetnd fiecare nod cu distantajgre,^. De fiecare dat cnd un nod este reetichetat, l vom eticheta i cu nodul de la care s-a fcut ncercarea, pentru a putea reface calea ulterior. Dup ce am examinat toate nodurile adiacente ale lui A, vom examina toate nodurile cu etichet temporar din ntregul graf i fljacejnj^cjd^^^ cum se observ din Fig. 5-6(b). Acest nod devine noul nod curent. fe C2 {iv) Acum oeegejnjiini? i examinm toate nodurile sale adiacente. Dac suma ntre eticheta lui 1? i este mai mic dect eticheta acelui nod, n&eamnFcTam gsit o cale mai scurt i va trebui fcut xeetichetarea nodului. Dup ce toate nodurile adiacente nodului curent au fost inspectate i au fost schimbate toate etichetele temporare posibile, se reia cutarea n ntregul graf pentru a identifica nodul cu eticheta temporar minim. Acest nod este fcut permanent i devine nodul curent al etapei urmtoare. Fig. 5-6 prezint cei cinci pai ai algoritmului. Pentru a vedea de ce merge algoritmul, s privim Fig. 5-6(c). La momentul respectiv de abia am fcut permanent nodul E. S presupunem c ar exista o cale mai scurt dect ABE, de exemplu AXYZE. Exist dou posibiliti: fie nodul Z a fost deja fcut permanent, fie nc nu a fost. Dac a fost, atunci E a fost deja examinat (la pasul imediat urmtor celui la care Z a fost fcut permanent), astfel nct caleaAXYZE nu a fost ignorat. S considerm acum cazul n care Z este nc etichet temporar. Atunci fie eticheta lui Z este mai mare sau egal cu cea a lui E, caz n care ABE nu poate fi o cale mai scurt dect AXYZE, fie este mai mic dect cea a lui E, caz n care Z i nu E va deveni permanent mai nti, permind lui E s fie examinat din Z. Algoritmul este prezentat n Fig. 5-7. Singura diferen ntre program i algoritmul descris mai sus este aceea c n Fig. 5-7 calculm calea cea mai scurt pornind de la nodul terminal, t, n locul nodului surs, s. Deoarece calea cea mai scurt de la Ha s ntr-un graf neorientat este exact aceeai cu calea cea mai scurt de la s la t, nu conteaz la care capt ncepem (dect dac exist mai multe ci scurte, caz n care, inversnd calea, am putea gsi alt drum). Motivul pentru care ncepem cutarea de la nodul destinaie este acela c nodurile sunt etichetate cu predecesorul i nu cu succesorul. Cnd copiem calea final n variabila de ieire, path, calea este inversat. Prin inversarea cutrii, cele dou efecte se anuleaz, astfel nct rezultatul se obine n ordinea corect. 5.2.3 Inundarea Un alt algoritm static este inundarea (flooding), n care fiecare pachet recepionat este trimis mai departe pe fiecare linie de ieire, cu excepia celei pe care a sosit. Este evident c inundarea genereaz un mare numr de pachete duplicate, de fapt un numr infinit dac nu se iau unele msuri pentru a limita acest proces. O astfel de msur este pstrarea unui contor de salturi n antetul fiecrui pachet, contor care este decrementat la fiecare salt i care face ca pachetul s fie distrus cnd contorul atinge valoarea zero.

326
Idefine M A X _ N O D E S 1024 #define INFINITY l j O O O D O O p O O int n,dist[MAX_NODES][ MAXJODES]

NIVELUL REEA

CAP. 5

/* numrul maxim de noduri */ /* un numr mai mare dect orice cale */ /* d i s t [ i ] [ j ] e distana de la i la j */ /* calea cu care se lucreaz */ /'* nodul a n t e r i o r * / /* lungimea de la surs la acest nod */ /* etichet stare */

void shortest_patb(int s, int t, int path[]) { struct state { int predecessor; int length; enum {permanent, temporar} labei; }state [MAXJODES]; i n t i , k, min; struct state *p;

for (p = &state[0];-p < &state[n]; p++) { /* i n i i a l i z r i p->predecessor = - 1 ; p->length = INFINITY; p->label = temporar; } state[t].length = 0; state[t].labei = permanent; k = t; /* k este nodul i n i i a l de lucru do { /* exist vreo cale mai bun de la k? for (i = 0; i < n; i++) /* graful are n noduri if ( d i s t [ k ] [ i ] != 0 && state[i].labei == temporar) { if (statefk].length + d i s t [ k ] [ i ] < state[ij.length) { state[i].predecessor = k; state[i].length = state[k].length + d i s t [ k ] [ i ] ; }

*/

*/ */ '*/

/* Gsete nodul etichetat temporar cu cea mai mic etichet */ k = 0; min = INFINITY; for (i = 0; i < n; i++) if (statefi].labei == temporar && state[i].length < min) { min = state[i].length; k = i; } state[k].labei = permanent; } while (k != s); /* Copiaz calea n vectorul de ieire */ i = 0; k = s; do { path[i++] = k; k = statefk].predecessor; } while (k >= 0);
Fig. 5-7. Algoritmul Dijkstra pentru calculul celei mai scurte ci ntr-un graf. Ideal ar fi ca acest contor s fie iniializat cu lungimea 'cii de la surs la destinaie. Dac emitorul nu cunoate lungimea cii, poate iniializa contorul la valoarea cea mai defavorabil, adic diametrul subreelei. O metod alternativ pentru limitarea inundrii este identificarea pachetelor care au fost deja inundate, pentru a prentmpina trimiterea lor a doua oar. O cale pentru a realiza acest

SEC. 5.2

ALGORITMI DE DIRIJARE

327

scop este ca ruterul surs s plaseze un numr de secven n fiecare pachet pe care l primete de la calculatorul gazd asociat. Fiecare ruter necesit meninerea unei liste pentru fiecare ruter surs, cu numerele de secven iniiate de acel ruter surs i care au fost deja trimise mai departe. Dac sosete un pachet care se afl n list, el nu mai este trimis mai departe. Pentru a limita creterea lungimii listei, fiecare list trebuie nsoit de un contor, k, care semnific faptul c toate numerele de secven pn la k au fost deja tratate. La recepia unui pachet este uor s se verifice dac este sau nu un duplicat, caz n care este distrus. Evident, lista cu numere mai mici dect k nu este necesar, deoarece k o rezum. O variant a algoritmului de inundare, care este i ceva mai practic, este inundarea selectiv. n acest algoritm ruterele nu trimit fiecare pachet recepionat pe fiecare legtur de ieire, ci doar pe acele linii care duc aproximativ n direcia potrivit. De obicei sunt puine motive pentru a trimite un pachet spre partea de vest a reelei folosind o legtur spre est, excepie fcnd reelele cu topologii deosebite. Inundarea nu este practic pentru majoritatea aplicaiilor, ns are destule utilizri. De exemplu, n aplicaiile militare, unde un mare numr de rutere pot fi scoase din funcionare la orice moment, robusteea extraordinar a inundrii este necesar. n aplicaiile de baze de date distribuite, este uneori necesar s fie actualizate toate bazele de date concurent, caz n care inundarea poate fi folositoare. O a treia utilizare posibil a inundrii este ca metric la care s se raporteze toi ceilali algoritmi de dirijare. Inundarea alege ntotdeauna cea mai scurt cale, deoarece alege n paralel toate cile posibile. n consecin, nici un alt algoritm nu poate produce o ntrziere mai redus (dac ignorm suprancrcarea -overhead-ul- generat de nsui procesul de inundare). 5.2.4 Dirijarea bazat pe flux Algoritmii studiai pn n acest moment luau n considerare doar topologia. Ei nu ineau seama de ncrcare. Dac, de exemplu, n Fig. 5-6 exist ntotdeauna un trafic uria de la A la B, atunci poate e mai bine s dirijm traficul de \a.A\d.C pe calea AGEFC, chiar dac aceast cale este mult mai lung dect ABC. n aceast seciune, vom studia un algoritm static care pentru dirijare ine cont att de topologie ct i de ncrcare. El se numete algoritm de dirijare bazat pe flux (flow based routing). n unele reele, fluxul mediu de date ntre fiecare pereche de noduri este relativ stabil i previzibil. De exemplu, n reeaua unui lan de magazine en-detail", fiecare magazin trebuie s trimit comenzi, rapoarte de vnzri, actualizri ale inventarului i alte tipuri de mesaje bine definite ctre noduri prestabilite, respectnd un model predefinit, astfel nct volumul total al traficului variaz puin de la o zi la alta. n condiiile n care traficul mediu de la i la j este cunoscut n avans i, ntr-o aproximare rezonabil, constant n timp, este posibil analiza matematic a fluxurilor pentru a optimiza dirijarea. Ideea care st la baza analizei este aceea c pentru o anumit linie, dac se cunosc capacitatea i fluxul mediu, este posibil s se calculeze ntrzierea medie a unui pachet pe linia respectiv, folosind teoria cozilor. Pe baza ntrzierilor medii ale tuturor liniilor se poate calcula imediat, ca medie ponderat dup flux, ntrzierea medie a unui pachet pentru ntreaga subreea. Problema dirijrii se reduce apoi la gsirea algoritmului de dirijare care produce ntrzierea medie minim pentru subreea. Fig. 5-8.

328

NIVELUL RE1EA

CAP. 5

Pentru a folosi aceast tehnic, trebuie cunoscute n avans anumite informaii. n primul rnd, trebuie cunoscut topologia subreelei. n al doilea rnd, trebuie precizat matricea traficului, F^. n al treilea rnd, trebuie s fie disponibil matricea capacitilor liniilor, Qp care precizeaz capacitatea fiecrei linii, exprimat n bps. n final, se alege (cu titlu de ncercare) un anume algoritm de dirijare.
Destinaie A B 9 AB 9 BA 4
XD M

C 4 ABC 8 1

D 7

E 4

iliilii

ABFD AE 3 BFD 3 CD 2 BFE 3 CE 3 DCE 3 ECD 4 FD (b)

AEF 4 BF 2 CEF 4 DF EF

Sili BC
8 CB 3 3 DC 3 EC 2 FEC

CBA 1

20

3 CO

lllis

DFBA DFB 7 2 EFB 4 FB

(a)

EA 4 FEA

11115
5 FE

Fig. 5-8. (a) Subreea cu capacitile liniilor exprimate n kbps. (b) Traficul n pachete/sec i matricea de dirijare. Ca o exemplificare a acestei metode, s considerm subreeaua full-duplex din Fig. 5-8(a). Etichetele arcelor reprezint capacitile Cy , n ambele sensuri, exprimate n kbps. Matricea din Fig. 5-8(b) are o intrare pentru fiecare pereche surs-destinaie. Intrarea corespunztoare sursei i i destinaiei j indic ruta folosit pentru traficul de la / la ;, precum i numml de pachete/sec de trimis de la sursa / la destinaia/ De exemplu, 3 pachete/sec pleac de la B la D i, pentru a ajunge, ele folosesc calea BFD. Observai c pentru a obine rutele din matrice a fost aplicat un anumit algoritm de dirijare.
Ai (pachete/sec) Ci (kbps) Ti (msec)

i 1 2 3 4 5 6 7 8

Linie

(pachete/sec)

Pondere 0.171 0.146 0.073 0.134 0.159 0.098 0.122 0.098

AB BC CD AE EF FD BF EC

14 12 6 11 13 8 10 8

20 20 10 20 50 10 20 20

25 25
12.5

25
62.5 12.5

91 77 154 71 20
2222

25 25

67 59

Fig. 5-9. Analiza subreelei din Fig. 5-8 folosind pachete cu dimensiunea medie 800 bii. Traficul invers (BA, CB etc.) este acelai cu traficul direct.

SEC. 5.2

ALGORITMI DE DIRBARE

329

Avnd aceste informaii, se calculeaz, imediat totalul pe linia /, X;. De exemplu, traficul B-D contribuie cu 3 pachete/sec la traficul liniei BF i tot cu 3 pachete/sec la traficul liniei FD. Similar, traficul A-D contribuie cu 1 pachet/sec, la fiecare dintre cele 3 linii. Traficul total n fiecare linie orientat spre stnga (eastbound) este prezentat n coloana X; din Fig. 5-9. n acest exemplu traficul este simetric, adic traficul XY este identic cu traficul YX, pentru toi X i Y. n reelele reale aceast condiie nu este ndeplinit ntotdeauna. Figura prezint de asemenea numrul mediu de pachete/sec pe fiecare linie, \iCu presupunnd dimensiunea medie a unui pachet 1/^=800 bii. Penultima coloan din Fig. 5-9 conine'ntrzierea medie pentru fiecare linie, obinut din teoria cozilor, cu formula:

piC-X
unde l/\i este dimensiunea medie n bii a unui pachet, C este capacitatea n kbps i X este fluxul mediu n pachete/sec. De exemplu, cu o capacitate de \ = 25 pachete/sec i un flux curent X = 14 pachete/sec, ntrzierea medie este de 91 msec. Se observ ca, chiar dac facem X = 0, ntrzierea medie este de 40 msec, deoarece capacitatea este de doar 25 pachete/sec. Cu alte cuvinte, ntrzierea" cuprinde att ateptarea n cozi ct i timpul de servire. Pentru a calcula ntrzierea medie pentru ntreaga subreea, vom considera suma ponderat a celor opt linii, ponderea fiind fraciunea din traficul total folosit de acea linie. Efectund calculele, obinem pentru acest exemplu valoarea 86 msec. Pentru a evalua un alt algoritm de dirijare, putem repeta ntregul proces, folosind ns alte valori ale fluxului pentru a obine o alt valoare a ntrzierii medii. Dac ne limitm doar la algoritmi de dirijare cu cale unic (single path-routing), aa cum am fcut pn acum, exist un numr finit de moduri n care putem dirija pachetele de la fiecare surs ctre fiecare destinaie. Astfel, ntotdeauna este posibil s scriem un program care s ncerce fiecare variant, una dup alta, pentru a determina care are cea mai mic ntrziere medie. Deoarece acest calcul poate fi fcut independent (off line) n avans, consumul de timp nu reprezint o problem serioas. Se alege astfel cel mai bun algoritm de dirijare. Bertsekas i Gallager (1992) prezint algoritmii bazai pe flux n detaliu. 5.2.5 Dirijare cu vectori distan Reelele moderne de calculatoare folosesc de obicei algoritmi dinamici de dirijare n locul celor statici, descrii mai sus. Cei mai folosii algoritmi dinamici sunt algoritmul de dirijare cu vectori distan i algoritmul de dirijare bazat pe starea legturilor. n aceast seciune ne vom ocupa de primul algoritm. n seciunea care urmeaz vom studia al doilea algoritm. Algoritmul de dirijare cu vectori distan (distance vector routing) presupune c fiecare ruter menine o tabel (de exemplu un vector) care pstreaz cea mai bun distan cunoscut spre fiecare destinaie i linia care trebuie urmat pentru a ajunge acolo. Aceste tabele sunt actualizate prin schimbul de informaii ntre nodurile vecine. Algoritmul de dirijare cu vectori distan este cunoscut i sub alte nume, cum ar fi algoritmul distribuit de dirijare Bellman-Ford sau algoritmul Ford-Fulkerson, dup numele cercettorilor care l-au propus (Bellman, 1957; i Ford i Fulkerson, 1962). A fost algoritmul de dirijare folosit iniial n

330

NIVELUL REEA

CAP. 5

reeaua ARPANET, a fost folosit de asemenea n Internet sub numele de RIP si n versiunile incipiente ale DECnet i Novell IPX. AppleTalk i Cisco folosesc versiuni mbuntite ale protocolului vectorilor distan. n dirijarea pe baza vectorilor distan, fiecare ruter pstreaz o tabel de dirijare indexat dup i coninnd o intrare pentru fiecare ruter din subreea. Aceast intrare are dou pri: linia de ieire preferat care se folosete pentru destinaia respectiv i o estimare a timpului sau distanei pn la acea destinaie. Metrica folosit poate fi numrul de salturi, ntrzierea n milisecunde, numrul total de pachete care ateapt n cozi de-a lungul cii, sau ceva asemntor. Se presupune c ruterul cunoate distana" spre fiecare din vecinii si. Dac se folosete metrica salturilor, distana este de doar un salt. Dac metrica folosit este cea a lungimilor cozilor de ateptare, ruterul examineaz pur i simplu lungimile acestor cozi. Dac metrica este cea a ntrzierilor, ruterul o poate msura direct prin pachete speciale ECHO, n care receptorul va marca doar timpul curent (tampila de timp) i le va trimite napoi ct mai repede posibil. Ca un exemplu, s presupunem c se folosete metrica ntrzierilor i c ruterul cunoate ntrzierea spre fiecare dintre vecinii si. O dat la fiecare T msec fiecare ruter trimite spre fiecare vecin o list a estimrilor proprii spre fiecare destinaie. De asemenea el recepioneaz o list similar de la fiecare vecin. Sa presupunem c una dintre aceste tabele tocmai a sosit de la vecinul X, cuZ; fiind estimarea lui X despre ct timp este necesar pentru a ajunge la ruterul i. Dac ruterul tie c ntrzierea spre X este m msec, el tie de asemenea c poate atinge ruterul / trecnd prin X n X{ + m msec. Fcnd aceste calcule pentru fiecare vecin, un ruter poate stabili care estimare pare a fi cea mai bun, pentru a folosi aceast estimare, mpreun cu linia corespunztoare n noua tabel de dirijare. De remarcat faptul c vechea tabel de dirijare nu se folosete pentru calcule.
Noua ntrziere estimat de la J La A

Ruter

(a)

0 12 25 40 14 23 18 17 21 9 24 29

24 36 18 27 7 20 31 20 0 1 1 22 33

20 31 19 8 30 19 6 0 14 7 22 9

28 36 24 22 40 31 19 22 10 0 9

K 2 T

Linia

8 20 28 20 17 30 18 12 10 0 6 15

A A I H I I H H I K K

JA
8

intrzienle

J l

JH

10

12

JK
6

Noua tabel de rutare pentru J

Vectorii primii de la cei patru vecini ai lui J (b)

Fig. 5-10. (a) O subreea. (b) Intrri de la A, I, H i K i noua tabel de dirijare pentru J.

sEC

5.2

ALGORITMI DE DIRIJARE

331

Acest proces de actualizare este ilustrat n Fig. 5-10. Partea (a) pezint o subreea. Primele patru coloane din partea (b) conin vectorii de ntrzieri primii de la vecinii ruterului /. v4 afirm c are 12 msec ntrziere spre B, 25 msec ntrziere spre C, 40 msec ntrziere spre D etc. Presupunem c / i-a msurat sau estimat ntrzierea fa de vecinii si A, I, H i K, obinnd valorile 8,10,12 i 16 msec, respectiv. S vedem cum calculeaz / noua cale spre rutenii G. El tie c poate ajunge la A n 8 msec i A pretinde c este n stare s ajung la G n 18 msec, astfel nct / poate conta pe o ntrziere de 26 msec spre G dac dirijeaz pachetul spre A Similar, el calculeaz ntrzierea spre G prin I,H,K ca fiind 41 (31 + 10), 18 (6 + 12) i 37 (31 + 6) respectiv. Cea mai bun valoare este 18, deci el va pregti o intrare n tabela de dirijare ctre G, care va avea ntrzierea 18 msec i care va specifica linia de ieire care trebuie urmat prin H. Aceleai calcule se fac pentru toate destinaiile, obinndu-se noua tabel de dirijare, care este prezentat n ultima coloan a figurii. Problema numrrii la infinit Dirijarea folosind vectori distan funcioneaz n teorie, ns n practic are o limitare important: dei ea converge spre rezultatul corect, o face foarte lent. n particular, ea reacioneaz rapid la vetile bune, dar foarte lent la cele rele. S considerm un ruter care are un cel mai bun drum spre destinaia X foarte lung. Dac la urmtorul schimb de informaii, vecinul su A raporteaz brusc o ntrziere mic spre X, rutenii va comuta i va folosi linia spre ,4 pentru a dirija traficul spre X. Astfel, ntr-o singur schimbare a vectorului, vestea bun a fost luat n considerare.
A B C D E A B C D E

00 1 1 1 1

oo oo 2 2 2

oo oo oo 3 3 (a)

oo co oo oo 4

Iniial Dup 1 schimb Dup 2 schimburi Dup 3 schimburi Dup 4 schimburi

12 3 3 5 5 7 7
oo

2 4 4 6 6 8
oo
(b)

3 3 3 5 5 7 7
oo

4 4 4 4 6 6 8
co

Iniial Dup 1 schimb Dup 2 schimburi Dup 3 schimburi Dup 4 schimburi Dup 5 schimburi Dup 6 schimburi

Fig. 5-11. Problema numrrii la infinit. Pentru a vedea ct de repede se propag vetile bune, s considerm subreeaua (liniar) de cinci noduri din Fig. 5-11, unde metrica ntrzierilor este numrul de salturi. Presupunem c iniial nodul A nu funcioneaz i toate celelalte rutere cunosc acest lucru. Cu alte cuvinte, toate celelalte rutere au nregistrat ntrzierea spre A ca avnd valoarea infinit. Cnd A pornete, celelalte rutere afl aceasta datorit schimbrilor din vector. Pentru simplificare, vom considera c exist un gong uria undeva, care bate periodic pentru a iniia schimbul de vectori simultan la toate ruterele. La momentul primului schimb, B afl c vecinul din

332

NIVELUL REEA

CAP. 5

stnga are o ntrziere nul spre A. Astfel, B creeaz o nou intrare n tabela sa, marcnd faptul c A este la un singur salt distan, spre stnga. Toate celelalte rutere consider c A este nc oprit. Intrrile tabelei de dirijare pentru A, la acest moment, sunt prezentate n a doua linie din Fig. 5ll(a). La urmtorul schimb, C afl c B are o cale de lungime 1 spre A, astfel nct i actualizeaz tabela de dirijare pentru a indica o cale de lungime 2, ns D i E nu vor primi vestea cea bun dect mai trziu. Evident, vestea cea bun se rspndete cu viteza de un salt la fiecare schimb. ntr-o subreea avnd calea cea mai lung de lungime N salturi, dup N schimburi fiecare ruter va afla despre liniile i ruterele nou aprute. S considerm acum situaia din Fig. 5-1 l(b), n care toate liniile i ruterele sunt iniial n funciune. Ruterele B, C,D iE au distanele spre A respectiv de 1, 2, 3, 4. Brusc, A se oprete sau, alternativ, linia dintre A i B este ntrerupt, ceea ce reprezint efectiv acelai lucru din punctul de vedere al lui B. La primul schimb de pachete, B nu primete nimic de la A. Din fericire, C spune: Nici o problem. Eu tiu o cale spre A de lungime 2." ns B nu tie c aceast cale a lui C trece prin B nsui. Dup cunotinele lui B, C ar putea avea zece linii de ieire, toate pe ci independente de lungime 2 spre A Prin urmare B va crede c poate ajunge la^4 prin C pe o cale de lungime 3. D i E nu i actualizeaz intrrile proprii pentruyl la primul schimb. La al doilea schimb, C remarc faptul c fiecare dintre vecinii si pretinde a avea o cale de lungime 3 spre A. El va alege la ntmplare unul dintre aceti vecini i va nregistra noua distan spre A ca fiind 4, aa cum se arat n linia a treia din Fig. 5-1 l(b). Schimburile urmtoare vor produce succesiunea prezentat n continuare n Fig. 5-ll(b). Din aceast figur se poate deduce de ce vetile rele circul mai lent: nici un ruter nu va avea vreodat o valoare mai mare cu mai mult de unu dect valoarea minim a vecinilor si. Treptat, toate ruterele vor ajunge la infinit, ns numrul de schimburi necesar depinde de valoarea numeric folosit pentru a reprezenta valoarea infinit. Din aceast cauz este recomandat s se aleag infinitul, ca fiind lungimea celei mai mari ci, plus 1. Dac metrica este ntrzierea n timp, atunci nu este definit nici o limit superioar, astfel nct este necesar o valoare mare pentm a preveni considerarea unui drum cu ntrziere mare ca fiind un drum defect. Nu e deloc surprinztor acum de ce aceast problem se cheam problema numrrii la infinit (the count to infinit) problem). Despicarea orizontului n literatura de specialitate au fost propuse numeroase soluii ad-hoc ale problemei numrrii la infinit, fiecare mai complicat i mai puin folositoare dect precedenta. Vom descrie aici doar una dintre ele i apoi vom arta de ce i aceasta, la rndul ei, este greit. Algoritmul de despicare a orizontului funcioneaz similar cu dirijarea folosind vectori distan, excepie fcnd faptul c distana spre X nu este nregistrat pe linia pe care se trimit pachetele pentru X (de fapt, aceast distan este considerat infinit). De exemplu, n starea iniial din Fig. 5-1 l(b), C i declar lui D distana adevrat ctre A, ns C i declar lui B c lungimea cii spre A este infinit. Similar, D i spune adevrul lui E, ns fl minte pe C. S vedem acum ce se ntmpl dac A se oprete. La primul schimb, B descoper c linia direct a czut, iar C raporteaz de asemenea o distan infinit ctre A. Deoarece nici unul dintre vecinii si nu poate atinge A, B va atribui distanei proprii valoarea infinit. La urmtorul schimb, C afl c A este inaccesibil pentru ambii si vecini, deci l va marca pe A ca fiind inaccesibil. Folosind aceast

SEC.5-

ALGORITMI DE DIRIJARE

333

metod, vetile rele se propag cu viteza de un salt pe schimb. Aceast vitez este mult-mai bun dect cea fr despicarea orizontului. Vestea cu adevrat proast este c aceast metod, dei larg utilizat, uneori greete. S considerm de exemplu subreeaua de patru noduri din Fig. 5-12. Iniial, atM ct i B au ambele distana 2 spre D, iar C are distana 1.
A. . .B

Ruter

Fig. 5-12. Un exemplu n care despicarea orizontului eueaz. S presupunem acum c linia CD se ntrerupe. Folosind despicarea orizontului, att>l ct i B anun lui C c nu mai pot accesa D. Astfel C consider imediat c D este inaccesibil i raporteaz aceasta att lui A ct i lui B. Din pcate A afl c B are o cale de lungime 2 spre D, astfel nct presupune c poate atinge D prin B n 3 salturi. Similar, B presupune c poate atinge D prinzi n 3 salturi. La urmtorul schimb fiecare va modifica distana spre D la 4. Astfel, ambele ajung s numere treptat la infinit, avnd exact comportamentul care s-a dorit s fie evitat. 5.2.6 Dirijarea folosind starea legturilor

Dirijarea folosind vectori distan a fost folosit n ARPANET pn n 1979, cnd a fost nlocuit prin dirijarea folosind starea legturilor. Au fost dou probleme importante care au cauzat aceast schimbare. n primul rnd, deoarece metrica folosit era lungimea cozilor de ateptare, nu se lua n considerare limea de band la stabilirea rutei. Iniial toate liniile erau de 56 kbps, astfel nct limea de band nu era o problem, ns dup ce cteva linii au fost mbuntite la 230 kbps, iar altele la 1.544 Mbps, neluarea n considerare a limii de band a devenit o problem major. Evident, era posibil s se schimbe metrica folosit pentru a depinde i de limea de band, ns exista i o a doua problem i anume aceea c algoritmul convergea destul de greu, chiar i cu trucuri de genul despicrii orizontului. De aceea, a fost nlocuit cu un algoritm nou, numit algoritm de dirijare folosind starea legturilor (link state routing)). Variantele acestui algoritm sunt actualmente foarte rspndite. Ideea algoritmului bazat pe starea legturilor este simpl i poate fi formulat n 5 puncte. Fiecare ruter trebuie: 1. Sa descopere care sunt vecinii si i afle adresele de reea ale acestora. 2. S msoare ntrzierea sau costul pn la fiecare din vecinii si. 3. S pregteasc un pachet prin care anun pe toat lumea c tocmai a terminat de cules datele despre vecini. 4. S trimit acest pachet ctre toate celelalte rutere. 5. S calculeze cea mai scurt cale spre fiecare ruter.

334

NIVELUL REEA

CAP. 5

Ca urmare, ntreaga topologie i toate ntrzierile sunt msurate experimental i distribuite spre fiecare ruter. Apoi se poate folosi algoritmul lui Dijkstra pentru a afla cea mai scurt cale ctre fiecare ruter. n continuare vom analiza mai n detaliu aceti cinci pai.
Determinarea vecinilor

Cnd un ruter este pus n funciune, prima sa sarcin este s afle care sunt vecinii si. El realizeaz aceasta prin trimiterea unui pachet special HELLO pe fiecare linie prin care este legat la alt ruter. Rutenii de la cellalt capt trebuie s rspund anunnd ntr-un pachet identitatea sa. Aceste nume trebuie s fie unice global, pentru c dac mai trziu un ruter afl c trei rutere sunt conectate toate la F, este esenial ca acesta s poat determina dac cele trei se refer la acelai F.
Ruter

Fig. 5-13. (a) Nou rutere i o LAN. (b) Graful asociat punctului (a). Cnd dou sau mai multe rutere sunt conectate printr-o LAN, situaia devine puin mai complicat. Fig. 5-13(a) ilustreaz conectarea direct a trei rutere A, C i F la o LAN. Fiecare dintre aceste rutere este conectat cu unul sau mai multe alte rutere, aa cum se arat. O modalitate de a modela reeaua local este de a o considera ca un nod, aa cum se arat n Fig. 5-13 (b). Aici am introdus un nod nou, artificial, N, la cart A, C i F sunt conectate. Faptul c este posibil s se mearg de fa A la C prin LAN este reprezentat aici de calea^VC.
Msurarea costului liniei

Algoritmul de dirijare bazat pe starea legturilor cere ca fiecare ruter s tie, sau cel puin s aib o estimare rezonabil, a ntrzierii ctre fiecare din vecinii si. Cel mai direct mod de a afla acest lucru este de a trimite un pachet special ECHO pe linie, cernd ca ruterul partener s-1 trimit napoi imediat. Msurnd timpul n care pachetul se ntoarce (round-trip time) i mprindu-1 la doi, ruterul iniiator poate avea o estimare rezonabil a ntrzierii. Pentru rezultate i mai bune, testul poate fi repetat de mai multe ori, folosindu-se apoi valoarea medie obinut. O problem interesant este dac s se considere sau nu ncrcarea reelei la msurarea ntrzierii. Pentru a ine cont de ncrcare, timpul de revenire trebuie msurat din momentul n care

SEC. 5.2

ALGORITMI DEDIRIJARE

335

pachetul ECHO este pus n coad. Penttu a ignora ncrcarea, ceasul se poate porni n momentul n care pachetul ECHO atinge prima poziie din coad. Pot fi aduse argumente n favoarea ambelor variante. Dac se ine cont de ntrzierile provocate de trafic la msurtori nseamn c dac un ruter trebuie s aleag ntre dou linii cu aceeai lime de band, una dintre ele fiind puternic ncrcat tot timpul, iar cealalt nefiind foarte ncrcat, atunci ruterul va desemna calea cea mai puin ncrcat ca fiind cea mai scurt. Aceasta alegere va duce la mbuntirea performanelor.

Fig. 5-14. O subretea n care prile de Est i Vest sunt conectate prin dou linii. Din pcate, exista i un argument mpotriva folosirii ncrcrii la calculul ntrzierii. S considerm subreeaua din Fig. 5-14, care este divizat n dou zone, Est i Vest, conectate prin dou linii, CF i EI. S presupunem c majoritatea traficului ntre Est i Vest folosete linia CF i prin urmare, aceast linie este puternic ncrcat i are ntrzieri mari. Folosirea ntrzierilor n cozi pentru calculul celei mai scurte ci va face ca drumul EI s fie preferat. Dup ce noile tabele de dirijare au fost instalate, majoritatea traficului Est-Vest va trece acum prin EI, suprancrcnd-o. De aceea, la urmtoarea actualizare, CF va prea a fi calea cea mai scurt. Prin urmare tabelele de dirijare vor oscila puternic, conducnd la o dirijare fluctuant i facilitnd apariia multor probleme poteniale. Dac nu se ine cont de ncrcare, lundu-se n considerare doar limea de band, aceast problem nu mai apare. Alternativ, ncrcarea poate fi distribuit pe ambele linii, dar aceast soluie nu folosete n ntregime calea cea mai bun.
Construirea pachetelor cu starea legturilor

De ndat ce a fost colectat informaia necesar pentru realizarea schimbului, se poate trece la pasul urmtor, fiecare ruter construind un pachet care conine toate datele. Pachetul ncepe cu identitatea expeditorului, urmat de un numr de secven, vrst (care va fi descris n continuare) i o list a vecinilor. Pentru fiecare vecin se specific ntrzierea asociat. Un exemplu de subretea este prezentat n Fig. 5-15(a), unde sunt marcate ntrzierile asociate liniilor. Pachetele cu starea legturilor asociate tuturor celor ase rutere sunt prezentate n Fig, 5-15(b).

336
B 2 C

NIVELUL REEA
Pachete cu starea legturilor

CAP. 5

A
Secv. Vrst

B
Secv. Vrst

C
Secv. Vrst

D
Secv. Vrst

E
Secv. Vrst

F
Secv. Vrst

_Bj 4 E 5
E 8 F

A 4 C 2 F 6

B 2 D 3 E 1
(b)

C 3 F 7

A 5 C 1 F 8

TT

6 7 E 8

(a)

Fig. 5-15. (a) O subreea. (b) Pachetele cu starea legturilor pentru aceast subreea. Construirea pachetelor cu starea legturilor se face uor. Partea mai dificil este s se determine cnd s fie construite ele. O posibilitate este ca ele s fie construite periodic, adic la intervale regulate. O alt posibilitate este atunci cnd se produce un eveniment semnificativ, cum ar fi scoaterea din funciune a unui vecin sau a unei linii, sau repunerea lor n funciune, sau modificarea semnificativ a proprietilor lor.
Distribuirea pachetelor cu starea legturilor

Cea mai complicat parte a algoritmului este distribuirea sigur a pachetelor cu starea legturilor. De ndat ce pachetele sunt distribuite i instalate, ruterele care primesc primele pachete i vor schimba rutele. n consecin, rutere diferite ar putea folosi versiuni diferite ale topologiei, ceea ce poate duce la apariia unor inconsistene, bucle, maini inaccesibile sau a altor probleme. Pentru nceput vom descrie algoritmul de baz folosit pentru distribuie. Apoi vom prezenta unele mbuntiri posibile. Ideea fundamental este folosirea inundrii pentru a distribui pachetele cu starea legturilor. Pentru a avea controlul inundrii, fiecare pachet conine un numr de secven care este incrementat la fiecare nou pachet trimis. Ruterele pstreaz evidena tuturor perechilor (ruter surs, numr secven) pe care le vd. La sosirea unui nou pachet cu starea legturilor, el este cutat n lista pachetelor deja vzute. Dac pachetul este nou, el este retrimis pe toate liniile, cu excepia celei pe care a sosit. Dac este un duplicat, pachetul este distrus. Dac pachetul sosit are un numr de secven mai mic dect cel mai mare numr de secven detectat, atunci el este rejectat ca fiind nvechit. Acest algoritm are cteva probleme, dar ele sunt tratabile. n primul rnd, dac numerele de secven ating valoarea maxim posibil i rencep de la valori mici, se pot produce confuzii. Soluia este folosirea numerelor de secven pe 32 bii. Considernd un pachet de starea legturilor pe secund, ar trebui 137 ani pentru a se rencepe de la valori mici, astfel nct aceast posibilitate poate fi ignorat. n al doilea rnd, dac un ruter se defecteaz, el va pierde evidena numerelor de secven. Dac va rencepe de la 0, urmtorul pachet va fi rejectat ca duplicat. n al treilea rnd, dac numrul de secven este alterat i se recepioneaz 65540 n loc de 4 (eroare de modificare a unui bit), pachetele de la 5 la 65540 vor fi rejectate ca fiind nvechite, deoarece se consider c numrul de secven curent este 65540. Soluia tuturor acestor probleme este includerea vrstei pachetului dup numrul de secven i decrementarea sa la fiecare secund. Cnd vrsta ajunge la zero, informaia de la rutenii respectiv

SEC. 5.2

ALGORHM DE DIRIJARE

337

este distrus. n"mod normal un nou pachet apare, s zicem, la fiecare 10 minute, astfel nct informaia de la ruter expir doar dac rutenii este oprit (sau dac ase pachete consecutive s-au pierdut, un lucru extrem de improbabil). Cmpul vrst este decrementat de asemenea de fiecare ruter la nceputul procesului de inundare, pentru a se asigura c nici un pachet nu se poate pierde sau nu poate supravieui o perioad nelimitat (un pachet avnd vrsta zero este distrus). Unele mbuntiri ale algoritmului pot s-1 fac mai robust. Cnd un pachet cu starea legturilor ajunge ntr-un ruter pentru inundare, el nu este pus n coada de transmisie imediat. El este pus ntr-o zon de ateptare pentru o scurt perioad. Dac nainte de a fi trimis sosete un alt pachet cu starea legturilor de la aceeai surs, numerele lor de secven sunt comparate. Dac sunt identice, duplicatul este distrus. Dac sunt diferite, cel mai btrn este ignorat. Pentru a prentmpina erorile pe linia ruter-ruter, toate aceste pachete sunt confirmate. Dac linia nu este folosit, zona de ateptare este inspectat n manier roundrobin, pentru a selecta un pachet sau o confirmare de trimis. Structura de date folosit de ruterul B pentru subreeaua din Fig. 5-15(a) este descris n Fig. 5-16. Fiecare linie corespunde unui pachet cu starea legturilor sosit recent, dar nc neprelucrat n ntregime. Se nregistreaz n tabel originea pachetului, numrul de secven, vrsta i datele transportate. n plus mai exist unele indicatoare (flags) de trimitere i confirmare pentru fiecare dintre cele trei linii ale lui B (respectiv ctre A, C, F). Indicatorul de trimitere precizeaz c pachetul trebuie trimis pe linia indicat. Indicatorul de confirmare precizeaz c respectivul pachet trebuie confirmat. .
Trimitere Sursa A F E C D Secv. 21 21 21 20 21 Vrsta 60 60 59 60 59 A 0 1 0 1 1 C 1 1 1 0 0 F 1 0 0 1 0 ACK

A
1 0 1 0 0

c
0 0 0 1 1

F 0 1 1 0 1

Date

Fig. 5-16. Zona tampon pentru pachete a ruterului B din Fig. 5-15. n Fig. 5-16, pachetul cu starea legturilor de la^4 sosete direct, astfel nct el trebuie trimis ctre C i F i trebuie confirmat ctre A, aa cum precizeaz biii indicatori. Similar, pachetul de la F trebuie trimis ctre A i C i confirmat ctre F. Oricum, situaia celui de-al treilea pachet, de la E, este diferit. El sosete de dou ori, nti pe calea EAB i apoi pe calea EFB. n consecin el trebuie trimis numai ctre C, ns trebuie confirmat att \wA ct i lui F, aa cum indic i biii corespunztori. Dac sosete un duplicat n timp ce pachetul este nc n zona tampon, biii trebuie modificai. De exemplu, dac o copie a strii lui C sosete de la F nainte ca a patra intrare din tabel s fie trimis, cei ase bii se vor schimba la 100011 pentru a preciza c pachetul trebuie confirmat ctre F, dar nu trimis acolo.

338

NIVELUL REEA

CAP. 5

Calcularea noilor rute


De ndat ce un ruter a acumulat un set complet de pachete cu starea legturilor, el poate construi graful ntregii subretele, deoarece fiecare legtur este reprezentat. De fapt, fiecare legtur este reprezentat de dou ori, o dat pentru fiecare direcie. Cele dou valori pot fi mediate sau folosite separat. Acum poate fi folosit local algoritmul lui Dijkstra, pentru a construi cea mai scurt cale ctre toate destinaiile posibile. Rezultatul acestui algoritm poate fi trecut n tabelele de dirijare, iar apoi operaiile normale pot fi reluate. Pentru o subreea format din n rutere, fiecare avnd k vecini, memoria necesar pentru a stoca datele de intrare este proporional cu kn. Pentru subretele mari, aceasta poate fi o problem. De asemenea i timpul de calcul poate fi important. Cu toate acestea, n multe situaii, algoritmul bazat pe starea legturilor funcioneaz bine. Oricum, probleme ale hardware-ului sau software-ului pot influena negativ funcionarea acestui algoritm (la fel ca a altora). De exemplu, dac un ruter pretinde c are o linie pe care de fapt nu o are, sau uit despre o linie pe care o are, graful subreelei va fi incorect. Dac un ruter eueaz n a retrimite pachetele, sau le altereaz coninutul n timp ce le retrimite, vor apare probleme. n fine, dac un ruter rmne fr memorie sau calculeaz greit rutele, se vor petrece lucruri urte. Pe msur ce subreeaua crete n dimensiune, ajungnd la zeci sau sute de mii de noduri, probabilitatea ca un ruter s se defecteze devine neneglijabil. Trucul care se poate folosi const n ncercarea de limitare a pagubelor atunci cnd inevitabilul s-a produs. Perlman (1988) trateaz n detaliu aceste probleme, precum i soluiile lor. Dirijarea bazat pe starea legturilor este larg folosit n reelele actuale, astfel nct ar fi potrivite cteva cuvinte despre unele protocoale care o folosesc. Protocolul OSPF, care este folosit din ce n ce mai mult n Internet, folosete un algoritm bazat pe starea legturilor. Vom descrie protocolul OSPF n seciunea 5.5.5. Un alt protocol important bazat pe starea legturilor este IS-IS (Intermediate SystemIntermediate System), care a fost proiectat pentru DECnet i mai apoi adoptat de ISO pentru a fi folosit cu protocolul neorientat pe conexiune de la nivelul reea, CLNP. De atunci a fost modificat pentru a se descurca i cu alte protocoale, cel mai important fiind IP. IS-IS este folosit n numeroase coloane vertebrale ale Internet-ului (Internet backbones) (inclusiv n vechiul NSFNET) i n unele sisteme digitale celulare cum ar fi CDPD. Novell NetWare folosete o variant simplificat IS-IS (NLSP) pentru a dirija pachetele IPX. n principiu IS-IS distribuie o imagine a topologiei ruterelor, pe baza creia se calculeaz calea cea mai scurt. Fiecare ruter anun, n informaia de stare a legturilor sale, ce adrese la nivelul reea poate s acceseze direct. Aceste adrese pot fi IP, IPX, AppleTalk, sau orice alte adrese. IS-IS poate accepta chiar mai multe protocoale ale nivelului reea n acelai timp. Multe din inovaiile din proiectarea lui IS-IS au fost preluate de OSPF (OSPF a fost proiectat la muli ani dup IS-IS). Acestea includ o metod auto-stabilizatoare a inundrii, folosit la actualizarea strii legturilor, conceptul de ruter dedicat ntr-o LAN, metoda de calcul i utilizare a cilor divizate i mai multe metrici. Ca o consecin, vor exista puine diferene ntre IS-IS i OSPF. Cea mai important diferen este c IS-IS este codificat n aa fel, nct suport uor i chiar natural s transporte informaiile mai multor protocoale ale nivelului reea, o caracteristic pe care OSPF nu o are. Acest avantaj este deosebit de important, n special n mediile mari, multiprotocol.

SEC. 5.2 5,2.7 DiEpreierarhic

ALGORITMI DE DIRIJARE

339

Pe msur ce reelele cresc n dimensiune, tabelele de dirijare cresc proporional. Pe lng faptul c memoria ruterului este consumat de fiecare nou cretere a tabelelor, pentru parcurgerea lor este necesar tot mai mult timp de calcul i se folosete tot mai mult din limea de band pentru a trimite rapoartele de stare despre ele. La un moment dat, reeaua poate crete pn la un punct la care nu mai este posibil ca fiecare ruter s dein o intrare pentru fiecare alt ruter, astfel nct dirijarea trebuie fcut ierarhic, la fel ca n reeaua telefonic. Atunci cnd se folosete dirijarea ierarhic, ruterele sunt mprite n ceea ce vom numi regiuni, fiecare ruter tiind toate detaliile necesare pentru a dirija pachete spre destinaie n cadrul regiunii sale, dar netiind nimic despre organizarea intern a celorlalte regiuni. Dac se leag reele diferite, este natural s privim fiecare reea ca pe o regiune, pentru a elibera ruterele dintr-o reea de sarcina de a cunoate structura topologic a celorlalte. Pentru reele uriae, o ierarhie pe dou niveluri ar putea fi insuficient, ar putea fi necesar s grupm regiunile n asociaii (clusters), asociaiile n zone, zonele n grupuri i aa mai departe pn ce nu mai avem nume pentru aceste aglomerri. Ca un exemplu de ierarhie multinivel, s considerm cum poate fi dirijat un pachet din Berkeley, California spre Malindi, Kenya. Ruterul din Berkeley cunoate n detaliu topologia din California, aa c va trimite tot traficul pentru exteriorul statului ctre ruterul din Los Angeles. Ruterul din Los Angeles este capabil s dirijeze traficul spre alte rutere interne, dar va trimite tot traficul extern spre New York. Ruterul din New York este programat s dirijeze traficul ctre ruterul din ara de destinaie care se ocup de traficul extern, de exemplu n Nairobi. n final, pachetul va urma calea sa, cobornd n arborele din Kenya pn ce ajunge la Malindi.
Tabela complet pentru 1A Oest. Linie Salturi Regiune 1 ,"""B"-\ 1C/ Regiune 2 /2A 2 B \ \2C 2D Tabela ierarhic pentru 1A Det. Linie Salturi IA 1B IC 2 3 4 5

V 4A \ /"5B 3A 5A.~ * 3B A4B JlC/X

5C 5D

Regiune 3 Regiune 4 Regiune 5

1A 1B IC 2A 2B 2C 2D 3A 3B 4A 4B 4C 5A 5B 5C 5D
5E_

1 1 2 3 3 4 3 2 3 4 4 4 5 5 6 5
(b)

1B IC 1B 1B 1B 1B IC 1C 1C 1C 1C 1C IC
1B

1B 1C 1B 1 . C IC IC

1 1 2 2 3 4

1C 1C

(a)

(O

Fig. 5-17. Dirijare ierarhic.

34

NIVELUL REEA

CAP. 5

Fig. 5-17 sugereaz un exemplu cantitativ al dirijrii ntr-o ierarhie pe dou niveluri, avnd cinci regiuni. Tabela de dirijare complet a ruterului L4 are 17 intrri, aa cum se arat n Fig. 5-17 (b). Cnd dirijarea se face ierarhic, aa ca n Fig. 5-17(c), exist intrri pentru toate ruterele locale, la fel ca i pn acum, ns toate celelalte regiuni au fost condensate ntr-un singur ruter, astfel nct tot traficul pentru regiunea 2 va merge pe linia 1A-2B, iar restul traficului la distan va merge pe linia 1C-3B. Dirijarea ierarhic a redus dimensiunea tabelei de la 17 intrri la 7. Pe msur ce raportul ntre numrul de regiuni i numrul de rutere dintro regiune crete, se economisete tot mai mult spaiu de memorie. Din pcate acest ctig de spaiu nu este gratuit. Trebuie pltit un pre i acesta este concretizat n creterea lungimii cilor. De exemplu, cea mai bun cale de la L4 la 5C este prin regiunea 2, ns n dirijarea ierarhic tot traficul ctre regiunea 5 este trimis spre regiunea 3, deoarece aa este mai bine pentru majoritatea destinaiilor din regiunea 5. Dac o reea unic devine prea mare, o ntrebare interesant este: Cte niveluri trebuie s aib ierarhia? De exemplu, s considerm o subreea cu 720 rutere. n absena oricrei ierarhii, tabela de dirijare a fiecrui ruter trebuie s conin 720 intrri. Dac subreeaua este partiionat n 24 regiuni cu 30 de rutere fiecare, fiecare ruter necesit 30 de intrri locale plus 23 de intrri pentru celelalte regiuni, deci un total de 53 intrri. Dac se alege o ierarhie pe trei niveluri, cu opt asociaii (clusters), fiecare avnd 9 regiuni a cte 10 rutere fiecare, fiecare ruter are nevoie de 10 intrri pentru ruterele locale, 8 intrri pentru celelalte regiuni din asociaia sa i de 7 intrri pentru celelalte asociaii, deci un total de 25 intrri. Kamoun i Kleinrock (1979) au descoperit c numrul optim de niveluri pentru o subreea cu N rutere este lnN, ceea ce necesit un total de e ln/V intrri pentru fiecare ruter. Ei au artat de asemenea c creterea efectiv a lungimii medii a cilor provocat de dirijarea ierarhic este suficient de mic pentru a fi acceptat. 5.2.8 Dirijarea pentru calculatoare gazd mobile Milioane de oameni dein astzi calculatoare portabile i, de obicei, ei doresc s-i citeasc pota electronic i s-i acceseze sistemele de fiiere uzuale din orice punct al lumii s-ar afla. Aceste calculatoare mobile introduc o nou complicaie: pentru a dirija un pachet ctre un calculator mobil, reeaua trebuie mai nti s-1 localizeze. Problema integrrii calculatoarelor mobile ntr-o reea este foarte recent, dar n aceast seciune vom sugera unele abordri i vom da o posibil soluie. Modelul lumii folosit de obicei de proiectanii de reele este cel prezentat n Fig. 5-18. Aici avem o reea WAN format din rutere i calculatoare gazd. LA WAN sunt conectate LAN-uri, MAN-uri i celule de comunicaie fr fir de tipul celor descrise n Cap. 2. Utilizatorii care nu se mic niciodat se numesc staionari. Ei sunt conectai la reea prin fire de cupru sau fibre optice. n contrast, putem distinge alte dou categorii de utilizatori. Utilizatorii migratori sunt de fapt utilizatori staionari, dar care, din cnd n cnd, se mut dintr-un loc fixat n altul i care folosesc reeaua doar atunci cnd sunt legai fizic. Utilizatorii cltori efectueaz calcule n timp ce se deplaseaz i doresc s menin legtura n timpul deplasrii. Vom folosi termenul utilizatori mobili pentru a desemna fiecare dintre ultimele dou categorii, adic toi utilizatorii care sunt departe de cas. Se presupune c toi utilizatorii au o locaie de domiciliu permanent (home location), care nu se modific niciodat. Utilizatorii au de asemenea o adres personal permanent, care poate fi folosit pentru a determina locaia de domiciliu, ntr-o manier similar celei n care numrul de

SEC 52

ALGORITMI DE DIRIJARE

341

telefon 1-212-5551212 indic Statele Unite (codul de ar 1) i Manhattan (212). Scopul dirijrii n sistemele cu utilizatori mobili este de a face posibil s se trimit pachete spre utilizatorii mobili folosind adresa lor personal permanent i s se asigure o trimitere eficient a pachetelor spre ei, oriunde ar fi acetia. Problema este, bineneles, modul de localizare a lor.

Gazd mobil1 Agent pentru strini'

,>
}\ /

LAN pentru strini

\/

WAN

MAN

Fig. 5-18. O reea WAN la care sunt conectate reele LAN, MAN i celule de comunicaie fr fir. n modelul din Fig. 5-18, lumea este divizat (geografic) n uniti de dimensiune redus. S denumim aceste uniti domenii, ele sunt de obicei LAN-uri sau celule de comunicaie fr fir. n fiecare domeniu exist unul sau mai muli ageni pentru strini (foreign agent) care in evidena tuturor utilizatorilor mobili care viziteaz domeniul. n plus, fiecare domeniu are un agent local (local agent) care ine evidena utilizatorilor cu domiciliul n domeniul respectiv, dar care tocmai viziteaz alte domenii. Cnd un nou utilizator ptrunde ntr-un domeniu, fie prin conectarea la acesta (ataarea fizic la LAN), fie prin plimbarea printr-o celul, calculatorul su trebuie s se nregistreze la agentul pentru strini din domeniul respectiv. Procedura de nregistrare se desfoar de obicei astfel: 1. Periodic, fiecare agent pentru strini difuzeaz un pachet anunndu-i existena i adresa. Un utilizator mobil nou sosit trebuie s atepte unul dintre aceste mesaje, ns dac nici unul nu sosete ntr-un interval rezonabil de timp, calculatorul mobil poate difuza un pachet care spune: Este vreun agent pentru strini prin zon?" 2. Calculatorul mobil se nregistreaz la agentul pentru strini preciznd adresa sa permanent, adresa actual a nivelului legtur de date, precum i unele informaii de securitate. 3. Agentul pentru strini contacteaz apoi agentul local al domeniului din care provine utilizatorul mobil i i spune: Unul dintre calculatoarele tale gazd se afl chiar aici." Mesajul agentului pentru strini ctre agentul local conine adresa de reea a agentului pentru strini. El mai conine de asemenea i informaia de securitate, pentru a convinge agentul local c gazda mobil este ntr-adevr acolo.

342 4.

NIVELUL REEA

CAP. 5

Agentul local examineaz informaia de securitate, care conine i o tampil de timp, pentru a dovedi c a fost generat n ultimele cteva secunde. Dac este aa, se confirm aceasta agentului pentru strini. 5. Cnd agentul pentru strini primete confirmarea de la agentul local, el creeaz o nou intrare n tabela sa i anun utilizatorul mobil c a fost nregistrat. Ideal, atunci cnd un utilizator prsete un domeniu, acest lucru trebuie anunat, pentru a fi scos din eviden, ns muli utilizatori pur i simplu nchid calculatorul cnd termin. Cnd se trimite un pachet ctre un utilizator mobil, el este dirijat ctre reeaua LAN unde este domiciliul utilizatorului, deoarece adresa sugereaz c aa trebuie fcut, dup cum se ilustreaz i n pasul 1 din Fig. 5-19. Pachetele trimise ctre utilizatorul mobil n LAN-ul su de domiciliu sunt interceptate de agentul local. Apoi agentul local caut noua locaie (temporar) a utilizatorului mobil i afl adresa agentului pentru strini care se ocup de utilizatorul mobil. Agentul local face, n continuare, dou lucruri. n primul rnd, ncapsuleaz pachetul n cmpul de informaie util (payload) al unui pachet de trimis, pe care l expediaz apoi ctre agentul pentru strini (pasul 2 din Fig. 5-19). Acest mecanism se numete tunelare; l vom studia n detaliu puin mai trziu. Dup ce recepioneaz pachetul ncapsulat, agentul pentru strini extrage pachetul iniial din cmpul payload i l trimite ctre utilizatorul mobil drept cadru al nivelului legtur de date.

1. Pachetul este trimis la adresa de acas a gazdei mobil

4. Urmtoarele pachete sunt tunelate ctre agentul strin

3. Emitorul primete adresa agentului pentru strini

2. Pachetul este tunelat ctre agentul pentru strini

Fig. 5-19. Dirijarea pachetelor pentru utilizatorii mobili. n al doilea rnd, agentul local anun expeditorul mesajului s trimit pachetele adresate utilizatorului mobil prin ncapsularea lor n cmpul de informaie util (payload) al unor pachete trimise explicit agentului pentru strini, n loc s le trimit la adresa de domiciliu a utilizatorului

sE

C.5.2

ALGORITMI DE DIRIJARE

343

mobil (pasul 3). Pachetele urmtoare vor putea fi dirijate direct ctre utilizator, prin intermediul agentului pentru strini (pasul 4), evitnd n ntregime trecerea prin locaia de domiciliu. Diversele scheme propuse difer prin mai multe aspecte. n primul rnd, ct din acest protocol este realizat de rutere i ct de calculatoarele gazd i, n aceast ultim situaie, pe care nivel de pe calculatorul gazd. n al doilea rnd, unele scheme prevd rutere de-a lungul traseului care nregistreaz adresele modificate, astfel nct s fie posibil interceptarea i redirectarea traficului chiar nainte ca acesta s ajung la locaia de domiciliu. n al treilea rnd, n unele variante fiecare vizitator primete o adres temporar unic; n altele adresa temporar se refer la un agent care se ocup de toi vizitatorii. n al patrulea rnd, variantele propuse difer prin modul de rezolvare a situaiei n care pachetele adresate unei destinaii trebuie livrate n alt parte. O variant este schimbarea adresei destinaie i retransmiterea pachetului modificat. Ca o alternativ, ntregul pachet, adresa de domiciliu i toate celelalte pot fi ncapsulate n cmpul de informaie util (payload) al altui pachet care este trimis spre adresa temporar. n fine, schemele difer prin aspectele legate de securitate. n general, cnd un ruter sau calculator gazd primete un mesaj de forma ncepnd din acest moment, v rog s trimitei toate mesajele de pot electronic ale lui Cayla ctre mine," el ar putea avea dubii n legtur cu partenerul de dialog i dac este sau nu o idee bun s fac aa. Diferite protocoale pentru calculatoare gazd mobile sunt discutate i comparate n (Ioannidis i Maguire, 1993; Myles i Skellern, 1993; Perkins, 1993; Teraoka .a., 1993; i Wanda .a., 1993). 5.2.9 Dirijarea prin difuzare Pentru unele aplicaii, calculatoarele gazd au nevoie s trimit mesaje ctre mai multe sau ctre toate celelalte calculatoare gazd. De exemplu, un serviciu de distribuire a rapoartelor meteorologice, de actualizare a stocurilor pe pia sau transmisiuni radio n direct ar putea funciona mai bine prin difuzarea datelor ctre toate mainile, fiind la latitudinea celor interesate de date s le recepioneze. Trimiterea simultan a unui pachet ctre toate destinaiile se numete difuzare (broadcast); au fost propuse mai multe metode pentru a o realiza. O metod de difuzare care nu are cerine deosebite din partea reelei este ca sursa s trimit un pachet distinct ctre fiecare destinaie. Metoda este nu numai consumatoare de lime de band, dar ea cere ca sursa s dein o list complet a tuturor destinaiilor. S-ar putea ca n practic aceasta s fie singura metod utilizabil, ns ea este metoda cea mai puin dorit. Inundarea este un alt candidat evident. Dei inundarea este nepotrivit pentru comunicaia obinuit capt la capt, pentru difuzare ar trebui luat serios n considerare, mai ales dac nici una din metodele ce vor fi descrise n continuare nu este aplicabil. Problema folosirii inundrii ca metod de difuzare este aceeai cu problema ivit la folosirea sa ca algoritm de dirijare capt la capt: genereaz prea multe pachete i consum lime de band prea mare. Al treilea algoritm este dirijarea multidestinaie. Dac se folosete aceast metod, fiecare pachet conine fie o list a destinaiilor, fie o hart de bii care indic destinaiile dorite. Cnd un pachet ajunge la un ruter, ruterul verific toate destinaiile pentru a determina setul liniilor de ieire pe care trebuie trimis pachetul. (O linie de ieire este selectat dac este calea cea mai bun pentru cel puin o destinaie.) Ruterul genereaz o nou copie a pachetului pentru fiecare linie de ieire folosit i include n fiecare pachet doar acele destinaii care folosesc linia respectiv. Efectul este partiionarea mulimii destinaiilor ntre liniile de ieire. Dup un numr suficient de salturi, fiecare

344

NIVELUL REEA

CAP. 5

pachet va conine o singur destinaie i poate fi tratat ca un pachet normal. Dirijarea multidestinaie este asemntoare trimiterii separate a mai multor pachete ctre adresele destinaie, excepia fiind faptul c dac mai multe pachete trebuie s urmeze aceeai cale, unul dintre ele pltete tot drumul, iar celelalte cltoresc gratuit. Al patrulea algoritm de difuzare utilizeaz explicit arborele de scufundare al ruterului care iniiaz difuzarea sau orice alt arbore de acoperire util. Un arbore de acoperire (spanning tree) este un subset al subreelei care include toate ruterele i nu conine bucle. Dac fiecare ruter cunoate care din liniile sale particip la arborele de acoperire, el poate copia un pachet de difuzare recepionat pe toate liniile de ieire care fac parte din arborele de acoperire, cu excepia celei pe care a fost recepionat. Aceast metod asigur o utilizare deosebit de eficient a limii de band, genernd numrul minim de pachete necesare pentru a rezolva problema. Singura problem este c, pentru a fi aplicabil, fiecare ruter trebuie s dein cunotine despre un anume arbore de acoperire. Uneori aceast informaie este disponibil (de exemplu la dirijarea bazat pe starea legturilor), iar alteori nu este disponibil (de exemplu la dirijarea cu vectori distan). Ultimul nostru algoritm cu difuzare este o ncercare de a aproxima comportamentul precedentului, chiar i atunci cnd ruterele nu tiu absolut nimic despre arborele de acoperire. Ideea este remarcabil de simpl odat ce a fost indicat. Cnd un pachet de difuzare ajunge la un ruter, acesta verific dac pachetul a sosit pe linia pe care se trimit de obicei pachete ctre sursa difuzrii. Dac este aa, este o ans foarte mare ca nsui pachetul de difuzare s fi urmat cea mai bun cale, fiind astfel prima copie care ajunge la ruter. Aceasta fiind situaia, rutenii trimite pachetul pe toate liniile de ieire, cu excepia celei pe care a sosit. Dac ns pachetul a sosit pe alt linie dect cea preferat pentru a ajunge la surs, pachetul este distrus, fiind considerat un posibil duplicat.

M
(a)

(b)

(O

Fig. 5-20. Algoritmul cii inverse, (a) O subreea. (b) Un arbore de acoperire, (c) Arborele construit de algoritmul cii inverse.
Un exemplu al algoritmului, numit trimiterea pe calea invers (inverse path forwarding), este

prezentat n Fig. 5-20. Partea (a) prezint subreeaua, partea (b) arat arborele de scufundare pentru rutenii / al subreelei, iar partea (c) prezint cum funcioneaz algoritmul cii inverse. La primul salt, / trimite pachete ctre F, H, J i N, aa cum se vede din al doilea nivel al arborelui. Fiecare din aceste pachete ajunge pe calea preferat ctre / (presupunnd c ruta preferat face

SEC. 5.2

ALGORITMI DE DIRIJARE

345

parte din arborele de scufundate), lucru care este indicat printr-uncerc n jurul literei. La saltul urmtor, se genereaz opt pachete, dou de ctre fiecare ruter care a primit un pachet la primul salt. Aa cum se vede, toate aceste opt pachete ajung la rutere nc nevizitate i toate, cu excepia unuia, ajung pe linia preferat. Dinte cele nou pachete generate la al treilea salt, doar dou sosesc pe linia preferat (n C i L) i astfel doar ele genereaz pachete suplimentare. Dup cinci salturi i 24 pachete, difuzarea se termin, spre deosebire de patru salturi i 14 pachete necesare dac arborele de scufundare ar fi fost urmat integral. Principalul avantaj al folosirii cii inverse este acela c este rezonabil de eficient i este uor de implementat. El nu cere ruterelor s cunoasc arborele de acoperire i nici nu are overhead-ul algoritmului de adresare multidestinaie, care folosete o list de destinaii sau hart de bii la fiecare difuzare. De asemenea, el nu necesit nici un mecanism special pentru a opri procesul, ca n cazul inundrii (unde se folosete fie un contor al salturilor n fiecare pachet i o cunoatere a priori a diametrului subreelei, fie o list de pachete deja vzute pentru fiecare surs). 5.2.10 Dirijarea cu trimitere multipl (multicast) Pentru unele aplicaii, este necesar ca mai multe procese aflate la distane mari unele de altele s lucreze n grup, de exemplu, un grup de procese care implementeaz o baz de date distribuit. Adesea este necesar ca un proces s trimit un mesaj ctre toi ceilali membri ai grupului. Dac grupul este mic, el poate trimite fiecrui partener un mesaj capt la capt. Dac grupul este mare, aceast strategie este costisitoare. Uneori se poate folosi difuzarea, dar folosirea difuzrii pentru a anuna 1000 de maini dintr-o reea cu un milion de noduri este ineficient, deoarece majoritatea receptorilor nu sunt interesai (sau chiar mai ru, ei sunt chiar foarte interesai, dar nu e bine s afle). De aceea avem nevoie de o modalitate de a trimite mesaje spre grupuri bine definite, care conin un numr mare de noduri, dar totui redus fa de dimensiunea reelei ca un ntreg. Trimiterea unui mesaj ctre un astfel de grup se numete multicasting, iar algoritmul de dirijare asociat se numete dirijare multicast. In aceast seciune, vom descrie o modalitate de a realiza dirijarea multicast. Pentru informaii adiionale, vezi (Deering i Cheriton, 1990; Deering .a., 1994; Rajagopalan, 1992). Pentru a realiza dirijarea multicast, este necesar gestiunea grupului. Trebuie s existe modaliti de a crea i distruge grupuri i ca procesele s intre n grupuri sau s le prseasc. Cum se realizeaz aceste funcii nu e treaba algoritmului de dirijare. Important pentru algoritmul de dirijare este c atunci cnd un proces se ataeaz unui grup, el trebuie s informeze gazda sa despre aceasta. Este foarte important ca un ruter s tie cror grupuri aparin calculatoarele gazd asociate. Fie calculatoarele gazd trebuie s anune rutenii asociat la producerea unei modificri n alctuirea grupurilor, fie rutenii trebuie s interogheze periodic aceste calculatoare gazd. n ambele cazuri, rutenii determin care este apartenena la grupuri a calculatoarelor gazd. Ruterele i informeaz vecinii, astfel c informaia se propag prin subreea. Pentru a realiza dirijarea multicast, fiecare ruter calculeaz arborele de acoperire care acoper toate celelalte rutere din subreea. De exemplu, n Fig. 5-21 (a) avem o subreea cu dou grupuri, 1 i 2. Unele rutere sunt ataate la calculatoare gazd care aparin unuia sau ambelor grupuri, aa cum se indic n figur. Un arbore de acoperire pentru cel mai din stnga ruter este prezentat n Fig. 5-21(b).

346

NIVELUL REEA

CAP. 5

Atunci cnd un proces trimite un pachet multicast ctre un grup, primul ruter i examineaz arborele de acoperire i l reteaz, eliminnd toate liniile care nu conduc ctre calculatoare gazd, membre ale grupului. n exemplul nostru, Fig. 5-21(c) arat arborele de acoperire retezat pentru grupul 1. Similar, Fig. 5-21(d) arat arborele de acoperire retezat pentru grupul 2. Pachetele multicast sunt dirijate doar de-a lungul arborelui de acoperire corespunztor.

2 -

(d)

Fig. 5-21. (a) O subreea. (b) Arborele de acoperire pentru cel mai din stnga ruter. (c) Arborele multicast al grupului 1. (d) Arborele multicast al grupului 2. Sunt posibile mai multe moduri de retezare a arborelui de acoperire. Cel mai simplu se poate folosi dac se utilizeaz dirijarea bazat pe starea legturilor i fiecare ruter cunoate ntreaga topologie a subretelei, inclusiv apartenena calculatoarelor gazd la grupuri. Atunci arborele poate fi retezat pornind de la sfritul fiecrei ci i mergnd spre rdcin, eliminnd toate ruterele care nu aparin grupului respectiv. n cazul dirijrii folosind vectori distan, trebuie aplicat o alt strategie pentru retezarea arborelui. Algoritmul de baz folosit este trimiterea pe calea invers. Oricum, ori de cte ori un ruter fr nici un calculator gazd interesat de un anume grup i fr nici o conexiune la alte rutere primete un mesaj multicast pentru acel grup, el va rspunde cu un mesaj PRUNE (retezare), anunnd expeditorul s nu i mai trimit mesaje multicast pentru acel grup. Cnd un ruter care nu are printre calculatoarele gazd nici un membru al vreunui grup primete astfel de mesaje pe toate liniile sale, el poate de asemenea s rspund cu un mesaj PRUNE, n acest fel subreteaua este retezat recursiv.

SEC. 5.3

ALGORITMI PENTRU CONTROLUL CONGESTIEI

347

Un potenial dezavantaj al acestui algoritm este acela c se comport deficitar n cazul reelelor extinse. S presupunem c o reea are n grupuri, fiecare cu un numr mediu de m membri. Pentru fiecare grup, trebuie memorai m arbori de acoperire retezai, deci un total de mn arbori. Dac exist grupuri mari, este necesar o cantitate tot mai mare de memorie pentru a memora aceti arbori. O alternativ de proiectare folosete arbori de baz (core-base trees) (Ballardie .a., 1993). Aici se calculeaz un singur arbore de acoperire pentru fiecare grup, avnd rdcina (core inima, nucleu) lng mijlocul grupului. Pentru a trimite un mesaj multicast, un ruter trimite mesajul ctre rdcin, care apoi l trimite de-a lungul arborelui de acoperire. Dei acest arbore nu va fi optim pentru toate sursele, reducerea costului memorrii de la m arbori la unul singur este o realizare major.

53 ALGORITMI PENTRU CONTROLUL CONGESTIEI


Atunci cnd foarte multe pachete sunt prezente ntr-o subreea (sau parte a unei subretele), performanele se degradeaz. Situaia care apare se numete congestie. Fig. 5-22 prezint simptomele. Cnd numrul de pachete emise n subreea de calculatoarele gazd nu depete capacitatea de transport, ele sunt livrate integral (cu excepia celor care sunt afectate de erori de transmisie), iar numrul celor livrate este proporional cu numrul celor emise. Totui, atunci cnd traficul crete prea mult, ruterele ncep s nu mai fac fa i s piard pachete. Aceasta tinde s nruteasc lucrurile. La un trafic foarte intens performanele se deterioreaz complet i aproape nici un pachet nu mai este livrat.
Perfect

de transport a subreelei

Pachete trimise

Fig. 5-22. Dac traficul este prea intens, apare congestia i performanele se degradeaz puternic. Congestia poate fi produs de mai muli factori. Dac dintr-o dat ncep s soseasc iruri de pachete pe trei sau patru linii de intrare i toate necesit aceeai linie de ieire, atunci se va forma o coad. Dac nu exist suficient memorie pentru a le pstra pe toate, unele se vor pierde. Adugarea de memorie poate fi folositoare pn la un punct, Nagle (1987) descoperind c dac ruterele ar avea o cantitate infinit de memorie, congestia s-ar nruti n loc s se amelioreze,

348

NIVELUL REEA

CAP. 5

deoarece n timpul petrecut de pachete pentru a ajunge la nceputul cozii ele au fost deja considerate pierdute (timeout repetat) i s-au trimis mai multe duplicate. Toate aceste pachete vor fi cu greu trimise ctre urmtorul ruter, crescnd ncrcarea de-a lungul cii ctre destinaie. i procesoarele lente pot cauza congestia. Dac unitatea central (CPU) a ruterului este lent n execuia funciilor sale (introducerea n cozi, actualizarea tabelelor etc), cozile pot crete, chiar dac linia de comunicaie nu e folosit la capacitate. Similar i liniile cu lime de band sczut pot provoca congestia. Schimbarea liniilor cu unele mai performante i pstrarea aceluiai procesor sau vice-versa de obicei ajut puin, ns de cele mai multe ori doar deplaseaz punctul critic. De asemenea, mbuntirea parial i nu total a sistemului cel mai adesea mut punctul critic n alt parte. Adevrata problem este de multe ori o incompatibilitate ntre pri ale sistemului. Ea va persista pn ce toate componentele sunt n echilibru. Congestia tinde s se auto-alimenteze i s devin tot mai rea. Dac un ruter nu mai are zone tampon libere, el trebuie s ignore mesajele noi pe care le recepioneaz. Cnd un pachet este distrus, ruterul care 1-a trimis (un vecin) poate iniia retransmiterea sa pe motiv de timeout de mai multe ori. Deoarece nu poate distruge pachetul pn ce nu a fost confirmat, congestia de la receptor l va fora pe emitor s nu elibereze o zon tampon pe care n mod normal ar fi eliberat-o. n felul acesta congestia se accentueaz, ca n cazul mainilor care se apropie de un punct de taxare de pe autostrad. Este important s subliniem diferena dintre controlul congestiei i controlul fluxului, deoarece relaia este subtil. Controlul congestiei trebuie s asigure c subreeaua este capabil s transporte ntreg traficul implicat. Este o problem global, implicnd comportamentul tuturor calculatoarelor gazd, ale tuturor ruterelor, prelucrarea de tip memoreaz i trimite" (store-and-forward) din rutere i toi ceilali factori care tind s diminueze capacitatea de transport a subreelei. Controlul fluxului, prin contrast, se refer la traficul capt la capt ntre un expeditor i un destinatar. Rolul su este de a mpiedica un expeditor rapid s trimit date continuu, la o vitez mai mare dect cea cu care destinatarul poate consuma datele. Controlul fluxului implic aproape ntotdeauna existena unui feed-back de la receptor ctre emitor, pentru a spune emitorului cum se desfoar lucrurile la cellalt capt. Pentru a vedea diferena dintre aceste dou concepte, s considerm o reea cu fibre optice cu o capacitate de 1000 gigabii/sec pe care un supercalculator ncearc s transfere un fiier ctre un calculator personal la 1 Gbps. Dei nu exist nici o congestie (reeaua nu are nici un fel de probleme), controlul fluxului este necesar pentru a fora supercalculatorul s se opreasc des, pentru a permite calculatorului personal s i respire. La cealalt extrem, s considerm o reea de tip memoreaz i trimite" (store-and-forward), cu linii de 1 Mbps i 1000 de calculatoare mari, din care jumtate ncearc s transfere fiiere la 100 kbps ctre cealalt jumtate. Aici problema nu apare datorit unui emitor rapid care surclaseaz un receptor lent, ci pentru c traficul cerut depete posibilitile reelei. Motivul pentru care controlul congestiei i controlul fluxului sunt adesea confundate este acela c unii algoritmi pentru controlul congestiei funcioneaz trimind mesaje napoi ctre diferitele surse, spunndu-le s ncetineasc atunci cnd reeaua are probleme. Astfel, un calculator gazd poate primi un mesaj de ncetinire fie din cauz c receptorul nu suport ncrcarea, fie pentru c reeaua este depit. Vom reveni asupra acestui punct mai trziu.

SE

C.5.3

AmORTIMIPENTRireONTROLUL CONGESTIEI

349

Vom ncepe studiul algoritmilor pentru controlul congestiei prin studiul unui model general al congestiei. Apoi ne vom ocupa de principalele msuri pentru prevenirea sa. Dup aceea, vom vedea o serie de algoritmi dinamici pentru tratarea congestiei odat ce a aprut. 5.3.1 Principii generale ale controlului congestiei Multe din problemele care apar n sistemele complexe, cum ar fi reelele de calculatoare, pot fi privite din punctul de vedere al unei teorii a controlului. Aceast abordare conduce la mprirea tuturor soluiilor n dou grupe: n bucl deschis i n bucl nchis. Soluiile n bucl deschis ncearc s rezolve problema printr-o proiectare atent, n esen s se asigure c problema nu apare. Dup ce sistemul este pornit i funcioneaz, nu se mai fac nici un fel de corecii. Instrumentele pentru realizarea controlului n bucl deschis decid cnd s se accepte trafic nou, cnd s se distrug pachete i care s fie acestea, realizeaz planificarea deciziilor n diferite puncte din reea. Toate acestea au ca numitor comun faptul c iau decizii fr a ine cont de starea curent a reelei. Prin contrast, soluiile n bucl nchis se bazeaz pe conceptul de reacie invers (feedback loop). Aceast abordare are trei pri, atunci cnd se folosete pentru controlul congestiei: 1. Monitorizeaz sistemul pentru a detecta cnd i unde se produce congestia. 2. Trimite aceste informaii ctre locurile unde se pot executa aciuni. 3. Ajusteaz funcionarea sistemului pentru a corecta problema. n vederea monitorizrii subreelei pentru congestie se pot folosi diverse metrici. Cele mai utilizate sunt procentul din totalul pachetelor care au fost distruse din cauza lipsei spaiului temporar de memorare, lungimea medie a cozilor de ateptare, numrul de pachete care sunt retransmise pe motiv de timeout, ntrzierea medie a unui pachet, deviaia standard a ntrzierii unui pachet. n toate cazurile, numerele mari indic creterea congestiei. Al doilea pas n bucla de reacie este transferul informaiei legate de congestie de la punctul n care a fost depistat la punctul n care se poate face ceva. Varianta imediat presupune trimiterea unor pachete de la ruterul care a detectat congestia ctre sursa sau sursele de trafic, pentru a raporta problema. Evident, aceste pachete suplimentare cresc ncrcarea reelei exact la momentul n care acest lucru era cel mai puin dorit, subreeaua fiind congestionat. Exist ns i alte posibiliti. De exemplu, poate fi rezervat un bit sau un cmp n fiecare pachet, pentru a fi completat de rutere dac congestia depete o anumit valoare de prag. Cnd un ruter detecteaz congestie, el completeaz cmpurile tuturor pachetelor expediate, pentru a-i preveni vecinii. O alt abordare este ca ruterele sau calculatoarele gazd s trimit periodic pachete de prob pentru a ntreba explicit despre congestie. Aceste informaii pot fi apoi folosite pentru a dirija pachetele n zonele cu probleme. Unele staii de radio i trimit elicopterele s zboare deasupra oraelor pentru a raporta congestiile de pe drumuri, n sperana c asculttorii lor i vor dirija pachetele (mainile) astfel, nct s ocoleasc zonele fierbini. n toate schemele cu feedback se sper c informarea asupra producerii congestiei va determina calculatoarele gazd s ia msurile necesare pentru a reduce congestia. Pentru a funciona corect,

350

NIVELUL REEA

CAP. 5

duratele trebuie reglate foarte atent. Dac de fiecare dat cnd dou pachete sosesc ntr-o linie, un ruter strig STOP i de fiecare dat cnd rutenii e liber mai mult de 20 usec el strig PLEAC, atunci sistemul va oscila puternic i nu va converge niciodat. Pe de alt parte, dac el ateapt 30 minute pentru a fi sigur nainte de a spune ceva, mecanismul pentru controlul congestiei reacioneaz prea lent pentru a fi de vreun folos real. Pentru a funciona corect sunt necesare unele medieri, dar aflarea constantelor de timp cele mai potrivite nu este o treab tocmai uoar. Se cunosc numeroi algoritmi pentru controlul congestiei. Pentru a oferi o modalitate de organizare a lor, Yang i Reddy (1995) au dezvoltat o taxonomie pentru algoritmii de control al congestiei. Ei ncep prin a diviza algoritmii n cei n bucl nchis i cei n bucl deschis, aa cum s-a precizat mai sus. n continuare mpart algoritmii cu bucl deschis n unii care acioneaz asupra sursei i unii care acioneaz asupra destinaiei. Algoritmii n bucl deschis sunt de asemenea mprii n dou subcategorii, cu feedback implicit i cu feedback explicit. n algoritmii cu feedback explicit, pachetele sunt trimise napoi de la punctul unde s-a produs congestia ctre surs, pentru a o avertiza. n algoritmii implicii, sursa deduce existena congestiei din observaii locale, cum ar fi timpul necesar pentru ntoarcerea confirmrilor. Prezena congestiei nseamn c ncrcarea (momentan) a sistemului este mai mare dect resursele gestionate de sistem. Pentru rezolvare vin imediat n minte dou soluii: sporirea resurselor sau reducerea ncrcrii. De exemplu subreeaua poate ncepe s foloseasc linii telefonice pentru a crete temporar limea de band ntre anumite puncte. n sisteme ca SMDS (vezi Cap. 1), se poate cere furnizorului o suplimentare temporar a limii de band. n sistemele bazate pe satelii, creterea puterii de transmisie asigur de regul creterea limii de band. Spargerea traficului pe mai multe ci n locul folosirii doar a celei mai bune poate duce efectiv la creterea limii de band. n fine, ruterele suplimentare, folosite de obicei doar ca rezerve pentru copii de siguran (backups) (pentru a face sistemul tolerant la defecte), pot fi folosite pentru a asigura o capacitate sporit atunci cnd apar congestii serioase. Oricum, uneori nu este posibil creterea capacitii sau aceasta a fost deja crescut la limit. Atunci singura cale de a rezolva congestia este reducerea ncrcrii. Sunt posibile mai multe metode pentru reducerea ncrcrii, cum ar fi interzicerea unor servicii ctre anumii utilizatori, degradarea serviciilor pentru o parte sau pentru toi utilizatorii i planificarea cererilor utilizatorilor ntr-o manier mai previzibil. Unele din aceste metode, pe care le vom studia pe scurt, pot fi aplicate cel mai bine circuitelor virtuale. Pentru subreelele care folosesc intern circuite virtuale aceste metode pot fi utilizate la nivelul reea. Pentru subretele bazate pe datagrame ele pot fi totui folosite uneori pentru conexiuni la nivelul transport. n acest capitol, ne vom concentra pe folosirea lor n cadrul nivelului reea. n urmtorul, vom vedea ce se poate face la nivelul transport pentru a controla congestia.
5.3.2 Politici pentru prevenirea congestiei

S ncepem studiul nostru asupra metodelor pentru controlul congestiei prin analiza sistemelor cu bucl deschis. Aceste sisteme sunt proiectate astfel, nct s minimizeze congestia, n loc s o lase s se produc i apoi s reacioneze. Ele ncearc s-i ating scopul folosind politici corespunztoare, la diferite niveluri. n Fig. 5-23 sunt prezentate diferite politici pentru nivelul legtur de date, reea i transport, care pot influena congestia (Jain, 1990).

SEC. 5.3
Nivel
Transport

ALGORITMI PENTRU CONTROLUL CONGESTIEI


Politic
Politica de retransmisie \ Politica de memorare temporar a pachetelor n afar de secven (out-of-order caching) Politica de confirmare Politica de control al fluxului Determinarea timeout-ului Circuite virtuale contra datagrame n interiorul subreelei Plasarea n cozi de ateptare a pachetelor i politici de servire Politica de distrugere a pachetelor Algoritmi de dirijare Gestiunea timpului de via al pachetelor Politica de retransmitere Politica de memorare temporar a pachetelor n afar de secven (out-of-order caching) Politica de confirmare Politica de control al fluxului

351

Reea

Legtur de date

Fig. 5-23. Politici care influeneaz congestia. S ncepem cu nivelul legtur de date i s ne continum apoi drumul spre niveluri superioare. Politica de retransmisie stabilete ct de repede se produce timeout la un emitor i ce transmite acesta la producerea timeout-ului. Un emitor vioi, care produce repede timeout i retransmite toate pachetele n ateptare folosind retrimiterea ultimelor n, va produce o ncrcare mai mare dect un emitor calm, care folosete retrimiterea selectiv. Strns legat de acestea este politica de memorare. Dac receptorii distrug toate pachetele n afara secvenei, acestea vor trebui retransmise ulterior, introducnd o ncrcare suplimentar. i politica de confirmare afecteaz congestia. Dac fiecare pachet este confirmat imediat, pachetele de confirmare vor genera un trafic suplimentar. Dac confirmrile sunt preluate de traficul de rspuns, se pot produce timeout-uri i retransmisii suplimentare. O schem prea strns pentru controlul fluxului (fereastr mic) reduce volumul de date i ajut n lupta cu congestia. La nivelul reea, alegerea ntre folosirea circuitelor virtuale i datagrame influeneaz congestia, deoarece muli algoritmi pentru controlul congestiei funcioneaz doar pe subretele bazate pe circuite virtuale. Plasarea n cozi de ateptare a pachetelor i politicile de servire specific dac ruterele au o coad pentru fiecare linie de intrare, o coad pentru fiecare linie de ieire sau ambele. Mai precizeaz ordinea n care se prelucreaz pachetele (de exemplu round robin sau bazat pe prioriti). Politica de distrugere a pachetelor este regula care stabilete pachetele distruse dac nu mai este spaiu. O politic bun va ajuta la eliminarea congestiei, pe cnd una greit o va accentua. Algoritmul de dirijare poate ajuta la evitarea congestiei prin rspndirea traficului de-a lungul tuturor liniilor; un algoritm neperformant ar putea trimite toate pachetele pe aceeai linie, care deja este congestionat. n fine, gestiunea timpului de via asociat pachetelor stabilete ct de mult poate tri un pachet nainte de a fi distrus. Dac acest timp este prea mare, pachetele pierdute vor ncurca pentru mult timp activitatea, iar dac este prea mic, este posibil s se produc timeout nainte de a atinge destinaia, provocnd astfel retransmisii. La nivelul transport apar aceleai probleme ca la nivelul legturii de date, n plus, determinarea intervalului de timeout este mai dificil de realizat, deoarece timpul de tranzit prin reea este mai greu de prezis dect timpul de tranzit pe un fir ntre dou rutere. Dac acesta este prea mic, vor fi

352

NIVELUL REEA

CAP. 5

trimise inutil pachete suplimentare. Dac este prea mare, congestia se va reduce, ns timpul de rspuns la pierderea unui pachet se va mri. 5.3.3 Formarea traficului Una dintre principalele cauze ale congestiei este aceea c traficul este de obicei n rafal. n cazul n care calculatoarele gazd ar putea fi fcute s transmit cu o rat uniform, congestia nu ar mai fi ceva att de obinuit. O alt metod bucl deschis care ajuta la controlul congestiei este impunerea unei rate previzibile cu care s fie transmise pachetele. Aceast abordare a gestiunii congestiei este larg rspndit n reelele ATM i se numete formarea traficului (traffic shaping). Formarea traficului se ocup cu uniformizarea ratei medii de transmisie a datelor (atenuarea rafalelor). n contrast, protocoalele cu fereastr glisant pe care le-am studiat anterior limiteaz volumul de date n tranzit la un moment dat i nu rata la care sunt transmise acestea. La momentul stabilirii unui circuit virtual, utilizatorul i subreeaua (clientul i furnizorul) stabilesc un anumit model al traficului (form) pentru acel circuit. Att timp ct clientul i respect partea sa de contract i trimite pachete conform nelegerii, furnizorul promite livrarea lor n timp util. Formarea traficului reduce congestia i ajut furnizorul s-i in promisiunea. Astfel de nelegeri nu sunt foarte importante pentru transferul de fiiere, ns sunt deosebit de importante pentru datele n timp real, cum ar fi conexiunile audio sau video, care nu suport bine congestia. Pentru formarea traficului clientul spune furnizorului: Modelul meu de transmisie arat cam aa. Poi s te descurci cu el?" Dac furnizorul este de acord, problema care apare este cum poate spune furnizorul dac clientul respect nelegerea i ce s fac dac nu o respect. Supravegherea fluxului traficului se numete politica traficului (traffic policing.) Stabilirea unei forme a traficului i urmrirea respectrii ei se fac mai uor n cazul subreelelor bazate pe circuite virtuale dect n cazul subreelelor bazate pe datagrame. Cu toate acestea, chiar i n cazul subreelelor bazate pe datagrame, aceleai idei pot fi aplicate la conexiunile nivelului transport. Algoritmul gleii gurite S ne imaginm o gleat cu un mic orificiu n fundul su, aa cum este prezentat n Fig. 524(a). Nu conteaz cu ce rat curge apa n gleat, fluxul de ieire va fi la o rat constant, p, dac este o cantitate de ap n gleat i zero dac gleata e goal. De asemenea, odat ce gleata s-a umplut, orice cantitate suplimentar de ap se va revrsa n afara pereilor i va fi pierdut (adic nu se va regsi n fluxul de ieire de sub orificiu). Aceeai idee poate fi aplicat i n cazul pachetelor, aa cum se arat i n Fig. 5-24 (b). Conceptual, fiecare calculator gazd este conectat la reea printr-o interfa coninnd o gleat gurit, n fapt o coad intern cu capacitate finit. Dac un pachet sosete n coad atunci cnd aceasta este plin, el este distrus. Cu alte cuvinte, dac unul sau mai multe procese de pe acel calculator gazd ncearc trimiterea unui pachet atunci cnd coada conine deja numrul maxim de pachete, pachetele noi vor fi distruse n modul cel mai nepoliticos cu putin. Acest aranjament poate fi implementat n interfaa hardware sau poate fi simulat de ctre sistemul de operare gazd. A fost propus pentru prima dat de ctre Turner (1986) i

SEC. 5.3

ALGORITMI PENTRU CONTROLUL CONGESTIEI

353

numit algoritmul gleii gurite (Ihe leaky bucket algorithm). De fapt nu este altceva dect un sistem de cozi cu un singur server i cu timp de servire constant.
Robinet

Pachet Flux neregulat Gleat gurit Interfa coninnd o gleat gurit Gleata reine pachetele Flux regularizat Apa curge prin gaur ntr-un flux constant Reea

(a)

(b)

Fig. 5-24. (a) O gleat gurit umplut cu ap (b) O gleat gurit, cu pachete. Calculatorul gazd poate pune pe reea cte un pachet la fiecare tact al ceasului. Din nou aceasta poate fi implementat n hardware sau poate fi simulat de ctre sistemul de operare. Acest mecanism transform un flux neregulat de pachete de la procesele de pe calculatorul gazd ntr-un flux uniform de pachete care se depun pe reea, netezind rafalele i reducnd mult ansele de producere a congestiei. Dac pachetele au toate aceeai dimensiune (de exemplu celule ATM), algoritmul poate fi folosit exact aa cum a fost descris. Dac se folosesc pachete de lungimi variabile, este adesea mai convenabil s se transmit un anumit numr de octei la fiecare tact i nu un singur pachet. Astfel, dac regula este 1024 bii la fiecare tact, atunci se pot transmite un pachet de 1024, dou de 512 octei, sau patru de 256 octei .a.m.d. Dac numrul rezidual de octei este sczut, urmtorul pachet va trebui s atepte urmtorul tact. Implementarea algoritmului iniial al gleii este o treab uoar. Gleata gurit const de fapt dintr-o coad finit. Dac la sosirea unui pachet este loc n coad, el este adugat la sfritul cozii, n caz contrar, este distrus. La fiecare tact se trimite un pachet din coad (bineneles dac aceasta nu este vid). Algoritmul gleii folosind contorizarea octeilor este implementat aproximativ n aceeai manier. La fiecare tact un contor este iniializat la n. Dac primul pachet din coad are mai puini octei dect valoarea curent a contorului, el este transmis i contorul este decrementat cu numrul corespunztor de octei. Mai pot fi transmise i alte pachete adiionale, att timp ct contorul este

354

NIVELUL REEA

CAP. 5

suficient de mare. Dac contorul scade sub lungimea primului mesaj din coad, atunci transmisia nceteaz pn la urmtorul tact, cnd contorul este rescris i valoarea sa pierdut.

" 25 MB/sec pentru 40 msec Hs=ES=E^ ^&i3iE


.
;

.....

..

. ...-J.-...J

'

"' j/~"v

"

':

'|

'l

!....-;

:. .

Timp (msec) ,, ,.j., .,

500
,: . . . . .

: ,.., .

.,.1,

,,

, ,

, .;

i .. i

x.. i

'

:.,:
...-.4 [.. - . . ; . . . . - f .-

.;

:......:

X..Z X X-X -i - i

Z'.,~l

S.'.~..l '.".. ....

":'.'.....:....,'.':.'.'.'".

x....'Xv... l ...VX"..!.. ..'.'.*{....

(b)

^fZz^z3.z^^^^%^!^$^~Z!!i^$^^.

MB/sec pentru 500 msec

25 MB/sec pentru 11 msec


f-i -rr"-!1

-i"1, vV'"1i"""rV'"VT;XV"'*V^X"'X.V".t'.""'
;?

':

2 MB/sec pentru 364 msec Timp {msec) 500

(d)

'- 25_ |y!B^?e_?,e.ii?|[y.2.2 n?5?, i


MB/sec pentru 228 msec ^M^N Timp (msec) 25 MB/sec pentru 33 msec -i 3=3iE^s2MB/sec pentru 92 msec i ^ S ^ E E l ^ ^ Timp (msec) 500 500

MB/sec pentru 62 msec


2 MB/sec pentru 190 msec

Timp (msec)-

500

Fig. 5-25. (a) Intrarea pentru o gleat gurit, (b) Ieirea pentru o gleat gurit, (c) - (e) Ieirea pentru o gleat cu jeton de capacitate 250KB, 500KB, 750KB. (f) Ieirea pentru o gleat cu jeton de capacitate 500KB care alimenteaz o gleat gurit de 10 MB/sec. Ca un exemplu de gleat gurit, s ne imaginm un calculator care produce date cu rata de 25 mjlioane octei/sec (200 Mbps) i o reea care funcioneaz la aceeai vitez. Cu toate

ALGORITMI PENTRU CONTROLUL CONGESTIEI

355

ruterele pot s gestioneze datele la aceast rat doar pentru un timp foarte scurt, intervale mai mari ele lucreaz optim pentru rate care nu depesc valoarea de 2 milioane octei/sec. S presupunem acum c datele vin n rafale, 1 milion de octei, cte o rafal de 40 msec n fiecare secund. Pentru a reduce rata medie la 2 MB/sec, putem folosi o gleat gurit avnd p = 2 MB/sec i o capacitate, C, de 1 MB. Aceasta nseamn c rafalele de pn la 1 MB pot fi gestionate fr pierderi de date i c acele rafale sunt mprtiate de-a lungul a 500 msec, indiferent ct de repede sosesc. n Fig. 5-25(a) vedem intrarea pentru gleata gurit funcionnd la 25 MB/sec pentru 40 msec. n Fig. 5-25(b) vedem ieirea curgnd la o rat uniform de 2 MB/sec pentru 500 msec.
Algoritmul gleii cu jeton

Algoritmul gleii gurite impune un model rigid al ieirii, din punct de vedere al ratei medii, indiferent de cum arat traficul. Pentru numeroase aplicaii este mai convenabil s se permit o cretere a vitezei de ieire la apariia unor rafale mari, astfel nct este necesar un algoritm mai flexibil, de preferat unul care nu pierde date. Un astfel de algoritm este algoritmul gleii cu jeton (the token bucket algorithm). n acest algoritm, gleata gurit pstreaz jetoane, generate de un ceas cu rata de un jeton la fiecare T sec. n Fig. 5-26(a) vedem o gleat pstrnd trei jetoane i avnd cinci pachete care ateapt s fie transmise. Pentru ca un pachet s fie transmis, el trebuie s captureze i s distrug un jeton. n Fig. 5-26(b) vedem c trei din cele cinci pachete au trecut mai departe, n timp ce celelalte dou ateapt s fie generate alte dou jetoane.

Calculator gazd

Calculator gazd

La fiecare AT este adugat un jeton n gleat

D D
rj
r\ I

Gleata , reine / jetoanele


ii

/ \

Reele (a)

Reele (b)

Fig. 5-26. Algoritmul gleii cu jeton, (a) nainte, (b) Dup. Algoritmul gleii cu jeton asigur o formare diferit a traficului, comparativ cu algoritmul gleii *'."Algoritmul gleii gurite nu permite calculatoarelor gazd inactive s acumuleze permisiuni

RE: !

356

NIVELUL REEA

CAP. 5

de transmitere pentru a trimite o rafal mai mare ulterior. Algoritmul gleii cu jeton permite aceast acumulare, mergnd pn la dimensiunea maxim a gleii, n. Aceast proprietate permite ca rafale de pn la n pachete s fie trimise simultan, permind apariia unor rafale la ieire, asigurnd un rspuns mai rapid la apariia brusc a unor rafale la intrare. O alt diferen ntre cei doi algoritmi este aceea c algoritmul gleii cu jeton arunc jetoanele la umplerea gleii, dar niciodat nu distruge pachete. Prin contrast, algoritmul gleii gurite distruge pachete la umplerea gleii. i aici este posibil o variant, n care fiecare jeton reprezint dreptul de a trimite nu un pachet ci k bii. Un pachet va putea fi trimis doar dac se dein suficiente jetoane pentru a-i acoperi lungimea n bii. Pentru variantele viitoare se prevede folosirea jetoanelor fracionare. Algoritmul gleii gurite i algoritmul gleii cu jeton pot fi folosite i pentru a uniformiza traficul ntre rutere, la fel de bine cum pot fi folosite pentru a regla informaia de ieire a unui calculator gazd, ca n exemplul prezentat. Oricum, o diferen evident este aceea c algoritmul gleii cu jeton folosit pentru a regla ieirea unui calculator gazd l poate opri pe acesta s trimit date atunci cnd apare vreo restricie. A spune unui ruter s opreasc transmisiile n timp ce datele de intrare continu s soseasc, poate duce la pierderea de date. Implementarea de baz a algoritmului gleii cu jeton se face printr-o variabil care numr jetoane. Acest contor crete cu 1 la fiecare AT i scade cu 1 ori de cte ori este un pachet. Dac acest contor atinge valoarea zero, nici un pachet nu mai poate fi trimis. n varianta la nivel de bii, contorul este incrementat cu k bii la fiecare AT i decrementat cu lungimea pachetului trimis. Caracteristica esenial a algoritmului gleii cu jeton este c permite rafalele, dar pn la o lungime maxim controlat. Privii spre exemplu Fig. 5-25(c). Aici avem o gleat cu jeton, de capacitate 250 KB. Jetoanele sosesc cu o rat care asigur o ieire de 2 MB/sec. Presupunnd c gleata este plin cnd apare o rafal de 1 MB, ea poate asigura scurgerea la ntreaga capacitate de 25 MB/sec pentru circa 11 milisecunde. Apoi trebuie s revin la 2 MB/sec pn ce ntreaga rafal este trimis. Calculul lungimii rafalei de vitez maxim este uor neltor. Nu este doar 1 MB mprit la 25 MB/sec deoarece, n timp ce rafala este prelucrat, apar alte jetoane. Dac notm S cu lungimea rafalei n secunde, cu C capacitatea gleii n octei, cu p rata de sosire a jetoanelor n octei/secund, cu M rata maxim de ieire n octei/secund, vom vedea c o rafal de ieire conine cel mult C + pS octei. De asemenea, mai tim c numrul de octei ntr-o rafal de vitez maxim de S secunde este MS. De aici avem
C + pS = MS

Rezolvnd aceast ecuaie obinem S = C / (M - p). Pentru parametrii considerai C = 250 KB, M = 25 MB/sec i p = 2 MB/sec vom obine o durat a rafalei de circa 11 msec. Fig. 5-25(d) i Fig. 525(e) prezint gleile cu jeton de capaciti 500 KB i respectiv 750 KB. O problem potenial a algoritmului gleii cu jeton este aceea c i el permite apariia unor rafale mari, chiar dac durata maxim a unei rafale poate fi reglat prin selectarea atent a lui p i M. De multe ori este nevoie s se reduc valoarea de vrf, dar fr a se reveni la valorile sczute permise de algoritmul original, al gleii gurite. O alt cale de a obine un trafic mai uniform este de a pune o gleat gurit dup cea cu jeton. Rata gleii gurite va trebui s fie mai mare dect parametrul p al gleii cu jeton, ns mai mic

SEC. 5.3

ALGORITMI PENTRU CONTROLUL CONGESTIEI

357

dect rata maximi a reelei, Fig. 5-25(f) ilustreaz comportarea unei glei cu jeton de 500 KB, urmat de o gleat gurit de 10 MB/sec. Gestionarea tuturor acestor scheme poate fi puin mai special. n esen, reeaua trebuie s simuleze algoritmul i s se asigure c nu se trimit mai multe pachete sau mai muli bii dect este permis. Pachetele n exces sunt distruse sau pierdute, aa cum s-a discutat anterior.
5.3.4 Specificarea fluxului

Formarea traficului este eficient atunci cnd emitorul, receptorul i subreeaua sunt toi de acord. Pentru a realiza nelegerea, este necesar s se specifice modelul traficului ntr-o manier precis. O astfel de nelegere se numete specificarea fluxului. Ea const dintr-o structur de date care descrie att modelul traficului introdus, ct i calitatea serviciului dorit de aplicaie. O specificare a fluxului poate fi aplicat att pachetelor trimise pe un circuit virtual, ct i unei secvene de datagrame trimise ntre o surs i o destinaie (sau chiar cu destinaii multiple). n aceast seciune vom descrie un exemplu de specificare a fluxului propus de Partridge (1992). Ea este prezentat n Fig. 5-27. Ideea este c nainte de stabilirea unei conexiuni sau nainte de trimiterea unei secvene de datagrame, sursa supune specificarea fluxului spre aprobare subreelei. Subreeaua poate fie s o accepte sau rejecteze, fie s vin cu o contrapropunere (Nu pot s-i ofer ntrziere medie de 100 msec; te mulumeti cu 150 msec? ). Dup ce emitorul i subreeaua au ajuns la o nelegere, emitorul poate interoga receptorul dac este i el, de acord.
Caracteristicile intrrii Dimensiunea maxim a pachetului (octei) Rata gleii cu jeton (octei/sec) Dimensiunea gleii cu jeton (octei) Rata maxim de transfer (octei/sec) Servicii dorite Senzitivitate la pierderi (octei) Interval de pierderi (nsec) Senzitivitatea la pierderi a rafalei (pachete) Cea mai mic ntrziere observat (jjsec) Cea mai mare variaie a ntrzierii (\\sec) Calitatea garaniei

Fig. 5-27. Un exemplu de specificare a fluxului. S examinm acum parametrii exemplului nostru de specificare a fluxului, ncepnd cu specificarea traficului. Dimensiunea maxim a pachetului spune ct de mari pot fi pachetele. Urmtorii doi parametri presupun implicit c traficul va fi format cu algoritmul gleii cu jeton, lucrnd la nivel de octei. Ei precizeaz ci octei intr n gleata cu jeton ntr-o secund i ct de mare este gleata. Dac rata este r octei/sec i dimensiunea gleii este b octei, atunci n orice interval arbitrar At, numrul maxim de octei ce pot fi trimii este b + rAt. Aici primul termen reprezint coninutul maxim posibil al gleii la nceputul intervalului, iar al doilea reprezint noile intrri sosite n timpul intervalului. Rata maxim de transfer este cea mai mare rat pe care o poate produce calculatorul gazd, indiferent de condiii i specific implicit cel mai scurt interval de timp n care poate fi golit gleata cu jeton. A doua coloan specific ce vrea aplicaia de la reea. Primii doi parametri reprezint respectiv numrtorul i numitorul unei fracii care ne d rata maxim acceptabil a

358

NIVELUL REEA

CAP. 5

pierderilor (de exemplu 1 octet pe or). Senzitivitatea rafalei la pierderi stabilete cte pachete consecutive pierdute pot fi tolerate. Urmtorii doi parametri se ocup de ntrzieri. Cea mai mic ntrziere observat specific durata de ntrziere la care aplicaia sesizeaz acest lucru. Pentru un transfer de fiiere ea ar putea fi 1 secund, dar pentru un flux audio limita ar fi 3 msec. Cea mai mare variaie a ntrzierii ncearc s cuantifice faptul c anumite aplicaii nu sunt sensibile la ntrzieri, ns sunt foarte sensibile la fluctuaii (jitter), adic variaia timpului de tranzit al pachetelor capt la capt. Este dublul numrului de microsecunde cu care ntrzierea unui pachet poate varia fa de medie. Deci, o valoare de 2000 nseamn c un pachet poate sosi mai devreme sau mai trziu cu cel mult 1 msec. n fine, Calitatea garantei precizeaz dac aplicaia are ntr-adevr nevoie de aa ceva. Pe de o parte, caracteristicile de pierdere i ntrziere pot fi scopuri ideale, fr s se ntmple nimic dac ele nu sunt realizate. Pe de alt parte, ele ar putea fi aa de importante, nct dac nu pot fi atinse aplicaia se termin. Sunt posibile, evident i situaii intermediare. Dei am privit specificarea fluxului ca o cerere a aplicaiei pentru subreea, ea poate fi de asemenea o valoare returnat care spune ce poate face subreeaua. Astfel, ea poate fi folosit pentru o negociere mai extins a nivelului serviciului. O problem inerent a oricrei aplicaii referitoare la specificarea fluxului este c aplicaia ar putea s nu tie cu adevrat de ce are nevoie. De exemplu, un program aplicaie rulat la New York ar putea fi mai mult dect fericit cu o ntrziere de 200 msec pn la Sydney, dar total nefericit cu aceeai ntrziere pn la Boston. Aici "serviciul minim" este n mod clar funcie de ce se crede c se poate.
5.3.5 Controlul congestiei n subreelele bazate pe circuite virtuale

Metodele pentru controlul congestiei descrise anterior sunt n principiu n bucl deschis: ele ncearc n primul rnd, s previn apariia congestiei n primul rnd, n loc s o trateze dup ce a aprut. n aceast seciune, vom descrie unele abordri ale controlului dinamic al congestiei n subreelele bazate pe circuite virtuale. n urmtoarele dou, vom studia tehnici ce pot fi folosite n orice subreea. O tehnic larg rspndit pentru a controla congestia care tocmai s-a produs i de a o mpiedica s se agraveze este controlul admisiei. Ideea este simpl: odat ce s-a semnalat apariia congestiei, nu se mai stabilesc alte circuite virtuale pn ce problema nu s-a rezolvat. Astfel, ncercarea de a stabili o nou conexiune la nivel transport eueaz. Lsnd tot mai muli utilizatori s stabileasc conexiuni, nu ar face dect s agraveze lucrurile. Dei aceast abordare este crud, ea este simpl i uor de ntreinut. n sistemul telefonic, dac o central devine supraaglomerat, ea practic controlul admisiei, nemaifurniznd tonul. O alternativ este de a permite stabilirea de noi circuite virtuale, dar de a dirija cu atenie aceste noi circuite prin zonele cu probleme. De exemplu, s considerm subreeaua din Fig. 5-28(a), n care dou rutere sunt congestionate, aa cum se poate observa. S presupunem c un calculator gazd ataat ruterului^l dorete s stabileasc o conexiune cu un altul, ataat rutenilui/. n mod normal, aceast conexiune ar trece prin unul dintre cele dou rutere congestionate. Pentru a evita situaia aceasta, putem redesena subreeaua aa cum se arat n Fig. 5-28(b), omind ruterele congestionate i toate liniile asociate. Linia punctat arat o posibil cale pentru un circuit virtual, care evit ruterele congestionate.

SEC. 5.3

ALGORITMI PENTRU CONTROLUL CONGESTIEI

359

(a)

(b)

Fig. 5-28. (a) O subreea congestionat, (b) Redesenarea subreelei prin eliminarea congestiei i un circuit virtual de la A la B. O alt strategie specific circuitelor virtuale este negocierea unei nelegeri ntre calculatorul gazd i subreea la stabilirea unui circuit virtual. Aceast nelegere specific n mod normal volumul i forma traficului, calitatea serviciului cerut i ali parametri, De obicei, pentru a-i respecta partea din nelegere, subreeaua i rezerv resurse de-a lungul cii n momentul stabilirii circuitului virtual. Resursele pot include tabele i spaiu pentru zone tampon n rutere i lime de band pe linii. n acest fel, congestia nu prea are anse s se produc pe noul circuit virtual, deoarece toate resursele sunt garantate a fi disponibile. Acest stil de rezervare poate fi fcut tot timpul ca o procedur standard sau doar atunci cnd reeaua este congestionat. Dezavantajul ncercrii de a-1 face tot timpul este risipa de resurse. Dac ase circuite virtuale care pot folosi 1 Mbps trec toate prin aceeai legtur fizic de 6 Mbps, linia trebuie marcat ca plin, chiar dac e puin probabil ca toate cele ase circuite s transmit n acelai timp. n consecin, preul controlului congestiei este risipa de lime de band.
5.3.6 Pachete de oc

S ne oprim acum asupra unei abordri care poate fi folosit att n subreelele bazate pe circuite virtuale ct i n cele bazate pe datagrame. Fiecare ruter poate gestiona cu uurin folosirea liniilor sale de ieire precum i alte resurse. De exemplu, el poate asocia fiecrei linii o variabil real, u, a crei valoare, ntre 0.0 i 1.0, reflect utilizarea recent a acelei linii. Pentru a menine o estimare ct mai bun a lui u, periodic trebuie luate nite eantioane (fie 0, fie 1) ale utilizrii instantanee a liniei /i apoi recalculat u cu formula:

unde constanta a determin ct de repede uit rutenii istoria recent. Ori de cte ori u depete o anumit valoare, linia de ieire intr ntr-o stare de avertisment". Fiecare pachet nou care sosete este verificat pentru a se vedea dac linia de ieire asociat este sau

360

NIVELUL REEA

CAP. 5

nu n starea de avertisment. Dac este aa, ruterul trimite un pachet de oc ctre calculatorul gazd surs, dndu-i destinaia gsit n pachet. Pachetul original este marcat (un bit din antet este comutat) pentru a nu se mai genera pachete de oc pe calea aleas, apoi este retrimis n acelai fel. Un calculator gazd surs, care primete un pachet de oc afl astfel c trebuie s reduc traficul trimis spre destinaia specificat cu X procente. Deoarece alte pachete trimise ctre aceeai destinaie sunt deja pe drum i vor genera alte pachete de oc, calculatorul gazd ar trebui s ignore pachetele de oc referitoare la destinaia respectiv o anumit perioad de timp. Dup ce perioada s-a scurs, calculatorul gazd ateapt alte pachete de oc un alt interval. Dac sosete un astfel de pachet, linia este nc congestionat, astfel nct calculatorul va reduce fluxul i mai mult i va rencepe s ignore pachetele de oc. Dac pe perioada de ascultare nu sosesc pachete de oc, atunci calculatorul gazd poate s creasc din nou fluxul. Reacia implicit a acestui protocol poate ajuta la prevenirea congestiei, netrangulnd fluxul dect dac au aprut probleme. Calculatorul gazd poate reduce traficul prin ajustarea parametrilor asociai politicii folosite, de exemplu dimensiunea ferestrei sau rata de scurgere a gleii. De obicei, primul pachet de oc determin scderea ratei datelor la 0.50 din valoarea anterioar, urmtoarea reduce traficul la 0.25 i aa mai departe. Creterea valorilor are loc cu rate mai mici pentru a preveni reinstalarea rapid a congestiei. Au fost propuse mai multe variaii ale acestui algoritm pentru controlul congestiei. Pentru una dintre acestea, fiecare ruter poate menine mai multe valori de referin (praguri). n funcie de pragul depit, pachetul de oc poate conine un avertisment blnd, unul sever sau un ultimatum. Alt variant prevede folosirea lungimilor cozilor sau a utilizrii zonelor tampon n locul utilizrii liniilor, ca semnal de comutare. Evident, se poate folosi aceeai ponderare exponenial cu aceast metric, la fel ca i cu u. Cozi echitabile ponderate O problem a folosirii pachetelor de oc este aceea c aciunea executat de calculatorul gazd este voluntar. S presupunem c un ruter este sufocat de pachetele trimise de patru surse i el trimite pachete de oc ctre fiecare din ele. Unul dintre calculatoare reduce numrul de pachete, n timp ce celelalte continu n acelai ritm. Rezultatul este c cel care a fost cinstit primete o porie i mai mic de lime de band dect avea nainte. Pentru a rezolva aceast problem, fcnd astfel supunerea mai atractiv, Nagle (1987) a propus algoritmul cozilor echitabile. Esena acestui algoritm este aceea c ruterele au cozi multiple pentru fiecare linie de ieire, una pentru fiecare surs. Cnd o linie devine inactiv, ruterul inspecteaz cozile n manier round robin, prelund primul pachet din urmtoarea coad. n acest fel, dac n calculatoare concureaz pentru o anumit linie de ieire, fiecare va putea s transmit un pachet la fiecare n pachete. Trimiterea unui numr mare de pachete nu va mbunti aceast fracie. Exist unele comutatoare ATM care folosesc acest algoritm. Dei este un nceput, algoritmul are o problem: acord mai mult lime de band calculatoarelor gazd care folosesc pachete mari dect celor care folosesc pachete mai mici. Demers .a. (1990) au propus o mbuntire n care parcurgerea round robin este realizat ca i cum ar simula un round robin bit cu bit, n locul unui round robin de tip pachet cu pachet. n consecin el inspecteaz cozile repetat, octet cu octet, pn cnd expir cuanta asociat sau pn ce pachetul s-a

SEC. 5.3

ALGORITMI PENTRU CONTROLUL CONGESTIEI

terminat. Pachetele sunt apoi sortate n ordinea terminrii lor i trimise n aceast ordine. Algoritmul este ilustrat n Fig. 5-29.
Pachet A
13

Timp de terminare 8

1 6 11 _15j 19 20 2 7 12 16 3 8

.B

16 17 18 20

D E A

n
u
r

4 9 13 17 5 10 14 18
(a)

(b)

Fig.5-29. (a) Un ruter avnd cinci pachete n coad pentru O. (b) Timpii de terminare pentru cele cinci pachete. n'Fig. 5-29(a) observm pachetele cu lungimi ntre 2 i 6. La momentul (virtual) 1 este trimis primul octet al pachetului pe linia A Urmeaz primul octet al pachetului de pe linia B i aa mai departe. Dup opt perioade, primul pachet care se termin este C. Fig. 5-29(b) conine ordinea sortat a terminrilor. n absena unor noi sosiri, pachetele vor fi trimise n ordinea listat, de la C, pn la A O problem a acestui algoritm este aceea c el asigur aceeai prioritate pentru toate calculatoarele. n multe situaii este mai eficient ca serverele de fiiere sau alte servere s dein o lime de band mai bun dect clienii, astfel nct s poat prelucra doi sau mai muli bii pe perioada de ceas. Acest algoritm modificat se numete algoritmul cozilor echitabile ponderate (weighted fair queueing algorithm) i este foarte rspndit. Uneori ponderea este egal cu numrul de circuite virtuale sau fluxuri ieind din main, astfel nct fiecare proces primete aceeai lime de band. O implementare eficient a acestui algoritm este prezentat n (Shreedhar i Varghese, 1995).
Pachete de oc salt cu salt

La viteze mari i de-a lungul unor distane mari trimiterea unui pachet de oc ctre calculatorul surs nu funcioneaz normal, reacia fiind ntrziat. S considerm, de exemplu, un calculator n San-Francisco (ruter A n Fig. 5-30) care trimite trafic ctre un calculator din New York (ruter D n Fig. 5-30) la 155 Mbps. Dac rutenii din New York rmne fr zone tampon, atunci pachetului de oc i vor trebui circa 30 msec pentru ca s revin la San Francisco. Propagarea pachetului de oc este prezentat ca al doilea, al treilea i al patrulea pas din Fig. 5-30(a). n aceste 30 msec, se pot trimite 4.6 MB (adic peste 10000 celule ATM). Chiar dac calculatorul gazd din San Franciso se oprete imediat, cei 4.6 MB din pipe vor trebui gestionai n continuare i vor scdea performanele. De-abia n a aptea diagram din Fig. 5-30(a) ruterul din New York va observa reducerea fluxului. O abordare alternativ este ca pachetele de oc s aib efect n fiecare salt prin care trec, aa cum se arat n secvena din Fig. 5-30(b).

362

NIVELUL REEA

CAP. 5

Fluxul este n continuare la o rat maxim

Fluxul este redus

(a)

Fig. 5-30. (a) Un pachet de oc care afecteaz doar sursa, (b) Un pachet de oc care afecteaz fiecare salt prin care trece.
A

In acest caz, de ndat ce pachetul de oc atinge JF, F trebuie s reduc fluxul spre D. Procednd n acest fel, se cere din partea lui F alocarea mai multor zone tampon pentru flux,

SEC. 5.3

ALGORITMI PENTRW CONTROLUL CONGESTIEI

MS

n timp ce sursa continu s emit la vitez maxim, ns D simte imediat o uurare, la fel ca ntr-o reclam TV pentru nlturarea durerii de Cap. La pasul urmtor, pachetul de oc va atinge E, spunndu-i lui E s reduc fluxul spre D. Aceast aciune solicit puternic zonele tampon ale lui E, ns are un efect benefic imediat asupra lui F, uurndu-i munca. n fine, pachetul de oc atinge A, ceea ce face ca fluxul s scad puternic. Efectul acestei scheme salt cu salt asupra reelei este asigurarea unei eliberri imediate la locul congestiei cu preul folosirii mai multor zone tampon. In acest fel congestia poate fi redus pn la eliminare, fr a se pierde nici un pachet. Ideea este discutat n amnunt n (Mishra i Kanakia, 1992), unde se furnizeaz i rezultatele unei simulri.

5.3.7 Imprtierea ncrcrii


Cnd nici una dintre metodele anterioare nu reduc congestia, ruterele pot s-i scoat la btaie artileria grea: imprtierea ncrcrii. Imprtierea ncrcrii este un mod simpatie ete a spune c atunci cnd ruterele sunt inundate de pachete pe care nu le mai pot gestiona, pur i simplu le arunc. Termenul provine din domeniul distribuiei energiei electrice, unde se refer la practica serviciilor publice care las intenionat fr energie electric anumite zone, pentru a salva ntreaga reea de la colaps, n zilele clduroase de var cnd cererea de energie electric depete puternic oferta. Un ruter care se neac cu pachete poate alege la ntmplare pachetele pe care s le arunce, ns de obicei el poate face mai mult dect att. Alegerea pachetelor care vor fi aruncate poate depinde de aplicaiile care ruleaz. Pentru transferul de fiiere, un pachet vechi este mai valoros dect unul nou, deoarece aruncarea pachetului 6 i pstrarea pachetelor de la 7 la 10 va cauza producerea unei sprturi" n fereastra receptorului, care poate fora retrimiterea pachetelor de la 6 la 10 (dac receptorul distruge automat pachetele care sunt n afara secvenei). n cazul unui fiier de 12 pachete, aruncarea pachetului 6 poate necesita retransmiterea pachetelor de la 7 la 12, n timp ce aruncarea lui 10 va necesita doar
A

retrimiterea pachetelor de la 10 la 12. In contrast, pentru multimedia, un pachet nou este mult mai important dect un pachet vechi. Prima politic (vechiul este mai bun dect noul) este numit adesea a vinului, iar ultima (noul este mai bun dect vechiul) este numit a laptelui. Un pas inteligent mai departe presupune cooperare din partea expeditorilor. Pentru multe aplicaii, unele pachete sunt mai importante dect altele. De exemplu, unii algoritmi de compresia imaginilor transmit periodic un cadru ntreg i apoi trimit urmtoarele cadre ca diferene fa de ultimul cadru complet. n acest caz, aruncarea unui pachet care face parte dintr-o diferen este de preferat aruncrii unuia care face parte dintr-un cadru ntreg. Ca un alt exemplu, s considerm trimiterea documentelor care conin text ASCII i imagini. Pierderea unei linii de pixeli dintr-o imagine este de departe mai puin duntoare dect pierderea unei linii dintr-un text. Pentru a implementa o politic inteligent de distrugere a pachetelor, aplicaiile trebuie s nscrie pe fiecare pachet clasa de prioritate din care face parte, pentru a indica ct de important este. Dac ele fac aceasta, atunci cnd trebuie distruse unele pachete, ruterele vor ncepe cu cele din clasa cea mai slab, vor continua cu cele din urmtoarea clas i aa mai departe. Evident, dac nu ar fi nici un stimulent pentru a marca pachetele i altfel dect FOARTE IMPORTANT - A NU SE DISTRUGE NICIODAT, SUB NICI UN MOTIV, nimeni nu ar face acest lucru. Pentru a putea ncadra pachetele n clase de prioriti, este nevoie de un bit suplimentar n antet, care s pstreze prioritatea. Celulele ATM au un astfel de bit rezervat n antet, astfel nct fiecare

364

NIVELUL REEA

CAP. 5

celul este marcat fie de prioritate ridicat, fie de prioritate sczut. Comutatoarele ATM chiar folosesc acest bit cnd este cazul s ia o decizie de distrugere. n unele reele, pachetele sunt grupate n uniti mai mari, folosite pentru retransmisii. De exemplu, n reelele ATM, ceea ce numim pachete" sunt de fapt celule de lungime fix. Aceste celule sunt doar fragmente ale mesajelor". Dac o celul este distrus, atunci ntregul mesaj va fi retransmis, nu numai celula respectiv. n aceste condiii, un ruter care distruge o celul poate foarte bine s distrug toate celelalte celule ale mesajului, deoarece transmisia lor consum lime de band i nu aduce nici un ctig - chiar dac ele trec mai departe, vor fi retransmise ulterior. Rezultatele simulrilor arat c dac un ruter sesizeaz ivirea unor probleme, este mai bine s nceap distrugerea pachetelor mai devreme, dect s atepte pn ce se blocheaz complet (Floyd i Jacobson,1993; Romanow i Floyd, 1994). Procednd astfel, se poate preveni congestia nc din faza incipient. 5.3.8 Controlul fluctuaiilor Pentru aplicaii de genul transmisiilor audio sau video, nu prea conteaz dac pachetele au nevoie de 20 msec sau de 30 msec pentru a fi distribuite, att timp ct durata de tranzit este constant. Dac unele pachete au nevoie de 20 msec i altele de 30 msec, se va produce sunet sau imagine de calitate inegal. Astfel, nelegerea ar putea fi ca 99 procente din pachete s fie livrate cu o ntrziere de la 24.5 msec pn la 25.5 msec. Evident, valoarea medie trebuie aleas cu atenie, pentru a fi realizabil. Cu alte cuvinte, trebuie calculat o congestie medie. Fluctuaiile pot fi limitate prin calcularea timpului de tranzit estimat pentru fiecare salt de-a lungul cii. Cnd un pachet ajunge la ruter, rutenii verific s vad ct de mult este decalat pachetul fa de planificarea sa. Aceast informaie este pstrat n pachet i actualizat la fiecare salt. Dac pachetul a sosit naintea planificrii, el este inut suficient pentru a reveni n grafic. Dac pachetul este ntrziat fa de planificare, rutenii ncearc s-1 trimit ct mai repede. De fapt, algoritmul pentru determinarea pachetului care va merge mai departe dintr-un set de pachete care concureaz pentru o linie de ieire, va alege ntotdeauna pachetul cu cea mai mare ntrziere fa de program. n acest fel, pachetele care au ajuns mai repede sunt ncetinite, iar cele care sunt ntrziate vor fi accelerate, n ambele cazuri reducndu-se diferenele fa de planificarea iniial. 5.3.9 Controlul congestiei la transmisia multicast

Toi algoritmii de congestie discutai pn acum se ocupau de mesaje de la o surs unic i pentru o destinaie unic. n aceast seciune, vom descrie un mod de a gestiona fluxuri multicast, de la surse multiple spre destinaii multiple. De exemplu, s ne imaginm mai multe staii de televiziune n circuit nchis, care emit fluxuri audio i video spre un grup de receptori, fiecare dintre acetia putnd s vad simultan una sau mai multe staii i care sunt liberi s comute de la o staie la alta, dup dorin. O aplicaie a acestei tehnologii ar putea fi o videoconferin, la care fiecare participant se poate concentra asupra vorbitorului sau a expresiei efului, dup dorin. n numeroase aplicaii multicast, grupurile i pot schimba dinamic componena, de exemplu ca participanii la o videoconferin care se plictisesc i comut pe un serial uurel. n aceste condiii, tactica de a rezerva n avans lime de band pentru emitor nu mai funcioneaz corespunztor, deoarece va cere fiecrui emitor s gestioneze toate intrrile i ieirile celor din audiena sa i s

SEC.5.3

ALGORITMI PENTRU CONTROLUL CONGESTIEI

365

regenereze arborele de acoperire la fiecare modificare. Pentru un sistem destinat transmiterii televiziunii prin cablu, cu milioane de abonai, nu va merge deloc.
RSVP - Protocol de rezervare a resurselor

O soluie interesant, care poate funciona ntr-un astfel de mediu, este protocolul RSVP (Resource reSerVation Protocol) (Zhang .a., 1993). El permite emitorilor multipli s transmit spre grupuri multiple de receptori, permite fiecrui receptor s schimbe canalul la alegere si optimizeaz limea de band folosit, eliminnd n acelai timp congestia.
Emitori

(b)

(c)

Fig. 5-31. (a) O reea, (b) Arborele de acoperire multicast pentru calculatorul 1. (c) Arborele de acoperire multicast pentru calculatorul 2. n forma sa cea mai simpl, protocolul folosete dirijarea multicast cu arbori de acoperire, aa cum s-a discutat anterior. Fiecare grup are asociat o adres de grup. Pentru a trimite unui grup, un emitor pune adresa grupului n pachetele pe care le trimite. n continuare, algoritmul standard de dirijare multicast va construi un arbore de acoperire care acoper toi membri grupului. Algoritmul de dirijare nu este parte a RSVP. Singura diferen fa de multicast-ul normal este o mic informaie suplimentar distribuit periodic grupului pentru a spune ruterelor de-a lungul arborelui s menin anumite structuri de date. Ca exemplu, s considerm reeaua din Fig. 5-31(a). Calculatoarele gazd 1 i 2 sunt emitori multicast, iar calculatoarele gazd 3, 4, 5 sunt receptori multicast. n acest exemplu emitorii i receptorii sunt disjunci, dar n general cele dou mulimi se suprapun. Arborii multicast pentru mainile 1 i 2 sunt prezentai n Fig. 5-31(b), respectiv Fig. 5-31(c). Pentru a avea o recepie mai bun i pentru a elimina congestia, fiecare dintre receptorii unui grup trebuie s trimit un mesaj de rezervare n sus pe arbore spre emitor. Mesajul este propagat

366

NIVELUL REEA

CAP. 5

folosind algoritmul cii inverse discutat anterior. La fiecare salt, rutenii noteaz rezervarea i rezerv limea de band necesar. Dac limea de band este insuficient, se raporteaz eroare. n timpul n care mesajul se ndreapt spre surs, limea de band a fost rezervat pe tot drumul de la emitor spre receptorul care a fcut rezervarea de-alungul arborelui de acoperire.

C A Lime de band rezervat pentru sursa 2 F D* Lime de band rezervat sursei 1

(a)

(b)

(O

Fig. 5-32. (a) Calculatorul gazd 3 cere un canal ctre calculatorul gazd 1. (b) Calculatorul gazd 3 cere un al doilea canal ctre calculatorul gazd 2. (c) Calculatorul gazd 5 cere un canal ctre calculatorul gazd 1. Un exemplu de astfel de rezervare este prezentat n Fig. 5-32(a). Aici calculatorul gazd 3 a cerut un canal ctre calculatorul gazd 1. Odat ce acesta a fost stabilit, pachetele pot ajunge de la 1 la 3 fr congestie. S vedem acum ce se ntmpl dac calculatorul 3 rezerv apoi un canal ctre cellalt emitor, calculatorul gazd 2, astfel nct utilizatorul s poat urmri dou posturi de televiziune simultan. Se rezerv o a doua cale, aa cum se ilustreaz n Fig. 5-32(b). Observai c sunt necesare dou canale distincte de la calculatorul gazd 3 ctre ruterul E, deoarece se transmit dou fluxuri independente. n fine, n Fig. 5-32 (c) calculatorul gazd 5 decide s urmreasc programul de televiziune transmis de 1 i face de asemenea o rezervare. Pentru nceput, se rezerv lime de band spre ruterul H. Acest ruter observ c are deja o rezervare ctre 1, astfel nct dac limea de band necesar a fost rezervat, nu mai trebuie s rezerve nimic. Se poate ntmpla ca 3 i 5 s cear limi de band diferite (de exemplu, 3 are un sistem de televiziune alb-negru, astfel nct nu are nevoie de informaia de culoare), caz n care capacitatea rezervat trebuie s fie suficient pentru a satisface cererea cea mai mare. La realizarea unei rezervri, un receptor poate (opional) alege una sau mai multe surse de la care vrea s recepioneze. De asemenea, el mai poate specifica dac aceste alegeri sunt fixe pe durata rezervrii sau dac receptorul dorete s-i pstreze opiunea de a modifica sursele ulterior.

SEC 5.4

INTERCONECTAREA REELELOR

367

Ruterele folosesc aceast infojmaie pentru a optimiza planificarea limii de band. n particular, doi receptori pot s partajeze o cale doar dac ambii stabilesc s nu modifice sursele ulterior. Motivul acestei strategii n cazul dinamic sut la sut este c rezervarea limii de band este decuplat de la surs. Odat ce un receptor a rezervat lime de banda, el poate comuta ctre alt surs i s pstreze poriunea din calea existent care este comun cu calea ctre noua surs. Cnd calculatorul 2 transmite mai multe fluxuri video, de exemplu, calculatorul 3 poate comuta ntre ele dup dorin, fr a-i schimba rezervarea: pe ruter nu-1 intereseaz la ce program se uit utilizatorul.

5.4 INTERCONECTAREA REELELOR


Pn n acest moment, am presupus implicit c exist o singur reea omogen, n care fiecare main folosete acelai protocol la fiecare nivel. Din pcate, aceast presupunere este prea optimist. Exist mai multe tipuri de reele, incluznd LAN-uri, MAN-uri i WAN-uri. La fiecare nivel se folosesc pe larg numeroase protocoale. n seciunile urmtoare vom analiza n detaliu problemele care apar cnd dou sau mai multe reele sunt legate mpreun pentru a forma o inter-reea (internet). Exist controverse considerabile pe tema ntrebrii dac abundena actual de tipuri de reele este o condiie temporar, care va disprea de ndat ce toat lumea i va da seama ce minunat este [completai cu tipul preferat de reea], sau dac este o caracteristic inevitabil, dar permanent, a lumii care va persista. Existena reelelor de tipuri diferite nseamn, invariabil, a avea protocoale diferite. Credem c ntotdeauna vor coexista o varietate de reele diferite (i implicit de protocoale) din urmtoarele motive. n primul rnd, numrul de reele diferite instalate este mare i n cretere. Aproape toate laboratoarele UNIX folosesc TCP/IP. Multe ntreprinderi mari nc se bazeaz pe sisteme de calcul care folosesc SNA. DEC dezvolt n continuare DECnet. LANurile de calculatoare personale folosesc deseori Novell NCP/IPX sau AppleTalk. Sistemele ATM ncep s fie rspndite. n cele din urm, sunt folosite deseori protocoale specializate pentru reelele prin satelit, celulare sau n infrarou. Aceast tendin va continua mult timp datorit numrului mare de reele existente i pentru c nu toi productorii percep n interesul lor posibilitatea clienilor de a migra cu uurin spre sistemul altui productor. n al doilea rnd, pe msur ce calculatoarele i reelele devin mai ieftine, nivelul la care se iau deciziile se mut n jos. Multe companii au o politic care are ca efect c achiziiile de peste un milion de dolari trebuie s fie aprobate de conducerea superioar, achiziiile de peste 100.000 de dolari trebuie s fie aprobate de conducerea medie, dar achiziiile de pn la 100.000 de dolari pot fi fcute de efii de departamente fr nici o aprobare de mai sus. Aceasta poate duce uor la instalarea unei reele Ethernet la compartimentul contabilitate, a unei reele token bus la compartimentul inginerie i a unei reele token ring la compartimentul personal. n al treilea rnd, reele diferite (de exemplu ATM i fr fir) sunt bazate pe tehnologii radical diferite i nu ar trebui s surprind c pe msur ce apar dezvoltri hardware, se vor crea noi programe care s se potriveasc cu noul hardware. De exemplu, casa medie de astzi este asemntoare cu biroul mediu de acum 10 ani; este plin de calculatoare care nu comunic unul cu cellalt. n viitor, ar putea fi un lucru obinuit ca telefonul, televizorul i alte

368

NIVELUL REEA

CAP. 5

aparate electrocasnice s fie legate n reea mpreun, pentru a permite controlul de la distan. Aceast nou tehnologie va aduce, fr dubii, noi protocoale. Ca un exemplu al modului de interaciune a diverselor reele, considerai urmtorul exemplu. n majoritatea universitilor, departamentele de calculatoare i inginerie electric au LAN-urile lor proprii, adesea diferite. n plus, centrul de calcul al universitii are adeseori un sistem de calcul i un supercomputer, primul pentru membrii facultilor umanistice care nu doresc s intre n lumea ntreinerii de calculatoare, iar al doilea pentru fizicienii care doresc s ronie numere. Ca o consecin a acestei diversiti de reele i dotri, sunt uor de imaginat urmtoarele scenarii: 1. 2. 3. 4. LAN-LAN: Un programator care copiaz un fiier din reeaua inginerilor. LAN-WAN: Un programator care trimite pot electronic unui fizician aflat departe. WAN-WAN: Doi poei care fac schimb de sonete. LAN-WAN-LAN: Ingineri din diferite universiti care comunic.

Fig. 5-33 ilustreaz aceste patru tipuri de conexiuni cu linii punctate. n fiecare caz, este necesar inserarea unei cutii negre" la jonciunea dintre dou reele, pentru a trata conversiile necesare atunci cnd pachetele se mic dintr-o reea n alta.

Gazd

Fig. 5-33. Interconectarea reelelor. Numele folosit pentru cutia neagr care unete cele dou reele depinde de nivelul la care lucreaz. Cteva nume comune sunt date mai jos (dei nu exist un consens asupra terminologiei n acest domeniu). Nivelul 1: Repetoarele copiaz bii individuali ntre diferite segmente de cablu. Nivelul 2: Punile stocheaz i apoi trimit cadre de tip legtur de date ntre LAN-uri. Nivelul 3: Ruterele multiprotocol transmit pachete ntre reele de tipuri diferite. Nivelul 4: Porile de transport conecteaz iruri de octei la nivelul transport. Mai sus de nivelul 4: Porile de aplicaii permit cooperarea mai sus de nivelul 4.

SEC. 5.4

INTERCONECTAREA REELELOR

369

Pentru comoditate, vom folosi cteodat termenul poart" pentru a desemna orice dispozitiv care conecteaz dou sau mai multe reele de tipuri diferite. Repetoarele sunt dispozitive de nivel sczut care doar amplific sau regenereaz semnalele slabe. Ele sunt necesare pentru a oferi curentul necesar cablurilor lungi. In 802.3, de exemplu, proprietile de timp ale protocolului MAC (valoarea aleas pentru x) permit folosirea de cabluri de pn la 2.5 km> dar circuitele transceiverelor pot oferi putere doar pentru cabluri pn la 500 m. Soluia este s se foloseasc repetoare pentru a extinde lungimea cablului acolo unde este nevoie. Spre deosebire de repetoare, care copiaz biii pe msur ce acetia apar, punile (bridges) sunt echipamente de tip stocheaz-i-trimite. O punte accept un ntreg cadru i l transmite deasupra, nivelului legtur de date, unde este verificat suma de control. Apoi cadrul este trimis n jos, nivelului fizic, pentru a fi trimis ntr-o reea diferit. Punile pot face mici modificri asupra cadrului nainte de a-1 trimite, cum ar fi adugarea sau eliminarea unor cmpuri din antetul cadrului. Datorit faptului c sunt dispozitive de nivel legtur de date, ele nu trateaz antetele de la nivelul 3 n sus i nu pot face schimbri sau modificri care depind de aceste antete. Ruterele multiprotocol sunt, conceptual, similare cu punile, cu excepia faptului c se afl la nivelul reea. Ele doar preiau pachetele venite pe o linie i le transmit pe alta, aa cum fac toate ruterele, dar liniile pot face parte din reele diferite i pot folosi protocoale diferite (de exemplu IP, IPX i protocolul fr conexiune din OSI, CLNP). Asemenea tuturor ruterelor, ruterele multiprotocol opereaz la nivelul reea. Porile de transport (transport gateways) fac o conexiune ntre dou reele la nivelul transport. Vom discuta aceast posibilitate mai trziu, cnd vom ajunge la circuite virtuale concatenate. n final, porile de aplicaii (application gateways) conecteaz dou pri ale unei aplicaii n cadrul nivelului aplicaie. De exemplu, pentru a trimite pot de la o main din Internet, folosind formatul de pot Internet, ctre o cutie potal ISO MOTIS, un utilizator poate trimite mesajul ctre o poart de pot. Poarta de pot va despacheta mesajul, l va converti la formatul MOTIS i apoi l va trimite n a doua reea folosind protocoalele de reea i transport specifice acelei reele.

Fig 5-34. (a) O poart complet ntre dou WAN-uri. (b) O poart complet ntre un LAN i un WAN. (c) Dou jumti de pori.

370

NIVELUL REEA

CAP. 5

Cnd o poart este ntre dou WAN-uri administrate de organizaii diferite, posibil n ri diferite, operarea comun a unei maini din clasa staiilor de lucru poate duce la multe pasri de responsabiliti. Pentru a elimina aceste probleme, se poate adopta o abordare un pic diferit. Poarta este efectiv rupt la mijloc i cele dou pri sunt conectate printr-un cablu. Fiecare jumtate este numit jumtate-de-poart (half-gateway) i fiecare este deinut i administrat de o organizaie. Toat problema de conversie se reduce la acordul asupra unui protocol comun pentru transmisia prin cablul de legtur, un protocol care este neutru i nu avantajeaz nici una din pri. Fig. 5-34 ilustreaz att porile complete ct i jumtile de pori. Fiecare tip poate fi folosit la orice nivel (de exemplu, exist i jumti de puni - half-bridgcs). Acestea fiind spuse, situaia este mai tulbure n practic dect n teorie. Multe dispozitive existente pe pia combin funcionalitatea punilor cu cea a ruterelor. Proprietatea cheie a unei puni pure este c ea examineaz antetele cadrelor de la nivelul legtur de date i nu inspecteaz sau modific pachetele de nivel reea din cadre. O punte nu poate spune i nu este interesat dac n cmpul informaie util al cadrului pe care l transmite dintr-un LAN 802.x ntr-un 8O2.y exist un pachet IP, IPX sau CLNP. Din contr, un ruter cunoate foarte bine dac este un ruter IP, un ruter IPX, un ruter CLNP sau toate trei combinate. El examineaz aceste antete i ia decizii bazate pe adresele gsite acolo. Pe de alt parte, cnd un ruter pur nmneaz un pachet nivelului legtur de date, nu tie i nu se preocup dac va fi transportat ntr-un cadru Ethernet sau token ring. Aceasta este responsabilitatea nivelului legtur de date. Confuzia n industrie provine din dou surse. Mai nti, funcional, punile i ruterele nu sunt att de diferite. Ele accept PDU-urile (Protocol Data Units - uniti de date protocol) sosite, examineaz cteva cmpuri din antet i iau decizii despre destinaia PDU-urilor pe baza informaiilor din antet i a tabelelor interne. n al doilea rnd, multe produse comerciale sunt vndute cu o etichet greit sau combin funcionalitatea att a punilor ct i a ruterelor. De exemplu, punile cu dirijare pe baza sursei (source routing bridges) nu sunt deloc puni, din moment ce ele implic un nivel de protocol plasat deasupra nivelului legtur de date. Pentru o discuie clarificatoare asupra punilor fa de rutere, vezi Cap. 12 din (Perlman, 1992).
5.4.1 Prin ce difer reelele

Reelele pot diferi n multe moduri. In Fig. 5-35, enumerm cteva din diferenele care pot aprea la nivelul reea. Tabelul este o prezentare a diferenelor care fac interconectarea reelelor mult mai dificil dect operarea ntr-o singur reea. Cnd pachetele trimise de o surs ntr-o reea trebuie s tranziteze una sau mai multe reele strine nainte de a ajunge n reeaua destinaie (care, de asemenea, poate fi diferit fa de reeaua surs), pot aprea multe probleme la interfeele dintre reele. Pentru nceput, cnd pachetele dintr-o reea orientat pe conexiuni trebuie s tranziteze o reea fr conexiuni, poate aprea o reordonare a acestora, lucru la care emitorul nu se ateapt i cruia receptorul nu este pregtit s-i fac fa. Vor fi necesare frecvente conversii de protocol, care pot fi dificile dac funcionalitatea cerut nu poate fi exprimat. De asemenea, vor fi necesare conversii de adres, ceea ce poate cere un sistem

SEC. 5.4

INTERCONECTAREA RETEDELOR

371

de catalogare. Trecerea pachetelor de trimitere multipl printr-o reea care nu ofer trimitere multipl necesit pachete separate pentru fiecare destinaie.
Element Serviciu oferit Protocol Adresare Trimitere multipl Dimensiune pachet Calitatea serviciului Tratarea erorilor Controlul fluxului Controlul congestiei Securitate Parametri Contabilizare Cteva posibiliti Orientat pe conexiuni fa de cel fr conexiune IP, IPX, CLNP, AppIeTalk, DECnet etc. Plat (802) opus celei ierarhice (IP) Prezent sau absent (de asemenea, difuzarea total) Fiecare reea i are propriul maxim Poate fi prezent sau absent; multe tipuri diferite Livrare fiabil, ordonat sau neordonat Fereastr glisant, controlul ratei, altele sau nimic Algoritmi gleat spart, pachete de oc etc. Reguli de secretizare, criptare etc. Diferite limitri de timp, specificri ale fluxului etc. Dup timpul de conectare, dup pachet, dup octei sau fr.

Fig. 5-35. Cteva din multele moduri n care pot diferi reelele. Diferena dintre dimensiunile maxime ale pachetelor folosite de diferite reele este o mare durere de Cap. Cum vei trece un pachet de 8000 de octei printr-o reea a crei dimensiune maxim este de 1500 de octei? Diferenele n calitatea serviciilor sunt o problem n momentul n care un pachet care are constrngeri de livrare n timp real traverseaz o reea care nu ofer nici o garanie de timp real. Controlul erorilor, al fluxului i al congestiei difer frecvent ntre reele diferite. Dac sursa i destinaia ateapt amndou ca toate pachetele s fie livrate n ordine fr erori, iar n plus o reea intermediar elimin pachete oricnd miroase congestie la orizont sau pachetele pot hoinri fr scop pentru un timp i apoi ajung brusc i sunt livrate, multe aplicaii se vor comporta neprevzut. Diferite mecanisme de securitate, reglri de parametri, reguli de contabilizare i chiar legi naionale referitoare la secrete pot, de asemenea, cauza probleme.
5.4.2 Circuite virtuale concatenate

Sunt comune dou stiluri de interconectare a reelelor: o concatenare orientat pe conexiuni a subreelelor cu circuite virtuale i un stil datagrame inter-reea. Vom examina pe rnd aceste variante. n modelul circuitelor virtuale concatenate, artat n Fig. 5-36, o conexiune ctre o gazd dintr-o reea ndeprtat este stabilit ntr-un mod similar cu modul n care sunt stabilite conexiunile n cazul normal. Subreeaua observ c destinaia este ndeprtat i construiete un circuit virtual cu rutenii aflat cel mai aproape de reeaua destinaie. Apoi construiete un circuit virtual de la acel ruter la o poart" extern (un ruter multiprotocol). Aceast poart nregistreaz existena circuitului virtual n tabelele sale i continu s construiasc un alt circuit virtual ctre un ruter din urmtoarea subreea. Acest proces continu pn cnd se ajunge la gazda destinaie. O dat ce pachetele de date ncep s circule de-a lungul cii, fiecare poart retransmite pachetele primite, fcnd, dup nevoie, conversia ntre formatele pachetelor i numerele de circuite virtuale. Evident, toate pachetele de date trebuie s traverseze aceeai secven de pori, deci ajung n ordine.

372

NIVELUL REEA

CAP. 5

ATM
Ruter multiprotocol Ruter

Gazd

Circuite virtuale concatenate capt-la-capt

Fig. .5-36. Interconectarea reelelor folosind circuite virtuale concatenate. Caracteristica esenial a acestei abordri este c se stabilete o secven de circuite virtuale de la surs, prin una sau mai multe pori, ctre destinaie. Fiecare poart menine tabele spunnd ce circuite virtuale o traverseaz, unde vor fi dirijate i care este numrul noului circuit virtual. Dei Fig. 5-36 arat conexiunea fcut cu o poart complet, ea poate fi fcut la fel de bine cu jumti de pori. Aceast schem funcioneaz cel mai bine cnd toate reelele au, n mare, aceleai proprieti. De exemplu, dac toate garanteaz livrarea sigur a pachetelor de la nivelul reea, atunci, exceptnd un accident de-a lungul cii, fluxul de la surs la destinaie va fi de asemenea sigur. Similar, dac nici una din ele nu garanteaz livrarea sigur, atunci concatenarea circuitelor virtuale nu este nici ea sigur. Pe de alt parte, dac maina surs este ntr-o reea care garanteaz livrarea sigur, dar una din reelele intermediare poate pierde pachete, concatenarea schimb fundamental natura serviciului. Circuitele virtuale concatenate sunt, de asemenea, uzuale la nivelul transport. n particular, este posibil s se construiasc o conduct de bii folosind, s spunem, OSI, care se termin ntr-o poart i avnd o conexiune TCP de la poart la poarta urmtoare. n acest mod, un circuit virtual capt-la-capt poate fi construit acoperind diferite reele i protocoale.
5.4.3 Interconectarea reelelor fr conexiuni

Modelul alternativ de interconectare este modelul datagram, prezentat n Fig. 5-37. n acest model, singurul serviciu pe care nivelul reea l ofer nivelului transport este capacitatea de a injecta datagrame n subreea n sperana c totul va merge bine. Nu exist nici o noiune de circuit virtual la nivelul reea i uitai de concatenarea lor. Acest model nu necesit ca toate pachetele care aparin unei conexiuni s traverseze aceeai secven de pori. n Fig. 5 - 37, sunt ilustrate datagramele de la gazda 1 pentru gazda 2 care urmeaz rute diferite prin reeaua de interconectare. O decizie de dirijare este fcut separat pentru fiecare pachet, eventual n funcie de traficul din momentul n care este trimis pachetul. Aceast strategie poate utiliza rute multiple i atinge astfel o capacitate

SEC. 5.4

INTERCONECTAREA REELELOR

373

j B j m are dect modelul circuitelor virtuale eonctenate. Pe de alt parte, nu exist nici o garanie c pachetele ajung la destinaie n ordine, presupunnd c ele ajung.

Pachetele cltoresc individual i pot urma ci diferite

Ruter

multiprotocol

Gazd

Fig. 5-37. O interconectare fr conexiuni. Modelul din Fig. 5-37 nu este aa de simplu precum pare. Pe de o parte, dac fiecare reea are propriul protocol de nivel reea, nu este posibil ca un pachet dintr-o reea s tranziteze alta. Se pot imagina rutere multiprotocol care ncearc s converteasc dintr-un format n altul, dar, n afara cazului n care cele dou formate sunt strns nrudite avnd aceleai cmpuri de informaie, aceste conversii vor fi incomplete i deseori sortite eecului. Din acest motiv, arareori se ncearc conversii. O a doua problem i mai serioas este adresarea. S ne imaginm un caz simplu: o gazd din Internet ncearc s trimit un pachet IP ctre o gazd dintr-o reea adiacent OSI. Protocolul datagram OSI, CLNP, a fost bazat pe IP i este suficient de aproape de el, nct o conversie ar trebui s funcioneze. Problema este c toate pachetele IP poart adresa Internet de 32 de bii a gazdei destinaie ntr-un cmp al antetului. Gazdele OSI nu au adrese Internet pe 32 de bii. Ele utilizeaz numere zecimale similare cu numerele de telefon. Pentru a face posibil ca un ruter multiprotocol s fac conversia ntre formate, cineva ar trebui s atribuie adrese Internet de 32 bii pentru fiecare gazd OSI. mpins la extrem, aceast abordare ar nsemna atribuirea unei adrese Internet fiecrei maini din lume cu care ar dori s comunice o gazd Internet. De asemenea, ar nsemna atribuirea unei adrese OSI fiecrei maini din lume cu care ar dori s comunice o gazd OSI. Aceeai problem apare cu fiecare alt spaiu de adrese (SNA, AppleTalk etc). Aceste probleme sunt insurmontabile. n plus, cineva ar trebui s menin o baz de date convertind orice la orice. O alt idee este de a proiecta un pachet universal inter-reea" i a obliga toate ruterele s-1 recunoasc. Aceast abordare este, de fapt, ceea ce este IP-ul - un pachet proiectat ca s fie purtat prin mai multe reele. Singura problem este c exist de asemenea IPX, CLNP i alte pachete universale,,, reducndu-le gradul de universalitate. A convinge toat lumea s accepte un singur format este,.pe bun dreptate, imposibil. S recapitulm pe scurt cele dou moduri prin care se poate ataca interconectarea reelelor. Modelul circuitelor virtuale concatenate are, n esen, aceleai avantaje ca folosirea

374

NIVELUL REEA

CAP. 5

circuitelor virtuale ntr-o singur subreea: zonele tampon pot fi rezervate n prealabil, poate fi garantat secvenialitatea, pot fi folosite antete scurte, iar necazurile cauzate de pachetele duplicate ntrziate pot fi evitate. El are, de asemenea, i dezavantaje: spaiul n tabele necesar n fiecare ruter pentru fiecare conexiune deschis, lipsa unei dirijri alternative pentru a evita zonele congestionate i vulnerabilitatea la defectarea ruterelor de pe parcurs. De asemenea, are dezavantajul de a fi dificil, dac nu imposibil, de implementat n cazul n care una din reelele implicate este reea nesigur de tip datagram. Proprietile abordrii interconectrii reelelor prin datagrame sunt aceleai ca i cele ale subreelelor de tip datagram: potenial de congestionare mai mare, dar de asemenea potenial mai mare de adaptare la congestionri, robustee n cazul defectri ruterelor i lungime mai mare necesar pentru antete. Sunt posibili diferii algoritmi de dirijare adaptiv ntr-o inter-reea, aa cum sunt n cadrul unei singure reele de tip datagram. Un avantaj major al abordrii interconectrii reelelor prin datagrame este c aceasta poate fi folosit peste subretele care nu folosesc circuite virtuale n interior. Multe LAN-uri, reele mobile (de exemplu flotele aeriene i navale) i chiar unele WAN-uri intr n aceast categorie. Cnd o inter-reea include una din acestea, apar probleme serioase dac strategia de interconectare a reelelor este bazat pe circuite virtuale.
5.4.4 Trecerea prin tunel

Rezolvarea cazului general de interconectare a dou reele diferite este extrem de dificil. Cu toate acestea, exist un caz special uzual care este gestionabil. Acest caz apare cnd gazdele surs i destinaie sunt n acelai tip de reea, dar ntre ele este o reea diferit. Ca exemplu, gndii-v la o banc internaional cu o reea TCP/IP bazat pe Ethernet la Paris, o reea TCPAP bazat pe Ethernet la Londra i un WAN PTT ntre, aa cum este prezentat n Fig. 5-38.

Funcioneaz ca o linie serial Ruter multiprotocol Tunel

Reea Ethernet ia Paris

Reea Ethernet la Londra

Cadru Ethernet

Pachet IP inclus n cmpul de informaie util al pachetului WAN

Cadru Ethernet

Fig. 5-38. Utilizarea tunelului pentru un pachet trimis de la Paris la Londra.

SEC. 5.4

IN1ERC0NECTAREAREELJEL0R

375

Soluia acestei probleme este o tehnic numit trecerea prin tunele. Pentru a trimite un pachet IP la gazda 2, gazda 1 construiete pachetul coninnd adresa IP a gazdei 2, l insereaz ntr-un cadru Ethernet adresat ruterului multiprotocol parizian i apoi l trimite n reeaua Ethernet. Cnd ruterul multiprotocol primete cadrul, extrage pachetul IP, l insereaz n cmpul informaie util al pachetului de nivel reea WAN, pachet pe care l adreseaz cu adresa ruterului multiprotocol londonez. Cnd ajunge acolo, ruterul londonez extrage pachetul IP i l trimite gazdei 2 n interiorul unui cadru Ethernet. WAN-ul poate fi vzut ca un mare tunel ce se ntinde de la un ruter multiprotocol la altul. Pachetul IP doar traverseaz tunelul de la un capt la altul, aezat confortabil n frumosul su lca. El nu trebuie s aib deloc grij de comportarea la nivel WAN. i nici gazdele din oricare Ethernet. Numai ruterul multiprotocol trebuie s neleag i pachete IP i WAN. Ca rezultat, ntreaga distan de la mijlocul unui ruter multiprotocol pn la mijlocul celuilalt acioneaz ca o linie serial.
M a

?in

Canalul Mnecii

"Calea ferat

Fig. 5-39. Utilizarea tunelului pentru o main trecnd din Frana n Anglia. O analogie poate face utilizarea tunelelor mai clar. Considerai o persoan conducnd maina de la Paris la Londra. n Frana, maina se deplaseaz sub aciunea propriei puteri, dar cnd ajunge la Canalul Mnecii, este ncrcat ntr-un tren de mare vitez i transportat n Anglia prin Chunnel6 (mainile nu pot circula prin Chunnel). Efectiv, maina este purtat ca informaie util, cum este prezentat n Fig. 5-39. La captul englez, maina este eliberat pe drumurile engleze i continu s se deplaseze, nc o dat, cu propria putere. Utilizarea tunelelor printr-o reea necunoscut funcioneaz n acelai mod.
5.4.5 Dirijarea n reele interconectate

Dirijarea printr-o reea interconectat este similar cu dirijarea ntr-o singur subreea, dar cu cteva complicaii n plus. S considerm, de exemplu, interconectarea reelelor din Fig. 5-40(a) n care cinci reele sunt conectate de ase rutere multiprotocol. Crearea unui graf ca model al acestei situaii este complicat de faptul c fiecare ruter multiprotocol poate accesa direct (mai clar, poate trimite pachete la) orice alt ruter conectat n orice reea cu care el este conectat. De exemplu, B din Fig. 5-40(a) poate accesa direct A i C prin reeaua 2 i de asemenea D prin reeaua 3. Aceasta duce la graful din Fig. 5-40(b).

N.T. Chunnel, ce provine de la Channel (canal) i Tunnel (tunel) este denumirea dat n englez tunelului de sub Canalul Mnecii.

376

NIVELUL REEA

CAP. 5

Reea

(a)

(b)

Fig. 5-40. (a) O interconectare de reele, (b) Un graf al interconectrii reelelor. O dat ce graful a fost construit, pe mulimea de rutere multiprotocol pot fi aplicai algoritmii de dirijare cunoscui, cum ar fi algoritmii de tip vectori distan sau bazai pe starea legturii. Aceasta duce la un algoritm de dirijare n doi pai: n interiorul fiecrei reele se folosete un protocol de poart interioar (internai gateway protocol), dar ntre reele, se folosete un protocol de poart exterioar (exterior gateway protocol) (poart" este un termen vechi pentru ,,ruter). De fapt, din moment ce fiecare reea este independent, ele pot folosi algoritmi diferii. Deoarece fiecare reea dintr-o interconectare de reele este independent de toate celelalte, este deseori referit ca un sistem autonom (autonomous system-AS). Un pachet tipic inter-reele pornete din LAN-ul su adresat ruterului multiprotocol local (n antetul nivelului MAC). Dup ce ajunge acolo, codul de la nivelul reea decide crui ruter multiprotocol s-i trimit pachetul, folosind propriile tabele de dirijare. Dac la acel ruter se poate ajunge folosind protocolul de reea nativ al pachetului, atunci este trimis direct acelui ruter. Altfel, este trimis utiliznd tunele, ncapsulat n protocolul cerut de reeaua intermediar. Acest proces este repetat pn cnd pachetul ajunge n reeaua destinaie. Una din djfcr^e]e_dmtre dirijarea inter-reele i dirijarea intra-reele este c dirijarea interreele necesit deseori traversarea granielor internaionale. ntr n joc legi diferite, cum ar fi legile suedeze despre secretul strict care se refer la exportarea din Suedia de date personale referitoare la cetenii suedezi. Un alt exemplu este legea canadian care spune c traficul de date care pornete din Canada i se termin n Canada nu poate prsi ara. Aceast lege nseamn c traficul din Windsor, Ontario spre Vancouver nu poate fi dirijat prin apropiatul Detroit. O alt diferen ntre dirijarea intern i cea extern este costul. ntr-o singur reea, se aplic n mod normal un singur algoritm bazat pe ncrcare. Cu toate acestea, diferite reele pot avea administrri diverse i o cale poate fi mai ieftin dect alta. Similar, calitatea serviciului oferit de reele diferite poate fi diferit i acesta poate fi un motiv pentru alegerea unei ci n defavoarea alteia. ntr-o mare reea interconectat, alegerea celei mai bune ci poate fi o operaie consumatoare de timp. Estrin .a. (1992) au propus abordarea acestei probleme prin precalcularea rutelor pentru perechi (surs, destinaie) uzuale i memorarea lor ntr-o baz de date care s fie consultat n momentul alegerii cii.

SEC. 5.4

INTERCONECTAREA REELELOR

377

5.4.6 Fragmentarea

Fiecare reea impune cteva dimensiuni maxime asupra pachetelor sale. Aceste limite au diferite cauze, printre ele fiind: 1. 2. 3. 4. 5. 6. Hardware (de exemplu, lungimea intervalului de transmisie TOM). Sistemul de operare (de exemplu, toate zonele tampon au 512 octei). Protocoale (de exemplu, numrul de bii din cmpul lungimea pachetului). Concordana cu unele standarde (internaionale. Dorina de a reduce la un anumit nivel retransmisiile provocate de erori. Dorina de a preveni ocuparea ndelungat a canalului de ctre un singur pachet.

Rezultatul acestor factori este c proiectanii de reele nu au libertatea de a alege dimensiunea maxim a pachetelor oricum ar dori. Informaia util maxim variaz de la 8 octei (celulele ATM) la 65515 octei (pachetele IP), cu toate c dimensiunea pachetelor la nivelurile mai nalte este deseori mai mare. O problem evident apare cnd un pachet mare vrea s traverseze o reea n care dimensiunea maxim a pachetului este prea mic. O soluie este s ne asigurm din capul locului c problema nu apare. Cu alte cuvinte, inter-reeaua trebuie s utilizeze un algoritm de dirijare care evit transmiterea pachetelor prin reele n care pachetele nu pot fi manevrate. Cu toate acestea, aceast soluie nu este de fapt nici o soluie. Ce se ntmpl dac pachetul surs original este prea mare pentru a fi manevrat de reeaua destinaie? Algoritmul de dirijare ar putea cu greu s evite destinaia.
Reeaua 1 Pachet Reeaua 2

Gi fragmenteaz un pachet mare

G2 reasambleaz fragmentele (a)

G3 fragmenteaz din nou

G4 reasambleaz
d i n n o u

Pachet

Gi fragmenteaz un pachet mare

Fragmentele nu sunt reasamblate pn cnd nu se ajunge la destinaia final (o gazd)

(b)

Fig. 5-41. (a) Fragmentare transparent, (b) Fragmentare netransparent.


A

In esen, singura soluie a problemei este de a permite porilor s sparg pachetele n fragmente, trimind fiecare pachet ca un pachet inter-reea separat. Cu toate acestea, aa cum

378

NIVELUL REEA

CAP. 5

tie orice printe al unui copil mic, convertirea unui obiect mare n fragmente mici este considerabil mai uoar dect procesul invers. (Fizicienii chiar au dat nume acestui efect: legea a doua a termodinamicii.) Reelele cu comutare de pachete au, de asemenea, probleme n mbinarea pachetelor. Exist dou strategii opuse pentru reconstituirea pachetului original din fragmente. Prima strategie este de a face fragmentarea cauzat de o reea cu pachete mici" transparent pentru toate reelele succesive prin care pachetul trebuie s treac pe calea ctre destinaia final. Aceast opiune este prezentat n Fig. 5-41 (a). Cnd un pachet supradimensionat ajunge la poart, poarta l sparge n fragmente. Fiecare fragment este adresat aceleiai pori de ieire, unde piesele sunt recombinate. n acest mod, trecerea printr-o reea cu pachete mici a devenit transparent. Reelele urmtoare nici mcar nu sunt contiente de fragmentarea fcut. Reelele ATM, de exemplu, au hardware special pentru a oferi fragmentarea transparent a pachetelor n celule i apoi reasamblarea celulelor n pachete. n lumea ATM, fragmentarea este numit segmentare; conceptul este acelai, dar difer unele detalii. Fragmentarea transparent este simpl, dar are cteva probleme. Un motiv este c poarta de ieire trebuie s tie cnd a primit toate piesele, aa nct n fiecare pachet trebuie inclus fie un cmp contor, fie un bit sfrit-de-pachet. Un alt motiv este c toate pachetele trebuie s ias prin aceeai poart. Performanele se pot degrada nepermind ca unele pachete s urmreasc o cale ctre destinaia final i alte pachete o cale diferit. O ultim problem este timpul suplimentar necesar pentru reasamblarea i apoi refragmentarea repetat a unui pachet mare care traverseaz o serie de reele cu pachete mici. Cealalt strategie de fragmentare este de a nu recombina fragmentele la nici o poart intermediar. O dat ce un pachet a fost fragmentat, fiecare fragment este tratat ca i cum ar fi un pachet original. Toate fragmentele sunt trecute printr-o poart (sau pori) de ieire, aa cum se arat n Fig. 5-41(b). Recombinarea are loc doar la gazda destinaie. Fragmentarea netransparent are, de asemenea, unele probleme. De exemplu, necesit ca fiecare gazd s fie capabil s fac reasamblarea. nc o problem este c atunci cnd un pachet mare este fragmentat, suprancrcarea crete, deoarece fiecare fragment trebuie s aib un antet. Pe ct vreme n prima metod aceast suprancrcare dispare de ndat ce se iese din reeaua cu pachete mici, n aceast metod suprancrcarea rmne pentru restul cltoriei. Cu toate acestea, un avantaj al acestei metode este c se pot folosi mai multe pori de ieire i se pot obine performane mai bune. Desigur, dac se folosete modelul circuitelor virtuale concatenate, acest avantaj nu este de nici un folos. Cnd un pachet este fragmentat, fragmentele trebuie numerotate astfel, nct irul iniial de date s poat fi reconstituit. O metod de numerotare a fragmentelor este bazat pe un arbore. Dac pachetul 0 trebuie descompus, bucile sunt numite 0.0,0.1,0.2 etc. Dac aceste fragmente trebuie la rndul lor, s fie fragmentate mai trziu, bucile sunt numerotate 0.0.0, 0.0.1, 0.0.2,..., 0.1.0, 0.1.1, 0.1.2 etc. Dac au fost rezervate n antet suficiente cmpuri pentru cel mai ru caz i nu sunt generate duplicate n alt parte, aceast schem este suficient pentru a asigura c toate bucile pot fi corect reasamblate la destinaie, neavnd importan ordinea n care ajung. Cu toate acestea, dac o singur reea pierde sau elimin pachete, apare necesitatea unor retransmisii capt-la-capt, cu efecte nefericite pentru schema de numerotare. S presupunem c un pachet de 1024 bii este iniial fragmentat n patru fragmente de dimensiune egal, 0.0,0.1,0.2 i 0.3. Fragmentul 0.1 este pierdut, dar toate celelalte pri ajung la destinaie. n cele din urm, la surs

SEC. 5.4

INTERCONECTAREA REELELOR

379

apare o depire de timp i retransmite pachetul original din nou, Dar de aceast dat calea trece printr-o reea cu limita de 512 octei, deci sunt generate dou fragmente. Cnd noul fragment 0.1 ajunge la destinaie, receptorul va gndi c toate cele patru buci sunt ajunse i va reconstrui pachetul incorect. Un sistem de numerotare diferit (i mai bun) este ca protocolul de interconectare a reelelor s defineasc o dimensiune de fragment elementar suficient de mic ca fragmentul elementar s poat trece prin orice reea. Cnd un pachet este fragmentat, toate bucile sunt egale cu dimensiunea fragmentului elementar, cu excepia ultimului, care poate fi mai scurt. Un pachet inter-reea poate conine mai multe fragmente, din motive de eficien. Antetul inter-reea trebuie s ofere numrul original al pachetului i numrul fragmentului (sau primului fragment) elementar coninut n pachet. Ca de obicei, trebuie s existe un bit care s indice c ultimul fragment elementar coninut n pachetul inter-reea este ultimul din pachetul original. Aceast, abordare necesit dou cmpuri de secven n antetul inter-reea; numrul pachetului original i numrul fragmentului. Exist clar un compromis' ntre dimensiunea fragmentului elementar i numrul de bii din numrul fragmentului. Deoarece dimensiunea fragmentului elementar este presupus a fi acceptabil pentru toate reelele, fragmentrile ulterioare ale unui pachet inter-reea coninnd cteva fragmente nu cauzeaz probleme. n acest caz, limita extrem este reprezentat de un fragment elementar de un bit sau octet, numrul de fragment fiind reprezentat de deplasamentul bitului sau octetului n cadrul pachetului original, aa cum se arat n Fig. 5-42.
Numrul primului fragment elementar din acest pachet Numr pachet

Bitu1 sfrit d( pachet

1 octet

\
27

'

/ 0 1 A

Antet

(a)

27

0 1 A

27

8 1 I

Antet

(b)

Antet

27

A |B

i E|

27

5 0 F

27

8 1 I

Antet

Antet

Antet

(O

Fig. 5-42. Fragmentarea cnd dimensiunea datelor elementare este 1 octet. (a) Pachetul original, coninnd 10 octei de date. (b) Fragmente dup trecerea printr-o reea cu imensiunea maxim a pachetului de 8 octei, (c) Fragmente dup trecerea printr-o poart cu dimensiunea de 5.

380

NIVELUL REEA

CAP. 5

Cteva protocoale inter-reea extind aceast metod i, mai mult, consider ntreaga transmisie pe un circuit virtual ca a unui pachet gigant, aa nct fiecare fragment conine numrul absolut de octet al primului octet din fragment. Alte cteva aspecte legate de fragmentare sunt discutate n (KentiMogul,1987).

5.4.7 Ziduri de protecie


Posibilitatea de a conecta orice calculator, de oriunde, cu orice alt calculator, de oriunde, este o sabie cu dou tiuri. Pentru persoanele aflate acas, colindatul prin Internet aduce multe bucurii. Pentru administratorii pe probleme de securitate ai firmelor, este un comar. Multe companii au mari cantiti de informaie, confidenial sub form electronic - secrete de afaceri, planuri de dezvoltare produse, strategii de marketing, analize financiare etc. Dezvluirea acestor informaii ctre un competitor poate avea consecine cumplite. n afara pericolului scurgerii de informaii, exist i un pericol al infiltrrii de informaii. n particular, viruii, viermii i ali duntori digitali (Kaufman .a., 1995) pot nclca securitatea, distruge informaii de valoare i irosi o mare cantitate din timpul administratorilor care ncearc s curee dezordinea pe care o las. Deseori ei sunt importai de angajai neglijeni care vor s joace un joc nou, grozav. In consecin, sunt necesare mecanisme pentru a pstra biii buni" n interior i biii ri" afar. O metod este folosirea criptrii. Aceast abordare protejeaz datele n tranzit ntre gazde sigure. O vom studia n Cap. 7. Cu toate acestea, criptarea nu face nimic pentru a ine duntorii digitali i hacker-ii afar. Pentru a realiza acest obiectiv, este nevoie s studiem zidurile de protecie (firewalls) (Chapman i Zwicky, 1994; i Cheswick i Bellovin, 1994).
Ruter cu filtrare de pachete Poart de aplicaii Ruter cu filtrare de pachete

Conexiuni ctre reelele de afar

Reeaua corporaiei

Perimetru de securitate

LAN interior

LAN exterior

Zid de protecie

Fig. 5-43. Un zid de protecie format din dou filtre de pachete i o poart de aplicaii. Zidurile de protecie sunt doar o adaptare modern a acelei vechi soluii de securitate medieval: sparea unui an adnc de aprare n jurul castelului dvs. Acest proiect fora pe oricine dorea s

SEC. 5.4

INTERCONECTAREA REELELOR

381

intre sau s ias din castel s treac peste un singur pod mobil, unde puteau fi inspectai de poliia de intrare/ieire. Cu reelele se poate face acelai truc: o companie poate avea multe LAN-uri conectate n moduri arbitrare, dar tot traficul ctre sau de la companie este forat printr-un pod mobil electronic (zidul de protecie), aa cum este prezentat n Fig. 5-43. n aceast configuraie zidul de protecie are dou componente: dou rutere care fac filtrare de pachete i o poart de aplicaii. Exist, de asemenea, configuraii i mai simple, dar avantajul acestui proiect este c fiecare pachet trebuie s tranziteze dou filtre i o poart de aplicaie pentru a intra sau iei. Nu exist alt rut. Este destul de clar c cititorii care consider c un singur punct de verificare a securitii este suficient nu au fcut recent un zbor internaional cu o companie aerian. Fiecare filtru de pachete este un ruter standard echipat cu unele funcii suplimentare. Acestea permit inspectarea fiecrui pachet care intr sau iese. Pachetele care ndeplinesc anumite criterii sunt transmise normal. Cele care nu trec testul sunt eliminate. ' n Fig. 5-43, este foarte probabil ca filtrul de pachete din interiorul LAN-ului s verifice pachetele care ies, iar cel din exteriorul LAN-ului s verifice pachetele care intr. Pachetele care trec de prima barier merg la poarta de aplicaii pentru o examinare ulterioar. Motivul introducerii a dou filtre de pachete n reele diferite este de a asigura c nici un pachet nu intr sau iese fr a fi obligat s treac prin poarta de aplicaii: nu exist nici o cale pe care s o ocoleasc. Filtrele de pachete sunt, n mod tipic, dirijate de tabele configurate de administratorul de sistem. Aceste tabele enumera sursele i destinaiile acceptabile, sursele i destinaiile care sunt blocate i reguli implicite despre ce se face cu pachetele care vin sau se duc la alte maini. n cazul uzual al configurrii Unix, o surs i o destinaie constau dintr-o adres IP i un port. Porturile indic ce serviciu este dorit. De exemplu, portul 23 este pentru Telnet, portul 79 este pentru Finger, iar portul 119 este pentru tirile USENET. O companie poate bloca toate pachetele de intrare pentru toate adresele IP asociate cu unul din aceste porturi. n acest mod, nimeni din afara companiei nu se poate conecta prin Telnet, sau s caute persoane folosind demonul de Finger. Mai mult, compania va putea evita ca angajaii s-i petreac toat ziua citind tiri USENET. Blocarea pachetelor care ies este mai complicat, deoarece, dei cele mai multe situri ader la conveniile standard de numire a porturilor, nu sunt obligate s o fac. Mai mult, pentru servicii importante, cum ar fi FTP (File Transfer Protocol - protocol de transfer fiiere), numerele de port sunt atribuite dinamic. n plus, dei blocarea conexiunilor TCP este dificil, blocarea pachetelor UDP este i mai grea datorit faptului c se tie foarte puin a priori despre ce vor face. Multe filtre de pachete pur i simplu interzic n totalitate traficul UDP. A doua jumtate a mecanismului de zid de protecie este poarta de aplicaie. n loc s trateze pachete brute, o poart opereaz la nivelul aplicaie. O poart de pot electronic, de exemplu, poate fi configurat s examineze fiecare mesaj care intr sau iese. Pentru fiecare mesaj, ea ia decizia de a-1 transmite sau elimina pe baza cmpurilor din antet, a dimensiunii mesajului sau chiar a coninutului (de exemplu, la o instalaie militar, prezena cuvintelor ca nuclear" sau bomb" pot cauza generarea unor aciuni speciale). Proiectele de instalare au libertatea de a configura una sau mai multe pori de aplicaie pentru aplicaii specifice, dar nu este ieit din comun ca organizaii suspicioase s permit intrarea i ieirea potei electronice i, probabil, folosirea World Wide Web, dar s interzic orice altceva ca fiind prea riscant. Combinat cu criptarea i cu filtrarea de pachete, acest aranjament ofer o cantitate limitat de securitate cu costul unor inconveniente.

382

NIVELUL REEA

CAP.5 <

O ultim observaie se refer la comunicaia fr fir i zidurile de protecie. Este uor de proiectat un sistem care este complet sigur din punct de vedere logic, dar care, n practic, are scurgeri ca un ciur. Aceast situaie poate aprea dac unele din maini sunt conectate fr fir i folosesc comunicaia radio, care trece chiar peste zidul de protecie n ambele direcii.

5.5

NIVELUL REEA N INTERNET

La nivelul reea, Internet-ul poate fi vzut ca o colecie de subretele sau sisteme autonome (AS-uri - Autonomous Systems) care sunt conectate mpreun. Nu exist o structur real, dar exist cteva coloane vertebrale majore.
Linii nchiriate spre Asia Linii nchiriate transatlantice Coloana vertebral a Europei

Coloana vertebral a SUA

Reea naional

LAN IP cu jeton pe magistral

LAN IP cu jeton n inel

LANIP Ethernet

Fig. 5-44. Internet-ul este o colecie de multe reele interconectate. Acestea sunt construite din linii de nalt capacitate i rutere rapide. Ataate la coloana vertebral sunt reelele regionale (de nivel mediu), iar la aceste reele regionale sunt ataate LAN-urile din multe universiti, companii i furnizori de servicii Internet. O schi a acestei organizri cvasi-ierarhice este dat n Fig. 5-44. Liantul care ine Internet-ul la un loc este protocolul de nivel reea, numit EP (Internet Protocol protocolul Internet). Spre deosebire de protocoalele mai vechi de nivel reea, acesta a fost proiectat de la nceput avnd n vedere interconectarea reelelor. O metod bun de a gndi nivelul reea este aceasta. Sarcina lui este de a oferi cu eforturi maxime o cale pentru a transporta datagrame de la surs la destinaie, fr a ine seama dac aceste maini sunt sau nu n aceeai reea sau dac sunt sau nu alte reele ntre ele.

SEC. 5.5

NIVELUL REEA IN INTERNET

383

Comunicaia n Internet funcioneaz dup cum urmeaz. Nivelul transport preia iruri de date si le sparge n datagrame. n teorie, datagramele pot avea fiecare pn la 64 Koctei, dar n practic, ele sunt de obicei n jurul valorii de 1500 octei. Fiecare datagram este transmis prin Internet, fiind eventual fragmentat n uniti mai mici pe drum. Cnd toate bucile ajung n sfrit la maina destinaie, ele sunt reasamblate de nivelul reea n datagrama original. Datagrama este apoi pasat nivelului transport, care o insereaz n irul de intrare al procesului receptor.
5.5.1 Protocolul IP

Un loc potrivit pentru a porni studiul nostru despre nivelul reea n Internet este nsui formatul datagramelor IP. O datagram IP const dintr-o parte de antet i o parte de text. Antetul are o parte fix de 20 de octei i o parte opional cu lungime variabil. Formatul antetului este prezentat n Fig- 5-45. El este transmis n ordinea big endian (cel mai semnificativ primul): de la stnga la dreapta, cu bitul cel mai semnificativ al cmpului Versiune trimis primul. (Procesorul SPARC este de tip big endian; Pentium este de tip little endian (cel mai puin semnificativ primul)). Pe mainile de tip little endian, este necesar o conversie prin program att la transmisie ct i la recepie.
*
,[
i i i i i i

32 de bii
j
L

J I

Versiune

IHL

Tip serviciu

Lungime total

identificare Timp de via Protocol

Deplasamentul fragmentului Suma de control a antetului

Adresa sursei Adresa destinaiei Opiuni {0 sau mai multe cuvinte)

Fig. 5-45. Antetul IP (protocolul Internet). Cmpul Versiune memoreaz crei versiuni de protocol i aparine datagrama. Prin includerea unui cmp versiune n fiecare datagram, devine posibil ca tranziia dintre versiuni s in luni, sau chiar ani, cu unele maini rulnd vechea versiune, iar altele rulnd-o pe cea nou. Din moment ce lungimea antetului nu este constant, un cmp din antet, IHL, este pus la dispoziie pentru a spune ct de lung este antetul, n cuvinte de 32 de octei. Valoarea minim este 5, care se aplic atunci cnd nu sunt prezente opiuni. Valoarea maxim a acestui cmp de 4 bii este 15, ceea ce limiteaz antetul la 60 de octei i, astfel, cmpul de opiuni la 40 de octei. Pentru unele opiuni, cum ar fi cea care nregistreaz calea pe care a mers un pachet, 40 de octei sunt mult prea puini, fcnd aceast opiune nefolositoare.

384

NIVELUL REEA

CAP. 5

Cmpul Tip serviciu permite gazdei s comunice subreelei ce tip de serviciu dorete. Sunt posibile diferite combinaii de fiabilitate i vitez. Pentru vocea digitizat, livrarea rapid are prioritate fa de transmisia corect. Pentru transferul de fiiere, transmisia fr erori este mult mai important dect transmisia rapid. Cmpul nsui conine (de la stnga la dreapta), un cmp de 3 bii Preceden, trei indicatori (flags), D, T i R, plus 2 bii nefolosii. Cmpul Preceden este o prioritate, de la 0 (normal) la 7 (pachet de control al reelei). Cei trei bii indicatori permit gazdei s specifice ce o afecteaz cel mai mult din mulimea {Delay (ntrziere), Throughput (Productivitate), Reliability (Fiabilitate)}. n teorie, aceste cmpuri permit ruterelor s ia decizii ntre, de exemplu, o legtur prin satelit cu o productivitate mare i o ntrziere mare sau o linie dedicat cu o productivitate sczut i o ntrziere mic. n practic, ruterele curente ignor total cmpul Tip serviciu. Lungimea total include totul din datagram - att antet ct i date. Lungimea maxim este de 65535 octei. n prezent, aceast limit superioar este tolerabil, dar n viitoarele reele cu capaciti de gigaoctei vor fi necesare datagrame mai mari. Cmpul Identificare este necesar pentru a permite gazdei destinaie s determine crei datagrame aparine un nou pachet primit. Toate fragmentele unei datagrame conin aceeai valoare de Identificare. Urmeaz un bit nefolosit i apoi dou cmpuri de 1 bit. DF vine de la Don't Fragment (A nu se fragmenta). Acesta este un ordin dat ruterelor s nu fragmenteze datagrama pentru c destinaia nu este capabil s asambleze piesele la loc. De exemplu, cnd un calculator pornete, memoria sa ROM poate cere s i se trimit o imagine de memorie ca o singur datagram. Prin marcarea datagramei cu bitul DF, emitorul tie c aceasta va ajunge ntr-o singur bucat, chiar dac aceasta nseamn c datagrama trebuie s evite o reea cu pachete mai mici pe calea cea mai bun i s aleag o rut suboptimal. Este necesar ca toate mainile s accepte fragmente de 576 octei sau mai mici. MF vine de la More Fragments (fragmente adiionale). Toate fragmentele, cu excepia ultimului, au acest bit activat. El este necesar pentru a ti cnd au ajuns toate fragmentele unei datagrame. Deplasamentul fragmentului spune unde este locul fragmentului curent n cadrul datagramei. Toate fragmentele dintr-o datagram, cu excepia ultimului, trebuie s fie un multiplu de 8 octei unitatea de fragmentare elementar. Din moment ce sunt prevzui 13 bii, exist un maxim de 8192 de fragmente pe datagram, obinndu-se o lungime maxim a datagramei de 65536 octei, cu unul mai mult dect cmpul Lungime total. Cmpul Timp de via este un contor folosit pentru a limita durata de via a pachetelor. Este prevzut s contorizeze timpul n secunde, permind un timp maxim de via de 255 secunde. El trebuie s fie decrementat la fiecare salt (hop - trecere dintr-o reea n alta) i se presupune c este decrementat de mai multe ori cnd st la coad un timp ndelungat ntr-un ruter. n practic, el contorizeaz doar salturile. Cnd ajunge la valoarea zero, pachetul este eliminat i se trimite napoi la gazda surs un pachet de avertisment. Aceast facilitate previne hoinreala la infinit a datagramelor, ceea ce se poate ntmpla dac tabelele de dirijare devin incoerente. Cnd nivelul reea a asamblat o datagram complet, are nevoie s tie ce s fac cu ea. Cmpul Protocol spune crui proces de transport trebuie s-1 predea. TCP este o posibilitate, dar tot aa sunt i UDP i alte cteva. Numerotarea protocoalelor este global la nivelul ntregului Internet i este definit n RFC 1700.

NIVELUL REEA IN INTERNET

385

de control a antetului verific numai antetul. O astfel de sum de control este util pentru detectarea erorilor generate de locaii de memorie proaste din interiorul unui ruter. Algoritmul este dea. aduna toate jumtile de cuvinte, de 16 bii, atunci cnd acestea sosesc, folosind aritmetic n complement fa de unu i pstrarea complementului fa de unu al rezultatului. Pentru scopul eestui algoritm, suma de control a antetului este presupus a fi zero dup sosire. Acest algoritm este mai robust dect folosirea unei adunri normale. Observai c suma de control a antetului trebuie recalculat la fiecare salt, pentru c cel puin un cmp se schimb ntotdeauna (cmpul timp de viata), dar se pot folosi trucuri pentru a accelera calculul. - Adresa sursei i Adresa destinaiei indic numrul de reea i numrul de gazd. Vom discuta adresele Internet n seciunea urmtoare. Cmpul Opiuni a fost proiectat pentru a oferi un subterfugiu care s permit versiunilor viitoare ale protocolului s includ informaii care nu sunt prezente n proiectul original, pentru a permite cercettorilor s ncerce noi idei i pentru a evita alocarea unor bii din antet pentru informaii folosite rar. Opiunile sunt de lungime variabil. Fiecare ncepe cu un cod de un octet care identific opiunea. Unele opiuni sunt urmate de un cmp de un octet reprezentnd lungimea opiunii, urmat de unul sau mai muli octei de date. Cmpul Opiuni este completat pn la un multiplu de 4 octei. In acest moment sunt definite cinci opiuni, aa cum sunt listate n Fig. 5-46, dar nu toate ruterele le suport pe toate.
Opiune Securitate Dirijare strict pe baza sursei Dirijare aproximativ pe baza sursei nregistreaz calea Amprent de timp

Descriere
Menioneaz ct de secret este datagrama Indic calea complet de parcurs Indic o list a ruterelor care nu trebuie srite Face fiecare ruter s-i adauge adresa IP Face fiecare ruter s-i adauge adresa i o amprent de timp.

Fig. 5-46. Opiuni IP. Opiunea Securitate menioneaz ct de secret este informaia. n teorie, un ruter militar poate folosi acest cmp pentru a meniona c nu se dorete o dirijare prin anumite ri pe care militarii le consider a fi bieii ri". n practic, toate ruterele l ignor, deci singura sa funcie practic este s ajute spionii s gseasc mai uor lucrurile de calitate. Opiunea Dirijare strict pe baza sursei d calea complet de la surs la destinaie ca o secven de adrese IP. Datagrama este obligat s urmreasc aceast cale precis. Ea este deosebit de util pentru administratorii de sistem pentru a trimite pachete de urgen atunci cnd tabelele de dirijare sunt distruse sau pentru a realiza msurtori de timp. Opiunea Dirijare aproximativ pe baza sursei cere ca pachetul s traverseze o list specificat de rutere i n ordinea specificat, dar este permis trecerea prin alte rutere pe drum. n mod normal, aceast opiune ar putea oferi doar cteva rutere, pentru a fora o anumit cale. De exemplu, pentru a fora un pachet de la Londra la Sydney s mearg spre vest n loc de est, aceast opiune poate specifica rutere n New York, Los Angeles i Honolulu. Aceast opiune este foarte util atunci cnd motive politice sau economice dicteaz trecerea prin anumite ri sau evitarea lor. Opiunea nregistreaz calea indic ruterelor de pe cale s-i adauge adresele lor IP la cmpul opiune. Aceasta permite administratorilor de sistem sa localizeze pene n algoritmii de dirijare (De ce toate pachetele de la Houston la Dallas trec mai nti prin Tokio?"). Cnd reeaua ARPANET a

386

NIVELUL REEA

CAP. 5

fost nfiinat, nici un pachet nu trecea vreodat prin mai mult de nou rutere, deci 40 de octei pentru opiuni au fost destui. Asa cum s-a menionat anterior, acum dimensiunea este prea mic.
A A

In sfrit, opiunea Amprent de timp este similar opiunii nregistreaz ruta, cu excepia faptului c, n plus fa de nregistrarea adresei sale de 32 de bii, fiecare ruter nregistreaz i o amprent de timp de 32 de bii. i aceast opiune este folosit n special pentru depanarea algoritmilor de dirijare. 5.5.2 Adrese IP Fiecare gazd i ruter din Internet are o adres IP, care codific adresa sa de reea i de gazd. Combinaia este unic: nu exist dou maini cu aceeai adres IP. Toate adresele IP sunt de 32 de bii lungime i sunt folosite n cmpurile Adres surs i Adres destinaie ale pachetelor IP. Formatele folosite pentru adrese IP sunt ilustrate n Fig. 5-47. Acele maini care sunt conectate la mai multe reele au adrese diferite n fiecare reea.
32 de bii
! 1 ! i i i i i i i I i i i i i i i i I I I I !

Clas 0 Reea Reea Reea Adres de trimitere multipl Rezervat pentru folosire viitoare Gazd Gazd Gazd

Intervalul adreselor de gazd De la 1.0.0.0 pn la 127.255.255.255 De la 128.0.0.0 pn la 191.255.255.255 De la 192.0.0.0 pn la 223.255.255.255 De la 224.0.0.0 pn la 239.255.255.255 De la 240.0.0.0 pn la 247.255.255.255

B C D E

10

no
1110 11110

Fig. 5-47. Formatul adreselor IP. Formatele de clas A, B, C i D permit pn la 126 reele cu 16 milioane de gazde fiecare, 16.382 reele cu pn la 64K gazde, 2 milioane de reele (de exemplu, LAN-uri) cu pn la 254 gazde fiecare i multicast (trimitere multipl), n care fiecare datagram este directionat mai multor gazde. Adresele care ncep cu 11110 sunt rezervate pentru o folosire ulterioar. Zeci de mii de reele sunt conectate acum la Internet i numrul se dubleaz n fiecare an. Numerele de reea sunt atribuite de NIC (Network Information Center - Centrul de Informaii de Reea) pentru a evita conflictele. Adresele de reea, care sunt numere de 32 de bii, sunt scrise n mod uzual n notaia zecimal cu punct. n acest format, fiecare din cei 4 octei este scris n zecimal, de la 0 la 255. De exemplu, adresa hexazecimal C0290614 este scris ca 192.41.6.20. Cea mai mic adres IP este 0.0.0.0 i cea mai mare este 255.255.255.255.

SEC 5.5

NIVELUL REEA N ESFIERNET

387

Valorile 0 i -l au semnificaii speciale, aa cum se arat n Fig. 5-48. Valoarea 0 nseamn reeaua curent sau gazda curent. Valoarea -l este folosit ca o adres de difuzare pentru a desemna toate gazdele din reeaua indicat.

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0
00 00

Staia gazd O gazd din reeaua local Difuzare n reeaua local Difuzare ntr-o reea la distan Bucl local

Gazd

1 1 1 111 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Reea 1111 (Orice) 1111

127

Fig. 5-48. Adrese IP speciale. Adresa IP 0.0.0.0 este folosit de gazde atunci cnd sunt pornite, dar nu mai este folosit ulterior. Adresele IP cu 0 ca numr de reea se refer la reeaua curent. Aceste adrese permit ca mainile s refere propria reea fr a cunoate numrul de reea (dar ele trebuie s cunoasc clasa adresei pentru a ti cte zerouri s includ). Adresele care constau numai din l-uri permit difuzarea n reeaua curent, n mod uzual un LAN. Adresele cu un numr exact de reea i numai l-uri n cmpul gazd permit mainilor s trimit pachete de difuzare n LAN-uri la distan, aflate oriunde n Internet. n final, toate adresele de forma 127.xx.yy.zz sunt rezervate pentru testri n bucl local (loopback). Pachetele trimjse ctre aceast adres nu sunt trimise prin cablu; ele sunt prelucrate local i tratate ca pachete sosite. Aceasta permite pachetelor s fie trimise ctre reeaua local fr ca emitorul s cunoasc numrul su. Aceast facilitate este folosit de asemenea pentru depanarea programelor de reea.
5.5.3 Subretele

Aa cum am vzut, toate gazdele dintr-o reea trebuie s aib acelai numr de reea. Aceast proprietate a adresrii IP poate crea probleme cnd reeaua crete. De exemplu, s considerm o companie care intr n Internet cu un LAN de clas C Pe msur ce timpul trece, poate achiziiona mai mult de 254 de maini, deci are nevoie de o a doua adres de clas C. Ca o alt alternativ, compania poate achiziiona un al doilea LAN de un tip diferit i dori o adres IP separat pentru reea (LAN-urile pot fi interconectate prin puni pentru a forma o singur reea IP, dar punile au propriile probleme). n cele din urm, se poate ajunge la multe LAN-uri, fiecare cu ruterul propriu i fiecare cu propriul numr de reea de clas C. Pe msur ce numrul de reele locale distincte crete, administrarea lor poate deveni o adevrat durere de Cap. De fiecare dat cnd este instalat o nou reea, administratorul de sistem trebuie s contacteze NIC pentru a obine un nou numr de reea. Apoi acest numr trebuie anunat n toat lumea. Mai mult, mutarea unei maini dinr-un LAN n altul necesit schimbarea adresei sale P, care poate nsemna la rndul su modificarea fiierelor de configurare i de asemenea

388

NIVELUL REEA

CAP. 5

anunarea n lume a noii adrese IP. Dac vreunei alte maini i este dat adresa IP abia eliberat, acea main va primi pota electronic i alte date destinate mainii originale pn cnd adresa s-a propagat n toat lumea. Soluia acestor probleme este s se permit ca o reea s fie divizat n mai multe pri pentru uz intern, dar pentru lumea exterioar s se comporte ca o singur reea. n literatura Internet, aceste pri sunt numite subretele. Aa cum am menionat n Cap. 1, aceast utilizare intr n conflict cu termenul subreea", care nseamn mulimea tuturor ruterelor i liniilor de comunicaie dintr-o reea. Din fericire, va fi clar din context care semnificaie este atribuit. n aceast seciune, definiia folosit va fi cea nou. Dac aceast companie n dezvoltare pornea cu o adres de clas B n loc de una de clas C, putea ncepe simplu prin numerotarea gazdelor de la 1 la 254. Cnd sosea al doilea LAN, se putea decide, de exemplu, s se mpart numrul de gazd de 16 bii ntr-un numr de subreea de 6 bii i un numr de gazd de 10 bii, cum se arat n Fig. 5-49. Aceast mprire permite 62 de LAN-uri (0 i -l sunt rezervate), fiecare cu pn la 1022 gazde.
32 de bii
1 1 1 1

1 1

Masca d e subreea

10

Reea

Subreea

Gazd

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0

Fig. 5-49. Una din cile de a crea o subreea dintr-o reea de clas B. n afara reelei, mprirea n subretele nu este vizibil, astfel nct alocarea unei noi subretele nu necesit contactarea NIC sau schimbarea unor baze de date externe. n acest exemplu, prima subreea poate folosi adrese IP ncepnd de la 130.50.4.1, cea de-a doua poate ncepe de la 130.50.8.1 i aa mai departe. i Pentru a vedea cum funcioneaz subreelele, e necesar s explicm cum sunt procesate i pachetele IP ntr-un ruter. Fiecare ruter are o tabel ce memoreaz u^numr_de_ adrese IP de forma i (reea, 0) i un numr de adrese IP de forma (aceast-reea, gazd). Primul tip indic cum se ajunge i lajretelele lajian. Al_doilea ip spuneLcum s^ ajunge la gazdele locale. Cu fiecare tabel este asociat interfaa de reea care se folosete pentru a ajunge la destinaie i cteva alte informaii. Cnd sosete un pachet IP, adresa destinaie este cutat n tabelade dirijare. Dac pachetul este pentru o reea aflat la distan, el este trimis ruterului urmtor prin interfaa specificat n tabel. Dac este o gazd local (de exemplu n LAN-ul ruterului), pachetul este trimis direct ctre destinaie. Dac reeaua nu este prezent, pachetul este trimis unui ruter implicit care are tabele mai extinse. Acest algoritm nseamn c fiecare ruter trebuie s memoreze numai reele i gazde, nu perechi (reea, gazd), reducnd considerabil dimensiunea-tabelelor de dirijare. Cnd este introdus mprirea n subretele, tabelele de dirijare sunt schimbate, adugnd intrri de forma (aceast-reea, subreea, 0) i (aceast-reea, aceast-subreea, gazd). Astfel un ruter din subreeaua A: tie cum s ajung la toate celelalte subretele i, de asemenea, cum s ajung la toate gazdele din subreeaua k. El nu trebuie s tie detalii referitoare la gazde din alte subretele. De fapt, tot ceea ce trebuie schimbat este de a impune fiecrui ruter s fac un I logic cu masca de subreea

SEC. 5.5

NIVELUL REIEA IN INTERNET

389

a. reelei (vezi Fig. 5-49), pentru a scpa de numrul de gazd i a cuta adresa rezultat n tabelele sale (dup ce determin crei clase de reele aparine). De exemplu, asupra unui pachet adresat ctre 130.50.15.6 care ajunge la un ruter din subreteaua 5 se face un I logic cu masca de subreea din Fig- 5-49 pentru a obine adresa 130.50.12.0. Aceast adres este cutat n tabelele de dirijare pentru a se gsi cum se ajunge la gazdele din subreteaua 3. Rutenii din subreteaua 5 este astfel uurat de munca de a memora toate adresele de nivel legtur de date ale altor gazde dect cele din subreteaua 5. mprirea n subretele reduce astfel spaiul tabelelor de dirijare prin crearea unei ierarhii pe trei niveluri. 5.5.4 Protocoale de control n Internet Pe lng IP, care este folosit pentru transferul de date, Internet-ul are cteva protocoale de control la nivelul reea, incluznd ICMP, ARP, RARP i BOOTP. n aceast seciune vom arunca o privire asupra fiecruia dintre ele. Protocolul mesajelor de control din Internet Operarea Internet-ului este strns monitorizat de ctre rutere. Atunci cnd se ntmpl ceva neobinuit, evenimentul este raportat prin ICMP (Internet Control Message Protocol - protocolul mesajelor de control din Internet), care este folosit i pentru testarea Internet-ului. Sunt definite aproape o duzin de tipuri de mesaje ICMP. Cele mai importante sunt enumerate n Fig. 5-50. Fiecare tip de mesaj ICMP este ncapsulat ntr-un pachet IP.
Tipul mesajului
Descriere

Destinaie inaccesibil Timp depit Problem de parametru Oprire surs Redirectare Cerere de ecou Rspuns ecou Cerere de amprent de timp Rspuns cu amprent de timp

Pachetul nu poate fi livrat Cmpul timp de via a ajuns ia 0 Cmp invalid n antet Pachet de oc nva un ruter despre geografie ntreab o main dac este activ Da, sunt activ La fel ca cererea de ecou, dar cu amprent de timp La fel ca rspunsul ecou, dar cu amprent de timp

Fig. 5-50. Tipurile principale de mesaje ICMP. Mesajul DESTINAIE INACCESIBIL (DESTINATION UNREACHABLE) este folosit atunci cnd subreteaua sau un ruter nu pot localiza destinaia, sau un pachet cu bitul DF nu poate fi livrat deoarece o reea cu pachete mici" st n cale. Mesajul TIMP DEPIT (TIME EXCEEDED) este trimis cnd un pachet este eliminat datorit ajungerii contorului su la zero. Acest mesaj este un simptom al buclrii pachetelor, al unei enorme congestii sau c s-au fixat valori prea mici pentru ceas. Mesajul PROBLEM DE PARAMETRU (PARAMETER PROBLEM) indic detectarea unei valori nepermise ntr-un cmp din antet. Aceast problem indic o eroare n programele IP ale gazdei emitoare sau eventual n programele unui ruter tranzitat.

390

NIVELUL REEA

CAP. 5

Mesajul OPRIRE SURS (SOURCE QUENCH) a fost folosit pe vremuri pentru a limita traficul gazdelor care trimiteau prea multe pachete. Cnd o gazd primea acest mesaj, era de ateptat s ncetineasc ritmul de transmisie. Este folosit arareori, deoarece cnd apare congestie, aceste pachete au tendina de a turna mai mult gaz pe foc. Controlul congestiei n Internet este acum fcut pe larg la nivelul transport i va fi studiat n detaliu n Cap. 6. Mesajul REDIRECTARE (REDIRECT) este folosit cnd un ruter observ c un pachet pare a fi dirijat greit. Este folosit de ruter pentru a spune gazdei emitoare despre eroarea probabil. Mesajele CERERE ECOU (ECHO REQUEST) i RSPUNS ECOU (ECHO REPLY) sunt folosite pentru a vedea dac o anumit destinaie este accesibil i activ. Este de ateptat ca la recepia mesajului ECOU, destinaia s rspund printr-un mesaj RSPUNS ECOU. Mesajele CERERE AMPRENT DE TIMP (TIMESTAMP REQUEST) i RSPUNS AMPRENT DE TIMP (TIMESTAMP REPLY) sunt similare, cu excepia faptului c n rspuns sunt nregistrate timpul de sosire a mesajului i de plecare a rspunsului. Aceast facilitate este folosit pentru a msura performanele reelei. Pe lng aceste mesaje, exist alte patru care trateaz adresarea n Internet, pentru a permite gazdelor s descopere numerele proprii de reea i s trateze cazul n care mai multe LAN-uri partajeaz o singur adres IP. ICMP este definit n RFC 792. Protocolul de rezoluie a adresei Dei fiecare main din Internet are una sau mai multe adrese IP, acestea nu pot fi folosite de fapt pentru trimiterea pachetelor deoarece hardware-ul nivelului legturii de date nu nelege adresele Internet. Astzi, cele mai multe gazde sunt ataate la un LAN printr-o plac de interfa > care nelege adresele LAN. De exemplu, fiecare plac Ethernet fabricat pn acum vine cu o adres Ethernet de 48 bii. Fabricanii plcilor Ethernet cer un spaiu de adrese de la o autoritate central pentru a se asigura c nu exist dou plci cu aceeai adres (pentru a evita conflictele care ar aprea dac cele dou plci ar fi n acelai LAN). Plcile trimit i primesc cadre pe baza adresei Ethernet de 48 bii. Ele nu tiu absolut nimic despre adresele IP.

Ruterul are 2 adrese IP 192.31.65)

1
5 a

Ruterul are 2 adrese IP 192.31.60.7 | 192.31.63.3

192.31.65.7

192.31.65.5

192.31.63.8

E1

Reea Ethernet Facultatea de Calculatoare 192.31.65.0

E2

E3 A

^-^/ x inelul FDDI al campusului 192.31.60.0

E4

E5

E6

Reea Ethernet Facultatea de Inginerie Electric 192.31.63.0

Adrese Ethernet

Fig. 5-51. Trei reele de clas C interconectate: dou reele Ethernet i un inel FDDI.

SEC 5.5

NIVELUL REEA IN INTERNET

391

Se pune atunci ntrebarea: Cum sunt transformate adresele IP n adrese la nivelul legturii dedate, ca de exemplu Ethernet? Pentru a explica care este funcionarea, vom folosi exemplul din Fig- 5-51, n care este ilustrat o universitate mic ce are cteva reele de clas C. Avem doua reele Ethernet, una n facultatea de Calculatoare, cu adresa IP 192.31.65.0 i una n facultatea de Inginerie Electric, cu adresa IP 192.31.63.0. Acestea sunt conectate printr-un inel FDDI la nivelul campusului, care are adresa IP 192.31.60.0. Fiecare main dintr-o reea Ethernet are o adres Ethernet unic, etichetat de la El la E6, iar fiecare main; de pe inelul FDDI are o adres FDDI, etichetat de la FI la F3. S ncepem prin a vedea cum trimite un utilizator de pe gazda 1 un pachet unui utilizator de pe gazda 2. Presupunem c expeditorul tie numele destinatarului, ceva de genul ary@eagle.cs.uni.edu. primul pas este aflarea adresei IP a gazdei 2, cunoscut ca eagle.cs.uni.edu. Aceast cutare este fcut de sistemul numelor de domenii (DNS), pe care l vom studia n Cap. 7. Pentru moment, vom presupune c DNS-ul ntoarce adresa IP a gazdei 2 (192.31.65.5). Programele de la nivelurile superioare ale gazdei 1 construiesc un pachet cu 192.31.65.5 n cmpul adresa destinatarului pachet care este trimis programelor IP pentru a-1 transmite. Programele IP se uit la adres i vd c desjimrtarjul se afl n propria reea, dar au nevoie de un mijloc prin care s determine adresa Ethernet a destinatarului. O soluie este s avem undeva n sistem un fiier de configurare care transform adresele IP n adrese Ethernet. Aceast soluie este posibil, desigur, dar pentru organizaii cu mii de maini, meninerea fiierelor actualizate este o aciune consumatoare de timp i care poate genera erori. O soluie mai bun este ca gazda 1 s trimit un pachet de difuzare n reeaua Ethernet ntrebnd: Cine este proprietarul adresei IP 192.31.65.5?". Pachetul de difuzare va ajunge la toate mainile din reeaua Ethernet 192.31.65.0 i fiecare i va verifica adresa IP. Numai gazda 2 va rspunde cu adresa sa Ethernet (E2). n acest mod gazda 1 afl c adresa IP 192.31.65.5 este pe gazda cu adresa Ethernet E2. Protocolul folosit pentru a pune astfel de ntrebri i a primi rspunsul se numete ARP (Address Resolution Protocol - Protocolul de rezoluie a adresei). Aproape toate mainile din Internet l folosesc. El este definit n RFC 826. Avantajul folosirii ARP fa de fiierele de configurare l reprezint simplitatea. Administratorul de sistem nu trebuie s fac prea multe, dect s atribuie fiecrei maini o adres IP i s hotrasc mtile subreelelor. ARP-ul face restul. n acest punct, programele IP de pe gazda 1 construiesc un cadru Ethernet adresat ctre E2, pun pachetul IP (adresat ctre 193.31.65.5) n cmpul informaie util i l lanseaz pe reeaua Ethernet. Placa Ethernet a gazdei 2 detecteaz acest cadru, recunoate c este un cadru pentru ea, l ia repede i genereaz o ntrerupere. Driverul Ethernet extrage pachetul IP din informaia util i l trimite programelor IP, care vd c este corect adresat i l proceseaz. Pentru a face ARP-ul mai eficient sunt posibile mai multe optimizri. Pentru nceput, la fiecare execuie a ARP, maina pstreaz rezultatul pentru cazul n care are nevoie s contacteze din nou aceeai main n scurt timp. Data viitoare va gsi local corespondentul adresei, evitndu-se astfel necesitatea unei a doua difuzri. n multe cazuri, gazda 2 trebuie s trimit napoi un rspuns, ceea ce o foreaz s execute ARP, pentru a determina adresa Ethernet a expeditorului. Aceast difuzare ARP poate fi evitat oblignd gazda 1 s includ n pachetul ARP corespondena dintre adresa sa IP i adresa Ethernet. Cnd pachetul ARP ajunge la gazda 2, perechea (192.31.65.7, El) este memorat local de ARP pentru o folosire ulterioar. De fapt, toate mainile din reeaua Ethernet pot memora aceast relaie n memoria ARP local.

392

NIVELUL REEA

CAP. 5

Alt optimizare este ca fiecare main s difuzeze corespondena sa de adrese la pornirea mainii. Aceast difuzare este realizat n general printr-un pachet ARP de cutare a propriei adrese IP. Nu ar trebui s existe un rspuns, dar un efect lateral al difuzrii este introducerea unei nregistrri n memoria local ARP a tuturor. Dac totui sosete un rspuns, nseamn c dou maini au aceeai adres IP. Noua main ar trebui s-1 informeze pe administratorul de sistem i s nu porneasc. Pentru a permite schimbarea relaiei, de exemplu, cnd o plac Ethernet se stric i este nlocuit cu una nou (i astfel apare o nou adres Ethernet), nregistrrile din memoria local ARP ar trebui s expire dup cteva minute. S privim din nou Fig. 5-51, numai c de aceast dat gazda 1 vrea s trimit un pachet ctre gazda 6 (192.31.63.8). Folosirea ARP va eua pentru c gazda 4 nu va vedea difuzarea (ruterele nu trimit mai departe difuzrile de nivel Ethernet). Exist dou soluii. Prima: rutenii facultii de Calculatoare poate fi configurat s rspund la cererile ARP pentru reeaua 193.31.63.0 (i posibil i pentru alte reele locale). n acest caz, gazda 1 ya_mernora local ^rQ^^Jl^^W^^Ei) i va trimite tot traficul pentru gazda 4 ctre ruterul local. Aceast soluie se numete ARP cu intermediar (proxy ARP). A doua soluie este ca gazda 1 s-i dea seama imediat c destinaia se afl pe o reea aflat la distant si s trimit tot traficul ctre o adres Ethernet implicit care manevreaz tot traficul la distan, n acest caz E3. Aceast soluie nu necesit ca ruterul facultii de Calculatoare s tie ce reele la distan deservete. n ambele cazuri, ceea ce se ntmpl este c gazda 1 mpacheteaz pachetul IP n cmpul informaie util dintr-un cadru Ethernet adresat crejs3. Cnd ruterul facultii de Calculatoare primete cadrul Ethernet, extrage pachetul IP din cmpul informaie util i caut adresa IP din tabelele sale de dirijare. Descoper c pachetele pentru reeaua 193.31.63.0 trebuie s mearg ctre ruterul 192.31.60.7. Dac nu cunoate nc adjresLFDDI a lui 193.31.60.7, difuzeaz un pachet ARP pe inel i afl c adresa din inel este F3. Apoi insereaz pachetul n cmpul informaie util al unui cadru FDDI adresat ctre F3 i l transmite pe inel. Driverul FDDI al interului facultii de Inginerie Electric scoate pachetul din cmpul informaie util i l trimite programelor IP care vd c trebuie s trimit-pachetul ctre 192.31.63.8. Dac aceast adres IP nu este n memoria local ARP, difuzeaz o cerere ARP pe reeaua Ethernet a facultii de Inginerie Electric i afl c adresa destinaie este E6, astfel nct construiete un cadru Ethernet adresat ctre E6, pune pachetul n cmpul informaie util i l trimite n reeaua Ethernet. Cnd cadrul Ethernet ajunge la gazda 4, pachetul este extras din cadru i trimis programelor IP pentru procesare. Transferul ntre gazda 1 i o reea la distan peste un WAN funcioneaz n esen asemntor, cu excepia c de data aceasta tabelele ruterului facultii de Calculatoare i vor indica folosirea ruterului WAN, a crui adres FDDI este F2. Protocolul de rezoluie invers a adresei ARP-ul rezolv problema aflrii adresei Ethernet corespunztoare unei adrese IP date. Cteodat trebuie rezolvat problema invers: dndu-se o adres Ethernet, care este adresa IP corespunztoare? n particular, aceast problem apare cnd se pornete o staie de lucru fr disc. O astfel de main va primi, n mod normal, imaginea binar a sistemului su de operare de la un server de fiiere la distant. Dar cum si afl adresa IP?

SEC. 5.5

NIVELUL REEA N INTERNET

393

Soluia este folosirea RARP-ului (Reverse Address Resolution Protocol - Protocol de rezoluie invers a adresei) (definit n RFC 903). Acest protocol permite unei staii de lucru de-abia pornit s difuzeze adresa sa Ethernet i s spun:,Adresa mea Ethernet de 48 de bii este14.04.05il8.01.25. tie cineva adresa mea IP?" Serverul RARP vede aceast cerere, caut adresa Ethernet n fiierele sale de configurare i trimite napoi adresa IP corespunztoare. Folosirea RARP este mai bun dect introducerea unei adrese IP n imaginea de memorie, pentru c permite ca aceeai imagine s fie folosit de toate mainile. Dac adresa IP ar fi fixat nuntrul imaginii, atunci fiecare staie de lucru ar necesita imaginea sa proprie. Un dezavantaj al RARP este c, pentru a ajunge la serverul RARP, folosete o adres destinaie numai din l-uri (difuzare limitat). Cu toate acestea, asemenea difuzri nu sunt propagate de rutere, asa nct este necesar un server RARP n fiecare reea. Pentru a rezolva aceast problem, a fost inventat un protocol alternativ de pornire, numit BOOTP (vezi RFC-urile 951,1048 i 1084). Spre deosebire de RARP, acesta folosete mesaje UDP, care sunt propagate prin rutere. De asemenea furnizeaz unei staii de lucru fr disc informaii suplimentare, care includ adresa IP a serverului de fiiere care deine imaginea de memorie, adresa IP a ruterului implicit i masca de subreea care se folosete. BOOTP-ul este descris n RFC 951. 5.5.5 Protocolul de dirijare folosit de porile interioare: OSPF Aa cum am menionat anterior, Internet-ul este construit dintr-un numr mare de sisteme autonome. Fiecare AS este administrat de o organizaie diferit i poate folosi propriul algoritm de dirijare n interior. De exemplu, reelele interne ale companiilor X, Y i Z ar fi vzute ca trei AS-uri dac toate ar fi n Internet. Toate trei pot folosi intern algoritmi de dirijare diferii. Cu toate acestea, existena standardelor, chiar i pentru dirijarea intern, simplific implementarea la graniele dintre AS-uri i permite reutilizarea codului. n aceast seciune vom studia dirijarea n cadrul unui AS. n urmtoarea, vom examina dirijarea ntre AS-uri. Un algoritm de dirijare n interiorul unui AS este numit protocol de pori interioare; un algoritm de dirijare' utilizat ntre AS-uri este numit protocol de pori exterioare. Protocolul de pori interioare iniial n Internet a fost un protocol de dirijare pe baza vectorilor distan (RIP) bazat pe algoritmul Bellman-Ford. El funciona bine n sisteme mici, dar mai puin bine pe msur ce AS-urile se mresc. El suferea de asemenea de problema numr-la-infinit i de o convergen slab n general, aa c a fost nlocuit n mai 1979 de un protocol bazat pe starea legturilor. n 1988, Internet Engineering Task Force a nceput lucrul la un succesor. Acel succesor, numit OSPF (Open Shortest Path First - protocol public (deschis) bazat pe calea cea mai scurt) a devenit un standard n 1990. Muli productori de rutere ofer suport pentru el i va deveni principalul protocol de pori interioare n viitorul apropiat. n cele ce urmeaz vom face o schi a funcionrii OSPF. Pentru ntreaga poveste, vedei RFC 1247. Dat fiind lunga experien cu alte protocoale de dirijare, grupul care a proiectat noul protocol a avut o list lung de cerine care trebuia satisfcute. Mai nti, algoritmul trebuia publicat n literatura public (open), de unde provine O" din OSPF. O soluie n proprietatea unei companii nu era un candidat. n al doilea rnd, noul protocol trebuia s suporte o varietate de metrici de distan, incluznd distana fizic, ntrzierea .a.m.d. n al treilea rnd, el trebuia s fie un algoritm dinamic, care s se adapteze automat i repede la schimbrile n topologie.

3<M

NIVELULREEA

CAP. 5

n al patrulea rnd i nou pentru OSPF, trebuia s suporte dirijarea bazat pe tipul de serviciu, Noul protocol trebuia s fie capabil s dirijeze traficul de timp real ntr-un mod, iar alt tip de trafic n alt mod. Protocolul IP are cmpul Tip serviciu, dar nici un protocol de dirijare nu-1 folosea. n al cincilea rnd i n legtur cu cele de mai sus, noul protocol trebuia s fac echilibrarea ncrcrii, diviznd ncrcarea pe mai multe linii. Multe protocoale precedente trimit toate pachetele pe cea mai bun cale. Calea de pe locul doi nu era folosit de loc. n cele mai multe cazuri, divizarea ncrcrii pe mai multe linii duce la performane mai bune. n al aselea rnd, era necesar suportul pentru sisteme ierarhice. Pn n 1988, Internet a crescut att de mult, nct nu se poate atepta ca un ruter s cunoasc ntreaga topologie. Noul protocol de dirijare trebuia s fie proiectat astfel, nct nici un ruter s nu fie nevoit s cunoasc toat topologia. n al aptelea rnd, se cerea un minim de msuri de securitate, pentru a evita ca studenii iubitori de distracii s pcleasc ruterele trimindu-le informaii de dirijare false. n fine, a fost necesar luarea de msuri pentru a trata ruterele care au fost conectate la Internet printr-un tunel. Protocoalele precedente nu tratau bine acest caz. OSPF suport trei tipuri de conexiuni i reele: 1. Linii punct-la-punct ntre exact dou rutere. 2. Reele multiacces cu difuzare (de exemplu, cele mai multe LAN-uri). 3. Reele multiacces fr difuzare (de exemplu, cele mai multe WAN-uri cu comutare de pachete). O reea multiacces este o reea care poate s conin mai multe rutere, fiecare dintre ele putnd comunica direct cu toate celelalte. Toate LAN-urile i WAN-urile au aceast proprietate. Fig. 5-52(a) arat un AS care conine toate cele trei tipuri de reele. Observai c gazdele, n general, nu joac un rol n OSPF. OSPF funcioneaz prin abstractizarea coleciei de reele, rutere i linii reale ntr-un graf orientat n care fiecare arc are atribuit un cost (distan, ntrziere etc). Apoi calculeaz cea mai scurt cale bazndu-se pe ponderile arcelor. O conexiune serial ntre dou rutere este reprezentat de o pereche de arce, cte unul n fiecare direcie. Ponderile lor pot fi diferite. O reea multiacces este reprezentat de un nod pentru reeaua nsi plus un nod pentru fiecare ruter. Arcele de la nodul reea la rutere au pondere 0 i sunt omise din graf. Fig. 5-52(b) prezint graful pentru reeaua din Fig. 5-52(a). Fundamental, ceea ce face OSPF este s reprezinte reeaua real ca un graf ca acesta i apoi s calculeze cea mai scurt cale de la fiecare ruter la fiecare alt ruter. Multe din AS-urile din Internet sunt foarte mari i nu sunt simplu de administrat. OSPF le permite, s fie divizate n zone numerotate, unde o zon este o reea sau o mulime de reele nvecinate. Zonele nu se suprapun i nu este necesar s fie exhaustive, n sensul c unele rutere pot s nu aparin nici unei zone. O zon este o generalizare a unei subretele. n afara zonei, topologia i detaliile sale nu sunt vizibile. Orice AS are o zon de coloan vertebral, numit zona 0. Toate zonele sunt conectate la coloana vertebral, eventual prin tunele, astfel nct este posibil s se ajung din orice zon din AS n orice alt zon din AS prin intermediul coloanei vertebrale. Un tunel este reprezentat n graf ca un arc i are un cost. Fiecare ruter care este conectat la dou sau mai multe zone

r
fc

SEC5i

NIVELUL I^TEA N INTERNET

395

ine coloanei vertebrale. Analog cu celelalte zone, topologia coloanei vertebrale nu este rizibil din afara coloanei vertebrale.
WAN1

LAN1 LAN 2

(a)

WAN3

(b) Fig. 5-52. (a) Un sistem autonom, (b) O reprezentare de tip graf a lui (a). n interiorul zonei, fiecare ruter are aceeai baz de date pentru starea legturilor i folosete acelai algoritm de cea mai scurt cale. Principala sa sarcin este s calculeze cea mai scurt cale de la sine la fiecare alt ruter din zon, incluznd rutenii care este conectat la coloana vertebral, din care trebuie s existe cel puin unul. Un ruter care conecteaz dou zone are nevoie de bazele de date pentru ambele zone i trebuie s foloseasc algoritmul de cale ct mai scurt separat pentru fiecare zona. Modul n care OSPF trateaz dirijarea dupltipul de serviciu este utilizarea mai multor grafuri, unul etichetat cu costurile pentru cazul n care metrica este ntrzierea, unul etichetat cu costurile n cazul n care metrica este productivitatea i umil'etichetat cu costurile n cazul n care metrica este sigurana. Dei aceasta tripleaz calculul necesar, el permite ci separate pentru optimizarea

ntrzierii, a productivitii i a fiabilitii.

n timpul operrii normale pot fi necesare trei tipuri de ci: intrazonale, interzonale i interAS-uri. Rutele intrazonale sunt cele mai uoare, din moment ce ruterul surs tie

396

NIVELUL REEA

CAP. 5

ntotdeauna calea cea mai scurt spre rutenii destinaie. Dirijarea interzonal se desfoar ntotdeauna n trei pai: drum de la surs la coloana vertebral; drum de-a lungul coloanei vertebrale pn la zona destinaie; drum la destinaie. Acest algoritm foreaz o configuraie de tip stea pentru OSPF, coloana vertebral fiind concentratorul (hub), iar celelalte zone fiind spiele. Pachetele sunt dirijate de la surs la destinaie ca atare". Ele nu sunt ncapsulate sau trecute prin tunel, cu excepia cazului n care merg spre o zon a crei unic conexiune la coloana vertebral este un tunel. Fig. 5-53 arat o parte a Internet-ului cu AS-uri i zone.
AS1
Coloan vertebral AS 2 Ruter de coloan vertebral

Zon

Protocolul EGP conecteaz AS-urile Ruter de la grania zonei

Ruter de la grania AS-ului

Fig. 5-53. Relaia dintre AS-uri, coloane vertebrale i zone n OSPF. OSPF distinge patru clase de rutere: 1. 2. . 3. 4. Ruterele interne sunt integral n interiorul unei zone. Ruterele de la grania zonei conecteaz dou sau mai multe zone. Ruterele coloanei vertebrale sunt pe coloana vertebral. Ruterele de la grania AS-urilor discut cu ruterele din alte AS-uri.

Este permis ca aceste clase s se suprapun. De exemplu, toate ruterele de grani fac parte n mod automat din coloana vertebral. n plus, un ruter care este n coloana vertebral, dar nu face parte din orice alt zon este de asemenea un ruter intern. Exemple din toate cele patru clase de rutere sunt ilustrate n Fig. 5-53.

NIVELUL REEA N INTERNET

397

ferind un mter pornete, trimite mesajefELLO pe- toate liniile sale puact-la-punct i mite multiplu (multicast) n LAN-urile grupului compus din toate celelalte rutere. n ^ | N - u r i , are nevoie de anumite informaii de configuraie, pentru a ti pe cine s contacteze, aja^spunsurij fiecare ruter afl care sunt vecinii si. ' QSPF funcioneaz prin schimb de informaii ntre rutere adiacente, care nu este acelai fecru. eu schimbul de informaii ntre ruterele vecine. n particular, este ineficient ca fiecare juter dintr-un LAN s discute cu fiecare alt ruter din LAN. Pentru a evita aceast situaie, un ruter este ales ca ruter desemnat. Se spune c el este adiacent cu toate celelalte rutere i schimb informaii cu ele. Ruterele vecine care nu sunt adiacente nu schimb informaii ntre ele. De asemenea, este actualizat n permanen i un ruter desemnat de rezerv pentru a uura tranziia dac ruterul desemnat primar se defecteaz. n timpul funcionrii normale, fiecare ruter inund periodic cu mesaje ACTUALIZARE STARE LEGTUR (Link State Update) fiecare ruter adiacent. Acest mesaj indic starea sa si furnizeaz costurile folosite n baza de date topologic. Mesajele de inundare sunt confirmate pentru a le face sigure. Fiecare mesaj are un numr de secven, astfel nct un ruter poate vedea dac un mesaj ACTUALIZARE STARE LEGTUR este mai vechi sau mai nou dect ceea ce are deja. De asemenea, ruterele trimit aceste mesaje cnd o linie cade sau i revine sau cnd costul acesteia se modific. Mesajele DESCRIERE BAZA DE DATE (Database Description) dau numerele de secven pentru toate intrrile de stare a liniei deinute actual de emitor. Prin compararea valorilor proprii cu acelea ale emitorului, receptorul poate determina cine are cea mai recent valoare. Aceste mesaje sunt folosite cnd o linie este refcut. Fiecare partener poate cere informaii de stare a legturii de la cellalt folosind mesaje CERERE STARE LEGTUR (Link State Request). Rezultatul concret al acestui algoritm este c fiecare pereche de rutere adiacente verific s vad cine are cele mai recente date i astfel, noua informaie este rspndit n zon. Toate aceste mesaje sunt trimise ca simple pachete IP. Cele cinci tipuri de mesaje sunt rezumate n Fig. 5-54.
Tip mesaj Hello Actualizare Stare Legtur Confirmare Stare Legtur Descriere Baz de Date Cerere Stare Legtur

Descriere
Folosit pentru descoperirea vecinilor Emitorul furnizeaz vecinilor si costurile sale Confirm actualizarea strii legturii Anun ce actualizri are emitorul Cere informaii de la partener

Fig. 5-54. Cele cinci tipuri de mesaje OSPF. n final, putem s asamblm toate piesele. Folosind inundarea, fiecare mter informeaz toate celelalte mtere din zona sa despre vecinii i costurile sale. Aceast informaie permite fiecrui mter s construiasc graful zonei (zonelor) sale i s calculeze cea mai scurt cale. Zona de coloan vertebrala face i ea acelai lucru. n plus, ruterele de coloan vertebral accept informaia de la ruterele zonei de grani cu scopul de a calcula cea mai bun cale de la fiecare mter de coloan vertebral ctre fiecare alt mter. Aceast informaie este propagat napoi ctre mterele zonei de grani, care o fac public n zonele lor. Folosind aceast informaie, un mter gata s trimit un pachet interzonal poate selecta cel mai bun mter de ieire ctre coloana vertebral.

398

NIVELUL REEA

CAP. 5

5.5.6 Protocolul de dirijare pentru pori externe: BGP n cadrul unui singur AS, protocolul de dirijare recomandat n Internet este OSPF (dei nu este sigur singurul folosit). ntre AS-uri se folosete un protocol diferit, BGP (Border Gateway Protocol - Protocolul porilor de grani). ntre AS-uri este necesar un protocol diferit pentru c scopurile unui protocol pentru pori interioare i ale unui protocol pentru pori exterioare sunt diferite. Tot ce trebuie s fac un protocol pentru pori interioare este s mute pachetele ct mai eficient de la surs la destinaie. El nu trebuie s-i fac probleme cu politica. Ruterele ce folosesc protocolul de pori exterioare trebuie s in cont ntr-o mare msur de politic. De exemplu, un AS al unei corporaii poate dori facilitatea de a trimite pachete oricrui sit Internet i s recepioneze pachete de la orice sit Internet. Cu toate acestea, poate s nu doreasc s asigure tranzitarea pentru pachetele originare dintr-un AS strin destinate unui AS strin diferit, chiar dac prin AS-ul propriu trece cea mai scurt cale dintre cele dou AS-uri strine (Asta este problema lor, nu a noastr."). Pe de alt parte, poate fi dispus s asigure tranzitarea pentru vecinii si, sau chiar pentru anumite AS-uri care au pltit pentru acest serviciu. Companiile telefonice, de exemplu, pot fi fericite s acioneze ca un purttor pentru clienii si, dar nu i pentru alii. Protocoalele pentru pori externe, n general i BGP n particular, au fost proiectate pentru a permite forarea multor tipuri de politici de dirijare pentru traficul ntre AS-uri. Politicile tipice implic consideraii politice, de securitate sau economice. Cteva exemple de constrngeri de dirijare sunt: 1. 2. 3. 4. 5. Nu se tranziteaz traficul prin anumite AS-uri. Nu se plaseaz Irak-ul pe o rut care pornete din Pentagon. Nu se folosesc Statele Unite pentru a ajunge din Columbia Britanic n Ontario. Albania este tranzitat dac nu exist alt alternativ ctre destinaie. Traficul care pleac sau ajunge la IBM nu trebuie s tranziteze Microsoft.

Politicile sunt configurate manual n fiecare ruter BGP. Ele nu sunt parte a protocolului nsui. Din punctul de vedere al unui ruter BGP, lumea const din alte rutere BGP i liniile care le conecteaz. Dou rutere BGP sunt considerate conectate dac ele partajeaz o reea comun. Dat fiind interesul special al BGP-ului pentru traficul n tranzit, reelele sunt grupate n trei categorii. Prima categorie este cea a reelelor ciot (stub networks), care au doar o conexiune la graful BGP. Acestea nu pot fi folosite pentru traficul n tranzit pentru c nu este nimeni la captul cellalt. Apoi vin reelele multiconectate. Acestea pot fi folosite pentru traficul n tranzit, cu excepia a ceea ce ele refuz. n final, sunt reele de tranzit, cum ar fi coloanele vertebrale, care sunt doritoare s manevreze pachetele altora, eventual cu unele restricii. Perechile de rutere BGP comunic ntre ele stabilind conexiuni TCP. Operarea n acest mod ofer comunicaie sigur i ascunde toate detaliile reelelor traversate. BGP este la baz un protocol bazat pe vectori distan, dar destul de diferit de majoritatea celorlalte cum ar fi RIP. n loc s menin doar costul pn la fiecare destinaie, fiecare ruter BGP memoreaz calea exact folosit. Similar, n loc s trimit periodic fiecrui vecin costul su estimat ctre fiecare destinaie posibil, fiecare ruter BGP comunic vecinilor calea exact pe care o folosete.

SEC 55

NIVELUL REEA IN INTERNET

399

Ca exemplu, s considerm raterele BGP din Fig, 5-55(a), n particular, s considerm tabela de dirijare a lui F. S presupunem c el folosete calea FGCD pentru a ajunge la D. Cnd vecinii i dau informaiile de dirijare, ei ofer cile lor complete, ca n Fig. 5-55(b) (pentru simplitate, este artat doar destinaia >).

Informaia despre D pe care F o primete de la vecini De la B: "Eu folosesc BCD" De la G: "Eu folosesc GCD" De la I: "Eu folosesc IFGCD" De la E: "Eu folosesc EFGCD"

(a)

(b)

Fig. 5-55. (a) O mulime de rutere BGP. (b) Informaia trimis lui F. Dup ce sosesc toate cile de la vecini, F le examineaz pentru a vedea care este cea mai bun. El elimin imediat cile de la / i E, din moment ce aceste ci trec chiar prin F. Alegerea este apoi ntre B i G. Fiecare ruter BGP conine un modul care examineaz cile ctre o destinaie dat i le atribuie scoruri, ntorcnd, pentru fiecare cale, o valoare pentru distana" ctre acea destinaie. Orice cale care violeaz o constrngere politic primete automat un scor infinit. Apoi, rutenii adopt calea cu cea mai scurt distan. Funcia de acordare a scorurilor nu este parte a protocolului BGP i poate fi orice funcie doresc administratorii de sistem. BGP rezolv uor problema numr-la-infinit care chinuie ali algoritmi bazai pe vectori distan. De exemplu, s presupunem c G se defecteaz sau c linia FG cade. Atunci F primete ci de la ceilali trei vecini rmai/Aceste rute sunt BCD, IFGCD i EFGCD. El poate observa imediat c ultimele dou ci sunt inutile, din moment ce trec chiar prin F, aa c alege FBCD ca noua sa cale. Ali algoritmi bazai pe vectori distan fac de multe ori alegerea greit, pentru c ei nu pot spune care din vecinii lor au ci independente ctre destinaie i care nu. Definirea curent a BGP-ului este n RFC 1654. Informaii suplimentare utile pot fi gsite n RFC 1268. 5.5.7 Trimiterea multipl n Internet

Comunicaia IP normal este ntre un emitor i un receptor. Cu toate acestea, pentru unele aplicaii, este util ca un proces s fie capabil s trimit simultan unui numr mare de receptori. Exemple sunt actualizarea bazelor de date distribuite multiplicate, transmiterea cotrilor de la burs mai multor ageni de burs, manevrarea convorbirilor telefonice de tipul conferinelor digitale (de exemplu, cu mai multe pri). IP-ul suport trimiterea multipl (multicast), folosind adrese de clas D. Fiecare adres de clas D identific un grup de gazde. Pentru identificarea grupurilor sunt disponibili douzeci i opt de bii, aa nct pot exista n acelai moment peste 250 milioane de grupuri. Cnd un proces trimite un

400

NIVELUL REEA

CAP. 5

pachet unei adrese de clas D, se face cea mai bun ncercare pentru a-1 livra tuturor membrilor grupului adresat, dar nu sunt date garanii. Unii membri pot s nu primeasc pachetul. Sunt suportate dou tipuri de adrese de grup: adrese permanente i adrese temporare. Un grup permanent exist ntotdeauna i nu trebuie configurat. Fiecare grup permanent are o adres de grup permanent. Cteva exemple de adrese de grup permanente sunt 224.0.0.1 Toate sistemele dintr-un LAN. 224.0.0.2 Toate ruterele dintr-un LAN. 224.0.0.5 Toate ruterele OSPF dintr-un LAN. 224.0.0.6 Toate ruterele desemnate dintr-un LAN. Grupurile temporare trebuie create nainte de a fi utilizate. Un proces poate cere gazdei sale s intre ntr-un anume grup. De asemenea, el poate cere gazdei sale s prseasc grupul. Cnd ultimul proces prsete un grup, acel grup nu mai este prezent pe calculatorul su gazd. Fiecare gazd memoreaz cror grupuri aparin la un moment dat procesele sale. Trimiterea multipl este implementat de rutere speciale de trimitere multipl, care pot sau nu coabita cu ruterele standard. Cam o dat pe minut, fiecare ruter de trimitere multipl face o trimitere multipl hardware (de exemplu, la nivel legtur de date) pentru gazdele din LAN-ul su (adresa 224.0.0.1), cerndu-le s raporteze cror grupuri aparin procesele lor la momentul respectiv. Fiecare gazd trimite napoi rspunsuri pentru toate adresele de clas D de care este interesat. Aceste pachete de ntrebare i rspuns folosesc un protocol numit IGMP (Internet Group Management Protocol - Protocol de gestiune a grupurilor Internet), care se aseamn ntructva cu ICMP. El are numai dou tipuri de pachete: ntrebare i rspuns, fiecare cu un format fix, simplu, care conine unele informaii de control n primul cuvnt al cmpului informaie util i o adres de clas D n al doilea cuvnt. El este descris n RFC 1112. Dirijarea cu trimitere multipl este realizat folosind arbori de acoperire. Fiecare ruter de dirijare multipl schimb informaii cu vecinii si, folosind un protocol modificat bazat pe vectori distan cu scopul ca fiecare s construiasc pentru fiecare grup un arbore de acoperire care s acopere toi membrii grupului. Pentru a elimina ruterele i reelele neinteresate de anumite grupuri, se utilizeaz diverse optimizri de reducere a arborelui. Pentru evitarea deranjrii nodurilor care nu fac parte din arborele de acoperire, protocolul folosete intensiv trecerea prin tunel. 5.5.8 IP mobil Muli utilizatori ai Internet-ului au calculatoare portabile i vor s rmn conectai la Internet atunci cnd viziteaz un sit Internet aflat la distan, chiar i pe drumul dintre cele dou. Din nefericire, sistemul de adresare IP face lucrul la deprtare de cas mai uor de zis dect de fcut. n aceast seciune vom examina problema i soluia. O descriere mai detaliat este dat n (Johnson, 1995). Problema apare chiar n schema de adresare. Fiecare adres IP conine trei cmpuri: clasa, numrul de reea i numrul de gazd. De exemplu, s considerm maina cu adresa IP 160.80.40.20. Partea 160.80 indic clasa (B) i numrul de reea (8272); partea 40.20 este numrul de gazd (10260). Ruterele din toat lumea au tabele de dirijare care spun ce linie se folosete pentru a

>

NIVELUL REEA IN INTERNET

401

la reeaua 160.80. Oricnd vine un pachet cu adresa IP destinaie de forma 160.80.xxx.yyy, tul pleac pe respectiva linie. Dac, dintr-o dat, maina cu adresa respectiv este transferat ntr-un alt loc din Internet, pachetele vor continua s fie dirijate ctre LAN-ul (sau ruterul) de acas. Proprietarul nu va mai primi pot electronic i aa mai departe. Acordarea unei noi adrese IP mainii, adres care s corespund cu noua sa locaie, nu este atractiv pentru c ar trebui s fie informate despre schimbare un mare numr de persoane, programe i baze de date. O alt abordare este de a avea rutere care s fac dirijarea folosind adresa IP complet, n locul clasei i a reelei. Cu toate acestea, aceast strategie ar necesita ca fiecare ruter s aib milioane de intrri n tabele, la un cost astronomic pentru Internet. Cnd oamenii au nceput s cear posibilitatea de a avea gazde mobile, IETF a constituit un Grup de Lucru pentru a gsi o soluie. Grupul de Lucru a formulat rapid un numr de obiective considerate necesare n orice soluie. Cele majore au fost: 1. 2. 3. 4. 5. Fiecare gazda mobil trebuie sa fie capabil sa foloseasc adresa sa IP de baza oriunde. Nu au fost permise schimbri de programe pentru gazdele fixe. Nu au fost permise schimbri pentru programele sau tabelele ruterelor. Cele mai multe pachete pentru gazdele mobile nu ar trebui s fac abateri pe drum. Nu trebuie s apar nici o suprasolicitare cnd o gazd mobil este acas.

Soluia aleas este cea descris n seciunea 5.2.8. Pentru a o recapitula pe scurt, fiecare sit care dorete s permit utilizatorilor si s se deplaseze trebuie s asigure un agent local. Fiecare sit care dorete s permit accesul vizitatorilor trebuie s creeze un agent pentru strini. Cnd o gazd mobil apare ntr-un sit strin, ea contacteaz gazda strin de acolo i se nregistreaz. Gazda strin contacteaz apoi agentul local al utilizatorului i i d o adres a intermediarului, n mod normal adresa IP proprie a agentului pentru strini. Cnd un pachet ajunge n LAN-ul de domiciliu al utilizatorului, el vine la un ruter ataat la LAN. Apoi ruterul ncearc s localizeze gazda n mod uzual, prin difuzarea unui pachet ARP ntrebnd, de exemplu: Care este adresa Ethernet a lui 160.80.40.20?" Agentul local rspunde la aceast ntrebare dnd propria adres Ethernet. Apoi ruterul trimite pachetele pentru 160.80.40.20 la agentul local. El, n schimb, le trimite prin tunel la adresa intermediarului prin ncapsularea lor n cmpul informaie util al unui pachet IP adresat agentului pentru strini. Dup aceasta, agentul pentru strini le desface i le livreaz la adresa de nivel legtur de date a gazdei mobile. n plus, agentul de cas d emitorului adresa intermediarului, aa nct viitoarele pachete pot fi trimise prin tunel direct la agentul pentru strini. Aceast soluie rspunde tuturor cerinelor expuse mai sus. ; Probabil c merit menionat un mic amnunt. n momentul n care gazda mobil se mut, probabil c ruterul are adresa ei Ethernet (care n curnd va fi invalid) memorat n memoria ascuns. Pentru a nlocui aceast adres Ethernet cu cea a agentului local, se folosete un truc numit ARP gratuit. Acesta este un mesaj special, nesolicitat, ctre ruter pe care l determin s schimbe o anumit intrare din memoria ascuns, n acest caz cea a gazdei mobile care urmeaz s plece. Cnd, mai trziu, gazda mobil se ntoarce, este folosit acelai truc pentru a actualiza din nou memoria ascuns a ruterului.

402

NIVELUL REEA

CAP. 5

Nu exist,nimic n proieet care s mpiedice o gazd mobil s fie propriul su agent pentru 1 strini, dar aceast abordare funcioneaz numai dac gazda mobil (n postura sa de agent pentru strini) este conectat logic n Internet la situl su curent. De asemenea, ea trebuie s fie capabil s obin pentru folosire o adres (temporar) de intermediar. Acea adres IP trebuie s aparin LAN-ului n care este ataat n mod curent. Soluia IETF pentru gazde mobile rezolv un numr de alte probleme care nu au fost menionate pn acum. De exemplu, cum sunt localizai agenii? Soluia este ca fiecare agent s-i difuzeze periodic adresa i tipul de serviciu pe care dorete s-1 ofere (de exemplu, agent local, pentru strini sau amndou). Cnd o gazd mobil ajunge undeva, ea poate asculta ateptnd aceste difuzri, numite anunuri. Ca o alternativ, ea poate difuza un pachet prin care i anun sosirea i s spere c agentul pentru strini local i va rspunde. O alt problem care trebuie rezolvat este cum s se trateze gazdele mobile nepoliticoase, care pleac fr s spun la revedere. Soluia este ca nregistrarea s fie valabil doar pentru un interval de timp fixat. Dac nu este remprosptat periodic, ea expir i ca urmare gazda strin poate s-i curee tabelele. O alt problem este securitatea. Cnd un agent local primete un mesaj care-i cere s fie amabil s retrimit toate pachetele Norei la o anume adres IP, ar fi mai bine s nu se supun dect dac este convins c Nora este sursa acestei cereri i nu altcineva ncercnd s se dea drept ea. Pentru acest scop sunt folosite protocoale criptografice de autentificare. Vom studia asemenea protocoale n Cap. 7. Un punct final adresat de Grupul de Lucru se refer la nivelurile de mobilitate. S ne imaginm un avion cu o reea Ethernet la bord folosit de ctre calculatoarele de navigare i de bord. n aceast reea Ethernet exist un ruter standard, care discut cu Internet-ul cablat de la sol printr-o legtur radio. ntr-o bun zi, unui director de marketing iste i vine ideea s instaleze conectoare Ethernet n toate braele fotoliilor, astfel nct i pasagerii cu gazde mobile s se poat conecta. Acum avem dou niveluri de mobilitate: calculatoarele proprii ale aeronavei, care sunt staionare n raport cu reeaua Ethernet i calculatoarele pasagerilor, care sunt mobile n raport cu ea. n plus, rutenii de la bord este mobil n raport cu ruterele de la sol. Mobilitatea n raport cu un sistem care este la rndul su mobil este tratat folosind recursiv tunele. 5.5.9 CIDR - Dirijarea fr clase ntre domenii IP este folosit intens de peste o decad. A funcionat extrem de bine, aa cum a fost demonstrat de creterea exponenial a Internet-ului. Din nefericire, IP devine rapid o victim a propriei populariti: i epuizeaz adresele. Acest dezastru fantomatic a generat foarte multe discuii si controverse n cadrul comunitii Internet referitor la cum s fie tratat. n aceast seciune vom descrie att problema ct i cteva soluii propuse. O descriere mai complet este dat n (Huitema, 1996). Prin 1987, civa vizionari au prezis c ntr-o zi Internet-ul poate crete pn la 100.000 de reele. Cei mai muli experi s-au exprimat cu dispre c aceasta va fi peste decenii, dac va fi vreodat. Cea de-a 100.000-a reea a fost conectat n 1996. Problema, expus simplu, este c Internet-ul i epuizeaz rapid adresele IP. n principiu, exist peste 2 miliarde de adrese, dar practica organizrii spaiului de adrese n clase (vezi Fig. 5-47) irosete milioane din acestea. n particular, necazul este dat de reelele de clas B. Pentru cele mai multe organizaii, o adres de clas A, cu 16 milioane de

SEC. 55

NIVELUL REEA N INTERNET

403

adrese este prea mare, iar o reea de clas C, cu 256 de adrese, este prea mic. O reea de clas B, cu 65.536 adrese, este numai bun. n folclorul Internet, aceast situaie este cunoscut ca problema celor trei uri (ca din Goldilocks and the ThreeBears). n realitate, o adres de clas B este pe departe prea mare pentru cele mai multe organizaii. Studii au artat c mai mult de jumtate din toate reelele de clas B au mai puin de 50 de gazde. O reea de clas C ar fi fost suficient, dar fr ndoial c fiecare organizaie care a cerut o adres de clas B a crezut c ntr-o zi ar putea depi cmpul gazd de 8 bii. privind retrospectiv, ar fi fost mai bine s fi avut reele de clas C care s foloseasc 10 bii n loc de opt pentru numrul de gazd, permind 1022 gazde pentru o reea. n acest caz, cele mai multe organizaii s-ar fi decis, probabil, pentru o reea de clas C i ar fi existat jumtate de milion dintre acestea (comparativ cu doar 16.384 reele de clas B). Cu toate acestea, atunci ar fi aprut mult mai rapid o alt problem: explozia tabelelor de dirijare. Din punctul de vedere al ruterelor, spaiul de adrese IP este o ierarhie pe dou niveluri, cu numere de reea i numere de gazde. Ruterele nu trebuie s tie despre toate gazdele, dar ele trebuie s tie despre toate reelele. Dac ar fi fost n folosin jumtate de milion de reele de clas C, fiecare ruter din ntregul Internet ar fi necesitat o tabel cu o jumtate de milion de intrri, una pentru fiecare reea, spunnd care linie se folosete pentru a ajunge la respectiva reea, mpreun cu alte informaii. Stocarea fizic efectiv a tabelelor cu jumtate de milion de intrri este probabil realizabil, dei costisitoare pentru ruterele critice care trebuie s menin tabelele n RAM static pe plcile I/O. O problem mai serioas este reprezentat de creterea complexitii diferiilor algoritmi referitori la gestiunea tabelelor, care este mai rapid dect liniar. i mai ru, o mare parte din programele i firmware-ul ruterelor existente a fost proiectat pe vremea cnd Internet-ul avea 1000 de reele conectate i 10.000 de reele preau la deprtare de decenii. Deciziile de proiectare fcute atunci sunt departe de a fi optime acum. n plus, difejitijdgojitmi de dirijare necesit ca fiecare ruter s transmit tabelele sale geriodic. Cu ct tabelele sunf mai mari, cu att este mai probabil ca anumite pri s se piard pe drum, ducnd la date incomplete la cellalt capt i, posibil, la instabiliti de dirijare. Problema tabelelor de dirijare ar.fi putut fi rezolvat prinadoparea unei ierarhii mai adnci. De exemplu, ar fi mers dac s-ar fi impus ca fiecare adres s conin un cmp ar, jude, ora, reea i gazd. Atunci fiecare ruter ar fi trebuit s tie doar cum s ajung la fiecare ar, la judeele i provinciile din ara sa, oraele din statul su i reelele din oraul su. Din nefericire, aceast soluie ar necesita mai mult de 32 de bii pentru adrese IP i ar folosi adresele ineficient (Liechtenstein ar fi avut tot atia bii ca Statele Unite). Pe scurt, cele mai multe soluii rezolv o problem, dar creeaz o alta. C soluie care se implementeaz acum i care va da Internet-ului un pic de spaiu de manevr este CIDR (Classless InterDomain Routing - Dirijarea fr clase ntre domenii). Ideea de la baza CIDR, care este descris n RFC 1519, este de a aloca reelele de clas C care au mai rmas, care sunt aproape dou milioane, n blocuri de dimensiune variabil. Dac un sit are nevoie, s zicem, de 2000 de adrese, i este dat un bloc de 2048 adrese (opt reele de clas C contigue) i nu o adres plin de clas B. Similar, un sit ce necesit 8000 de adrese primete 8192 adrese (32 de reele de clas C contigue). n afar de folosirea blocurilor de reele de clas C contigue ca uniti, n RFC 1519 au fost schimbate i regulile de alocare pentru adresele de clas C. Lumea a fost mprit n patru zone i fiecreia i-a fost dat o poriune din spaiul de adrese de clas C. Alocarea a fost urmtoarea:

404

NIVELUL REEA

CAP.5

Adresele de la 194.0.0.0 la 195.255.255.255 sunt pentru Europa. Adresele de la 198.0.0.0 la 199.255.255.255 sunt pentru America de Nord. Adresele de la 200.0.0.0 la 201.255.255.255 sunt pentru America Centrala i de Sud. Adresele de la 202.0.0.0 la 203.255.255.255 sunt pentru Asia i Pacific. Astfel, fiecrei regiuni i s-au dat aproape 32 de milioane de adrese pentru alocare, cu alte 320 milioane de adrese de clas C de la 204.0.0.0 la 223.255.255.255 pstrate n rezerv pentru viitor. Avantajul acestei alocri este c acum orice ruter din afara Europei care primete un pachet adresat pentru 194.xx.yy.zz sau 195.xx.yy.zz poate s-1 trimit porii sale europene standard. De fapt 32 de milioane de adrese sunt comprimate ntr-o singur intrare a tabelei de dirijare. Similar pentru celelalte regiuni. Desigur, o dat ce un pachet 194.xx.yy.zz intr n Europa, sunt necesare tabele de dirijare mult mai detaliate. O posibilitate este de a avea 131.072 intrri pentru reelele de la 194.0.0.xx pn la 195.255.255.xx, dar aceasta este exact explozia tabelelor de dirijare pe care ncercm s o evitm. Alternativ, fiecare intrare din tabela de dirijare este extins prin adugarea unei mti de 32 de bii. Cnd un pachet sosete, mai nti este extras destinaia. Apoi (n principiu) tabela de dirijare este examinat intrare cu intrare, mascnd adresa destinaie i comparnd-o cu intrarea din tabel n cutarea unei potriviri. Pentru a face acest proces de comparaie mai clar, s considerm un exemplu. S presupunem c Universitatea Cambridge are nevoie de 2048 de adrese i are atribuite adresele de la 194.24.0.0 pn la 194.24.7.255, mpreun cu masca 255.255.248.0. Apoi, Universitatea Oxford cere 4096 de adrese,; Din moment ce un bloc de 4096 de adrese trebuie s fie aliniat la o frontier de 4096 octei, nu li se pot da adrese ncepnd cu 194.8.0.0. n loc, ei primesc de la 194.24.16.0 pn la 194.24.31.255, mpreun cu o masc de 255.255.240.0. Acum Universitatea din Edinburgh cere 1024 de adrese i i sunt atribuite adresele de la 194.24.8.0 pn la 194.24.11.255 i masca 255.255.252.0. Tabelele de dirijare din toat Europa sunt acum actualizate cu trei intrri, fiecare coninnd o adres de baz i o masc. Aceste intrri (n binar) sunt: Adres 11000010 00011000 00000000 00000000 11000010 00011000 00010000 00000000 11000010 00011000 00001000 00000000 Masc 111111111111111111111000 00000000 111111111111111111110000 00000000 111111111111111111111100 00000000

S considerm acum ce se ntmpl cnd sosete un pachet adresat pentru 194.24.17.4, care n binar este: 11000010 00011000 0001000100000100 Mai nti, adresa este nmulit logic cu masca de la Cambridge pentru a obine: 11000010000110000001000000000000

55

NIVELUL REEA IN BSTIERNET

405

^Aceast valoare nu se potrivete eu adresa de baz de la Gambridge, aa c adresa original este onoi nmulit logic cu masca de la Oxford pentru a se obine: 11000010000110000001000000000000 Aceast valoare se potrivete cu adresa de baz de la Oxford, aa c pachetul este trimis ruterului de la Oxford. n practic, intrrile ruterului nu sunt ncercate secvenial; pentru a accelera cutarea, se folosesc trucuri de indexare. De asemenea, este posibil ca dou intrri s se potriveasc, caz n care cea care are n masc mai muli bii 1 ctig. n final, aceeai idee poate fi aplicat tuturor adreselor, nu doar adreselor noi de clas C, deci folosind CIDR, vechile reele de clas A, B i C nu mai sunt folosite pentru dirijare. Iat de ce CIDR este numit dirijare fr clase. CIDR este descris mai n detaliu n (Ford .a, 1993 i Huitema, 1995).

5.5.10 IPv6
n timp ce CIDR mai poate ctiga civa ani, toat lumea i d seama c zilele IP-ului n forma curent (IPv4) sunt numrate. n plus fa de aceste probleme tehnice, exist un alt aspect ntrezrit n fundal. Pn acum ctva timp, Internet-ul a fost folosit n mare msur de universiti, industria de vrf i de guvernul Statelor Unite (n mod special de Departamentul Aprrii). O dat cu explozia interesului fa de Internet ce a nceput la mijlocul anilor 1990, probabil c n urmtorul mileniu el va fi folosit de un grup de persoane mult mai larg, n mod special oameni cu diferite cerine. Un motiv ar fi c milioane de persoane cu portabile ce comunic fr fir l pot folosi pentru a pstra contactul cu bazele lor. Un alt motiv este c o dat cu iminenta convergen a industriilor calculatoarelor, comunicaiilor i a distraciilor, s-ar putea s nu mai fie mult pn cnd fiecare televizor din lume va fi un nod Internet, producnd un miliard de maini folosite pentru video la cerere. n aceste condiii, a devenit clar c IP-ul trebuie s evolueze i s devin mai flexibil. Observnd aceste probleme la orizont, IETF a nceput s lucreze n 1990 la o nou versiune de IP, una care s nu i epuizeze niciodat adresele, s rezolve o gam larg de alte probleme i s fie totodat mai flexibil i mai eficient. Obiectivele majore au fost: 1. 2. 3. 4. 5. 6. 7. 8. 9. S suporte miliarde de gazde, chiar cu alocare ineficient a spaiului de adrese. S reduc dimensiunea tabelelor de dirijare. S simplifice protocolul, pentru a permite ruterelor s proceseze pachetele mai rapid. S asigure o securitate mai bun (autentificare i confidenialitate) fa de IP-ul curent. S acorde o mai mari atenie tipului de serviciu, n special pentru datele de timp real. S ajute trimiterea multipl prin permiterea specificrii de domenii. S creeze condiiile pentru ca o gazd s poat migra fr schimbarea adresei sale. S permit evoluia protocolului n viitor. S permit coexistena noului i vechiului protocol pentru civa ani.

Pentru a gsi un protocol care s ndeplineasc toate aceste cerine, IETF a emis o cerere de propuneri i discuii n RFC 1550. Au fost primite douzeci i unu de rspunsuri, nu toate din ele propuneri complete. Pn n decembrie 1992, au ajuns pe masa discuiilor apte propuneri diferite.

406

NIVELUL REEA

CAP.Sj

Ele variau de la efectuarea de mici crpeli la IP pn la renunarea complet la el i nlocuirea cu un ; protocol complet nou. j O propunere a fost folosirea TCP peste CLNP, care cu cei 160 de bii de adres ai si ar fi oferit spaiu de adrese suficient pentru totdeauna i ar fi unifidat dou protocoale majore de nivel reea. Cu toate acestea, multe persoane au simit c aceasta ar fi fost o acceptare a faptului c, de fapt, a fost fcut ceva chiar bine n lumea OSI, o afirmaie considerat incorect din punct de vedere politic n cercurile Internet. CLNP a fost modelat apropiat de IP, aa nct cele dou nu sunt chiar att de diferite. De fapt, protocolul care a fost ales n final difer de IP cu mult mai mult dect difer CLNP. O alt lovitur mpotriva CLNP a fost slabul suport pentru tipuri de servicii, ceva necesar pentru transmiterea eficient de multimedia. Trei din cele mai bune propuneri au fost publicate n IEEE Network (Deering, 1993; Francis, 1993 i Katz i Ford, 1993). Dup multe discuii, revizii i manevre de culise, a fost selectat o versiune combinat modificat a propunerilor lui Deering i Francis, pn atunci numit SIPP (Simple Internet Protocol Plus - Protocol simplu, mbuntit, pentru Internet) i i s-a dat numele de IPv6 (IP versiunea 6 - IPv5 era deja utilizat pentru un protocol pentru fluxuri de timp real). IPv6 ndeplinete obiectivele destul de bine. El menine caracteristicile bune ale IP-ului, le elimin sau atenueaz pe cele rele i adaug unele noi acolo unde este nevoie. n general, IPv6 nu este compatibil cu IPv4, dar el este compatibil cu toate celelalte protocoale Internet, incluznd TCP, UDP, ICMP, IGMP, OSPF, BGP i DNS, cteodat fiind necesare mici modificri (majoritatea pentru a putea lucra cu adrese mai lungi). Principalele trsturi ale IPv6 sunt discutate mai jos. Mai multe informaii despre el pot fi gsite n RFC 1883 pn la RFC 1887. Cel mai important, IPv6 are adrese mai lungi dect IPv4. Ele au o lungime de 16 octei, care rezolv problema pentru a crei soluionare a fost creat IPv6: s furnizeze o surs efectiv nelimitat de adrese Internet. In curnd vom spune mai multe despre adrese. A doua mare mbuntire a lui IPv6 este simplificarea antetului. El conine numai 7; cmpuri (fa de 13 n IPv4). Aceast schimbare permite ruterelor s proceseze pachetele mai rapid, mbuntind astfel productivitatea. De asemenea, vom discuta n curnd i antetul A treia mare mbuntire a fost suportul mai bun pentru opiuni. Aceast schimbare a fost esenial n noul antet, deoarece cmpurile care erau necesare anterior sunt acum opionale. n plus, modul n care sunt reprezentate opiunile este diferit, uurnd ruterelor saltul peste opiunile care nu le sunt destinate. Aceast caracteristic accelereaz timpul de procesare a pachetelor. Un al patrulea domeniu n care IPv6 reprezint un mare avantaj este n securitate. IETF a avut poria sa de poveti de ziar despre copii precoce de 12 ani care i folosesc calculatoarele : personale pentru a sparge bnci sau baze militare n tot Internet-ul. A existat un sentiment puternic c ar trebui fcut ceva pentru a mbunti securitatea. Autentificarea i confidenialitatea sunt trsturi cheie ale noului IP. n final, a fost acordat o mai mare atenie tipului de serviciu dect n trecut. De fapt, IPv4 \ are un cmp de 8 bii dedicat acestei chestiuni, dar cu ateptata cretere de trafic multimedia din viitor, este nevoie de mult mai mult. Antetul principal IPv6 Antetul IPv6 este prezentat n Fig. 5-56. Cmpul Versiune este ntotdeauna 6 pentru IPv6 (i 4 pentru IPv4). n timpul perioadei de tranziie de la IPv4, care va lua probabil un deceniu, ruterele

sec.55

NIVELUL REIEA IN INTERNET

407

vor fi capabile s examineze acest cmp pentru a spune ce tip de pachet analizeaz. Ca un efect lateral, acest test irosete cteva instruciuni pe drumul critic, aa nct multe implementri vor ncerca s-1 evite prin folosirea unui cmp din antetul legturii de date ca s diferenieze pachetele IPv4 de pachetele IPv6. n acest mod, pachetele pot fi transmise direct rutinei de tratare de nivel reea corecte. Cu toate acestea, necesitatea ca nivelul legtur de date s cunoasc tipurile pachetelor nivelului reea contravine complet principiul de proiectare care spune c fiecare nivel nu trebuie s cunoasc semnificaia biilor care i sunt dai de ctre nivelul de deasupra. Discuiile dintre taberele F-o corect" i F-o repede" vor fi, fr ndoial, lungi i virulente.
32 de bii
I 1 I I I I
i i i i i i i i i i i i i i i i i

Versiune Prioritate Lungime informaie util

Eticheta fluxului Urmtorul antet Limita de salturi

Adresa surs (16 octei)

Adresa destinaie (16 octei)

Fig. 5-56. Antetul fix IPv6 (obligatoriu). Cmpul Prioritate este folosit pentru a distinge ntre pachetele ale cror surse pot fi controlate ca flux i acelea care nu pot fi controlate. Valorile ntre 0 i 7 sunt pentru transmisiuni care pot fi ncetinite n cazul evenimentelor de congestie. Valorile ntre 8 i 15 sunt pentru trafic de timp real a crui rat de transmisie este constant, chiar dac toate pachetele sunt pierdute. n ultima categorie intr audio i video. Aceast distincie permite ruterelor s trateze pachetele mai bine n caz de congestie. n cadrul fiecrui grup, pachetele cu numr mic sunt mai puin importante dect cele cu numr mare. Standardul IPv6 sugereaz, de exemplu, folosirea lui 1 pentru tiri (news), 4 pentru FTP, 6 pentru conexiuni Telnet, din moment ce ntrzierea unui pachet de tiri pentru cteva secunde nu este notabil, dar ntrzierea unui pachet Telnet este cu siguran notabil. Cmpul Eticheta fluxului este nc experimenta, dar va fi folosit pentru a permite unei surse i unei destinaii s stabileasc o pseudo-conexiune cu proprieti i cerine particulare. De exemplu, un ir de pachete de la un proces de pe un anumit gazd surs ctre un anumit proces pe o anumit gazd destinaie poate avea cerine de ntrziere stricte i din acest motiv necesit capacitate de

408

NIVELUL REEA

CAP. 5

transmisie rezervat. Fluxul poate fi stabilit n avans i poate primi un identificator. Cnd apare un pachet cu o Etichet afluxului diferit de zero, toate ruterele pot s o caute n tabelele interne pentru a vedea ce tip de tratament special necesit. Ca efect, fluxurile sunt o ncercare de a combina dou moduri: flexibilitatea unei subretele de datagrame i garaniile unei subretele cu circuite virtuale. Fiecare flux este desemnat de adresa surs, adresa destinaie i numrul de flux, aa nct, la acelai moment, pot fi active mai multe fluxuri ntre o pereche dat de adrese IP. De asemenea, n acest mod, chiar dac dou fluxuri venind de la gazde diferite, dar cu acelai numr de flux trec prin acelai ruter, rutenii va fi capabil s le separe folosind adresele surs i destinaie. Se ateapt ca numerele de flux s fie alese aleator, n loc de a fi atribuite secvenial ncepnd cu 1, pentru a fi mai uor ruterelor s le foloseasc n tabele de dispersie. Cmpul Lungimea infoimaiei utile spune ci octei urmeaz dup antetul de 40 de octei din Fig. 5-56. Numele a fost schimbat fa de cmpul Lungime total din IPv4 deoarece semnificaia este uor modificat: cei 40 de octei nu mai sunt parte a lungimii aa cum erau nainte. Cmpul Antetul wmtor d de gol proiectanii. Motivul pentru care antetul a putut fi simplificat este c exist antete de extensie suplimentare (opionale). Acest cmp spune care din cele ase antete (actuale) de extensie, dac exist vreunul, urmeaz dup cel curent. Dac acest antet este ultimul antet IP, cmpul Antetul wmtor spune crui tip de protocol (de exemplu TCP, UDP) i se va transmite pachetul. Cmpul Limita salturilor este folosit pentru a mpiedica pachetele s triasc venic. El este, n practic, identic cu cmpul Timp de via din IPv4, i anume un cmp care este decrementat la fiecare salt dintr-o reea n alta. n teorie, n IPv4 era un timp n secunde, dar nici un ruter nu-1 folosea n acest mod, aa nct numele a fost modificat pentru a reflecta modul n care este de fapt folosit. Apoi urmeaz cmpurile Adres surs i Adres destinaie. Propunerea original a lui Deering, SIP, folosea adrese de 8 octei, dar n timpul procesului de evaluare, multe persoane au simit c adresele de 8 octei s-ar putea epuiza n cteva decenii, n timp ce adresele de 16 octei nu s-ar epuiza niciodat. Alte persoane au argumentat c 16 octei ar fi un exces, n timp ce alii ncurajau folosirea adreselor de 20 de octei pentru a fi compatibile cu protocolul datagram OSI. O alt grupare dorea adrese de dimensiune variabil. Dup multe discuii, s-a decis c adresele cu lungime fix de 16 octei sunt cel mai bun compromis. Spaiul de adrese IPv6 este mprit aa cum este indicat n Fig. 5-57. Adresele care ncep cu 80 de zerouri sunt rezervate pentru adresele IPv4. Sunt suportate dou variante, difereniabile prin urmtorii 16 octei. Aceste variante se refer la modul n care pachetele IPv6 vor fi transmise prin tunele prin infrastructura IPv4 existent. Folosirea de prefixe separate pentru adresele bazate pe furnizor i pentru cele pe baz geografic este un compromis ntre dou viziuni diferite asupra viitorului Internet-ului. Adresele bazate pe furnizor au sens dac v gndii c n viitor vor exista un numr de companii ce ofer servicii Internet pentru clieni, similare cu AT&T, MCI, Sprint, British Telecom i aa mai departe, care acum ofer servicii telefonice. Fiecare din aceste companii va primi o fraciune din spaiul de adrese. Primii 5 bii care urmeaz prefixului 010 sunt folosii pentru a indica la care registratur s fie cutat furnizorul. Acum funcioneaz trei registraturi, pentru America de Nord, Europa i Asia. Ulterior pot fi adugate pn la 29 de registraturi.

SEC. 5.5
Prefix (n binar) 0000 0000 0000 0001 0000 001 0000 010 0000 011 00001 0001 001 010 011 100 101 110 1110 11110 1.111 10 1111110 1111 11101 1111 111010 1111 111011 11111111

NIVELUL REEA N INTERNET


Folosire Rezervate (incluznd IPv4) Neatribuite Adrese OSINSAP Adrese IPX Novell Netware Neatribuite Neatribuite Neatribuite Neatribuite Adrese bazate pe furnizor Neatribuite Adrese pe baz geografic Neatribuite Neatribuite Neatribuite Neatribuite Neatribuite Neatribuite Neatribuite Adrese de legturi de uz local Adrese de sit de uz local Trimitere multipl (multicast) Fraciune 1/256 1/256 1/128 1/128 1/128 1/32 1/16 1/8 1/8 1/8 1/8 1/8 1/8 1/16 1/32 1/64 1/128 1/512 1/1024 1/1024 1/256

409

Fig. 5-57. Adresele IPv6. Fiecare registratur este liber s mpart urmtorii 15 octei aa cum crede de cuviin. Se ateapt ca multe din ele s foloseasc un numr de furnizor din 3 octei, ceea ce nseamn aproape 16 milioane de furnizori, pentru a permite companiilor mari s funcioneze ca proprii furnizori. O alt posibilitate este s se foloseasc 1 octet pentru a indica furnizorii naionali i a permite acestora s fac alocarea n continuare. n acest mod, pot fi introduse niveluri suplimentare de ierarhie, dup cum este nevoie. Modelul geografic este la fel ca Internet-ul actual, n care furnizorii nu joac un rol important. n acest mod, IPv6 poate trata ambele tipuri de adrese. Adresele de uz local pentru legturi i situri au numai o semnificaie local. Ele pot fi refolosite n fiecare organizaie fr conflict. Ele nu pot fi propagate n afara granielor organizaionale, fcndu-le potrivite pentru organizaiile care folosesc la ora actual ziduri de protecie pentru a se proteja de restul Internet-ului. n adresele de trimitere multipl, dup prefix urmeaz un cmp indicator de 4 bii i un cmp domeniu de 4 bii, apoi un identificator de grup de 112 bii. Unul din biii indicatori face distincia dintre grupurile permanente i cele temporare. Cmpul domeniu permite ca o trimitere multipl s fie limitat la legtura, situl, organizaia sau planeta curent. Aceste patru domenii sunt rspndite peste cele 16 valori, pentru a permite adugarea ulterioar de noi domenii. De exemplu, domeniul planetar este 14, aa nct codul 15 este disponibil pentru dezvoltarea viitoare a Internet-ului la alte planete, sisteme solare, galaxii. n plus fa de suportul adreselor standard de trimitere unic (unicast - punct-la-punct) i multipl (multicast), IPv6 suport de asemenea un nou tip de adresare: trimitere ctre oricine (anycast). Trimiterea ctre oricine (anycasting) este la fel ca trimiterea multipl n sensul c

. NIVELUL REEA

CAP.5

destinaia este un grup d^..d^@sey~.datr,. J H Q Jtoc.s ..s^-.;.ncaRae livrarea pachetului la toate adresele, se" ncearc livrarea la una singur, de obicei cea mai apropiat. De exemplu, un client care dorete s contacteze un grup de servere de fiiere care coopereaz poate folosi trimiterea ctre oricine pentru a ajunge la cel mai apropiat server fr s trebuiasc s tie care este acesta. Trimiterea ctre oricine folosete adrese obinuite de trimitere unic. Se las la alegerea sistemului de dirijare care este fericita gazd care primete pachetul. Pentru scrierea adreselor de 16 octei a fost inventat o nou notaie. Ele sunt scrise ca opt grupuri de cte patru cifre hexazecimale cu semnul: (dou puncte) ntre grupuri, astfel: 8000:0000:0000:0000:0123:4567:89AB:CDEF Din moment ce multe adrese vor avea multe zerouri n interiorul lor, au fost autorizate trei optimizri. Mai nti, zerourile de la nceputul unui grup pot fi omise, astfel nct 0123 poate fi scris ca 123. n al doilea rnd, unul sau mai multe grupuri de 16 zerouri pot fi nlocuite de o pereche de semne dou puncte (:). Astfel, adresa de mai sus devine acum 8000::123:4567:89AB:CDEF n final, adresele IPv4 pot fi scrise ca o pereche de semne dou puncte i un numr zecimal n vechea form cu punct, de exemplu ::192.31.20.46 Probabil c nu este necesar s fim att de explicii asupra acestui lucru, dar exist o mulime de adrese de 16 octei. Mai exact, sunt 2 1 2 8 adrese, care reprezint aproximativ 3xlO38. Dac ntreaga planet, pmnt i ap, ar fi acoperite cu calculatoare, IPv6 ar permite 7xl(P adrese IP pe metru ptrat. Studenii de la chimie vor observa c acest numr este mai mare dect numrul lui Avogadro. Dei nu a existat intenia de a da fiecrei molecule de pe suprafaa planetei adresa ei IP, nu suntem chiar aa de departe de aceasta. n practic, spaiul de adrese nu va fi folosit eficient, aa cum nu este folosit spaiul de adrese al numerelor de telefon (prefixul pentru Manhattan, 212, este aproape plin, dar cel pentru Wyoming, 307, este aproape gol). n RFC 1715, Huitema a calculat c, folosind alocarea numerelor de telefon ca referin, chiar i n cel mai pesimist scenariu, vor fi totui mult peste 1000 de adrese IP pe metru ptrat de suprafa planetar (pmnt sau ap). n orice scenariu credibil, vor fi trilioane de adrese pe metru ptrat. Pe scurt, pare improbabil c vom epuiza adresele n viitorul previzibil. De asemenea merit menionat c doar 28 de procente din spaiul de adrese a fost alocat pn acum. Celelalte 72 de procente sunt disponibile pentru scopuri viitoare nc neimaginate. Este instructiv s comparm antetul IPv4 (Fig. 5-45) cu antetul IPv6 (Fig. 5-56) pentru a vedea ce a fost eliminat n IPv6. Cmpul IUL este pierdut pentru c antetul IPv6 are o lungime fix. Cmpul Protocol a fost scos pentru c n cmpul Antetul urmtor se indic ce urmeaz dup ultimul antet IP (de exemplu, un segment TCP sau UDP). Toate cmpurile referitoare la fragmentare au fost eliminate, deoarece IPv6 are o abordare diferit a fragmentrii. Pentru nceput, toate gazdele i ruterele care sunt conforme cu IPv6 trebuie s suporte pachete de 576 octei. Aceast regul face ca, de la nceput, fragmentarea s fie mai puin probabil. In plus, cnd o gazd trimite un pachet IPv6 care este prea mare,

SEC. 5.5

NIVELUL REEA IN INTERNET

411

rutenii, care este incapabil de a-1 retransmite trimite napoi un mesaj de eroare n loc s fragmenteze pachetul. Acest mesaj de eroare i spune gazdei s sparg toate pachetele viitoare ctre acea destinaie. Este mai eficient s se oblige gazdele s trimit pachete corecte dimensional de la nceput dect s se fragmenteze din zbor pachetele la rutere. n sfrit, cmpul Sum de control este eliminat deoarece calculul acesteia reduce mult performanele. Datorit reelelor fiabile folosite acum, combinate cu faptul c nivelurile de legtur de date i de transport au n mod normal propriile sume de control, valoarea a nc unei sume de control nu merita preul de performan cerut. Eliminarea tuturor acestor caracteristici a avut ca rezultat un protocol de nivel reea simplu i eficient. Astfel, obiectivul lui IPv6 - un protocol rapid, dar flexibil, cu o bogie de spaiu de adrese - a fost atins prin acest proiect. Antete de extensie Fr ndoial, cteva din cmpurile care lipsesc sunt nc necesare ocazional, astfel nct IPv6 a introdus conceptul de antet de extensie (opional). Aceste antete pot fi furnizate pentru a oferi informaii suplimentare, dar codificate ntr-un mod eficient. n prezent sunt definite ase tipuri de antete de extensie, prezentate n Fig. 5-58. Fiecare este opional, dar dac sunt prezente mai multe, ele trebuie s apar imediat dup antetul fix i, preferabil, n ordinea prezentat.
Antet de extensie
Descriere

Opiuni salt-dup-salt Dirijare Fragmentare Autentificare Informaie de siguran criptat Opiuni destinaie

Diverse informaii pentru rutere Calea, parial sau totala, de urmat Gestiunea fragmentelor datagramelor Verificarea identitii emitorului Informaii despre coninutul criptat Informaii suplimentare pentru destinaie

Fig. 5-58. Antetele de extensie IPv6. Unele dintre antete au un format fix; altele conin un numr variabil de cmpuri de lungime variabil. Pentru acestea, fiecare element este codificat ca un tuplu (Tip, Lungime, Valoare). Tipul este un cmp de 1 octet care spune ce opiune este aceasta. Valorile Tipului au fost alese astfel, nct primii 2 bii spun ruterelor care nu tiu cum s proceseze opiunea ce s fac. Variantele sunt: srirea opiunii, eliminarea pachetului, eliminarea pachetului i trimiterea napoi a unui pachet ICMP i la fel ca mai nainte, doar c nu se trimit pachete ICMP pentru adrese de trimitere multipl (pentru a preveni ca un pachet eronat de trimitere multipl s genereze milioane de rapoarte ICMP). Lungimea este, de asemenea, un cmp de 1 octet. El indic ct de lung este valoarea (de la 0 la 255 octei). Valoarea este orice informaie cerut, de cel mult 255 octei.
Antetul urmtor 194

Lungimea informaiei utile foarte mari

Fig. 5-59. Antetul de extensie salt-dup-salt pentru datagrame mari (jumbograme).

412

NIVELUL REEA

CAP. 5

Antetul salt-dup-alt este folosit pentru informaii eare trebuie examinate de toate ruterele de pe cale. Pii'acum a fost definita o opiune: suportul pentru datagrame ce depesc de 64K Formatul acestui antet este prezentat n Fig. 5-59. Ca i toate antetele de extensie, acesta ncepe cu un octet care spune ce tip de antet este urmtorul. Acest octet este urmat de unul care spune ct de lung este antetul salt-dup-salt n octei, excluznd primii 8 octei, care sunt obligatorii. Urmtorii 2 octei indic faptul c aceast opiune definete dimensiunea datagramei (codul 194) ca un numr de 4 octei. Ultimii 4 octei dau dimensiunea datagramei. Dimensiunile mai mici de 65.536 nu sunt permise i au ca rezultat eliminarea pachetului de ctre primul ruter, care va trimite napoi un mesaj ICMP de eroare. Datagramele care folosesc acest antet de extensie sunt numite jumbograme. Folosirea jumbogramelor este important pentru aplicaiile supercalculatoarelor care trebuie s transfere gigaoctei de date eficient prin intermediul Internet-ului. Antetul de dirijare enumera unul sau mai multe rutere care trebuie s fie vizitate pe calea spre destinaie. Att dirijarea strict (este furnizat ntreaga cale) ct i dirijarea aproximativ (sunt furnizate doar anumite rutere) sunt disponibile, dar ele sunt combinate. Formatul antetului de dirijare este prezentat n Fig. 5-60.

Antetul urmtor

Numrul de adrese Adresa urmtoare Hart de bii

tp

ntre 1 i 24 de adrese

tp

Fig. 5-60. Antetul de extensie pentru dirijare. Primii 4 octei ai antetului de extensie de dirijare conin patru ntregi de 1 octet: tipul urmtorului antet, tipul de dirijare (curent 0), numrul de adrese prezente n antet (de la 1 la 24) i indexul urmtoarei adrese de vizitat. Ultimul cmp pornete de la 0 i este incrementat pe msur ce fiecare adres este vizitat. Urmeaz un octet rezervat, urmat de o hart de bii cu bii pentru fiecare din cele 24 de adrese IPv6 poteniale care urmeaz. Aceti bii spun dac fiecare adres trebuie s fie vizitat direct dup cea precedent (dirijare strict pe baza sursei) sau dac pot interveni i alte rutere pe parcurs (dirijare aproximativ pe baza sursei). Antetul fragment trateaz fragmentarea ntr-un mod similar cu cel al IPv4. Antetul menine identificatorul datagramei, numrul de fragment i un bit care spune dac mai urmeaz fragmente, n IPv6, spre deosebire de IPv4, numai gazda surs poate fragmenta un pachet. Ruterele de pe cale nu pot face acest lucru. Dei aceast schimbare este o rupere filozofic major cu trecutul, ea simplific munca ruterelor i permite ca dirijarea s se fac mai rapid. Aa cum s-a menionat mai sus, dac un ruter este confruntat cu un pachet care este prea mare, el elimin pachetul i trimite un pachet ICMP napoi la surs. Aceast informaie permite gazdei surs s fragmenteze pachetul n buci mai mici folosind acest antet i apoi s rencerce.

SEC. 5.5

NIVELUL REEA N INTERNET

413

Antetul de autentificare ofer un mecanism prin care receptorul unui mesaj-poate fi sigur de cel care 1-a trimis. Prin IPv4 nu este prezent nici o astfel de garanie. Informaia util de siguran criptat face posibil criptarea coninutului unui pachet, astfel nct doar receptorul cruia i este destinat poate s-1 citeasc. Aceste antete folosesc tehnici criptografice pentru a-i realiza misiunea. Vom da scurte descrieri mai jos, dar cititorii care nu sunt familiarizai cu criptografia modern s-ar putea s nu neleag ntreaga descriere acum. Ei ar trebui s revin dup citirea Cap. 7 (n special seciunea 7.1), care trateaz protocoale criptografice. Cnd un emitor i un receptor doresc s comunice sigur, ei trebuie mai nti s fie de acord cu una sau mai multe chei secrete pe care le tiu doar ei. Cum se descurc ei nu intr n scopul IPv6. Fiecare din aceste chei are atribuit un numr unic de cheie de 32 de bii. Numerele de cheie sunt globale, aa nct dac Alice folosete cheia 4 pentru a discuta cu Bob, ea nu poate avea o cheie 4 pentru a vorbi cu Carol. Cu fiecare numr de cheie sunt asociai i ali parametri, cum ar fi durata de via a cheii i aa mai departe. Pentru a trimite un mesaj autentificat, emitorul construiete mai nti un pachet care const din toate antetele IP i informaia util i apoi nlocuiete cmpurile care se modific pe drum (de exemplu Limita salturilor) cu zerouri. Pachetului i se adaug apoi zerouri de umplere pn la un multiplu de 16 octei. n mod similar, cheii secrete folosite i se adaug zerouri de umplere pn la un multiplu de 16 octei. Acum este calculat o sum criptografic de control peste concatenarea realizat din cheia secret umplut, pachetul umplut i, din nou, cheia secret umpluta. Utilizatorii pot defini propriul lor algoritm pentru suma criptografic de control, dar utilizatorii fr pretenii criptografice ar trebui s foloseasc algoritmul implicit, MD5. Acum am ajuns la rolul antetului de autentificare. n principal, el conine trei pri. Prima parte const din 4 octei ce pstreaz numrul urmtorului antet, lungimea antetului de autentificare i 16 bii zero. Apoi urmeaz numrul de cheie de 32 de bii. La final este inclus suma de control MD5 (sau o alt sum). Receptorul folosete atunci numrul de cheie pentru a afla cheia secret. Versiunea umplut a cheii este pus n faa i n spatele informaiei utile, cmpurile variabile ale antetului sunt fcute zero i se calculeaz suma de control. Dac aceasta corespunde cu suma de control inclus n antetul de autentificare, receptorul poate fi sigur c pachetul vine de la emitorul cu care este partajat cheia secret i, de asemenea, poate fi sigur c pachetul nu a fost modificat pe drum. Proprietile lui MD5 face computaional nerealizabil ca un intrus s falsifice identitatea emitorului sau s modifice pachetul ntr-un mod care s nu fie detectat. Este important s notm c informaia util a unui pachet autentificat este, trimis necriptat. Orice ruter de pe drum poate s-i citeasc coninutul. Pentru multe aplicaii, secretizarea nu este important, ci doar autentificarea. De exemplu, dac un utilizator d ordin unei bnci s-i plteasc nota telefonic, probabil c nu exist o nevoie real pentru secretizare, dar exist o nevoie foarte real din partea bncii de a fi absolut sigur c tie cine a trimis pachetul care conine ordinul de plat. Pentru pachetele care trebuie s fie trimise n secret, este folosit antetul de extensie informaie util de siguran criptat. El ncepe cu un numr de cheie de 32 de bii, urmat de informaia util criptat. Algoritmul de criptare este la alegerea emitorului i receptorului, dar implicit se folosete DES n modul de nlnuire a blocurilor de cifrare (DES-CBC). Cnd este folosit DES-CBC, cmpul informaie util ncepe cu un vector de iniializare (un multiplu de 4 octei), apoi informaia

414

NIVELUL REEA

CAP. 5

util, apoi umplutura pn la un multiplu de 8 octei. Dac sunt dorite att criptarea ct i autentificarea, sunt necesare ambele antete. Antetul opiuni destinaie este introdus pentru cmpuri care trebuie s fie interpretate doar la gazda destinaie. n versiunea iniial a IPv6, singurele opiuni definite sunt opiunile nule pentru alinierea acestui antet la un multiplu de 8 octei, astfel nct nu va fi folosit iniial. El a fost inclus pentru a asigura c noile programe de dirijare i ale gazdelor pot s-1 manevreze, n cazul n care cineva se va gndi vreodat la o opiune destinaie. Controverse Dat fiind deschiderea procesului de proiectare i opiniile ferm susinute ale multora din persoanele implicate, nu ar trebui s fie o surpriz c multe din deciziile fcute pentru IPv6 au fost foarte controversate. Vom rezuma cteva dintre acestea n cele ce urmeaz. Pentru toate amnuntele tioase, vezi (Huitema, 1996). Am menionat deja disputa legat de lungimea adresei. Rezultatul a fost un compromis: adrese de lungime fix de 16 octei. O alt lupt s-a dezvoltat n jurul lungimii cmpului Limita salturilor. O tabr a simit c limitarea numrului maxim de salturi la 255 (implicare a folosirii unui cmp de 8 bii) ar fi o greeal grosolan. Pn la urm, ci de 32 de salturi sunt obinuite n zilele noastre, iar n 10 ani de acum, pot fi obinuite ci mult mai lungi. Aceste persoane au argumentat c folosirea unui spaiu de adrese enorm a fost clarviziune, dar folosirea unui contor minuscul de salturi a fost miopie. Dup prerea lor, cel mai mare pcat pe care l poate comite un informatician este s ofere prea puini bii ntr-un loc. Rspunsul a fost c argumente pot fi aduse pentru lrgirea fiecrui cmp, conducnd la un antet umflat. De asemenea, funcia cmpului Limita salturilor este de a mpiedica hoinreala pachetelor pentru un timp ndelungat i 65.536 de salturi este mult prea mult. n cele din urm, pe msur ce Internet-ul crete, se vor construi din ce n ce mai multe legturi de mare distan, fcnd posibil ajungerea dintr-o ar n alta n cel mult o jumtate de duzin de salturi. Dac este nevoie de mai mult de 125 de salturi pentru a ajunge de la surs sau destinaie la porile lor internaionale, ceva este n neregul cu coloanele vertebrale naionale. Adepii celor 8 bii au ctigat aceast lupt. O alt problem spinoas a fost dimensiunea maxim a pachetului. Comunitatea supercalculatoarelor a dorit pachete mai mari de 64 KB. Cnd un supercalculator ncepe s transfere, aceasta este ntr-adevr lucru serios i nu dorete s fie ntrerupt dup fiecare 64KB. Argumentul mpotriva pachetelor mari este c dac un pachet de 1 MB ajunge la o linie TI de 1.5 Mbps, acel pachet va monopoliza linia pentru mai mult de 5 secunde, producnd o ntrziere semnificativ pentru utilizatorii interactivi care partajeaz linia. Aici a fost atins un compromis: pachetele normale au fost limitate la 64 KB, dar antetul de extensie salt-dup-salt poate fi folosit pentru a permite jumbograme. Un al treilea punct fierbinte a fost eliminarea sumei de control IPv4. Unele persoane au asimilat aceast mutare cu eliminarea frnelor de la main. Fcnd acest lucru, maina devine mai uoar, astfel nct poate merge mai repede, dar dac intervine ceva neateptat, ai probleme. Argumentul mpotriva sumei de control a fost c orice aplicaie care are ntr-adevr grij de integritatea datelor oricum trebuie s aib o sum de control la nivelul transport, aa nct meninerea a nc o sum n IP (n plus fa de suma de control a nivelului legtur de date) este un

ggC.55

415

j s . Mai mult, experiena a artat c n IPv4 calculul sumei de.control IP era foarte costisitoare. Tabra mpotriva sumei de control a nvins de aceast dat, deci IPv6 nu are o sum de control. Gazdele mobile au fost de asemenea un punct de conflict. Dac un calculator portabil zboar jumtate din drum n jurul lumii, el poate continua s opereze la destinaie cu aceeai adres IPv6 sau trebuie s foloseasc o schem cu ageni locali i ageni pentru strini? De asemenea, gazdele mobile introduc asimetrii n sistemul de dirijare. Se poate foarte bine ntmpla ca un mic calculator mobil s aud semnalul puternic trimis de un ruter staionar, dar ruterul staionar nu poate auzi semnalul slab trimis de gazda mobil. n consecin, unele persoane au dorit s includ suport explicit pentru gazde mobile n IPv6. Acest efort a euat cnd nu s-a putut ajunge la un consens pentru o propunere concret. . Probabil c cea mai mare btlie a fost pentru securitate. Toat lumea a fost de acord c este necesar. Rzboiul a fost pentru unde i cum. Mai nti unde. Argumentul pentru plasarea la nivelul reea este c devine un serviciu standard pe care toate aplicaiile l pot folosi fr o planificare prealabil. Argumentul contra este c aplicaiile cu adevrat sigure nu doresc n general nimic mai mult dect criptare capt-la-capt, n care aplicaia surs cripteaz i aplicaia destinaie decripteaz. Mai mult, utilizatorul este la mila unor implementri potenial pline de pene a nivelurilor reea, implementri asupra crora nu are nici un control. Rspunsul la acest argument este c aceste aplicaii pot s se abin de la folosirea facilitilor de securitate IP i s-i fac treaba ele nsele. Replica la aceasta este c persoanele care nu au ncredere c reeaua face treaba cum, trebuie, nu doresc s plteasc preul unor implementri de IP lente, greoaie, care au aceast facilitate, chiar dac este dezactivat. Un alt aspect al disputei unde s fie pus securitatea este n legtur cu faptul c multe ri (dar nu toate) au legi de export severe referitoare la criptografie. Unele, notabil n Frana i Irak, reduc n mare msur folosirea intern a criptografiei, aa nct oamenii nu pot avea secrete fa de poliie. Ca rezultat, orice implementare de IP care utilizeaz un sistem criptografic suficient de puternic pentru a fi de mare valoare nu poate fi exportat din Statele Unite (i multe alte ri) clienilor din lumea ntreag. Necesitatea meninerii a dou seturi de programe, unul pentru uzul intern i unul pentru export, este un fapt ce ntmpin o opoziie viguroas din partea firmelor de calculatoare. O soluie potenial este ca toate firmele de calculatoare s-i mute laboratoarele de criptografie ntr-o ar care nu reglementeaz criptografia, cum ar fi Finlanda sau Elveia. Programele de criptografie puternic pot fi proiectate i produse acolo i apoi trimise legal n toate rile cu excepia Franei sau Irak-ului. Problema acestei abordri este c proiectarea unei pri din programele unui ruter ntr-o ar i a unei alte pri n alt ar poate duce la probleme de integrare. Controversa final referitoare la securitate este legat de alegerea algoritmilor implicii care trebuie suportai de toate implementrile. n timp ce s-a crezut c MD5 este relativ sigur, progresele recente din criptografie pot s-1 slbeasc. Nici un criptograf serios nu crede c DES este sigur mpotriva atacurilor guvernelor rilor importante, dar probabil c pentru moment este destul de bun pentru a zdrnici chiar i atacurile celui mai precoce copil de 12 ani. Compromisul a fost s se introduc securitatea n IPv6, s se foloseasc un algoritm de vrf de linie pentru calculul sumei de control pentru o bun autentificare i un algoritm slbu pentru secretizare, dar s se dea utilizatorilor posibilitatea de a nlocui aceti algoritmi cu cei proprii. Un punct asupra cruia nu au existat controverse este c nimeni nu ateapt ca Internet-ul bazat pe IPv4 s fie nchis ntr-o duminic dimineaa i s reporneasc ca un Internet bazat pe IPv6 luni diminea. n schimb, vor fi convertite insule" izolate de IPv6, iniial comunicnd prin tunele. Pe

416

NIVELUL REEA

CAP. 5

msur ce insulele IPv6 cresc, ele vor fuziona n insule mai mari. Pn la urm, toate insulele vor fuziona i Internet-ul va fi convertit complet. Dat fiind investiia masiv n rutere IPv4 n folosin curent, procesul de conversie va dura probabil un deceniu. Din acest motiv s-a depus o enorm cantitate de efort pentru a asigura c aceast tranziie va fi ct mai puin dureroas posibil.

5.6 NIVELUL REEA N REELE ATM


Nivelurile modelului ATM nu corespund prea bine cu nivelurile OSI, ceea ce duce la ambiguiti. Nivelul OSI legtur de date se ocup cu ncadrarea i cu protocoale de transfer ntre dou maini de pe acelai cablu fizic (sau fibr). Protocoalele nivelului legtur de date sunt protocoale mono-salt. Ele nu se ocup de conexiunile capt-la-capt deoarece comutarea i dirijarea nu apar la nivelul legtur de date. Nu exist nici o ndoial cu privire la. aceasta. Nivelul cel mai de jos, care merge de la surs la destinaie i implic astfel dirijare i comutare (adic este multi-salt), este nivelul reea. Nivelul ATM se ocup cu transferul celulelor de la surs la destinaie i, n mod cert, implic algoritmi i protocoale de dirijare n interiorul comutatoarelor ATM. De asemenea el se ocup cu adresarea global. Deci, din punct de vedere funcional, nivelul ATM execut sarcinile ce corespund nivelului reea. Nivelul ATM nu este garantat a fi 100 la sut fiabil, dar acest lucru nu este cerut pentru un protocol de nivel reea. Totodat, nivelul ATM amintete de nivelul 3 de la X.25 i oricine este de acord c acesta este un protocol de nivel reea. n funcie de valorile date biilor, protocolul de nivel reea X.25 poate fi sau nu fiabil, dar cele mai multe implementri l consider nefiabil. Deoarece ATM are funcionalitatea ateptat de la nivelul reea, nu are funcionalitatea presupus pentru nivelul legtur de date i este destul de asemntor cu protocoalele de nivel reea existente, vom discuta nivelul ATM n acest capitol. Confuzia ia natere pentru c multe persoane din comunitatea ATM privesc nivelul ATM ca pe un nivel legtur de date sau, cnd fac emulare LAN, chiar ca pe un nivel fizic. Multe persoane din comunitatea Internet l vd de asemenea ca pe un nivel legtur de date, deoarece doresc s pun IP deasupra sa i tratarea nivelului ATM ca nivel legtur de date se potrivete bine cu aceast abordare. (Dei, urmnd acest gen de raionament, pentru comunitatea Internet, toate reelele opereaz la nivelul legtur de date, indiferent care sunt caracteristicile lor fizice.) Singura problem este c nivelul ATM nu are caracteristicile unui protocol al nivelului legtur de date: un protocol mono-salt folosit de mainile de la capetele opuse ale unei legturi, cum sunt protocoalele 1 pn la 6 din Cap. 3. El are caracteristicile unui protocol de nivel reea: circuite virtuale capt-la-capt, comutare i dirijare. Autorul i-a amintit o veche ghicitoare: : R: Cte picioare ar avea un catr dac am numi coada picior? Patru. Dac numim coada picior, nu o transfoimm n picior.

Este suficient ct am spus, cititorul este prevenit de controversa existent aici, combinat cu o important doz de pur subiectivitate. Nivelul ATM este orientat pe conexiuni, att n termenii serviciilor oferite ct i n ceea ce privete modul n care opereaz intern. Elementul de baz al nivelului ATM este circuitul virtual (numit oficial canal virtual). Un circuit virtual este n mod normal o conexiune de la o surs pn la

SEG. 5-6

NIVELUL REEA N R E p L E ATM

417

. .^destinaie, cu toate c sunt permise i conexiuni cu trimitere multipl^ Circuitele virtuale sunt unidirecionale, dar o pereche de circuite poate fi creat n acelai timp. Amndou prile perechii sunt adresate prin acelai identificator, astfel c un circuit virtual este efectiv duplex integral. Totui, capacitatea canalului i alte proprieti pot fi diferite n cele dou direcii i pot fi chiar zero pentru una din ele. Nivelul ATM este neobinuit pentru un protocol orientat pe conexiuni, n sensul c nu pune la dispoziie nici o confirmare. Motivul acestei proiectri este c ATM a fost destinat folosirii n reele cu fibr optic, care sunt foarte fiabile. S-a considerat adecvat s se lase nivelurilor superioare controlul erorilor. n definitiv, trimiterea de confirmri la nivelul legtur de date sau reea este numai o optimizare. Este ntotdeauna suficient ca nivelul transport s trimit un mesaj i apoi s trimit din nou ntregul mesaj, dac acesta nu este confirmat la timp. Mai mult, reelele ATM sunt folosite frecvent pentru trafic n timp real, cum este cel audio i video. Pentru acest fel de trafic, retransmiterea unei celule care s-a ntmplat s fie eronat este mai periculoas dect ignorarea ei. n ciuda lipsei confirmrilor, nivelul ATM ofer o garanie puternic: celulele trimise de-a lungul circuitului virtual nu vor ajunge niciodat n alt ordine. Subreeaua ATM are voie s nlture celule dac se produce congestie, dar sub nici un motiv nu poate s reordoneze celulele trimise pe acelai circuit virtual. Cu toate acestea, nu exist nici o garanie cu privire la ordonarea celulelor trimise pe circuite virtuale diferite. De exemplu, dac o gazd trimite o celul pe circuitul virtual 10 i mai trziu trimite o celul cu aceeai destinaie pe circuitul virtual 20, cea de-a doua celul poate ajunge prima. Dac cele dou celule au fost trimise pe acelai circuit virtual, prima trimis va fi ntotdeauna prima sosit.
Circuit virtual Cale virtual

Cale de transmisie

Fig. 5-61. O cale de transmisie poate conine ci virtuale multiple, fiecare dintre acestea putnd conine circuite virtuale multiple. Nivelul ATM asigur o ierarhie de conexiuni pe dou niveluri care este vizibil pentru nivelul transport. De-a lungul fiecrei ci de transmisie de la o surs dat la, o destinaie dat, un grup de circuite virtuale pot fi grupate n ceea ce se numete o cale virtual, aa cum este ilustrat n Fig. 5-61. Conceptual, o cale virtual este ca un mnunchi de perechi torsadate: cnd este redirijat, toate perechile (circuite virtuale) sunt redirijate mpreun. Vom considera mai trziu n detaliu implicaiile acestei proiectri pe dou niveluri. 5.6.1 Formatele celulelor La nivelul ATM, se disting dou interfee: UNI (User-Network Interface - Interfaa utilizatorreea) i NNI (Network-Network Interface - interfaa reea-reea). Prima definete frontiera dintre o

418

NIVELUL REEA

CAP. 5

gazd i o reea ATM (n multe cazuri, dintre client i purttor). Ultima se aplic la grania dintre dou comutatoare (termenul ATM pentru rutere) ATM. n ambele cazuri, celulele se compun dintr-un antet de 5 octei urmat de o informaie util de 48 de octei, dar cele dou antete sunt puin diferite. Antetele, aa cum sunt definite de Forumul ATM, sunt ilustrate n Fig. 5-62. Celulele sunt transmise ncepnd cu octetul cel mai din stnga i cu cel mai din stnga bit din octet.
40 de bii
1 1 1 i i i 1 i i i
i i i 1 i i i i i i i I i i i i i i i 1 1 1 1 1 1 !

GFC

VPI

VCI (a)

PTI

C L P

HEC

VPI

VCI

PTI

C L P

HEC

(b)
GFC: General Flow Control (control general al fluxului) VPI: Virtual Path Identifier (identificatorul cii virtuale) VCI: Virtual Channel Identification (identificarea canalului virtual) PTI: Payload Type (tipul ncrcrii utile) CLP: Cell Loss Priority (prioritatea de eliminare a celulelor) HEC: Header Error Check (suma de control a antetului)

Fig. 5-62. (a) Antetul nivelului ATM la UNI. (b) Antetul nivelului ATM la NNI. Cmpul GFC este prezent numai n celulele transmise ntre o gazd i reea. El este rescris de primul comutator la care ajunge, deci nu are semnificaie in comunicaia capt-la-capt i nu este transmis destinaiei. Iniial, cnd a fost conceput, s-a crezut c va fi folositor pentru controlul fluxului sau pentru prioritatea ntre gazde i reele, dar nici o valoare nu este definit pentru el i reeaua l ignor. Cel mai bine este s fie considerat ca o greeal n standard. Cmpul VPI este un ntreg mic care selecteaz o anumit cale virtual (vezi Fig. 5-61). Similar, cmpul VCI selecteaz un anumit circuit virtual n cadrul cii virtuale alese. Deoarece cmpul VPI are 8 bii (la UNI) i cmpul VCI are 16 bii, teoretic, o gazd poate avea pn la 256 de grupuri VC (virtual circuit), fiecare coninnd pn la 65.536 de circuite virtuale. De fapt, sunt disponibile ceva mai puine, pentru c unele FC/-uri sunt rezervate pentru funcii de control, cum ar fi stabilirea de circuite virtuale. Cmpul PTI definete tipul de informaie util pe care o conine celula, n conformitate cu valorile date n Fig. 5-63. Aici tipurile de celule sunt furnizate de utilizator, dar informaia despre congestie este furnizat de reea. Altfel spus, o celul trimis cu PTI 000 poate s ajung cu 010 pentru a preveni destinaia de problemele n curs de pe traseu.

cr

fi

NIVELUL REEA N REELE ATM


Semnificaie

419

Celul de date a utilizatorului, nici o congestie, celul de tip 0 Celul de date a utilizatorului, nici o congestie, celul de tip 1 Celul de date a utilizatorului, s-a ntlnit congestie, celul de tip 0 Celul de date a utilizatorului, s-a ntlnit congestie, celul de tip 1 Informaie de ntreinere ntre comutatoare adiacente Informaie de ntreinere ntre comutatoare sursa i destinaie Celul pentru administrarea resurselor (folosita pentru controlul congestiei n cazul ABR) Rezervat pentru o viitoare utilizare

Fig. 5-63. Valorile cmpului PTI. Bitul CPL poate fi fixat de o gazd pentru a diferenia traficul de mare prioritate de cel de mic prioritate. Dac apare congestie i unele celule trebuie nlturate, comutatoarele ncearc s nlture celule cu CLP-ul fixat la 1, nainte de a elimina una dintre cele cu CLP-ul fixat la 0. n sfrit, cmpul HEC este o sum de control a antetului. El nu verific informaia util. Un cod Hamming pentru un numr de 40 de bii necesit numai 5 bii, deci cu 8 bii se poate folosi un cod mai sofisticat. Cel ales poate corecta toate erorile mono-bit i poate detecta cam 90 la sut din totalitatea erorilor multi-bit. Diferite studii au artat c majoritatea covritoare a erorilor pentru legturile optice sunt erori mono-bit. Dup antet vin cei 48 de octei de informaie util. Totui, nu toi cei 48 de octei sunt la dispoziia utilizatorului, pentru c unele dintre protocoalele AAL i pun antetele i ncheierile n spaiul rezervat ncrcrii utile. Formatul NNI este la fel cu formatul UNI, exceptnd cmpul GFQ care nu este prezent i ai crui 4 bii sunt folosii pentru a face cmpul VPI de 12 bii n loc de 8. 5.6.2 Stabilirea conexiunii

ct i circuite virtuale comutate. Primele sunt ntotdeauna prezente i pot fi folosite dup dorin, precum T Tinie nchiriate. Ultimele trebuie s fie stabilite de fiecare dat cnd sunt folosite, ca atunci cnd facem apeluri telefonice. n aceast seciune vom descrie cum se stabilesc circuitele virtuale comutate. Din punct de vedere tehnic, stabilirea conexiunii nu face parte din nivelului ATM, ci este rezolvat de.planul de control (vezi Fig. 1-30) folosind un protocol ITU deosebit de complex, numit J2-2931 (Stiller, 1995). Cu toate acestea, locul logic unde se trateaz stabilirea unei conexiuni de nivel reea este n cadrul nivelului reea i protocoale de nivel reea similare realizeaz stabilirea conexiunii aici, astfel c o vom discuta aici. Exist mai multe variante de stabilire a unei conexiuni. Calea normal este s se achiziioneze mai nti unj^ircmjirjii^^ i s fie folosit acesta. Pentru a stabili un astfel de circuit, celule ce conin o cerere sunt trimise pe calea virtual zero, arcuitul virtualJi. n caz de succes, este deschis un nou circuit virtual pe care pot fi trimise i primite cereri de stabilire a conexiunii i rspunsuri. Motivul pentru aceast procedur de stabilire n doi pai este c, n acest mod, lrgimea de band rezervat pentru circuitul virtual 5 (care este aproape nefolosit) poate fi meninut foarte mic. Exist i o alt variant de iniializare a circuitelor virtuale. Unii purttori pot gemute jjtilizatorilor

420

NIVELUL REEA

CAP. 5

ntre destinaii predefinite sau s le stabileasc n mod dinamic. Odat ce o gazd posed o cale virtual pn la o alt gazd, poate aloca ea nsi circuite virtuale pe aceast cale, fr intervenia comutatoarelor. Stabilirea circuitelor virtuale folosete cele ase tipuri de mesaje trecute n lista din Fig. 5-64. Fiecare mesaj ocup una sau mai multe celule i conine tipul mesajului, lungimea i parametrii. Mesajele pot fi trimise de o gazd unei reele sau pot fi trimise de reea (de regul ca rspuns la un mesaj de la o alt gazd) unei gazde. Exist i diferite alte stri i mesaje pentru raportarea erorilor, dar nu sunt ilustrate aici.
Mesaj SETUP CALL PROCEEDING CONNECT CONNECTACK RELEASE RELEASE COMPLETE Semnificaie - trimis de gazd Te rog stabilete un circuit Am vzut apelul sosit Accept apelul sosit Mulumesc pentru acceptare Te rog termin apelul Confirmare pentru RELEASE Semnificaie - trimis de reea Apel sosit Se va ncerca satisfacerea cererii tale din apel Cererea ta din apel a fost acceptat Mulumesc c ai apelat ' Cealalt parte s-a saturat Confirmare pentru RELEASE

Fig. 5-64. Mesaje folosite pentru stabilirea i desfiinarea conexiunii. Procedura normal de stabilire a unui apel este ca o gazd s trimit un mesaj SETUP pe un circuit virtual special. Reeaua rspunde apoi cu CALL PROCEEDING pentru a confirma primirea cererii. n timp ce mesajul SETUP se propag ctre destinaie, este confirmat la fiecare salt prin CALL PROCEEDING. Cnd mesajul SETUP ajunge n sfrit, gazda destinaie poate rspunde cu CONNECT pentru a accepta apelul. Reeaua trimite apoi un mesaj CONNECT ACK, pentru a indica c a primit mesajul CONNECT. n timp ce mesajul CONNECT se propag napoi ctre iniiator, fiecare comutator ce l primete l confirm cu un mesaj CONNECT ACK. Succesiunea evenimentelor este artat n Fig. 5-65(a). Secvena de desfiinare a unui circuit virtual este simpl. Gazda doritoare s nchid trimite un mesaj RELEASE, care se propag la cellalt capt i provoac desfiinarea circuitului. La fiecare salt de-a lungul drumului, mesajul este confirmat, aa cum se arat n Fig. 5-65(b). Reelele ATM permit stabilirea de canale pentru trimitere multipl. Un canal pentru trimitere multipl are un emitor i mai mult de un receptor. Acestea sunt construite prin stabilirea unei conexiuni cu una dintre destinaii, utiliznd procedura normal. Apoi este trimis mesajul ADD PARTY pentru a ataa o a doua destinaie la circuitul virtual ntors de apelul anterior. Dup aceea, pentru a crete dimensiunea grupului de destinaii pentru trimiterea multipl, pot fi trimise mesaje ADD PARTY suplimentare. Pentru a stabili conexiunea cu o destinaie este necesar s se specifice care este destinaia dorit, prin includerea adresei acesteia n mesajul SETUP. Adresele ATM pot fi de trei feluri. Primul are lungimea de 20 de octei i se bazeaz pe adresele OSI. Primul octet indic n care dintre cele trei formate este adresa. n primul format, octeii 2 i 3^p_ecific_o_ar, iar octeuH d formatul restului adresei, care conine o autoritate ce ocup 3 octei, un domeniu pe 2~octer,~o zon pe 2 octei i^o^adresLpe. 6 octei, plus alte articole. n al doilea format, octeii 2 i 3 desemneaz o organizaie internaional n loc de o ar. Restul adresei este identic cu

. ' SEC. 5.6

NIVELUL REEA IN REELE A T M

421

formatul 1. De asemenea, este permis i o form de adresare mai veche (GCITT E: 164) ce. folosete numere telefonice ISDN, de 15 cifre zecimale.
Gazd surs Gaz destinaie

Comutator #1 Setup Setup . ,

Comutator #2

o. E

Call proceeding_

(a)

Release Release compjee_

Release _ Releae_comfilee_

(b)

Fig. 5-65. (a) Stabilirea conexiunii ntr-o reea ATM. (b) Desfiinarea conexiunii.

5.63 Dirijarea i comutarea


Atunci cnd este stabilit un circuit virtual, mesajul SETUP se propag ncet prin reea de la surs la destinaie. Algoritmul de dirijare determin calea urmat de acest mesaj, deci de circuitul virtual. Standardul ATM nu specific un anumit algoritm de dirijare, deci purttorul este liber s aleag ntre algoritmii discutai mai nainte n acest capitol sau s foloseasc unul diferit. Experiena cu reelele orientate pe conexiuni anterioare, cum este X.25, a artat c o mare parte din puterea de calcul a comutatoarelor se poate consuma pentru a determina cum s se converteasc informaia despre circuitul virtual din fiecare celul pentru alegerea liniei de ieire. Proiectanii ATM-ului au dorit s evite aceast risip, astfel c nivelul ATM a fost proiectat pentru a face posibil o dirijare eficient. n particular, ideea a fost ca dirijarea s se realizeze dup cmpul

422

NIVELUL REEA

CAP. 5

VPI, nu dup cmpul VCI, cu excepia dirijrii la saltul final din fiecare direcie, cnd celulele sunt: trimise ntre un comutator i o gazd. ntre dou comutatoare, va fi utilizat numai calea virtual. Folosirea exclusiv a ^/-urilor ntre comutatoarele interioare are mai multe avantaje. n primul rnd, odat ce a fost stabilit o cale virtual de la o surs la o destinaie, orice circuit virtual suplimentar de-a lungul cii poate pur i simplu s urmeze calea existent. Nu trebuie luat nici o nou decizie de dirijare. Este ca i cum un mnunchi de perechi torsadate a fost deja montat ntre surs i destinaie. Stabilirea unei noi conexiuni impune alocarea uneia dintre perechile nefolosite. n al doilea rnd, dirijarea celulelor individuale este mai simpl atunci cnd toate circuitele virtuale pentru o cale dat sunt ntotdeauna n acelai grup. Decizia de dirijare implic numai examinarea unui numr de 12 bii, nu a unui numr de 12 bii i a unui numr de 16 bii. Vom descrie mai jos cum se realizeaz comutarea de celule, dar chiar fr a intra n detalii, ar trebui 12 s fie evident c indexarea ntr-o tabel cu 2 intrri este realizabil, pe cnd indexarea ntr-o 28 tabel cu 2 intrri nu este. n al treilea rnd, alegerea cilor virtuale ca baz a ntregii dirijri face mai uoar comutarea unui ntreg grup de circuite virtuale. S considerm, de exemplu, ipotetica coloan vertebral ATM pentru S.U.A. ilustrat n Fig. 5-66. n mod normal, circuitele virtuale dintre NY i SF trec prin Omaha i Denver. Totui, s considerm o perturbaie aprut pe linia Omaha-Denver. Redirijnd calea virtual Omaha-Denver ctre LA i apoi SF, toate circuitele virtuale (potenial pn la 65.535 de astfel de circuite) pot fi comutate ntr-o singur operaie, n loc de, probabil, mii de operaii.

Fig. 5-66. Redirijarea unei ci virtuale redirijaz toate circuitele virtuale ale acesteia. n sfrit, cile virtuale fac ca purttorii s ofere mai uor grupuri nchise de utilizatori (reele private) corporaiilor client. O companie poate stabili o reea de ci virtuale permanente ntre diferitele birouri i apoi s aloce, la cerere, circuite virtuale n cadrul acestor

SEC. 5.6

NIVELUL REEA IN REELE ATM

423

ci. Nici un apel nu poate intra n reeaua privat din exterior i nici un apel nu poate prsi reeaua privat, dect prin pori speciale. Multe companii agreeaz acest fel de securitate. Rmne de vzut dac cmpul W/va fi ntr-adevr folosit de comutatoare pentru dirijare, aa cum a fost planificat, sau va utiliza de fapt combinaia cmpurilor VPI i VCI (anulnd astfel toate avantajele pe care tocmai le-am discutat). Semnalele iniiale din domeniu nu sunt ncurajatoare. S vedem cum pot fi dirijate celulele printr-un comutator interior (acela care este legat numai cu alte comutatoare, nu i cu gazde). Pentru a concretiza, s considerm comutatorul Omaha din Fig 566. Pentru fiecare dintre cele cinci linii de intrare, el are o tabel, vpijable, indexat dup VPI-mHe care sosesc, care spune care dintre cele cinci linii de ieire s fie folosit i ce VPI s fie pus n celulele care pleac. S presupunem c cele cinci linii sunt numerotate de la 0 la 4, n sensul acelor de ceasornic, ncepnd cu Minneapolis. Pentru fiecare linie de ieire, comutatorul menine o hart de bii indicnd ce VPI-wi sunt folosite curent pe linia respectiv. Cnd comutatorul este pornit, toate intrrile din toate structurile tabelei vpijable sunt marcate ca nefolosite. Similar, toate hrile de bii sunt marcate s indice c toate VPI-mite sunt disponibile (cu excepia celor rezervate). Acum s presupunem c apelurile sosesc aa cum arat Fig. 5-67.
Linie de intrare VPI de intrare Linie de ieire VPide ieire

Sursa

Destinaie

Cale:

NY NY LA DC NY SF DC NY SF NY

1 1

SF
Denver Minneapolis

3
1 1 4 1 1 4 1

2
1

4 4

2
1 2 1 4 4

Nou Nou

3
1

3 5 2 5
1

LA SF DC SF
Denver Minneapolis

0 3
4 1 4 4 0 4

Nou
Nou
Vechi

Nou Nou
Vechi

2 2
1

Nou
Vechi

SF

Fig. 5-67. Cteva trasee prin comutatorul Omaha din Fig. 5-66. Pe msur ce fiecare cale virtual (i circuit virtual) este stabilit, sunt create intrri n tabele. Vom presupune c circuitele virtuale sunt duplex integral, astfel c stabilirea fiecruia genereaz dou intrri, una pentru traficul transmis de surs i una pentru traficul invers, dinspre destinaie. Tabelele corespunztoare traseelor din Fig. 5-67 sunt prezentate n Fig. 5-68. De exemplu, primul apel genereaz intrarea (4,1) pentru VPI 1 n tabela DC, deoarece se refer la celule intrnd pe linia 1 cu VPI 1 i mergnd ctre SF. Cu toate acestea, este creat i o intrare n tabela pentru Denver pentru VPI 1, care arat c celulele venind de la Denver cu VPI 1 ar trebui s ias pe linia 1 cu VPI 1. Acestea sunt celulele care circul n sens invers (de la SF la NY) pe aceast cale virtual. Observai c, n unele cazuri, dou sau trei circuite virtuale mpart o cale comun. Pentru circuitele virtuale suplimentare care conecteaz o surs i o destinaie ce au deja atribuit o cale nu mai sunt necesare alte intrri n tabel. Acum putem explica cum sunt prelucrate celulele n interiorul unui comutator. S presupunem c o celul sosete pe linia 1 (DC) cu VPI 3. Hardware-ul sau software-ul comutatorului folosete 3 ca index n tabel pentru linia 1 i vede c celula ar trebui s plece pe linia 3 (LA) cu VPI 2. n

424

NIVELUL REEA

CAP. 5

cmpul VPI se nscrie 2, iar numrul liniei de ieire, 3, este nscris undeva n celul, de exemplu n cmpul HEC, deoarece acesta trebuie s fie oricum recalculat mai trziu. Acum se pune ntrebarea cum s obinem pe linia 3 celula din tamponul de intrare curent. Ins acest subiect (dirijarea ntr-un comutator) a fost discutat n detaliu n Cap. 2 i am vzut cum se face n comutatoarele knockout i Batcher-banyan. n acest moment este evident cum poate fi redirijat un grup de circuite virtuale, aa cum se procedeaz n Fig. 5-66. Schimbnd intrarea pentru VPI 1 n tabela DC de la (4, 1) la (3, 3), celulele de la NY care se ndreapt spre SF vor fi deviate prin LA. Bineneles, comutatorul LA trebuie anunat despre acest eveniment, prin urmare comutatorul trebuie s genereze i s trimit un mesaj SETUP ctre LA pentru a stabili noua cale cu VPI 3. Odat ce aceast cale a fost stabilit, toate circuitele virtuale dintre NY i SF sunt redirijate prin LA, chiar dac sunt mii. Dac nu ar exista cile virtuale, atunci fiecare circuit virtual ar avea propria sa intrare n tabel i ar trebui s fie redirijat separat.
Tabela VPI pentru Minn. Intrare Ieire VPI Line VPI 0 1 3 1 2 4 5 3 4 Tabela VPI pentru DC Ieire Line VPI 4 4 3 4 4 1 2 2 3 4 Tabela VPI pentru Dallas Ieire Line VPI Tabela VPI pentru LA Ieire Line VPI 0 1 1 3 Tabela VPI pentru Denver Ieire Line VPI 1 1 1 1 1 2 4 5 2

5
6 7 8

4095 Linia 0 Linia 1

i
Linia 2 Linia 3

1
T
Linia 4

Fig. 5-68. Intrrile n tabel pentru traseele din Fig. 5-67. Merit s artm explicit c discuia de mai sus este despre ATM n WAN-uri. ntr-un LAN lucrurile sunt mult mai simple. De exemplu, poate fi folosit o singur cale virtual pentru toate circuitele virtuale.

5.6.4 Categorii de servicii


Dup un numr considerabil de ncercri i greeli, pe la versiunea 4.0 a specificaiei ATM, devenea clar ce tipuri de trafic transportau reelele ATM i ce fel de servicii doreau clienii lor. n consecin, standardul a fost modificat astfel, nct s enumere explicit categoriile de servicii utilizate curent, pentru a permite distribuitorilor de echipament s-i optimizeze plcile adaptoare i

SEC. 5.6

NIVELUL REEA N REELE ATM

425

comutatoarele pentru unele sau pentru toate aceste categorii. Categoriile de servicii care au fost alese ra fiind irnportante sunt enumerate n Fig. 5-69,
Clasa CBR RT-VBR NRT-VBR ABR UBR Descriere
Transmitere cu vitez constant Transmitere cu vitez variabila: timp real Transmitere cu vitez variabil: nu este de timp real Transmitere cu vitez disponibil Transmitere cu vitez nespecificat

Exerhplu
circuit T1 Videoconferin de timp real Pota electronic multimedia Navigarea prin WEB Transfer de fiiere n fundal

Fig. 5-69. Categoriile de servicii ATM. Clasa CBR (Constant Bit Rate - Transmitere cu vitez constant) este destinat emulrii firului de cupru sau fibrei optice (dar cu un cost mult mai mare). Biii sunt introdui la un capt i apar la cellalt capt. Nu se fac verificarea erorilor, controlul fluxului sau alte prelucrri. Totui, aceast clas este esenial pentru a realiza o tranziie lin ntre sistemul telefonic de astzi i viitoarele sisteme B-ISDN, deoarece canalele PCM de band vocal, circuitele TI precum i cea mai mare parte din restul sistemului telefonic folosesc transmisie sincron de bii cu vitez constant. Datorit clasei CBR, tot acest trafic poate fi transportat direct de un sistem ATM. CBR este de asemenea potrivit pentru toate celelalte fluxuri interactive (adic de timp real) audio sau video. Urmtoarea clas, VBR (Variable Bit Rate - Transmitere cu vitez variabil), se mparte n dou subclase, pentru timp real i, respectiv, pentru servicii ce nu necesit timp real. RT-VBR este destinat serviciilor ce au viteze de transmitere variabile combinate cu cerine stringente de timp real, cum este video comprimat interactiv (de exemplu videoconferin). Datorit modului n care funcioneaz MPEG i alte scheme de compresie, cu un cadru de baz complet urmat de o serie de diferene ntre cadrul curent i cadrul de baz, viteza de transmisie variaz puternic n timp (Pancha i El Zarki, 1994). n ciuda acestei variaii, este esenial ca reeaua ATM s nu introduc fluctuaii n ordinea sosirii celulelor, altfel imaginea va aprea micat i intermitent. Cu alte cuvinte, att ntrzierea medie a celulelor ct i variaia ntrzierii celulelor trebuie sa fie strict controlate. Cealalt subclas VBR este pentru acel trafic pentru care sosirea la timp este important, dar o anumit fluctuaie poate fi tolerat de aplicaie. De exemplu, pota electronic multimedia este de regul transferat pe discul local al receptorului nainte de a fi afiat, astfel nct orice variaie n timpul de sosire al celulelor va fi eliminat nainte de vizualizare. Categoria de servicii ABR (Available Bit Rate - transmitere cu vitez disponibil) este proiectat pentru trafic n rafal pentru care este cunoscut, n mare, plaja de lrgime de band. Un exemplu tipic poate fi folosirea ntr-o companie care i conecteaz birourile printr-o colecie,de linii nchiriate. De regul, compania are alternativa de a avea capacitate suficient pentru a suporta sarcina de vrf, ceea ce nseamn c unele linii nu sunt utilizate o parte a zilei, sau de a instala doar capacitatea necesar pentru sarcina minim, ceea ce conduce la congestie n perioada cea mai solicitat a zilei. * Folosind serviciul ABR, se evit o opiune de lung durat pentru o lrgime de band fix. Cu ABR este posibil s spunem, de exemplu, c ntre dou puncte capacitatea trebuie s fie ntotdeauna de 5 Mbps, dar poate avea vrfuri pn la 10 Mbps. Sistemul va garanta tot timpul 5 Mbps i va face tot posibilul s ofere 10 Mbps cnd este nevoie, dar fr s promit acest lucru.

426

NIVELUL REEA

CAP. 5

ABR este singura categorie de servicii n care reeaua ofer transmitorului reacie la viteza de transmisie, cerndu-i s ncetineasc cnd se produce congestie. Presupunnd c transmitorul este de acord cu aceste cereri, este de ateptat ca pierderea de celule pentru traficul ABR s fie sczut. Traficul de tip ABR seamn puin cu zborul cu list de ateptare: dac au rmas locuri (capacitate n exces), atunci pasagerii n ateptare sunt transportai fr ntrziere. n cazul unei capaciti insuficiente, ei trebuie s atepte (n afara cazului n care este disponibil o parte din lrgimea de band minim). n final, ajungem la UBR (Unspecified Bit Rate - transmitere cu vitez nespecificat), care nu face nici o promisiune i nu reacioneaz n cazul congestiei. Aceast categorie este foarte potrivit pentru trimiterea de pachete IP, pentru c nici IP nu face nici o promisiune despre livrare. Toate celulele UBR sunt acceptate i dac exist capacitate disponibil, ele vor i ajunge. Dac se produce congestie, celulele UBR vor fi eliminate, fr nici o reacie ctre expeditor i fr sperana ca acesta s ncetineasc. Pentru a ne continua analogia cu lista de ateptare n cazul UBR, toi pasagerii aflai n ateptare urc la bord, dar, dac la jumtatea drumului spre destinaie pilotul observ c rmne fr combustibil, acetia sunt aruncai fr menajamente prin ieirea de urgen. Pentru a face UBR-ul tentant, purttorii tind s-1 fac mai ieftin dect celelalte clase. Pentru aplicaiile care nu au nici o constrngere de livrare i doresc oricum s-i realizeze propriul control al erorilor i propriul control al fluxului, UBR este o alegere perfect rezonabil. Transferul de fiiere, pota electronic, sau tirile USENET sunt toi candidai poteniali pentru serviciul UBR, deoarece nici una dintre aceste aplicaii nu are caracteristici de timp real. Proprietile diferitelor categorii de servicii sunt rezumate n Fig. 5-70.
Caracteristica serviciului Garanteaz lrgimea de band Potrivit pentru trafic de timp real Potrivit pentru trafic n rafal Reacie despre congestie

CBR Da Da Nu Nu

RT-VBR

NRT-VBR

ABR
Opional

Da Da Nu Nu

Da Nu Da Nu

Nu Da Da

UBR Nu Nu Da Nu

Fig. 5-70. Caracteristicile categoriilor de servicii ATM.


5.6.5 Calitatea serviciului

Calitatea serviciului este o caracteristic important pentru reelele ATM, n parte pentru c ele sunt folosite pentru trafic n timp real, cum este cel audio sau video. Cnd este stabilit un circuit virtual, att nivelul transport (de regul un proces n maina gazd, clientul") ct i nivelul reea ATM (de exemplu un operator de reea, purttorul") trebuie s fie de acord cu contractul ce definete un serviciu. n cazul unei reele publice, acest contract poate avea implicaii legale. De exemplu, dac purttorul este de acord s nu piard mai mult de o celul la un miliard i pierde dou celule la un miliard, serviciul juridic al clientului poate s se enerveze i s nceap s se agite serios, strignd nclcarea contractului."

5-6

NIVELUL REEA N REELE ATM

427

Contractul dintre client i reea are trei pri: 1. Traficul care va fi oferit. 2. Serviciul asupra cruia s-a czut de acord. 3. Clauzele contractuale. Merit de observat c acest contract poate fi diferit pentru fiecare direcie. Pentru o aplicaie video la cerere, lrgimea de band necesar de la telecomanda utilizatorului la serverul video poate fi de 1200 bps. n cealalt direcie ea poate fi de 5 Mbps. Ar trebui observat c dac clientul i purttorul nu pot s se pun de acord asupra termenilor sau purttorul nu este capabil s pun la dispoziie serviciul dorit, circuitul virtual nu va fi stabilit. Prima parte a contractului este descriptorul de trafic. El caracterizeaz ncrcarea care va fi oferit. A doua parte a contractului precizeaz care este calitatea serviciului dorit de client i acceptat de purttor. Att ncrcarea ct i serviciul trebuie formulate n termenii unor cantiti msurabile, astfel nct termenii acordului pot fi determinai obiectiv. Nu se poate s spunem doar ,.ncrcare moderat" sau serviciu bun". Pentru a face posibil existena contractelor de trafic concrete, standardul ATM definete, un numr de parametri QoS (Quality of Service - calitatea serviciului) ale cror valori pot fi negociate ntre client i purttor. Pentru fiecare parametru de calitate a serviciului este specificat performana n cazul cel mai defavorabil, iar purttorului i se cere s o ndeplineasc sau s o depeasc. n unele cazuri, parametrul este un minim; n altele el este un maxim. Din nou i aici, calitatea serviciului este specificat separat pentru fiecare direcie. Unii dintre cei mai importani parametri sunt enumerai n Fig. 5-71, dar nu toi sunt aplicabili la orice categorie de serviciu. Primii trei parametri precizeaz ct de repede dorete utilizatorul s trimit. PCR (Peak Cell Rate - viteza maxim de transmitere) este viteza maxim cu care emitorul i-a planificat s transmit celule. Acest parametru poate fi mai mic dect ceea ce permite lrgimea de band a liniei. Dac emitorul a planificat s trimit cte o celul la fiecare 4 usec, PCR-ul su este de 250.000 celule/sec, chiar dac timpul real de transmisie al celulei este de 2.7 usec. SCR (Sustained Cell Rate - viteza mediat de transmitere) este viteza de transmisie a celulelor, ateptat sau cerut, mediat pe un lung interval de timp. Pentru traficul CBR, SCR va fi egal cu PCR, dar pentru toate celelalte categorii de servicii ea va fi mult mai sczut. Raportul PCR/SCR este o msur a proprietii de rafal a traficului. MCR (Minimum Cell Rate - viteza minim de transmitere) este numrul minim de celule pe secund pe care clientul l consider acceptabil. Dac purttorul nu este capabil s garanteze c va asigura aceast lrgime de band, el va trebui s resping conexiunea. Cnd serviciul ABR este cerut, lrgimea de band real trebuie s fie ntre MCR i PCR, dar poate varia dinamic n timpul de via al conexiunii. Dac clientul i purttorul se neleg s fixeze parametrul MCR la 0, atunci serviciul ABR devine similar cu serviciul UBR. CVDT (Cell Variation Delay Tolerance - tolerana la variaiile n ntrzierile celulelor) spune ct de mult pot varia timpii de transmisie a celulelor. Este specificat separat pentru PCR i SCR. Pentru o surs perfect opernd la PCR, fiecare celul apare la exact 1/PCR dup cea anterioar. Nici o celul nu va aprea mai devreme i nici una nu va ntrzia, nici mcar cu o picosecund. Pentru o surs real opernd la PCR, vor exista unele variaii pentru timpii de transmitere a celulelor. ntrebarea este: ct de mare este variaia acceptabil? Poate pleca o celul cu 1 nsec mai devreme?

428

NIVELUL REEA

CAP. 5

Dar cu 30 de secunde? CDTV controleaz nivelul de variabilitate acceptabil folosind algoritmul gleii gurite (leaky bucket algorithm) ce va fi descris pe scurt.
Parametru Vitez maxim de transmitere Vitez mediat de transmitere Vitez minim de transmitere Toleran la variaiile n ntrzierile cel. Fraciunea de celule pierdute ntrzierea la transferul celulelor Variaia ntrzierilor celulelor Fraciunea celulelor cu erori Fraciunea blocurilor grav eronate Fraciunea celulelor rtcite Acronim PCR SCR MCR CDVT CLR CTD CDV CER SECBR CMR Semnificaie Vitez maxim la care vor fi emise celulele Media pe un timp lung a vitezei de transmitere a cel. Vitez minim acceptat de transmitere a celulelor Variaia maxim tolerat la emisa celulelor Fracia de celule pierdute sau livrate prea trziu Ct de mult dureaz livrarea (medie i maxim) Variaia n timpii de livrare a celulelor Fraciunea de celule livrate fr eroare Fraciunea de blocuri mutilate Fraciunea de celule livrate unei destinaii incorecte

Fig. 5-71. Civa parametri ai calitii serviciului. Urmtorii trei parametri descriu caracteristicile reelei i sunt msurai la receptor. Toi trei sunt negociabili. CLR (Cell Loss Ratio - fraciunea de celule pierdute) este simplu. El msoar fracia din celulele transmise care nu sunt primite de loc sau sunt livrate att de trziu, nct sunt nefolositoare (de exemplu pentru trafic de timp real). CTD (Cell Transfer Delay - ntrzierea la transferul celulelor) este timpul mediu de tranzit ntre surs i destinaie. CDV (Cell Delay Variation - variaia ntrzierilor celulelor) msoar ct de uniform sunt livrate celulele.

Timp de transfer

Celule pierdute sau livrate prea trziu

Fig. 5-72. Funcia de densitate a probabilitii pentru timpii de sosire a celulelor. Modelul pentru CDT i CDV este artat n Fig. 5-72. Aceasta prezint probabilitatea ca o celul s soseasc n timpul t, n funcie de t. Pentru o surs, o destinaie i un traseu prin comutatoarele intermediare date, exist ntotdeauna o anumit ntrziere minim datorat timpului de propagare i comutare. Totui, nu toate celulele ajung n timpul minim; funcia de densitate a probabilitii are n general o coad lung. Prin alegerea unei valori pentru CDT, clientul i purttorul se neleg de fapt asupra ntrzierii cu care poate fi livrat o celul pentru a fi totui considerat ca celul corect livrat.

SEC. 5.6

NIVELUL REEA N REELE ATM

429

n mod normal, CDVva fi ales astfel, nct a, fraciunea de celule care sunt respinse pentru c au 10 ajuns prea trziu, s fie de ordinul IO' sau mai mic. CDV msoar dispersia timpilor de sosire. Pentru traficul de timp real, acest parametru este adesea mai important dect CDT. Ultimii trei parametrii QoS precizeaz caracteristicile reelei. n general ei nu sunt negociabili. CER (Cell Error Ratio - fraciunea celulelor cu erori) este fracia de celule care sunt livrate cu unul sau mai muli bii eronai. SECBR (Severely-Errored Cell Block Ratio - fraciunea blocurilor grav eronate) este fracia de blocuri de N celule dintre care M sau mai multe celule conin o eroare. n sfrit, CMR (Cell Misinsertion Rate - fraciunea celulelor prost plasate) este numrul de celule/sec care sunt livrate unei destinaii incorecte datorit unei erori nedetectate din antet. A treia parte a contractului de trafic precizeaz ce nseamn a respecta regulile. Dac clientul trimite o celul prea devreme, anuleaz aceasta contractul? Dac purttorul nu reuete s respecte una dintre cerinele de calitate pe o perioad de 1 ms, poate clientul s-1 urmreasc n justiie? De fapt, aceast parte a contractului este negociat ntre pri i spune ct de strict vor fi respectate primele dou pri ale contractului. Calitatea ATM i Internet a modelelor de servicii difer ntructva, ceea ce se reflect n implementrile fiecruia. Modelul ATM se bazeaz strict pe conexiune, n timp ce modelul Internet folosete datagrame plus fluxuri (e.g. RSVP). O comparaie ntre aceste dou modele este oferit n (Crowcroft.a.,1995).

5.6.6 Modelarea traficului i politici de trafic


Mecanismul pentru folosirea i impunerea parametrilor de calitate a serviciului se bazeaz (parial) pe un algoritm specific, Algoritmul vitezei generice de transmitere (engl. Generic Cell Rate Algorithm, GCRA) i este ilustrat n Fig. 5-73. El funcioneaz prin verificarea fiecrei celule pentru a vedea dac se conformeaz parametrilor pentru circuitul ei virtual. GCRA are doi parametrii. Acetia specific viteza maxim de sosire permis (PCR) i nivelul de variaie tolerabil (CDVT). Inversa lui PCR, T = 1/PCR, este timpul minim dintre sosirile celulelor, aa. cum se arat n Fig. 5-73(a). Dac clientul este de acord s nu trimit mai mult de 100.000 de celule/sec, atunci T = 10 usec. n cazul extrem, la fiecare 10 nsec va sosi cu promptitudine o celul. Pentru a evita numere mici, vom lucra cu microsecunde, dar toi parametrii sunt numere reale, aa c unitatea de timp nu conteaz. Unui emitor i este ntotdeauna permis s spaieze dou celule consecutive cu o durat mai mare dect T, aa cum se vede n Fig. 5-73(b). Fiecare celul ce sosete cu mai mult de T |isec dup cea anterioar este acceptat. Se ivesc probleme cu emitorii care tind s fie mai rapizi, ca n Fig. 5-73(c) i (d). Dac o celul sosete puin mai devreme (la ti + T - L sau mai trziu), ea este acceptabil, dar urmtoarea celul este ateptat tot la ti + 2T, (nu la t2 + T), pentru a nu permite emitorului s transmit fiecare celul cu L jisec mai devreme, crescnd astfel viteza maxim de transmitere. Dac o celul sosete cu mai mult de L secunde nainte, este declarat inacceptabil. Tratamentul celulelor inacceptabile depinde de purttor. Unii purttori le pot elimina pur i simplu; alii le pot pstra, dar nscriu bitul CLP, pentru a le marca cu prioritate joas i a permite comutatoarelor ca la producerea unei congestii s renune mai nti la celulele inacceptabile. Utilizarea bitului CLP poate s fie i ea diferit pentru diferitele categorii de servicii din Fig. 5-69.

430

NIVELUL REEA

CAP. 5

Timp-

Celul

(a)

Cazul extrem. Celula 2 sosete cu T sec. dup celula 1 Celula 3 este ^ ateptat la t2 + T

(b)

Emitor lent. Celula 2 sosete cu mai mult de T sec. dup celula 1 Celula 3 este _ +\*^ ateptat la t 2 + T T

(O

Emitor rapid. Celula 2 ajunge mai devreme cu pn la L sec. Celula 3 este ateptat la t, + 2T

-T-

Emitor foarte rapid.. Celula 2 ajunge mai devreme de ti + T- L. Celula este necorespunztoare..

Celula 3 este ateptat la t, + T

Fig. 5-73. Algoritmul vitezei generice de transmitere. S considerm acum ce se ntmpl dac un emitor ncearc s trieze puin, aa cum se arat n Fig. 5-74(a). n loc s atepte un timp T nainte de a trimite celula 2, emitorul o trimite un pic mai devreme, la T- z, unde presupunem c e = 0.3L. Aceast celul este acceptat fr probleme. Apoi emitorul transmite celula 3, din nou la T - e dup celula anterioar, adic la T - 2e. i aceasta este acceptat. Cu toate acestea, fiecare dintre celulele succesive se apropie pas cu pas de limita fatal T - L. Astfel, celula 5 sosete la T - 4e (T - 1.2L), ceea ce nseamn prea devreme, deci celula 5 este declarat inacceptabil i este eliminat de interfaa reea.

SEC. 5.6

NIVELUL REEA IN REELE ATM,

431

Timp

2T
T-eT-e-

3T

4T

5T

T-8"
T-e-

T-8
B84
. - l .:.:..;.: .:;:

xo

Iii
3eh(a)

8|
c a

8 ai
c
4E 5E

Marginea gleii IE o

-T

, "X

(b)

Fig.5-74. (a) Un emitor care ncearc s trieze, (b) Acelai model de sosire a celulelor, vzut acum n termenii unei glei gurite. Cnd este vzut n aceti termeni, algoritmul GCRA se numete algoritm de planificare virtual (engl. virtual scheduling algorithm). Totui, privit altfel, el este echivalent cu un algoritm al gleii gurite, aa cum este ilustrat n Fig. 5-74(b). S ne imaginm c fiecare celul conform care sosete toarn T uniti ntr-o gleat gurit. Gleata pierde lichidul cu o vitez de 1 unitate/nsec, astfel c dup T usec tot lichidul s-a scurs. Dac celulele sosesc exact la fiecare T nsec, fiecare sosire a unei celule va gsi gleata golit (tocmai n acel moment) i o va reumple cu T uniti de lichid. Astfel, nivelul lichidului crete la T cnd sosete o celul i scade liniar pn cnd ajunge la zero. Aceast situaie este prezentat n Fig. 5-74(b) ntre 0 i T. Dac lichidul se scurge liniar n timp, la un timp t dup sosirea unei celule, cantitatea de fluid rmas este T -1. In momentul sosirii celulei 2, la T - s, n gleat mai sunt e uniti de lichid.
A A

Adugarea unei noi celule crete aceast valoare la T + E. In mod similar, n momentul sosirii celulei 3, 2e uniti au rmas n gleat, deci sosirea noii celule ridic nivelul lichidului la T + 2E. Cnd celula 4 sosete, nivelul crete la T + 3e. Dac aceasta se repet la infinit, una dintre celule va crete nivelul peste capacitatea gleii i prin urmare va fi respins. Pentru a vedea care este acea celul, s calculm acum care este capacitatea gleii. Dorim ca algoritmul gleii gurite s dea acelai rezultat ca Fig. 5-74(a),

432

NIVELUL REEA

CAP. 5

deci vrem ca revrsarea s se produc cnd o celul sosete cu L usec mai devreme. Dac fluidul rmas necesit L usec pentru a se scurge, cantitatea de fluid trebuie s fie L, deoarece viteza de scurgere este 1 unitate/usec. Aadar, dorim o capacitate a gleii de L + T, astfel nct orice celul ce va sosi mai devreme cu mai mult de L usec va fi respins datorit depirii capacitii gleii. n Fig. 5-74(b), cnd sosete celula 5, adugarea a T uniti la cele 4e uniti deja existente ridic nivelul gleii la T + 4e. Pentru c n acest exemplu folosim valoarea e = 0.3L, prin adugarea celulei 5, nivelul ar crete la T + 4e, astfel c celula este respins^nu se mai adaug lichid i gleata se va putea goli n cele din urm. Pentru un Jdat, dac alegem L foarte mic, capacitatea gleii va fi doar cu puin mai mare dect T, deci toate celulele trebuie s fie emise la intervale uniforme. Pe de alt parte, dac cretem L la o valoare mult mai mare dect T, gleata poate gzdui multe celule deoarece T + L >> T. Aceasta nseamn c emitorul poate trimite o rafal de celule succesive, transmise cu viteza maxim i acestea s fie totui acceptate. Putem cu uurin s calculm numrul celulelor conforme, N, care pot s fie transmise succesiv cu viteza maxim de transmitere (PCR = l/J). n timpul unei rafale de N celule, cantitatea total de lichid adugat gleii este NT, deoarece fiecare celul adaug T. Totui, n timpul rafalei maxime, lichidul se scurge din gleat cu viteza de 1 unitate pe intervalul de timp. S considerm c timpul de transmitere al unei celule este de 8 uniti de timp. S observm c 5 < T pentru c este perfect posibil ca un emitor pe o linie de 155,52 Mbps s fie de acord s trimit maxim 100.000 celule/sec, caz n care 8 = 2.73 usec i T = 10 usec. n timpul rafalei de N celule, cantitatea scurs este (N -1)8, deoarece scurgerea nu ncepe pn cnd prima celul nu a fost transmis n ntregime. Pornind de la aceste observaii, obinem c n timpul rafalei maxime, creterea net de lichid din gleat esteiVT- (N-1)8. Capacitatea gleii este T + L. Egalnd aceste dou cantiti, obinem:

NT-(N-l)b = T + L
Rezolvnd aceast ecuaie n N, obinem:

T-6
Totui, dac numrul nu este ntreg, el trebuie rotunjit inferior la un ntreg, pentru a preveni revrsarea gleii. De exemplu, pentru PCR = 100.000 de celule/sec, 8 = 2,73 usec i L = 50 usec, pot fi trimise apte celule succesive cu viteza de 155,52 Mbps fr a umple gleata. O a opta celul nu ar fi acceptat. Algoritmul GCRA este specificat n mod normal dac se dau parametrii TiL.T i PCR sunt mrimi reciproce; L este CDVT. Algoritmul este folosit i pentru a asigura c viteza medie a celulelor nu depete SCR pentru nici o perioad de timp mai ndelungat. n acest exemplu am presupus c celulele sosesc uniform. n realitate nu se ntmpl aa. Cu toate acestea, algoritmul gleii gurite poate fi folosit i n acest caz. La fiecare sosire a unei celule, se verific dac este loc n gleat pentru T uniti suplimentare de lichid. Dac este, celula este acceptabil; altfel nu. n plus fa de stabilirea unei reguli referitoare la celulele acceptabile i la cele inacceptabile, GCRA modeleaz de asemenea traficul pentru a elimina o parte din caracteristicile de rafal. Cu

SEC. 5.6

NIVELUL REEA IN REELE ATM

433

ct este mai mic CDVT, cu att este mai mare efectul de netezire, dar crete i ansa ca celulele s fie eliminate ca necorespunztoare. Unele implementri combin gleata gurit GCRA cu o gleat cu jetoane (token bucket), pentru a oferi o netezire mai mare.

5.6.7 Controlul congestiei


Chiar n prezena modelrii traficului, reelele ATM nu ating automat cererile de performan prevzute n contractul de trafic. De exemplu congestia la comutatoarele intermediare este ntotdeauna o problem posibil, mai ales cnd mai mult de 350.000 de celule/sec se nghesuie pe fiecare linie i un comutator poate avea 100 de linii. Prin urmare, s-a acordat o atenie deosebit performanei i congestiei n reelele ATM. n aceast seciune, vom discuta unele dintre abordrile folosite. Pentru informaii adiionale, vezi (Eckberg, 1992; Eckberg .a., 1991; Hong i Suda, 1991; Jain, 1995; i Newman, 1994). Reelele ATM trebuie s fac fa att la congestiile pe termen lung, cauzate de un trafic incident mai mare dect poate trata sistemul, ct i la congestii pe termen scurt, cauzate de traficul n rafal. n consecin, mai multe strategii diferite sunt utilizate mpreun. Cele mai importante dintre acestea aparin uneia din urmtoarele trei categorii: 1. Controlul admiterii. 2. Rezervarea resursei. 3. Controlul congestiei n funcie de vitez. Vom discuta pe rnd fiecare strategie.

Controlul admiterii
n reelele de vitez mic, este de obicei adecvat s se atepte pn la apariia congestiei i apoi, ca reacie la aceasta, s i se spun sursei pachetelor s ncetineasc transmisia. n reelele de mare vitez, aceast abordare nu d de obicei rezultate bune, deoarece n intervalul dintre trimiterea notificrii i sosirea notificrii la surs, pot sosi mii de pachete suplimentare. Mai mult, multe reele ATM au surse de trafic de timp real care produc date cu o vitez intrinsec. A-i spune unei astfel de surse s ncetineasc transmisia poate s nu aib nici un efect (imaginai-v un nou telefon digital care are un becule rou; cnd este semnalat congestia, lumina roie se aprinde i vorbitorului i se cere s vorbeasc cu 25 la sut mai rar). n consecin, reelele ATM pun accentul n primul rnd pe prevenirea apariiei congestiilor. Cu toate acestea, pentru traficul CBR,VBR i UBR, nu exist nici un control dinamic al congestiei, deci n aceast situaie o uncie de prevenire valoreaz ct o livr (de fapt, mai curnd ct o ton) de vindecare. Un procedeu de baz pentru prevenirea congestiei este controlul admiterii. Cnd o gazd dorete un nou circuit virtual, aceasta trebuie s descrie traficul care va fi oferit i serviciul ateptat. Reeaua poate verifica apoi dac este posibil s trateze aceast conexiune fr a afecta negativ conexiunile existente. Poate fi necesar s se analizeze multiple trasee posibile pentru a gsi unul corespunztor. Dac nu poate fi gsit nici un traseu, cererea este respins. Refuzul admiterii ar trebui s fie cinstit. Este drept ca un individ care penduleaz ntre zeci de programe de televiziune s poat mtura 100 de persoane ocupate care ncearc s-i citeasc pota

434

NIVELUL REEA

CAP. 5

electronic? Dac nu se aplic nici un control, un numr mic de utilizatori de band larg pot afecta sever muli utilizatori cu lrgimi de band mici. Pentru a preveni aceast situaie, utilizatorii ar trebui s fie mprii n clase pe baza folosirii reelei. Probabilitatea refuzrii serviciului ar trebui s fie cam aceeai pentru toate clasele (de exemplu, dac i se atribuie fiecrei clase propriile resurse). Rezervarea resurselor Strns legata de controlul admiterii este tehnica de rezervare a resurselor n avans, de obicei la momentul stabilirii apelului. Deoarece descriptorul de trafic conine viteza maxim de transmitere, reeaua are posibilitatea de a rezerva suficient lrgime de band de-a lungul cii ca s suporte aceast vitez. Lrgimea de band poate fi rezervat dac mesajul SETUP marcheaz lrgimea de band de-a lungul fiecrei linii pe care o traverseaz, asigurndu-se, evident, c lrgimea de band total rezervat de-a lungul unei linii este mai mic dect capacitatea acelei linii. Dac mesajul SETUP ntlnete o linie care este ocupat, el se va ntoarce pe drumul pe care a venit i va cuta o alt cale. Descriptorul de trafic poate conine, pe lng lrgimea de band maxim i lrgimea de band medie. Dac o gazd dorete, de exemplu, o lrgime de band maxim de 100.000 de celule/sec, dar lrgimea de band medie este de numai 20.000 de celule/sec, se pot multiplexa n principiu cinci astfel de circuite pe acelai trunchi fizic. Problema este c cele cinci conexiuni pot fi inactive timp de jumtate de or, ca apoi s nceap s transmit n rafal la viteza maxim, cauznd pierderi masive de celule. ntruct traficul VBR poate fi multiplexat statistic, pot apare probleme cu aceast categorie de servicii. Sunt studiate soluii posibile. Controlul congestiei bazat pe vitez Pentru traficul CBR i VBR, nu este n general posibil ca emitorul s ncetineasc, chiar n cazul unei congestii, datorit particularitilor de timp real sau semi-real ale sursei de informaie. Pentru UBR, nu conteaz; dac sunt prea multe celule, cele suplimentare sunt pur i simplu eliminate. Totui, pentru traficul ABR, este posibil i logic ca reeaua s anune unul sau mai muli emitori i s le cear s ncetineasc temporar, pn cnd reeaua se poate reface. Este n interesul emitorului s se conformeze, deoarece reeaua l poate pedepsi ntotdeauna, eliminndu-i celulele (n exces). Modul n care poate fi detectat, semnalat i controlat congestia pentru traficul ABR a constituit un subiect disputat n timpul dezvoltrii standardului ATM, cu argumente puternice pentru diferitele soluii propuse. S aruncm o privire rapid la unele dintre soluiile care au fost repede respinse, nainte de o examina pe cea ctigtoare. ntr-una din propuneri, de cte ori emitorul dorete s trimit o rafal de date, trebuie s trimit mai nti o celul special pentru rezervarea lrgimii de band necesare. Dup ce se primete confirmarea, rafala poate ncepe. Avantajul este c nu apare niciodat congestie, deoarece lrgimea de band necesar este ntotdeauna disponibil acolo unde este nevoie de ea. Forumul ATM a respins aceast soluie datorit ntrzierii mari care poate s intervin nainte ca o gazd s poat ncepe s transmit. O a doua propunere presupunea comutatoare care s trimit napoi celule de oc de cte ori congestia ncepe s se produc. Se presupune c, la primirea unei astfel de celule, un emitor

SEC. 5.6

NIVELUL REEA IN REELE ATM

435

reduce la jumtate viteza curent de transmisie a celulelor. Au fost propuse diferite scheme pentru a readuce viteza la valoarea sa anterioar atunci cnd congestia a fost rezolvat. Aceast tactic a fost respins, deoarece celulele de oc se pot pierde n congestie i datorit faptului c pare necinstit fa de utilizatorii mici. De exemplu, s considerm un comutator primind fluxuri de cte 100-Mbps de la cinci utilizatori i un flux de 100-kbps de la alt utilizator. Muli membrii ai comisiei au considerat incorect s i se spun utilizatorului cu 100 kbps s renune la 50 kbps pentru c producea prea mult congestie. O a treia propunere folosea faptul c frontierele pachetelor sunt marcate de un bit n ultima celul. Ideea era s se elimine celule pentru a se micora congestia, dar eliminarea s fie foarte selectiv. Comutatorul trebuia s exploreze fluxul de celule care intr, pn gsea sfritul pachetului i apoi s nlture toate celulele din urmtorul pachet. Desigur, acest pachet va trebui retransmis mai trziu, dar eliminarea tuturor celor k celule dintr-un pachet conduce n cele din urm la retransmisia unui singur pachet, ceea ce este mult mai bine dect eliminarea la ntmplare a k celule, care ar putea determina k retransmisii de pachete. Aceast schem a fost respins din raiuni de echitate, deoarece urmtorul marcaj de sfrit de pachet ntlnit poate s nu aparin emitorului care a ncrcat excesiv comutatorul. De asemenea, nu este nevoie ca schema s fie standardizat. Oricare furnizor de comutatoare este liber s aleag celulele care vor fi eliminate atunci cnd apare congestia. Dup multe discuii, lupta s-a dat ntre doi pretendeni, o soluie bazat pe credite (Kung i Morris, 1995) i o soluie bazat pe viteze (Bonomi i Fendick, 1995). Soluia bazat pe credite era n principal un protocol dinamic cu fereastr glisant. El solicit ca fiecare comutator s menin, pe circuit virtual, un credit - de fapt numrul de zone tampon rezervate pentru acel circuit. Att timp ct fiecare celul transmis are un tampon care o ateapt, congestia nu va putea aprea niciodat. Argumentul mpotriva soluiei a venit de la furnizorii de comutatoare. Ei nu doreau s fac toate nregistrrile pentru a ine evidena tuturor creditelor i nu doreau s rezerve att de multe tampoane n avans. S-a considerat c efortul suplimentar i risipa implicat sunt prea mari, aa c n cele din urm a fost adoptat schema de control al congestiei bazat pe vitez. Aceasta funcioneaz n felul urmtor.
Direcia fluxului de date Emitor ") Receptor

.'

Calea urmat de celulele RM

Comutator ATM

Fig. 5-75. Calea urmat de celulele RM. Modelul de baz este c dup fiecare k celule de date, fiecare emitor transmite o celul special RM (Resource Management - administrarea resurselor). Aceast celul cltorete de-a lungul aceleiai ci ca i celulele de date, dar este tratat special de comutatoarele aflate de-a lungul drumului. Cnd ajunge la destinaie, este examinat, actualizat i trimis napoi la emitor. Calea complet pentru celulele RM este artat n Fig. 5-75.

436

NIVELUL REEA

CAP. 5

n plus, sunt prevzute alte dou mecanisme de control al congestiei. Mai nti, comutatoarele suprasolicitate pot genera n mod spontan celule RM i le pot trimite napoi la emitor. In al doilea rnd, comutatoarele suprancrcate pot nscrie bitul PTI median pentru celulele de date ce se deplaseaz de la emitor la receptor. Totui, nici una dintre aceste metode nu este n ntregime fiabil, pentru c aceste celule pot fi pierdute n congestie fr ca cineva s sesizeze. n contrast, emitorul va sesiza o celul RM pierdut cnd aceasta nu se ntoarce n intervalul de timp prevzut. Pe de alt parte, bitul CLP nu este folosit pentru controlul congestiei ABR. Controlul congestiei ABR se bazeaz pe ideea c fiecare emitor are o vitez curent, ACR (Actual Cell Rate - viteza curent de transmisie a celulelor), care se situeaz ntre MCR i PCR. Cnd apare congestia, ACR este redus (dar nu sub MCR). n absena congestiei, ACR este crescut (dar nu peste PCR). Fiecare celul RM transmis conine viteza la care emitorul ar dori s transmit n mod curent, eventual PCR, eventual mai mic. Aceast valoare este numit ER (Explicit Rate - vitez explicit). Cnd celula RM trece prin diferite comutatoare pe drumul spre receptor, acelea care sunt congestionate pot reduce ER. Nici un comutator nu l poate mri. Reducerea poate fi fcut fie pe calea direct, fie pe cea invers. Cnd emitorul primete napoi celula RM, el poate vedea care este viteza minim acceptabil n conformitate cu toate comutatoarele aflate de-a lungul cii. El poate apoi s modifice ACR, dac este nevoie, pentru a-1 face s corespund cu ceea ce poate suporta comutatorul cel mai lent. Mecanismul pentru congestii care folosete bitul PTI median este integrat n celulele RM deoarece receptorul include acest bit (luat din ultima celul de date) n fiecare RM care este trimis napoi. Bitul nu poate fi luat din celula RM pentru c toate celulele RM au acest bit poziionat tot timpul, aa cum se vede n Fig. 5-63. Nivelul ATM este destul de complicat. n acest capitol am evideniat numai o parte din probleme. Pentru informaii suplimentare, vezi (De Prycker, 1993; McDysan i Spohn, 1995; Minoli i Vitela, 1994; i La Porta .a., 1994). ns cititorul trebuie prevenit c toate aceste referine discut standardul ATM 3 i nu standardul ATM 4, care nu a fost terminat pn n 1996. 5.6.8 LAN-uri ATM Deoarece devine din ce n ce mai clar c va trece o foarte lung perioad de timp pn la realizarea scopului iniial al ITU, de a nlocui reeaua telefonic comutat public printr-o reea ATM, atenia se mut spre folosirea tehnologiei ATM pentru a conecta LAN-uri existente. n aceast viziune, o reea ATM poate funciona fie ca un LAN, conectnd gazde individuale, fie ca o punte, conectnd mai multe LAN-uri. Dei amndou conceptele sunt interesante, ele ridic unele probleme pe care le vom discuta n continuare. Informaii suplimentare despre LAN-uri ATM se pot gsi n (Chao .a., 1994; Newman, 1994; Truong .a.,1995). Problema major care trebuie rezolvat este cumjs se pun la dispoziie servicii LAN fr conexiuni peste o reea ATM orientat pe conexiuni. O^olutie^osibil este s introducem un server &rnejduni.m reea. Fiecare gazd stabilete iniial o conexiune cu acest sever i trimite toate' pachetele la el pentru retransmisie. Dei simpl, aceast soluie nu folosete ntreaga lrgime de band a unei reele ATM, iar serverul fr conexiuni poate deveni cu uurin o gtuire. O abordare alternativ, propus de Forumul ATM, este ilustrat n Fig. 5-76. Aici fiecare gazd are un circuit ATM virtual (potenial) care o leag de fiecare alt gazd. Aceste circuite virtuale pot fi stabilite i desfiinate n mod dinamic, dup cum sunt necesare, sau pot fi circuite virtuale

SEC.5.6

NIVELUL REEA N REELE A T M

437

permanente. Pentru a trimite un cadru, o gazd surs ncapsuleaz mai nti pachetul n cmpul cu informaia util al unui mesaj ATM AAL i l trimite ctre destinaie, la fel cum cadrele sunt trimise pe reele Ethernet, token ring i alte LAN-uri.
azd

1
LES-ul realizeaz cutarea adreselor

-.

BUS-ul realizeaz difuzarea

Fig. 5-76. Emularea LAN ATM. Principala problem introdus de aceast schem este cum s se spun care IP (sau alt adres a nivelului reea) aparine crui circuit virtual. ntr-un LAN 802, aceast problem este rezolvat de protocolul ARP, n care o gazd poate difuza o cerere cum este: "Cine are adresa IP 192.31.20.47?" Gazda care folosete aceast adres trimite un rspuns punct-la-punct, care este memorat pentru folosire ulterioar. La un LAN ATM, aceast soluie nu este posibil, deoarece LAN-urile ATM nu suport difuzare. Aceast problem este rezolvat prin introducerea unui nou server, LES (LAN Emulation Server - Server pentru emulare LAN). Pentru a cuta o adres de nivel reea (adic o adres IP), o gazd trimite un pachet (adic o cerere ARP) la LES, care caut apoi adresa ATM corespunztoare i o returneaz mainii care a cerut-o. Aceast adres poate fi dup aceea folosit pentru trimiterea pachetelor ncapsulate la destinaie, f S-^^fc-J Totui, aceast soluie rezolv numai problema localizrii gazdei. Unele programe folosesc difuzarea sau trimiterea multipl ca o parte esenial a aplicaiei. Pentru aceste aplicaii, este introdus BUS-ul (Broadcast/Unknown Server - difuzare/server necunoscut). El are conexiuni cu toate gazdele i poate simula difuzarea prin trimiterea unui pachet, pe rnd, la fiecare dintre acestea. Gazdele pot de asemenea s grbeasc livrarea unui pachet ctre o gazd necunoscut, prin trimiterea pachetului la BUS, pentru a-1 difuza i apoi (n paralel) prin cutarea adresei (pentru o utilizare viitoare) folosind LES. Un model similar cu acesta a fost adoptat de IETF ca mod oficial n care Internet-ul utilizeaz o reea ATM pentru transportul pachetelor IP. n acest model serverul LES este numit server ATMARP, dar funcionarea este n principiu aceeai. Difuzarea i trimiterea multipl nu sunt

438

NIVELUL REEA

CAP. 5

prevzute n propunerea IETF. Modelul este descris n RFC 1483 i RFC 1577.0 alt surs bun de informaii este (Corner, 1995). In cazul metodei IETF, o mulime de gazde ATM pot fi grupate ntr-o subreea IP logic (logical IP subnet). Fiecare LIS are propriul su server ATMARP. De fapt, un LIS se comport ca un LAN virtual. Gazde din acelai LIS pot schimba pachete IP direct, dar gazde de pe LIS-uri diferite trebuie s foloseasc un ruter. Motivul pentru care exist LIS-uri este c fiecare gazd ce face parte dintr-un un LIS trebuie (potenial) s aib un circuit virtual deschis ctre orice alt gazd de pe acelai IJS. Prin limitarea numrului de gazde per LIS, numrul de circuite virtuale poate fi redus la o valoare uor de gestionat. Alt utilizare a reelelor ATM este folosirea lor ca puni pentru conectarea LAN-urilor existente. n aceast configuraie, numai o main aparinnd fiecrui LAN are nevoie de o conexiune ATM. La fel ca toate punile transparente, puntea ATM trebuie s asculte neselectiv toate LAN-urile la care este ataat, retransmind cadrele unde este necesar. Deoarece punile folosesc numai adrese MAC (nu adrese IP), punile ATM trebuie s construiasc un arbore de acoperire, la fel ca punile 802. Pe scurt, cu toate c emularea LAN ATM este o idee interesant, exist ndoieli serioase n ceea cejmyete performana i preul, iar LAN-urile i punile existente, care sunt bine stabilite i foarte mult optimizitesunt n mod cert concureni puternici. Rmne de vzut dac LAN-urile i punile ATM vor nlocui vreodat LAN-urile i punile 802.

5.7

REZUMAT

Nivelul reea furnizeaz servicii nivelului transport. El se poate baza fie pe circuite virtuale, fie pe datagrame. n ambele cazuri, sarcina sa principal este dirijarea pachetelor de la surs la destinaie. n subretele bazate pe circuite virtuale, o decizie de dirijare se ia cnd este stabilit circuitul. n subretele bazate pe datagrame, decizia este luat pentru fiecare pachet. n reelele de calculatoare sunt folosii muli algoritmi de dirijare. Dirijarea pe calea cea mai scurt, inundarea, sau dirijarea bazat pe flux sunt algoritmi statici. Dirijarea dup vectorul distanelor i dirijarea dup starea legturii sunt algoritmi dinamici. Cele mai noi reele folosesc unul dintre aceti algoritmi. Alte subiecte importante legate de reele sunt: dirijarea ierarhic, dirijarea pentru sisteme gazd mobile, dirijarea pentru difuzare i dirijarea multidestinaie. Subreelele pot deveni congestionate, mrind ntrzierea i micornd productivitatea pentru pachete. Proiectanii reelelor ncearc s evite congestia printr-o proiectare adecvat. Tehnicile includ modelarea traficului, specificaia fluxului i rezervarea lrgimii de band. Dac apare congestia, ea trebuie s fie tratat. Pot fi trimise napoi pachete de oc, ncrcarea poate fi eliminat sau se pot aplica alte metode. Reelele difer prin multe caracteristici, aa c atunci cnd se conecteaz mai multe reele, pot s apar probleme. Uneori problemele pot fi evitate prin trecerea ca prin tunel a unui pachet printr-o reea ostil, dar dac reeaua surs si cea destinaie difer, aceast abordare eueaz. Atunci cnd reele diferite au dimensiunile maxime ale pachetelor diferite, se poate produce fragmentarea. Internet-ul posed o mare varietate de protocoale legate de nivelul reea. Acestea includ protocolul de transport al datelor, IP, dar i protocoalele de control ICMP, ARP i RARP i protocoalele de dirijare OSPF i BGP. Internet-ul rmne foarte repede fr adrese IP, aa c s-a dezvoltat o nou versiune de IP, IPv6.

SEC. 5.8

PROBLEME

439

Spre deosebire de Internet, care se bazeaz pe datagrame, reelele ATM folosesc n interior circuite virtuale. Acestea trebuie s fie stabilite nainte de transferul datelor i desfiinate dup ce transmisia s-a ncheiat. Calitatea serviciului i controlul congestiei sunt problemele principale ale reelelor ATM.

5.8 PROBLEME
1. Dai dou exemple de aplicaii pentru care este adecvat un serviciu orientat pe conexiune. Apoi dai dou exemple pentru care un serviciu fr conexiuni este cel mai potrivit.

2. Exist anumite mprejurri n care un serviciu cu circuit virtual va (sau cel puin ar putea) livra pachetele n alt ordine? Explicai. 3. Subreelele bazate pe datagrame dirijeaz fiecare pachet ca pe o unitate separat, independent de toate celelalte. Subreelele bazate pe circuite virtuale nu trebuie s fac acest luciu, pentru c fiecare pachet de date urmeaz o cale anterior determinat. Oare aceast observaie nseamn c subreelele bazate pe circuite virtuale nu au nevoie de capacitatea de a dirija pachetele izolate de la o surs arbitrar ctre o destinaie arbitrar? Explicai rspunsul dat. 4. Dai trei exemple de parametri ai protocolului care ar putea fi negociai atunci cnd este iniiat o conexiune. 5. Considerai urmtoarea problem de proiectare, privind implementarea unui serviciu cu circuit virtual. Dac n interiorul unei subretele sunt folosite circuite virtuale, fiecare pachet de date trebuie s conin un antet de 3 octei, iar fiecare ruter trebuie s aloce 8 octei de memorie pentru identificarea circuitelor. Dac intern sunt folosite datagrame, sunt necesare antete de 15 octei, dar nu este nevoie de spaiu pentru tabela r-uterului. Capacitatea de transmisie cost 1 cent per 106 octei, per salt. Memoria ruterului poate fi cumprat pentru 1 cent per octet i se depreciaz peste doi ani (considernd numai orele de funcionare). Din punct de vedere statistic, o sesiune medie dureaz 1000 de secunde, iar n acest timp sunt transmise 200 de pachete. Un pachet mediu are nevoie de patru salturi. Care implementare este mai ieftin i cu ct?

6. Presupunnd c toate ruterele i gazdele funcioneaz normal i c ntregul software din rutere i gazde nu conine nici o eroare, exist vreo ans, orict de mic, ca un pachet s fie livrat unei destinaii greite? 7. Formulai o euristic simpl pentru gsirea a dou ci de la o surs dat la o destinaie dat care pot supravieui pierderii oricrei linii de comunicaie (presupunnd c dou astfel de ci exist). Ruterele sunt considerate suficient de fiabile, deci nu este necesar s ne ngrijoreze posibilitatea cderii ruterelor. 8. Considerai subreeaua din Fig. 5-15(a). Se folosete dirijarea dup vectorul distanelor i urmtorii vectori tocmai au sosit la rutenii C: de la B: (5,0, 8,12, 6, 2); de la D: (16,12,6,

440

NIVELUL REEA

CAP. 5

0, 9, 10); i de la E: (7, 6, 3, 9, 0, 4). ntrzierile msurate ctre B, D i E, sunt 6, 3 i respectiv 5. Care este noua tabel de dirijare a lui C? Precizai att linia de ieire folosit, ct i ntrzierea presupus. 9. Dac ntrzierile sunt nregistrate ca numere de 8 octei ntr-o reea cu 50 de rutere i vectorii cu ntrzieri sunt schimbai de dou ori pe secund, ct din lrgimea de band a unei linii (duplex integral) este consumat de algoritmul distribuit de dirijare? Presupunei c fiecare ruter are trei linii ctre alte rutere. 10. n Fig. 5-16 rezultatul operaiei SAU logic a celor dou mulimi de bii ACF este 111 n fiecare linie. Este acesta doar un accident ntmplat aici sau este valabil pentru toate subreelele, n toate mprejurrile? 11. La dirijarea ierarhic cu 4800 de rutere, ce dimensiuni pentru regiune i grup ar trebui alese pentru a minimiza dimensiunea tabelei de dirijare pentru o ierarhie cu trei nivele? 12. In text s-a afirmat c atunci cnd un sistem gazd mobil nu este acas, pachetele trimise ctre LAN-ul de domiciliu sunt interceptate de agentul su local. Pentru o reea IP pe un LAN 802.3, cumva realiza agentul local aceast interceptare? 13. Privind subreeaua din FIG.5-5, cte pachete sunt generate de o difuzare de la B, folosind: a) urmrirea cii inverse? b) arborele de scufundare? 14. Calculai un arbore de acoperire pentru trimitere multipl pentru ruterul C din reeaua de mai jos pentru un grup cu membrii la ruterele A, B, C, D, E, F, I i K.

15. Ca un posibil mecanism de control al congestiei ntr-o subreea ce folosete intern circuite virtuale, un ruter poate amna confirmarea unui pachet primit pn cnd (1) tie c ultima sa transmisie de-a lungul circuitului virtual a fost primit cu succes i (2) are un tampon liber. Pentru simplitate, s presupunem c ruterele utilizeaz un protocol stop-and-wait (pas-cu-pas) i c fiecare circuit virtual are un tampon dedicat pentru fiecare direcie a traficului. Dac este nevoie de Tsec pentru a trimite un pachet (date sau confirmare) i sunt n rutere de-a lungul cii,

SEC. 5.8

PROBLEME

441

care este viteza cu care pachetele sunt livrate gazdei destinaie? Presupunem c erorile de transmisie sunt rare, iar conexiunea gazd-ruter este infinit de rapid. 16. O subreea de tip datagram permite mterelor s elimine pachete de cte ori este necesar. Probabilitatea ca un ruter s renune la un pachet este p. Considerm cazul unei gazde surs conectate cu un mter surs, care este conectat cu un ruter destinaie i apoi cu gazda destinaie. Dac oricare dintre rutere elimin un pachet, gazda surs va ncerca din nou, probabil dup expirarea unui timp stabilit. Dac liniile gazd-ruter i ruter-ruter sunt amndou numrate ca salturi, care este numrul mediu de: a) salturi per transmisie pe care le face un pachet? b) transmisii determinate de un pachet? c) salturi necesare pentru un pachet primit? 17. Dai o explicaie pentru faptul c algoritmul gleii gurite permite un singur pachet per tact, indiferent de ct de mare este pachetul. 18. ntr-un sistem oarecare este utilizat varianta cu numrarea octeilor algoritmului gleii gurite. Regula este c pot fi trimise la fiecare tact un pachet de 1024 de octei, dou pachete de 512 octei etc. Formulai o limitare serioas a acestui sistem care nu a fost menionat n text. 19. O reea ATM utilizeaz pentru modelarea traficului o schem de tip gleat cu jetoane (token bucket). La fiecare 5 usec n gleat este introdus un nou jeton. Care este viteza maxim net a datelor (adic fr a se pune la socoteal biii antetului) care poate fi meninut? 20. Un calculator dintr-o reea de 6-Mbps este guvernat de o schem de tip gleat cu jetoane. Aceasta se umple cu viteza de 1 Mbps. Ea este umplut iniial la capacitatea maxim, cu 8 megabii. Ct timp poate calculatorul s transmit cu ntreaga vitez de 6 Mbps? 21. Fig. 5-27 arat patru caracteristici de intrare pentru o specificaie a fluxului propus. S ne imaginm c dimensiunea maxim a pachetului este de 1000 de octei, viteza gleii cu jetoane este de 10 milioane de octei/sec, capacitatea ei este de 1 milion de octei i viteza maxim de transmisie este de 50 de milioane de octei/sec. Ct timp poate dura o rafal la viteza maxim? 22. Un dispozitiv accept cadre de la Ethernet-ul la care este conectat. El obine pachetul din interiorul fiecrui cadru, adaug informaie de ncadrare n jurul su i l transmite pe o linie telefonic nchiriat (singura legtur a dispozitivului cu lumea exterioar) ctre un dispozitiv identic aflat la cellalt capt. Acesta din urm nltur ncadrarea, introduce pachetul ntr-un cadru token ring i l transmite unei gazde locale printr-un LAN de tip token ring. Cum ai numi acest dispozitiv? 23. Este nevoie de fragmentare n reele concatenate bazate pe circuite virtuale sau numai n sisteme cu datagrame? 24. Trecerea ca prin tunel printr-o subreea de circuite virtuale concatenate este simpl: ruterul multiprotocol de la un capt stabilete circuitul virtual ctre cellalt capt i trece pachetele prin el. Poate aceast trecere ca printr-un tunel s fie folosit i n subreelele bazate pe datagrame? Dac da, cum?

442

NIVELUL REEA

CAP. 5

25. O datagram IP care folosete opiunea Dirijare strict la surs trebuie s fie fragmentat. Credei c opiunea este copiat n fiecare fragment, sau este suficient s fie pus numai n primul fragment? Explicai rspunsul. 26. S presupunem c n loc de a folosi 16 bii pentru partea ce specific reeaua unei adrese de clas B, au fost utilizai 20 de bii. Cte reele de clas B ar fi existat? 27. Transformai adresa IP a crei reprezentare zecimal este C22F1582 ntr-o notaie zecimal cu puncte. 28. O reea de clas B din Internet are masca de subreea 255.255.240.0. Care este numrul maxim de gazde din subreea? 29. Tocmai i-ai explicat unui prieten protocolul ARP. Cnd ai terminat, el spune: Am neles. ARP ofer un serviciu nivelului reea, deci face parte din nivelul legturii de date." Ce i vei spune? 30. Att ARP ct i RARP realizeaz corespondena adreselor dintr-un spaiu n altul. Din acest punct de vedere cele dou protocoale sunt similare. Totui, implementrile lor sunt fundamental diferite. Care este diferena esenial dintre ele? 31. Descriei un procedeu pentru reasamblarea fragmentelor IP la destinaie. 32. Cei mai muli dintre algoritmii de reasamblare a datagramelor IP au un ceas pentru a evita ca un fragment pierdut s in ocupate pentru totdeauna tampoanele de reasamblare. S presupunem c o datagram este mprit n patru fragmente. Primele trei sosesc, dar ultimul este ntrziat. Este posibil ca timpul s expire i cele trei fragmente s fie eliminate din memoria receptorului. Puin mai trziu, sosete i ultimul fragment. Ce ar trebui fcut cu el? 33. Cele mai multe protocoale de dirijare IP folosesc numrul de salturi ca o mrime ce trebuie minimizat cnd se fac calculele pentru dirijare. Pentru reelele ATM, numrul de salturi nu este foarte important. De ce? Indicaie: Aruncai o privire la Cap. 2 pentru a vedea cum funcioneaz comutatoarele ATM. Folosesc ele comutarea memoreaz-si-retransmite? 34. Att la IP ct i la ATM, suma de control acoper numai antetul, nu i datele. De ce credei c s-a ales aceast soluie? 35. O persoan care locuiete n Boston cltorete la Minneapolis, lundu-i calculatorul portabil cu sine. Spre surprinderea sa, LAN-ul de la destinaia din Minneapolis este un LAN IP fr fir, deci nu trebuie s se conecteze. Este oare necesar s se recurg la ntreaga poveste cu ageni locali i ageni strini pentru ca mesajele de pot electronic i alte tipuri de trafic s-i parvin corect? 36. IPv6 folosete adrese de 16 octei. Dac un bloc de 1 milion de adrese este alocat la fiecare picosecund, ct timp vor exista adrese disponibile? 37. Cmpul Protocol folosit n antetul IPv4 nu este prezent n antetul fix pentru IPv6. De ce?

SEC. 5.8

PROBLEME

443

3g. Cnd se introduce protocolul IPv6, protocolul ARP trebuie s fie modificat? Dac da, modificrile sunt conceptuale sau tehnice? 39. n Cap. 1 am clasificat interaciunile dintre reea i gazd folosind patru clase de primitive: request, indication, response i confirm. Clasificai mesajele SETUP i CONNECT din Fig. 5-65 n aceste categorii. 40. ntr-o reea ATM este stabilit un nou circuit virtual. ntre gazdele surs i destinaie se gsesc trei comutatoare ATM. Cte mesaje (inclusiv confirmri) vor fi trimise pentru stabilirea circuitului? 41. Raionamentul folosit pentru construcia tabelei din Fig. 5-67 este simplu: unei conexiuni i este atribuit ntotdeauna cel mai mic VPI nefolosit. Dac este necesar un nou circuit virtual ntre NY i Denver, ce VPI i va fi atribuit? 42. n Fig. 5-73(c), dac o celul sosete devreme, urmtoarea este ateptat tot la ti + 2T. S presupunem c regula este diferit i anume c urmtoarea celul este ateptat la t2 + T, iar emitorul folosete la maximum aceast regul. Ce vitez maxim de transmitere poate s fie obinut n acest caz? Pentru T = 10 usec i L = 2 usec, calculai viteza maxim de transmitere iniial i respectiv pe cea nou. 43. Care este lungimea maxim a rafalei pentru o conexiune ATM ABR la 155,52 Mbps, a crei valoare PCR este 200.000 i a crei valoare L este 25 usec? 44. Scriei un program care s simuleze lirijarea prin inundare. Fiecare pachet ar conine un contor care este decrementat la fiecare salt. Cnd contorul ajunge la zero, pachetul este eliminat. Timpul este discret, iar fiecare linie manevreaz un pachet ntr-un interval de timp. Realizai trei versiuni ale acestui program: toate liniile sunt inundate, sunt inundate toate liniile cu excepia liniei de intrare, sau sunt inundate numai cele mai bune k linii (alese statistic). Comparai inundarea cu dirijarea determinist (k = 1) n termenii ntrzierii i lrgimii de band folosite. 45. Scriei un program care simuleaz o reea de calculatoare ce folosete un timp discret. Primul pachet din coada de ateptare a fiecrui ruter face un salt per interval de timp. Fiecare ruter are, numai un numr finit de zone tampon. Dac un pachet sosete i nu este loc pentru el, el este eliminat i nu mai este retransmis. n schimb, exist un protocol capt-la-capt, complet, cu limit de timp i pachete de confirmare, care va regenera n cele din urm pachetul de la ruterul surs. Reprezentai grafic productivitatea reelei ca funcie de limita de timp, parametrizat de rata erorilor.

444

NIVELUL REEA

CAP. 5

NIVELUL TRANSPORT
Nivelul transport nu este doar un alt nivel, el este miezul ntregii ierarhii de protocoale. Sarcina sa este de a transporta date de la maina surs la maina destinaie ntr-o manier sigur i eficace din punctul de vedere al costurilor, independent de reeaua sau reelele fizice utilizate. Fr nivelul transport i-ar pierde sensul ntregul concept de ierarhie de protocoale. n acest capitol vom studia n detaliu nivelul transport, incluznd serviciile, arhitectura, protocoalele i performanele sale.

6.1

SERVICIILE OFERITE DE NIVELUL TRANSPORT

n seciunile urmtoare vom face o prezentare a serviciilor oferite de nivelul transport. Vom studia serviciile oferite nivelului aplicaie (sau sesiune, dac acesta exist) i, n mod special, modalitile de caracterizare a calitii serviciilor oferite. Apoi vom studia modul n care aplicaiile apeleaz serviciile de transport, altfel spus, cum este construit interfaa acestui nivel.

6.1.1 Servicii furnizate nivelurilor superioare


Scopul principal al nivelului transport este de a oferi servicii eficiente, sigure i ieftine utilizatorilor, n mod normal procese aparinnd nivelului aplicaie. Pentru a atinge acest scop, nivelul transport utilizeaz serviciile oferite de mvelul reea. Hardware-ul i/sau software-ul care se ocup de toate acestea n cadrul nivelului transport se numesc entitatea de transport. Entitatea de transport poate s aparin nucleului sistemului de operare, unui proces distinct, unei biblioteci legate de aplicaiile de reea sau plcii de reea. Relaia (logic) ntre nivelurile reea, transport i aplicaie este prezentat n Fig. 6-1.

445

446

NIVELUL TRANSPORT

CAP. 6

Cele dou tipuri de servicii: servicii orientate pe conexiune sau datagram, existente n cadrul nivelului reea, se regsesc i la acest nivel. Serviciul orientat pe conexiune de la nivel transport are multe asemnri cu cel de la nivel reea: la ambele, conexiunile au trei faze (stabilirea conexiunii, transferul de date i eliberarea conexiunii) i, n plus, adresarea i controlul fluxului sunt similare. Mai mult, chiar i serviciile fr conexiune sunt foarte asemntoare la cele dou niveluri. O ntrebare evident este urmtoarea: dac serviciile la nivel transport sunt att de asemntoare cu cele de la nivel reea, de ce este nevoie de dou niveluri distincte? De ce nu este suficient un singur nivel? Rspunsul este unul subtil, dar extrem de important, i ne cere s ne ntoarcem la Fig. 1.16. n aceast figur am putut vedea c nivelul reea este parte component a subretelei de comunicaie i este executat de mediul de transport (cel puin pentru reelele larg rspndite geografic - WAN). Ce s-ar ntmpla dac nivelul reea ar oferi servicii orientate pe conexiune, dar acestea ar fi nesigure? Dar dac acesta ar pierde frecvent pachete? Ce se ntmpl dac din cnd n cnd rutenii cade?
Gazd Nivel aplicaie {sau sesiune) Adres transport Entitate de transport Gazd Nivel aplicaie (sau sesiune)

Interfaa aplicaie/transport

TPDU Protocol transport Interfaa transport/reea

Entitate de transport

Adres reea Nivel reea

Nivel reea

Fig. 6-1. Nivelurile reea, transport i aplicaie. Ei bine, n toate aceste cazuri apar probleme. Deoarece utilizatorii nu pot controla subreeaua, ei nu pot rezolva problema unor servicii de proast calitate folosind rutere mai bune sau adugnd o tratare a erorilor mai sofisticat la nivelul legtur de date. Singura posibilitate este de a pune deasupra nivelului reea un alt nivel care s mbunteasc calitatea serviciilor. Dac entitatea de transport este informat la jumtatea transmisiei c a fost nchis abrupt conexiunea sa la nivel reea, fr nici o indicaie despre ceea ce s-a ntmplat cu datele aflate n acel moment n tranzit, ea poate iniia o alt conexiune la nivel reea cu entitatea de transport aflat la distan. Folosind aceast nou conexiune, ea poate interoga corespondenta ei despre care date au ajuns la destinaie i care nu i poate continua comunicarea din locul de unde a fost ntrerupt. n esen, existena nivelului transport face posibil ca serviciile de transport s fie mai sigure dect cele echivalente de la nivelul reea. Pachetele pierdute sau incorecte pot fi detectate i corectate de ctre nivelul reea. Mai mult, primitivele serviciului de transport pot fi proiectate n aa

SE

C . 6.1

SERVICIILE OFERITE DE NIVELUL TRANSPORT

447

fel, nct s fie independente de primitivele de la nivelul reea, care, de altfel, pot s varieze considerabil de la o reea la alta (de exemplu, serviciile orientate pe conexiune hteo reea local pot fi foarte diferite de serviciile orientate pe conexiune dintr-o reea larg rspndit.geografic). . Mulumit nivelului transport, este posibil ca programele de aplicaie s fie scrisefolosind un set standard de primitive, pentru a rula pe o mare varietate de reele, fr s aib de-a face cu diferite interfee de subreea sau cu transmisii nesigure. Dac toate reelele reale ar fi perfecte i toate ar avea acelai set de primitive, atunci probabil c nivelul transport nu ar mai fi fost necesar. Totui, n realitate el ndeplinete funcia de a izola lumea real de tehnologia, arhitectura i imperfeciunile nivelurilor inferioare. Din aceast cauz se poate face o distincie ntre nivelurile de la 1 la 4, pe de o parte, i cel (cele) de deasupra. Primele pot fi vzute ca furnizoare de servicii de transport, n timp ce ultimele ca utilizatoare de servicii de transport. Aceast distincie ntre utilizatori i furnizori are un impact considerabil n ceea ce privete proiectarea arhitecturii de niveluri i confer nivelului transpbrt o poziie cheie, acesta fiind limita ntre furnizorul i utilizatorul serviciilor sigure de transmisie de date.

6.1.2 Calitatea unui serviciu


O alt posibilitate de a analiza nivelul transport este de a considera c funcia sa de baz este mbuntirea QoS (Quality of Service - calitatea serviciului} furnizat de nivelul reea. Dac serviciile la nivel reea sunt impecabile, atunci nivelul transport nu are prea multe de fcut. Dac totui serviciile la nivel reea sunt necorespunztpare, nivelul transport trebuie s umple golul ntre ceea ce ateapt utilizatorul nivelului transport i ceea ce furnizeaz nivelul reea.
ntrzierea la stabilirea conexiunii Probabilitatea de insucces la stabilirea conexiunii Productivitatea ntrzierea la transfer Rata rezidual a erorilor Protecia Prioritatea Reziliena

Fig. 6-2. Parametri tipici pentru calitatea serviciului de transport. Dei calitatea unui serviciu poate s pr un concept vag (a face ca toat lumea s fie de acord cu ceea ce nseamn bun" nu este deloc uor), QoS poate s fie caracterizat de un numr de parametri specifici, aa cum am vzut n Capitolul 5. Nivelul transport poate permite, utilizatorului s cear valori preferate, acceptabile sau minime pentru diveri parametri n momentul stabilirii conexiunii. O parte dintre aceti parametri sunt aplicabili i pentru serviciile de transport neorientate pe conexiune. Este la latitudinea nivelului transport s inspecteze aceti parametri i, n funcie de serviciile reea disponibile, s hotrasc dac poate s furnizeze serviciul cerut. n cele ce urmeaz vom trece n revist civa posibili parametri pentru calitatea serviciilor. Trebuie reinut c puine reele sau protocoale furnizeaz toi aceti parametri, multe ncearc numai s reduc rata rezidual a erorilor i se mulumesc cu aceasta, altele ns au sisteme mai complicate de evaluare a calitii serviciilor (Campbel .a., 1994).

448

NIVELUL THANSPORT

CAP. 6

ntrzierea la stabilirea conexiunii este timpul scurs ntre cererea unui utilizator al nivelului transport de alocare a unei conexiuni i primirea confirmrii de stabilire a conexiunii. Ea include timpul de prelucrare al cererii n entitatea de transport aflat la distan. Ca la orice parametru care msoar o ntrziere, cu ct aceasta este mai mic, cu att mai bun este serviciul. Probabilitatea de insucces la stabilirea conexiunii este probabilitatea ca o conexiune s nu fie stabilit ntr-un interval de timp maxim fixat. Cteva cauze ar putea fi: congestionarea reelei, lipsa spaiului n tabelele unui nod al reelei sau alte probleme interne. Rata de transfer msoar numrul de octei de date utilizator transferai de-a lungul unui interval de timp. Rata de transfer este msurat separat pentru fiecare direcie. ntrzierea msoar timpul scurs ntre trimiterea unui mesaj de ctre maina surs i recepionarea acestuia la maina destinaie. Ca i pentru rata de transfer, fiecare direcie este evaluat separat. Rata rezidual a erorilor msoar procentul de pachete pierdute sau incorecte din totalul pachetelor trimise. Teoretic, deoarece scopul nivelului transport este de a ascunde toate erorile nivelului reea, rat rezidual a erorilor ar trebui s fie nul. n practic ea poate avea i o valoare (mic) nenul. Parametrul protecie furnizeaz utilizatorului o modalitate de a cere nivelului transport ca datele transmise s fie protejate mpotriva accesului neautorizat (citire sau scriere) al terilor. Parametrul prioritate furnizeaz utilizatorului o modalitate de a indica nivelului transport c unele conexiuni sunt mai importante ca altele i c, n cazul unei congestii, conexiunile cu prioritate mai mare trebuie servite preferenial. n cele din urm reziliena indic probabilitatea ca nivelul transport nsui s nchid spontan o conexiune datorit unor probleme interne sau datorit congestiilor. Parametri de calitate sunt specificai de utilizatorul nivelului transport atunci cnd cere o conexiune. Pot fi specificate att valorile dorite ct i cele minim acceptabile. n unele cazuri, analiznd valorile acestor parametri, nivelul transport poate s-i dea seama imediat c performanele cerute nu pot fi atinse i, n acest caz, cererea de conexiune eueaz chiar i fr a se mai lua contact cu maina destinaie. n acest caz sunt raportate cauzele eecului. n alte cazuri, nivelul transport tie c nu pot fi atinse performanele dorite (de exemplu, 600 Mbps rat de transfer), dar se pot obine performane mai mici i nc acceptabile (de exemplu, 150 Mbps). El trimite aceste noi valori i cele minim acceptabile mainii cu care se conecteaz la distan, cerndu-i s stabileasc conexiunea. Dac maina cu care se conecteaz nu poate furniza performanele cerute, dar poate obine unele superioare valorilor minime, ea va face o contraofert. Dac mcar una din performanele minime nu poate fi ndeplinit, atunci cererea de conexiune este refuzat. n cele din urm utilizatorul este informat dac conexiunea a fost stabilit sau refuzat i, dac a fost stabilit, care sunt valorile parametrilor asupra crora s-a czut de acord. Acest proces se numete negocierea opiunilor. Odat ce opiunile au fost negociate, ele rmn aceleai pe toat durat conexiunii. Pentru a preveni lcomia" clienilor exist tendina ca serviciile de o calitate mai bun s fie mai scumpe. 6.13 Primitivele serviciilor de transport Primitivele serviciilor de transport permit utilizatorilor nivelului transport (de exemplu programe de aplicaie) s acceseze serviciile. Fiecare serviciu de transport are primitivele sale.

SEC. 6.1

SERVICIILE OFERITE DE NIVELUL TRANSPORT

449

n acest capitol; vom examina mai nti un serviciu de transport simplu (ipotetic), dup care vom analiza un exemplu real. Serviciul transport este similar cu cel reea, dar exist i cteva diferene importante. Principala diferen este c serviciul reea a fost conceput pentru a modela serviciile oferite de reelele reale. Acestea pot pierde pachete, deci serviciile la nivel reea sunt n general nesigure. n schimb, serviciile de transport (orientate pe conexiune) sunt sigure. Desigur, n reelele reale apar erori, dar este exact scopul nivelului transport s furnizeze un serviciu sigur deasupra unui nivel reea nesigur. Ca exemplu, s considerm dou procese conectate prin 'pipe'-uri (tuburi) n UNIX. Acestea presupun o conexiune perfect ntre ele. Ele nu vor s aib de-a face cu confirmri, pachete pierdute, congestii sau altele asemntoare. Ele au nevoie de o conexiune sigur n proporie de 100%. Procesul A pune datele la un capt al tubului, iar procesul B le ia de la cellalt capt. Este exact ceea ce face un serviciu orientat pe conexiune: ascunde imperfeciunile reelei, astfel nct procesele utilizator pot s presupun existena unui flux de date fr erori. In acelai timp nivelul transport furnizeaz i un serviciu nesigur, dar sunt puine de spus n legtur cu acesta, aa c n acest capitol, ne vom concentra atenia asupra serviciului orientat pe conexiune. O a doua diferen ntre serviciul reea i cel de transport se refer la destinaiile lor. Serviciul reea este folosit doar de entitile de transport. Puini utilizatori scriu ei nii entitile de transport, si, astfel, puini utilizatori sau programe ajung s vad vreodat serviciile reea. n schimb, multe programe (i programatori) folosesc primitivele de transport. De aceea, serviciul transport trebuie s fie uor de utilizat. Ca s ne facem o idee despre cum poate arta un serviciu de transport, s considerm cele cinci primitive prezentate n Fig. 6-3. Aceast interfaa este ntr-adevr simpl,, dar prezint trsturile de baz ale oricrei interfee orientate pe conexiune a nivelului transport. Ea permite programelor de aplicaie s stabileasc, s utilizeze i s elibereze conexiuni, ceea ce este suficient pentru multe aplicaii. Primitiva LISTEN CONNECT SEND RECEIVE DISCONNECT Unitatea de date trimis (nimic) CONNECTION REQ. DATA (nimic) DISCONNECTION REQ. Explicaii Se blocheaz pn cnd un proces ncearc s se conecteze ncearc s stabileasc conexiunea Transmite informaie Se blocheaz pn cnd primete date trimise Trimis de partea care vrea s se deconecteze

Fig. 6-3. Primitivele unui serviciu de transport simplu. Pentru a vedea cum pot fi utilizate aceste primitive, s considerm o aplicaie cu un server i un numr oarecare de clieni la distan. La nceput serverul apeleaz primitiva LISTEN, n general prin apelul unei funcii de bibliotec care face un apel sistem pentru a bloca serverul pn la apariia unei cereri client. Atunci cnd un client vrea s comunice cu serverul, el va executa un apel CONNECT. Entitatea de transport trateaz acest apel blocnd apelantul i trimind un pachet la server. Acest pachet ncapsuleaz un mesaj ctre entitatea de transport de pe server.
'A

Este momentul s facem cteva precizri n legtur cu terminologia. In lipsa unui termen mai bun vom folosi acronimul TPDU (Transport Protocol Data Unit - unitate de date a protocolului de

450

NIVELUL TRANSPORT

CAP. 6

transport) pentru toate mesajele schimbate ntre dou entiti de transport corespondente. Astfel, TPDU-urile (schimbate la nivelul transport) sunt coninute n pachete (utilizate de nivelul reea). La rndul lor, pachetele sunt coninute n cadre (utilizate la nivelul legtur de date). Atunci cnd este primit un cadru, nivelul legtur de date prelucreaz antetul cadrului i d coninutul util nivelului reea. Entitatea reea prelucreaz antetul pachetului i paseaz coninutul util entitii de transport. Aceas ierarhie este ilustrat n Fig. 6-4.
Antet cadru Antet pachet Antet TPDU

Informaie util n TPDU

- Informaie util n pachetInformaie util n cadru

Fig. 6-4. Ierarhia de cadre, pachete i TPDU-uri. Revenind la exemplul nostru, apelul CONNECT al clientului genereaz un TPDU de tip CONNECTION REQUEST care i este trimis serverului. Atunci cnd acesta ajunge, entitatea de transport verific dac serverul este blocat ntr-un apel LISTEN (deci dac ateapt o cerere de conexiune). n acest caz, deblocheaz serverul i trimite napoi clientului un TPDU CONNECTION ACCEPTED . Atunci cnd acest TPDU ajunge la destinaie, clientul este deblocat i conexiunea este stabilit. Acum pot fi schimbate date folosindu-se primitivele SEND i RECEIVE. Cea mai simpl posibilitate este ca una din pri s fac un apel RECEIVE (blocant) ateptnd ca cealalt parte s execute un SEND. Atunci cnd sosete un TPDU, receptorul este deblocat. El poate prelucra TPDU-ul i trimite o replic. Atta vreme ct amndou prile tiu cine este la rnd s trimit mesaje i cine este la rnd s recepioneze, totul merge bine. Trebuie s observm c la nivelul reea, chiar i un schimb de date simplu, unidirecional este mult mai complicat dect la nivelul transport. Fiecare pachet de date trimis va fi (n cele din urm) confirmat. Pachetele care conin TPDU-uri de control sunt de asemenea confirmate, implicit sau explicit. Aceste confirmri sunt gestionate de entitile de transport folosind protocoalele de la nivelul reea i nu sunt vizibile utilizatorilor nivelului transport. Similar, entitile de transport nu trebuie s se ocupe de ceasuri i de retransmisii. Nimic din tot acest mecanism nu este vizibil pentru utilizatorii nivelului transport, pentru care o conexiune este un tub fr pierderi: un utilizator ndeas bii la un capt i acetia apar, ca prin minune, la captul celalalt. Ierarhia de protocoale este o unealt att de puternic datorit capacitii sale de a ascunde complexitatea. Atunci cnd o conexiune nu mai este necesar, ea trebuie eliberat pentru a putea elibera i spaiul alocat n tabelele corespunztoare din cele dou entiti de transport. Deconectrile se pot face n dou variante: asimetric sau simetric. n varianta asimetric oricare dintre utilizatori poate

SEC. 6.1

SERVICIILE OFERITE DE NIVELUL TRANSPORT

451

apel o primitiv DISCONNECT, ceea ce va avea ca rezultat trimiterea unui TPDU ISCONNECT REQUEST entitii de transport aflat la distan. La sosirea acestuia conexiunea este eliberat. n varianta simetric fiecare direcie este nchis separat, independent de cealalt. Atunci cnd una din pri face un apel DISCONNECT, nsemnnd c nu mai sunt date de trimis, ea va putea ne recepiona datele transmise de entitatea de transfer aflat la distan. n acest model conexiunea este eliberat dac ambele pri au apelat DISCONNECT. O diagram de stare pentru stabilirea i eliberarea conexiunilor folosind aceste primitive simple este prezentat n Fig. 6-5. Fiecare tranziie este declanat de un eveniment: fie este executat o primitiv de ctre utilizatorul local al nivelului transport, fie este primit un pachet. Pentru simplitate vom presupune c fiecare TPDU este confirmat separat. Vom presupune de asemenea c este folosit un model de deconectare simetric, clientul iniiind aciunea. Trebuie reinut c acesta este un model foarte simplu, n seciunile urmtoare vom analiza modele reale.
TPDU: Cerere de conectare
1
i

NEFOLOSIT

Execuie: CONNECT >


STABILIRE DE CONEXIUNE ACTIV

STABILIRE DE CONEXIUNE PASIV


i

Execuie:CONNEC"r

CONEXIUNE STABILITA Execuie: DISCONNECT

)
TPDU: Cerere de conectare

TPDU:Cerere i de deconectare ' DECONECTARE PASIV

DECONECTARE ACTIV

Execuie: DISCONNECT

NEFOLOSIT

TPDU: Cerere de deconectare

Fig. 6-5. Diagrama de stare pentru o schem simpl de control al conexiunii. Tranziiile etichetate cu italice sunt cauzate de sosirea unor pachete. Liniile punctate indic secvena de stri a serverului. Liniile continue indic secvena de stri a clientului. Socluri Berkeley Vom trece n revist acum un alt set de primitive de transport: primitivele pentru socluri TCP folosite n sistemul de operare Berkeley-UNIX. Primitivele sunt enumerate n Fig. 6-6. n general putem spune c acestea sunt similare modelului din capitolul precedent, dar c ofer

452

NIVELUL TRANSPORT

CAP. 6

mai multe caracteristici i flexibilitate. Nu vom detalia TPDU-urile existente; aceast discuie mai are de ateptat pn n momentul cnd vom studia TCP, mai trziu, n acest capitol. Primele patru primitive din tabel sunt executate, n aceasta ordine, de server. Primitiva SOCKET creeaz un nou capt al conexiunii i aloc spaiu pentru el n tabelele entitii de transport. n parametri de apel se specific formatul de adres utilizat, tipul de serviciu dorit (de exemplu, transfer sigur de octei) i protocolul. Un apel SOCKET reuit ntoarce un descriptor de fiier (la fel ca un apel OPEN) care va fi utilizat n apelurile urmtoare.
Primitiva SOCKET BIND LISTEN ACCEPT CONNECT SEND RECEIVE CLOSE Funcia Creeaz un nou punct de capt al comunicaiei Ataeaz o adres local la un soclu Anun capacitatea de a accepta conexiuni; determin mrimea cozii Blocheaz apelantul pn la sosirea unei cereri de conexiune Tentativ (activ) de a stabili o conexiune Trimite date prin conexiune Recepioneaz date prin conexiune Elibereaz conexiunea

Fig. 6-6. Primitivele pentru socluri TCP Soclurile nou create nu au nc nici o adres. Ataarea unei adrese se face utiliznd primitiva BIND. Odat ce un server a ataat o adres unui soclu, clienii se pot conecta la el. Motivul pentru care apelul SOCKET nu creeaz adresa direct este c unele procese se ngrijesc de adresa lor (de exemplu, unele folosesc aceeai adres de ani de zile i oricine cunoate aceast adres), n timp ce altele nu. Urmeaz apelul LISTEN, care aloc spaiu pentru a reine apelurile primite n cazul cnd mai muli clieni ncearc s se conecteze n acelai timp. Spre deosebire de modelul din primul nostru exemplu, aici LISTEN nu mai este un apel blocant. Pentru a se bloca i a atepta un apel, serverul execut o primitiv ACCEPT. Atunci cnd sosete un TPDU care cere o conexiune, entitatea de transport creeaz un nou soclu cu aceleai proprieti ca cel iniial i ntoarce un descriptor de fiier pentru acesta. Serverul poate atunci s creeze un nou proces sau fir de execuie care va gestiona conexiunea de pe noul soclu i s atepte n continuare cereri de conexiune pe soclul iniial. S privim acum din punctul de vedere al clientului: i n acest caz, soclul trebuie creat folosind o primitiva SOCKET, dar primitiva BIND nu mai este necesar, deoarece adresa folosit nu mai este important pentru server. Primitiva CONNECT blocheaz apelantul i demareaz procesul de conectare. Cnd acesta s-a terminat (adic atunci cnd TPDU-ul corespunztor a fost primit de la server), procesul client este deblocat i conexiunea este stabilit. Att clientul ct i serverul pot utiliza acum primitivele SEND i RECEIVE pentru a transmite sau recepiona date folosind o conexiune duplex integral. Eliberarea conexiunii este simetric. Atunci cnd ambele pri au executat primitiva CLOSE, conexiunea este eliberat.

SEC. 6.2

NOTUNI DE BAZ DESPRE PROTOCOALELE DE TRANSPORT

453

NOIUNI DE BAZ DESPRE PROTOCOALELE DE TRANSPORT


Serviciul transport este implementat prin intermediul unui protocol de transport folosit de cele dou entiti de transport. Cteva caracteristici sunt asemntoare pentru protocoalele de transport si pentru cele de legtur de date studiate n detaliu n capitolul 3. Amndou trebuie s se ocupe, printre altele, de controlul erorilor, de secveniere i de controlul fluxului. Totui, exist diferene semnificative ntre cele dou protocoale. Aceste diferene sunt datorate deosebirilor majore dintre mediile n care opereaz protocoalele, aa cum rezult din Fig. 6-7. La nivelul legturii de date, cele dou rutere comunic direct printr-un canal fizic, n timp ce la nivelul transport acest canal fizic este nlocuit de ntreaga subreea. Aceast deosebire are mai multe implicaii importante pentru protocoale.
Ruter Ruter Subreea

Canal fizic de comunicare

(a)

(b)

Fig. 6-7. (a) Mediul pentru nivelul legtur de date. (b) Mediul pentru nivelul transport. n cazul legturii de date, pentru un ruter nu trebuie specificat cu care alt ruter vrea s comunice, deoarece fiecare linie specific n mod unic o destinaie. In schimb, n cazul nivelului transport este necesar adresarea explicit. n plus, procesul stabilirii unei conexiuni prin cablul din Fig. 6-7(a) este simplu: cellalt capt este ntotdeauna acolo (n afar de cazul n care nu a 'czut') i n nici unul din cazuri nu sunt prea multe de fcut. Pentru nivelul transport ns, stabilirea iniial a conexiunii este mult mai complicat, aa cum vom vedea. O alt diferen ntre nivelurile legtur de date i transport, care genereaz multe probleme, este existena potenial a unei capaciti de memorare a subreelei. Atunci cnd un ruter trimite un cadru (nivel legtur de date),, acesta poate s ajung sau poate s se piard, dar nu poate s se plimbe un timp ajungnd pn la captul lumii i s se ntoarc 30 de secunde mai trziu, ntr-un moment nepotrivit. Dac subreeaua folosete datagrame i dirijare adaptiv, exist o posibilitate care nu poate fi neglijat - ca un pachet s fie pstrat pentru un numr oarecare de secunde i livrat mai trziu. Consecinele acestei capaciti de memorare a subreelei pot fi uneori dezastruoase i necesit folosirea unor protocoale speciale. O ultim diferen ntre nivelurile legtur de date i transport este una de dimensionare i nu de proiectare. Folosirea tampoanelor i controlul fluxului sunt necesare la amndou nivelurile, dar prezena unui numr mare de conexiuni n cazul nivelului transport necesit o abordare diferit de cea de la nivelul legtur de date. n capitolul 3, unele protocoale alocau un numr fix de tampoane pentru fiecare linie, astfel nct atunci cnd sosea un cadru, exista ntotdeauna un tampon disponibil. La nivel transport, numrul mare de conexiuni care trebuie s fie gestionate face ca ideea de a aloca

454

NIVELUL TRANSPORT

CAP. 6

tampoane dedicate s fie mai puin-atractiv. In urmtoarele seciuni, vom examina att aceste probleme importante ct i altele. 6.2.1 Adresarea Atunci cnd un proces aplicaie dorete s stabileasc o conexiune cu un proces aflat la distan, el trebuie s specifice cu care proces dorete s se conecteze. (La protocoalele de transport neorientate pe conexiune apare aceeai problem: cui trebuie trimis mesajul?). Metoda folosit n mod normal este de a defini adrese de transport la care procesele pot s atepte cereri de conexiune. n Internet acestea sunt perechi: adresa IP - port local; n schimb la reelele ATM perechile sunt AAL - SAP. n continuare vom folosi pentru acestea termenul neutru TSAP (Transport Service Access Point - punct de acces la serviciul de transport). Punctele similare n cazul nivelului reea (adic adresele la nivel reea) sunt numite NSAP (Network Service Access Point). Adresele IP sunt exemple de NSAP-uri. Fig. 6-8 ilustreaz relaia ntre TSAP, NSAP, conexiunile reea i conexiunile transport pentru o subreea orientat pe conexiune (de exemplu, ATM). Trebuie reinut c, n general, o entitate de transport susine mai multe TSAP-uri. n unele reele exist mai multe NSAP-uri, dar n altele fiecare main are un singur NSAP (de exemplu, o singur adres IP). Un scenariu posibil pentru stabilirea unei conexiuni la nivel transport ntr-o reea orientat pe conexiune este urmtorul. 1. Un proces server care furnizeaz ora exact i care ruleaz pe gazda 2 se ataeaz la TSAP 122 ateptnd un apel. Felul n care un proces se ataeaz la un TSAP nu face parte din modelul de reea i depinde numai de sistemul de operare local. Poate fi utilizat un apel de tip LISTEN din capitolul precedent. Un proces aplicaie de pe gazda 1 dorete s afle ora exact; atunci el genereaz un apel CONNECT specificnd TSAP 6 ca surs i TSAP 122 ca destinaie. Entitatea de transport de pe gazda 1 selecteaz o adres de reea de pe propria main (dac exist mai mult de una) i stabilete o conexiune reea. (La o subreea neorientat pe conexiune nu s-ar face stabilirea acestei conexiuni la nivel reea). Folosind conexiunea la nivel reea, entitatea de transport de la nivelul 1 poate s comunice cu entitatea de transport de pe gazda 2. Primul lucru pe care entitatea de transport de pe 1 l spune perechii sale de pe 2 este: Salut, a dori s stabilim o conexiune transport ntre TSAP 6 la mine i TSAP 122 la tine. Ce zici?" Entitatea de transport de pe 2 ntreab serverul de or exact la TSAP 122 dac consimte s accepte o nou conexiune. Dac da, conexiunea transport este stabilit.

2. 3.

4. 5.

Trebuie reinut c, la nivel transport, conexiunea leag un TSAP de altul, n timp ce conexiunea reea leag dou NSAP-uri. Figura 6-8 explic aproape tot, cu excepia unei mici probleme: cum tie procesul utilizator de pe maina 1 c serverul de or exact este ataat la TSAP 122? O posibilitate este ca acest server de or exact s se ataeze la TSAP 122 de ani de zile i, cu timpul, toi utilizatorii au aflat acest lucru. n acest model serviciile au adrese TSAP fixe, care pot fi tiprite i date utilizatorilor noi atunci cnd acetia intr n reea.

SEC. 6.2

NOIUNI DE BAZ DESPRE PROTOCOALELE DE TRANSPORT

455

Dar schema cu adrese de servicii fixe poate s funcioneze doar pentru un numr mic de servicii cheie, a cror adres nu se schimb niciodat. ns, n general procesele utilizator vor s comunice cu alte procese care exist numai pentru scurt timp i nu au o adres TSAP dinainte cunoscut. Pe de alt parte, pot exista mai multe procese server, majoritatea utilizate foarte rar, i ar fi neeconomic ca fiecare s fie activ i s asculte la o adres TSAP fix tot timpul. Pe scurt, este necesar o soluie mai bun.
Gazda 1 Proces s~\ TSAP 6 Gazda 2

aplicaie

vv /

Nivel r\ aplicaie V ^ S e r v e r Nivel transport Nivel


reea Nivel legtur de date Nivel fizic Fizic

nceputul conexiunii reea

\ nceputul conexiunii transport


^NSAP

VsAP 122
y

NSAP

Fig. 6-8. TSAP, NSAP i conexiunile corespunztoare. O astfel de soluie, utilizat de gazdele UNIX de pe Internet este prezentat n Fig. 6-9, ntr-o form simplificat. Ea este cunoscut ca protocolul de conectare iniial. n loc ca orice server s asculte la un TSAP fixat, fiecare main care dorete s ofere servicii utilizatorilor aflai la distan are un server de procese (process server) special care acioneaz ca un intermediar pentru toate serverele mai puin utilizate. El ascult n acelai timp la un numr de porturi, ateptnd o cerere de conexiune TCP. Utilizatorii poteniali ai serviciului ncep prin a face o cerere de conexiune, specificnd adresa TSAP (portul TCP) a serviciului pe care l doresc. Dac nu exist un server care s atepte conexiuni la acel port, ele obin o conexiune la serverul de procese, ca n Fig. 6-9 (a). Dup ce primete cererea, serverul de procese d natere serverului cerut, permindu-i s moteneasc conexiunea cu procesul utilizator. Noul server execut prelucrarea cerut, n timp ce serverul de procese continu s atepte noi cereri, ca n Fig. 6-9 (b). n timp ce acest protocol funcioneaz bine pentru serverele care pot fi create ori de cte ori este nevoie de ele, exist mai multe situaii n care serviciile exist independent de serverul de procese. De exemplu, un server de fiiere va rula folosind un hardware specializat (o maina cu disc) i nu poate fi creat din mers.

456

NIVELUL TRANSPORT

CAP. 6

Pentru a trata; aceast situaie, este des utilizat o soluie alternativ. n acest model exist un proces special numit server de nume (name server sau, uneori, directory server). Pentru a gsi adresa TSAP corespunztoare unui serviciu dat prin nume, aa cum este ora exact", utilizatorul stabilete o conexiune cu serverul de nume (care ateapt mesaje la un TSAP cunoscut). Apoi utilizatorul trimite un mesaj specificnd numele serviciului, iar serverul de nume i trimite napoi adresa TSAP a acestuia. Dup aceasta, utilizatorul elibereaz conexiunea cu serverul de nume i stabilete o nou conexiune cu serviciul dorit.
Gazda 1 Gazda 2 Gazda 1 Gazda 2 /Serven pentru

Nivel

l ora /
Server dev--K procese

/
TSAP

(a)

(b)

Fig. 6-9. Stabilirea unei conexiuni ntre calculatorul gazd 1 i serverul pentru ora exact. n acest model, atunci cnd este creat un nou serviciu, el trebuie s se nregistreze singur la serverul de iume, furniznd att numele serviciului oferit (n general un ir ASCII) ct i adresa TSAP. Serverul de nume nregistreaz aceast informaie ntr-o baz de date intern, astfel nct el va ti rspunsul atunci cnd vor sosi noi cereri. Funcionarea serverului de nume este asemntoare cu serviciul de informaii de la un sistem telefonic: este furnizat corespondena dintre nume i numere de telefon. Ca i n cazul telefoanelor, este necesar s se foloseasc o adres bine cunoscut pentru serverul de nume. Dac nu tii numrul de la informaii, nu poi afla nici un alt numr de telefon, iar dac crezi c numrul de la informaii este evident pentru toi, ncearc s-1 foloseti i n alt ar! S presupunem acum c utilizatorul a reuit s gseasc adresa TSAP-ului la care vrea s se conecteze. O alt ntrebare interesant este: cum tie entitatea de transport local pe care main se gsete acel TSAP? Mai precis, cum afl entitatea de transport ce adres la nivel reea s foloseasc pentru a iniia o conexiune cu entitatea de transport aflat la distan care administreaz TSAP-ul cerut?

SEC. 6.2

NOIUNI DE BAZ DESPRE PROTOCOALELE DE TRANSPORT

457

Rspunsul depinde de structura adreselor TSAP. O posibilitate este ca adresele TAP s;fe structurate ierarhic. n acest caz, o adres const dintr-o secven de cmpuri utilizate n aa fel, nct s partiioneze disjunct spaiul de adrese. De exemplu, o adres cu adevrat universal ar putea avea urmtoarea structur:
adres= <galaxie><stea><planet><ar><reea><calculator_gazd><port>

Utiliznd aceast schem, gsirea TSAP-ului dorit oriunde n univers este evident. La fel, dac adresa TSAP este obinut prin concatenarea adresei NSAP i a unui identificator de port, atunci, furnizndu-i-se entitii de transport o adres TSAP la care s se conecteze, ea va utiliza adresa NSAP pentru a ajunge la entitatea de transport dorit. Ca un exemplu simplu de adresare ierarhic, s considerm numrul de telefon 19076543210. Acest numr poare fi citit ca 1-907-654-3210 unde 1 este codul de ar (Statele Unite), 907 este prefixul regiunii (Alaska), 654 determin una din centralele din Alaska, iar 3210 determin un port (linie abonat) n aceast central. Alternativa spaiului de adrese ierarhic este un spaiu de adrese plat Dac adresele TSAP nu sunt ierarhice, atunci un al doilea nivel de coresponden este necesar pentru a determina maina indicat. Ar trebui s existe un server de nume care s primeasc adrese de la nivel transport i s ntoarc adrese la nivel reea. n alte situaii ns (de exemplu, n reele locale) este posibil s se difuzeze un mesaj, care i cere mainii destinaie s se identifice ea nsi prin trimiterea unui pachet. 6.2.2 Stabilirea unei conexiuni Stabilirea unei conexiuni poate s par uoar dar, n realitate, este surprinztor de complicat. La prima vedere, ar prea suficient ca o entitate de transport s trimit numai un TPDU CONNECTION REQUEST i s atepte replica CONNECTION ACCEPTED . Problema apare deoarece reeaua poate pierde, memora sau duplica pachete. Putem imagina o subreea care este att de congestionat nct confirmrile ajung greu napoi, i, din aceast cauz, fiecare pachet ajunge s fie retransmis de cteva ori. Putem presupune c subreeaua folosete datagrame i fiecare pachet urmeaz un traseu diferit. Unele pachete pot s ntlneasc o congestie local de trafic i s ntrzie foarte mult, ca i cum ar fi fost memorate de subreea un timp i eliberate mai trziu. Cel mai neplcut scenariu ar fi: un utilizator stabilete o conexiune cu o banc i trimite un mesaj cernd transferul unei sume de bani n contul unei alte persoane n care nu poate avea ncredere. Din nefericire, fiecare pachet din acest scenariu este duplicat i memorat n subreea. Dup ce conexiunea a fost eliberat, pachetele memorate ies din subreea i ajung la destinatar, cernd bncii s fac transferul (nc o dat). Banca nu poate s decid dac acestea sunt duplicate, ea trebuie s presupun c este o tranzacie independent i va transfera banii nc o dat. n continuarea acestei seciuni, vom studia problema duplicatelor ntrziate, punnd accentul n mod special pe algoritmii pentru stabilirea sigur a conexiunilor, astfel nct scenarii ca cel de mai sus s nu poat s apar. Dup cum am mai spus, punctul crucial al problemei este existena duplicatelor ntrziate. El poate fi tratat n mai multe feluri, dar nici unul nu este ntr-adevr satisfctor. O posibilitate este de a utiliza adrese de transport valabile doar pentru o singur utilizare. n aceast abordare, ori de cte ori este necesar o adres la nivel transport, va fi generat una

458

NIVELUL TRANSPORT

CAP. 6

nou. Dup ce conexiunea este eliberat, adresa nu mai este folosit. Acest mecanism face ns modelul cu server de procese din Fig. 6-9 imposibil. O alt posibilitate este de a atribui fiecrei conexiuni un identificator (adic, un numr de secven incrementat pentru fiecare conexiune stabilit), ales de cel care iniiaz conexiunea, i pus n fiecare TPDU, inclusiv n cel care iniiaz conexiunea. Dup ce o conexiune este eliberat, fiecare entitate de transport va completa o tabel cu conexiunile care nu mai sunt valide (perechi entitate de transport, identificator conexiune). Ori de cte ori apare o cerere de conexiune se va verifica n tabel c ea nu aparine unei conexiuni care a fost eliberat anterior. Din nefericire, aceast schem are un defect important: ea necesit ca fiecare entitate de transport s menin informaia despre conexiunile precedente un timp nedefinit. Dac o main cade i i pierde datele din memorie, ea nu va mai ti care identificatori de conexiune au fost deja utilizai. Putem ncerca i o alt soluie. n loc s permitem pachetelor s triasc la nesfrit n subreea, putem inventa un mecanism care s elimine pachetele mbtrnite. Dac suntem siguri c nici un pachet nu poate s supravieuiasc mai mult de un anume interval de timp cunoscut, problema devine ceva mai uor de rezolvat. Durata de via a pachetelor poate fi limitat la un maxim cunoscut, folosind una din urmtoarele tehnici: 1. 2. 3. Restricii n proiectarea subreelei Adugarea unui contor al nodurilor parcurse n fiecare pachet Adugarea unei amprente de timp la fiecare pachet

Prima metod include soluiile care mpiedic pachetele s stea n bucl, combinate cu modaliti de a limita ntrzierile datorate congestiilor, pe orice cale din reea (indiferent de lungime). A doua metod const n a aduga la fiecare pachet un contor incrementat la trecerea prin orice nod. Protocolul de nivel legtur de date pur i simplu elimin pachetele al cror contor a depit o anumit valoare. A treia metod necesit ca ceasurile de la fiecare ruter s fie sincronizate, i aceast cerin n sine este destul de greu de ndeplinit (mai uor este dac sincronizarea ceasurilor se obine din exteriorul reelei, de exemplu toate staiile ascult periodic ora exact transmis la radio). In practic, nu este suficient doar s garantm c pachetul este eliminat, ci trebuie garantat i c toate confirmrile sale au fost eliminate, astfel nct vom introduce T, care va fi un multiplu (mic) al duratei maxime de via a unui pachet. Depinde de protocol de cte ori T este mai mare dect durata de via a unui pachet. Dac ateptm un timp T dup trimiterea unui pachet putem fi siguri c toate urmele sale au disprut i nici el, nici vreo confirmare de-a sa nu vor aprea din senin, doar ca s complice lucrurile. Folosind durata de via limitat a pachetelor, exist metode de a obine conexiuni sigure a cror corectitudine a fost demonstrat. Metoda descris n cele ce urmeaz este datorat lui Tomlinson (1975). Ea rezolv problema, dar introduce cteva particulariti proprii. Metoda a fost mbuntit de Sunshine i Dalai (1978). Variante ale sale sunt mult folosite n practic. Pentru a ocoli problemele generate de pierderea tuturor datelor din memoria unei maini dup o cdere, Tomlinson propune echiparea fiecrei maini cu un ceas. Nu este nevoie ca ceasurile de pe maini diferite s fie sincronizate. Fiecare ceas va fi de fapt un contor binar care se

fsEG.6.2

NOIUNI DE BAZ DESPR1PROTOGOALEEE DE TRANSPORT

459

L, ^giacrementeaz dup un anumit interval de timp. n plus, numrul de bii aijcontorului trebuie s * fie cel puin egal cu numrul de bii al numerelor de secven. n cele din urm, i cei mai important, - ceasul trebuie s continue s funcioneze chiar n cazul n care calculatorul gazd cade. ' Ideea de baz este de a fi siguri c dou TPDU numerotate identic nu pot fi generate n acelai timp. Atunci cnd conexiunea este iniiat, k bii mai puin semnificativi ai ceasului sunt folosii ca numr iniial de secven (tot k bii). Astfel, fiecare conexiune ncepe s-i numeroteze TPDU-urile sale cu un numr de secven diferit. Spaiul numerelor de secven ar trebui s fie suficient de mare pentru ca, n timpul scurs pn cnd contorul ajunge din nou la acelai numr, toate TPDU-urile vechi cu acel numr s fi disprut deja. Aceast relaie ntre timp i numrul de secven iniial este explicat n Fig. 6-10. V 2-1 Numer e de secver %

120
o 3 80 70 | 60 Z
3

Mesaj refuzat

im

i *

//

Repornire dup cdere cu numr de secven 70

Numere de secven folosite efectiv

')

30

. 1 1 I 1 60 90 120 150 180 Timp (a)

Timp (b)

Fig. 6-10. (a)TPDU-urile nu pot s intre n regiunea haurat. (b)Problema resincronizrii. Odat ce ambele entiti de transport au czut de acord asupra numrului de secven iniial, pentru controlul fluxului poate fi folosit orice protocol cu fereastr glisant. n realitate curba ce reprezint numrul iniial de secven (desenat cu linie ngroat) nu este chiar liniar, ci n trepte, cci ceasul avanseaz n trepte. Pentru simplitate, vom ignora acest detaliu. O problem apare atunci cnd cade un calculator gazd. Cnd el i revine, entitatea sa de transport nu tie unde a rmas n spaiul numerelor de secven. Q soluie este de a cere entitii de transport s stea neoeupat T secunde dup revenire pentru ca n acest timp toate vechile TPDU s dispar. Totui, ntr-o reea complex T poate fi destul de mare, astfel c aceast strategie nu este prea atrgtoare. Pentru a evita cele T secunde de timp nefolosit dup o cdere, este necesar s introducem o nou restricie n utilizarea numerelor de secven. Necesitatea introducerii acestei restricii este evident n urmtorul exemplu. Fie T, timpul maxim de via al unui pachet, egal cu 60 de secunde i s presupunem c ceasul este incrementat la fiecare secund. La fel ca n Fig. 6-10, numrul iniial de secven pentru o conexiune iniiat la momentul* estex. S ne imaginm c la t=30 sec, un TPDU este trimis pe conexiunea cu numrul 5 i cu numrul de secven 80, S numim acest TPDU X Imediat dup ce X este trimis, calculatorul gazd cade i revine imediat. La =60 el redeschide

460

NIVELUL TRANSPORT

CAP.S

conexiunile de la 0 la 4. La t=70, el deschide conexiunea 5, folosind un numr de secven iniial 70, aa cum am stabilit. n urmtoarele 15 secunde el va transmite TPDU-uri cu date numerotate de la 70 la 80. Astfel c la t=85, n subreea este generat un nou TPDU cu numrul de secven 80 i conexiunea 5. Din nefericire, TPDU X nc mai exist. Dac el ajunge naintea noului TPDU 80, atunci TPDU Xva fi acceptat i TPDU-ul corect va fi respins ca fiind un duplicat. Pentru a preveni o astfel de problem trebuie s lum msuri ca numerele de secven s nu fie utilizate (adic atribuite unor noi TPDU-uri) un timp T naintea utilizrii lor ca noi numere de secven. Combinaiile imposibile - timp, numr de secven - sunt prezentate n Fig. 6-10(a) ca regiunea interzis. nainte de trimiterea oricrui TPDU pe orice conexiune, entitatea de transport trebuie s citeasc ceasul i s verifice dac nu cumva se afl n regiunea interzis. Pot s apar probleme n dou cazuri: dac un calculator gazd trimite prea multe date i prea repede pe o conexiune nou deschis, curba numrului de secven n funcie de timp poate s fie mult mai abrupt dect cea iniial. Aceasta nseamn c rata de transmisie pentru orice conexiune este de cel mult un TPDU pe unitatea de timp a ceasului. De asemenea, este necesar ca entitatea de transport s atepte pn cnd ceasul avanseaz o dat, nainte s deschid o nou conexiune pentru ca, la revenirea dup o cdere, acelai numr de secven s nu fie utilizat de dou ori. Cele dou observaii de mai sus sunt argumente pentru ca perioada ceasului s fie ct mai mic. Din nefericire, intrarea n regiunea interzis prin trimitere prea rapid nu este singura situaie care creeaz probleme. Fig. 6-10(b) arat c la orice rat de transfer mai mic dect frecvena ceasului curba numerelor de secven utilizate raportat la timp va ajunge pn la urm n regiunea interzis din dreapta. Cu ct curba numerelor de secven utilizate va fi mai nclinat, cu att mai trziu se ajunge n regiunea interzis. Aa cum am afirmat anterior, imediat naintea trimiterii unui TPDU, entitatea de transport trebuie s verifice dac nu se afl cumva n regiunea interzis, i, dac se afl, s ntrzie transmisia cu T secunde sau s resincronizeze numerele de secven. Metodele bazate pe ceasuri logice rezolv problema pentru TPDU-urile de date duplicatelor ntrziate, dar pentru ca aceste metode s poat fi folosit, trebuie mai nti s stabilim conexiunea. Deoarece TPDU-urile de control pot i ele s fie ntrziate, pot aprea probleme atunci cnd entitile de transport ncerc s cad de acord asupra numrului iniial de secven. S presupunem, de exemplu, c, pentru a stabili o conexiune, gazda 1 trimite un mesaj CONNECTION REQUEST coninnd numrul de secven iniial propus i portul destinaie gazdei 2. Acesta va confirma mesajul trimind napoi un TPDU CONNECTION ACCEPTED . Dac TPDU-ul CONNECTION REQUEST este pierdut, dar un duplicat ntrziat al unui alt CONNECTION REQUEST va ajunge la gazda 2, atunci conexiunea nu va fi stabilit corect. Pentru a rezolva aceasta problem, Tomlinson (1975) a introdus stabilirea conexiunii cu nelegere n trei pai (three-way handshake). Acest protocol nu necesit ca ambele pri s nceap s trimit acelai numr de secven, deci poate fi utilizat i mpreun cu alte metode de sincronizare dect ceasul global. Procedura normal de iniiere a conexiunii este exemplificat n Fig. 6-ll(a). Gazda 1 alege un numr de secven x i trimite un TPDU CONNECTION REQUEST care conine x gazdei 2. Gazda 2 rspunde cu CONNECTION ACCEPTED, confirmnd x i anunnd numrul su iniial de secven, y. n cele din urm gazda 1 confirm alegerea luiy gazdei 2 n primul mesaj de date pe care l trimite. Vom arunca acum o privire asupra stabilirii conexiunii cu nelegere n trei pai n prezena TPDU-urilor de control duplicate. n Fig. 6-ll(b) primul TPDU sosit este o copie ntrziat a unui CONNECnON REQUEST de la o conexiune mai veche. Gazda 2 rspunde acestui TPDU cu uri

SEC. 6.2

NOIUNI DE BAZ DESPRE PROTOCOALELE DE TRANSPORT

461

CONNECTION ACCEPTED, verificnd de fapt c gazda 1 a ncercat ntr-adevr s stabileasc o conexiune. Atunci cnd gazda 1 refuz cererea gazdei 2 de a stabili conexiunea, gazda 2 i d seama c a fost pclit de o copie ntrziat i abandoneaz conexiunea. n acest fel o copie ntrziat nu poate s strice nimic.
Gazda 1 Gazda 2 Gazda 1 Duplicat vechi Gazda 2

Gazda1

Gazda 2

Duplicat vechi

Duplicat vechi

^cr

% V)
(O

Fig. 6-11. Trei scenarii posibile de stabilire a conexiunii pentru un protocol cu nelegere n trei pai. CR i ACK reprezint CONNECTION REQUEST i, respectiv, CONNECTION ACCEPTED (a) Cazul normal, (b) Un duplicat vechi al unui mesaj CONNECTION REQUEST apare cnd nu trebuie, (c) Sunt duplicate att CONNECTION REQUEST ct i CONNECTION ACCEPTED. n cel mai ru caz, att CONNECTION REQUEST ct i CONNECTION ACCEPTED sunt copii ntrziate. Acest caz este prezentat n 6-1 l(c). Ca i n exemplul precedent, gazda 2 primete o CONNECTION REQUEST ntrziat i rspunde la ea. n acest moment este

462

NIVELULTRANSPORT

CAP. 6

extrem de important s ne aducem aminte c gazda 2 a propus y ca numr iniial de secven pentru traficul de la 2 la 1, fiind sigur c nu mai exist n reea nici un TPDU (sau confirmare) cu acelai numr de secven. Atunci cnd confirmarea duplicat ajunge la gazda 2, aceasta deduce, din faptul c a fost confirmat z i nu y, c are de-a face cu o copie mai veche. Important este c nu exist nici o combinaie posibil ale unor copii vechi ale TPDU-urilor CONNECTION REQUEST, CONNECTION ACCEPTED sau altor TPDU-uri ntrziate care s reueasc s iniieze o conexiune atunci cnd nimeni nu a cerut asta. O schem alternativ pentru stabilirea sigur a conexiunii n prezena copiilor ntrziate este descris de (Waston, 1981). n aceast schem se folosesc mai multe ceasuri pentru a putea exclude evenimentele nedorite.
6.23 Eliberarea conexiunii

Eliberarea unei conexiuni este mai uoar dect stabilirea ei. Totui, exist mai multe dificulti dect ne-am atepta. Aa cum am mai amintit, exist dou moduri de a termina o conexiune: eliberare simetric i eliberare asimetric. Sistemul telefonic folosete eliberarea asimetric: atunci cnd unul din interlocutori nchide, conexiunea este ntrerupt. Eliberarea simetric privete conexiunea ca pe dou conexiuni separate unidirecionale i cere ca fiecare s fie eliberat separat.
Gazda 1 Gazda 2

a E

Datele nu mai sunt livrate dup o cerere de deconetare

Fig. 6-12. Deconectare brusc cu pierdere de date. CR= CONNECTION REQUEST, ACK= CONNECTION ACCEPTED, DR=DISCONNECT REQBEST. Eliberarea asimetric este brusc i poate genera pierderi de date. S considerm scenariul din Fig. 6-12. Dup stabilirea conexiunii, gazda 1 trimite un TPDU care ajunge corect la gazda 2. Gazda 1 mai trimite un TPDU dar, nainte ca acesta s ajung la destinaie, gazda 2 trimite DISCONNECT REQUEST. n acest caz, conexiunea va fi eliberat i vor fi pierdute date. Evident, pentru a evita pierderea de date, este necesar un protocol de eliberare a conexiunii mai sofisticat. O posibilitate este utilizarea eliberrii simetrice: fiecare direcie este eliberat independent de cealalt; un calculator gazd poate s continue s primeasc date chiar i dup ce a trimis un TPDU de eliberare a conexiunii.

SEC. 6.2

NOIUNI DE BAZ DESPRE PROTOCOALELE DE TRANSPORT

463

Eliberarea simetric este util atunci cnd fiecare proces are o cantitate fix d& date de trimis i tie bine cnd trebuie s transmit i cnd a terminat. In alte situaii ns, nu este deloc uor de determinat cnd trebuie eliberat conexiunea i cnd a fost trimis tot ce era de transmis. S-ar putea avea n vedere un protocol de tipul urmtor: atunci cnd 1 termin, trimite ceva de tipul: Am terminat. Ai terminat i tu?" Dac gazda 2 rspunde: Da, am terminat. nchidem!" conexiunea poate fi eliberat n condiii bune. Din nefericire, acest protocol nu merge ntotdeauna. Binecunoscuta problem a celor dou armate este similar acestei situaii: s ne imaginm c armat alb i-a pus tabra ntr-o vale (ca n Fig. 6-13) Pe amndou crestele care mrginesc valea sunt armatele albastre. Armata alb este mai mare dect fiecare din cele dou armate albastre, dar mpreun armatele albastre sunt mai puternice. Dac oricare din armatele albastre atac singur, ea va fi nfrnt, dar dac ele atac simultan, atunci vor fi victorioase.
Armata albastr #2

Fig. 6-13. Problema celor dou armate. Armatele albastre vor s-i sincronizeze atacul. Totui singura lor posibilitate de comunicaie este s trimit un mesager care s strbat valea. Mesagerul poate fi capturat de armata alb i mesajul poate fi pierdut (adic vor trebui s utilizeze un canal de comunicaie nesigur). Problema este urmtoarea: exist vreun protocol care s permit armatelor albastre s nving? S presupunem c comandantul primei armate albastre trimite un mesaj: Propun s atacam pe 29 martie", mesajul ajunge la armata 2 al crei comandant rspunde: De acord" iar rspunsul ajunge napoi la armata 1. Va avea loc atacul n acest caz? Probabil c nu, deoarece comandantul armatei 2 nu tie dac rspunsul su a ajuns sau nu la destinaie. S ncercm s mbuntim protocolul adugndu-i nc un pas: iniiatorul propunerii de atac trebuie s confirme rspunsul. Presupunnd c nici un mesaj nu este pierdut, armata 2 va avea confirmarea, dar comandantul armatei 1 va ezita acum. nainte de orice, el nu tie dac confirmarea sa a ajuns la destinaie i este sigur c dac aceasta nu a ajuns, armata 2 nu va ataca. Am putea s ncercm un protocol cu confirmare n patrii timpi, dar ne-am lovi de aceleai probleme.

464

NIVELUL TRANSPORT

CAP. 6

De fapt, poate fi demonstrat c nu exist un protocol care s funcioneze. S presupunem c ar exista un asemenea protocol: decizia final poate s depind sau nu de ultimul mesaj al unui asemenea protocol. Dac nu depinde, putem elimina acest mesaj (i oricare altul la fel) pn ajungem la un protocol n care orice mesaj este vital. Ce se va ntmpla dac ultimul mesaj este interceptat? Tocmai am hotrt c acest mesaj era unul vital, deci dac este pierdut, atacul nu va avea loc. Deoarece cel care trimite ultimul mesaj nu poate fi niciodat sigur c mesajul a ajuns, el nu va risca atacnd. Mai ru chiar, cealalt armat albastr tie i ea acest lucru, deci nu va ataca nici ea. Pentru a vedea legtura problemei celor dou armate cu problema eliberrii conexiunii este suficient s nlocuim 'atac' cu 'deconectare'. Dac niciuna din pri nu se deconecteaz pn nu este sigur c cealalt parte este gata s se deconecteze la rndul ei, atunci deconectarea nu va mai avea loc niciodat. n practic suntem dispui s ne asumm mai multe riscuri atunci cnd este vorba de eliberarea conexiunii dect atunci cnd este vorba de atacarea armatei albe, aa nct situaia nu este ntru totul fr speran. Fig. 6-14 prezint patru scenarii de eliberare a conexiunii folosind un protocol cu confirmare n trei timpi. Dei acest protocol nu este infailibil, el este n general adecvat. n Fig. 6-14(a) apare cazul normal n care unul dintre utilizatori trimite un TPDU DISCONNECT REQUEST pentru a iniia eliberarea conexiunii. Atunci cnd acesta sosete, receptorul trimite napoi tot DISCONNECT REQUEST i pornete un ceas pentru a trata cazul n care mesajul su este pierdut. Cnd primete mesajul napoi, iniiatorul trimite o confirmare i elibereaz conexiunea. n sfrit, la primirea confirmrii, receptorul elibereaz i el conexiunea. Eliberarea conexiunii nseamn de fapt c entitatea de transport terge din tabelele sale informaia despre conexiunea respectiv i semnaleaz acest lucru utilizatorului nivelului transport. Dac ultima confirmare este pierdut, ca n Fig. 6-14(b), putem salva situaia cu ajutorul ceasului: dup scurgerea unui anumit interval de timp conexiunea este eliberat oricum. S considerm acum cazul n care cel de-al doilea TPDU DISCONNECT REQUEST este pierdut: utilizatorul care a iniiat deconectarea nu va primi rspunsul ateptat, va atepta un anumit timp i va trimite din nou un DISCONNECT REQUEST. n Fig. 6-14(c), putem vedea cum se petrec lucrurile n acest caz, presupunnd c la a doua ncercare toate TPDU-urile ajung corect i la timp. Ultima posibilitate pe care o studiem, prezentat n Fig. 6-14(d), este similar cu cea din 6-14(c), cu urmtoarea diferen: de aceasta dat niciuna din ncercrile urmtoare de a retransmite DISCONNECT REQUEST nu reuete. Dup N ncercri, emitorul va elibera pur i simplu conexiunea. n acelai timp, i receptorul va elibera conexiunea dup expirarea timpului. Dei acest protocol este, n general, destul de bun, n teorie el poate s dea gre dac dau gre att mesajul DISCONNECT REQUEST iniial ct i N retransmisii ale sale: n acest caz emitorul va elibera conexiunea, n timp ce la cellalt capt conexiunea va rmne n continuare activ. n aceasta situaie rezult o conexiune deschis pe jumtate. Am putea evita aceast problem nepermind emitorului s cedeze dup N rencercri nereuite, ci cerndu-i s continue pn primete un rspuns. Totui, dac celeilalte pri i se permite s elibereze conexiunea dup un interval de timp, este posibil ca iniiatorul s ajung s atepte la infinit. Dac ns nu s-ar permite eliberarea conexiunii dup expirarea unui interval de timp, atunci n cazul din Fig. 6-14 (b) protocolul s-ar bloca.

SEC 6.2

NOIUNI DE BAZ DESPRE PROTOCOALELE DE TRANSPORT

465

Gazda 2 Trimite DR +pornire ceas Trimite DR +pornire ceas Eliberare conexiune Trimite ACK Eliberare conexiune

Gazda 1 Trimite DR +pornire ceas

Gazda 2

Trimite DR +pornire ceas Eliberare conexiune

"
Trimite ACK Expirarea timpului Eliberare conexiune

(a)

(b)

Gazda 1 Trimite DR +pornire ceas (Expirarea " ^ e r d u t | r timpului) trimite DR +pornire ceas Eliberare conexiune Trimite ACK

Gazda 2 Trimite DR & pornire ceas

Gazda 1 Trimite DR +pornire ceas

Gazda 2 Trimite DR & pornire ceas

Trimite DR & 1 I I I * V m^ * v^% pornire ceas

(Expirarea timpului) trimite DR +pornire ceas

^PierdutC

ACK

Eliberare conexiune

(N Expirri de timp) Eliberare conexiune

(Expirarea timpului) Eliberare conexiune

(O

(d)

Fig. 6-14. Patru cazuri posibile la eliberarea conexiunii: (a)Cazul normal cu confirmare n trei timpi. (b)Ultima confirmare este pierdut, (c) Rspunsul este pierdut. (d) Rspunsul i urmtoarele cereri de deconectare sunt pierdute. (DR=DISCONNECT REQUEST). O alt posibilitate de a scpa de conexiunile pe jumtate deschise este de a aplica o regul de tipul: dac nici un TPDU nu sosete ntr-un anumit interval de timp, atunci conexiunea este eliberat automat. n acest fel, dac una din pri se deconecteaz, cealalt parte va detecta lipsa de activitate i se va deconecta i ea. Desigur, pentru a implementa aceasta regul este nevoie ca fiecare entitate de transport s aib un ceas cstre va fi fepornit la trimiterea oricrui TPDU. La expirarea timpului, se transmite un TPDU vid, doar pentru a menine conexiunea deschis. Pe de alt parte,

466

NIVELUL TRANSPORT

CAP. 6 i

dac este aleas aceast soluie, i cteva TPDU-uri vide sunt pierdute la rnd pe o conexiune altfel .; liber, este posibil ca, mai nti una din pri, apoi cealalt s se deconecteze automat. Nu vom mai continua s detaliem acest subiect, dar probabil c acum este clar c eliberarea unei conexiuni nu este att de simpl cum prea la nceput. 6.2.4 Controlul fluxului i memorarea temporar (buffering) Dup ce am studiat n detaliu stabilirea i eliberarea conexiunii, vom arunca o privire asupra modului n care sunt tratate conexiunile ct timp sunt utilizate. Una din problemele cheie a aprut i pn acum: controlul fluxului. La nivel transport exist asemnri cu problema controlului fluxului la nivel legtur de date, dar exist i deosebiri. Principala asemnare: la ambele niveluri este necesar un mecanism (fereastr glisant sau altceva) pentru a mpiedica un emitor prea rapid s depeasc capacitatea de recepie a unui receptor prea lent. Principala deosebire: un ruter are n general puine linii, dar poate s aib numeroase conexiuni. Aceast diferen face nepractic implementarea la nivel transport a strategiei de memorare temporar a mesajelor folosit la nivel legtur de date. n protocoalele pentru legtura de-date prezentate n capitolul 3, cadrele sunt memorate temporar att de rutenii care emite ct i de cel care recepioneaz. n protocolul 6, de exemplu, att emitorul ct i receptorul au alocate un numr de MaxSeq+1 tampoane pentru fiecare linie, jumtate pentru intrri i jumtate pentru ieiri. Pentru un calculator gazd cu, s spunem, 64 de conexiuni i numere de secven de 4 bii, acest protocol ar necesita 1024 tampoane. La nivel legtur de date, emitorul trebuie s memoreze cadrele transmise, pentru c poate fi necesar retransmiterea acestora. Dac subreeaua ofer un serviciu datagram, atunci entitatea de transport emitoare va trebui s memoreze pachetele trimise din aceleai motive. Dac receptorul tie c emitorul stocheaz toate TPDU-urile pn cnd acestea sunt confirmate, el poate s aloce sau nu tampoane specifice fiecrei conexiuni. Receptorul poate, de exemplu, s rezerve un singur grup de tampoane pentru toate conexiunile. La sosirea unui TPDU se face o ncercare de a obine dinamic un nou tampon. Dac un tampon este liber, atunci TPDU-ul este acceptat, altfel, este refuzat. Cum emitorul este gata s retransmit TPDU-urile pierdute de subreea, faptul c unele TPDU-uri sunt refuzate nu produce nici o daun, dei n acest fel sunt risipite resurse. Emitorul va retransmite pn cnd va primi confirmarea. Pe scurt, dac serviciul reea nu este sigur, emitorul va trebui s memoreze toate TPDUurile trimise, la fel ca la nivel legtur de date. Totui, folosind un serviciu la nivel reea sigur sunt posibile unele compromisuri. n particular, dac emitorul tie c receptorul are ntotdeauna tampoane disponibile, atunci nu trebuie s pstreze copiile TPDU-urilor trimise. Totui, dac receptorul nu poate garanta c orice TPDU primit va fi acceptat, emitorul va trebui s pstreze copii. n ultimul caz, emitorul nu poate avea ncredere n confirmarea primit la nivel reea, deoarece aceasta confirm sosirea TPDU-ului la destinaie, dar nu i acceptarea lui. Vom reveni asupra acestui punct important mai trziu. Chiar dac receptorul va realiza memorarea temporar a mesajelor primite, mai rmne problema dimensiunii tamponului. Dac cea mai mare parte a TPDU-urilor au aceeai dimensiune este natural organizarea tampoanelor ntr-o resurs comun care conine tampoane de aceeai dimensiune, cu un TPDU per tampon, ca n Fig. 6-15(a). Dac ns dimensiunea TPDU-urilor variaz de la cteva caractere tiprite la un terminal, la mii de caractere pentru un transfer de fiiere,

SEC. 6.2

NOIUNI DE BAZ DESPRE PROTOCOALELE DE TRANSPORT

467

organizarea ca o resurs comun cu tampoane de aceeai dimensiune va pune probleme. Dac dimensiunea tampoanelor ar fi constant, egal cu cel mai mare TPDU posibil, atunci va aprea o risip de spaiu ori de cte ori este primit un TPDU mai scurt. Dac dimensiunea tampoanelor este aleas mai mic dect cel mai mare TPDU posibil, atunci pentru memorarea unui TPDU mai lung vor fi necesare mai multe tampoane, iar complexitatea operaiei va crete.

TPDU1

TPDU 2

} TPDU 3
(a) (b)

>- TPDU 4
Spaiu nefolosit

.\

(0 Fig. 6-15. (a) Tampoane de dimensiune fix nlnuite, (b) Tampoane de dimensiune variabil nlnuite, (c) Un tampon circular pentru fiecare conexiune. O alt soluie este utilizarea unor tampoane de dimensiune variabil, ca n Fig. 6-15(b). Avantajul este o mai bun utilizare a memoriei, cu preul unei gestiuni a tampoanelor mai complicat. O a treia posibilitate este alocarea unui singur tampon circular pentru fiecare conexiune, ca n Fig. 6-15(c). Aceast soluie are de asemenea avantajul unei utilizri eficiente a memoriei, dar numai n situaia n care conexiunile sunt relativ ncrcate. Compromisul optim ntre memorarea temporar la surs sau la destinaie depinde de tipul traficului prin conexiune. Pentru un trafic n rafal cu o band de transfer ngust, ca traficul produs de un terminal interactiv, este mai bine ca tampoanele s nu fie prealocate, ci mai curnd, alocate dinamic. ntruct emitorul nu poate s fie sigur c receptorul va reui s aloce un tampon la sosirea unui pachet, emitorul va fi nevoit s rein copia unui TPDU transmis pn cnd acesta va fi confirmat. Pe de alt parte, pentru un transfer de fiiere sau pentru orice alt trafic care necesit o band de transfer larg este mai bine dac receptorul aloc un set ntreg de tampoane, pentru a permite urr flux de date la vitez maxim. Cu alte cuvinte, pentru un trafic n rafal cu o band de transfer ngust este mai bine s fie folosite tampoane la emitor, n timp ce pentru un trafic continuu cu o band de transfer larg, este mai eficient folosirea tampoanelor la receptor.

468

NIVELUL TRANSPORT

CAP. 6

Pe msur ce conexiunile sunt create i eliberate de trafic, iar ablonul se schimb, emitorul i receptorul trebuie s i ajusteze dinamic politica de alocare a tampoanelor. n consecin, protocolul de transport trebuie s permit emitorului s cear spaiu pentru tampoane la captul cellalt al conexiunii. Tampoanele pot fi alocate pentru o anumit conexiune sau pot fi comune pentru toate conexiunile ntre dou calculatoare gazd. O alternativ este ca receptorul, cunoscnd situaia tampoanelor sale (dar necunoscnd ablonul traficului) s poat spune emitorului: Am rezervat X tampoane pentru tine". Dac numrul conexiunilor deschise trebuie s creasc, poate fi necesar ca spaiul alocat unei singure conexiuni s scad, deci protocolul trebuie s furnizeze i aceast facilitate. O modalitate neleapt de a trata alocarea dinamic a tampoanelor este separarea stocrii n tampoane de confirmarea mesajelor, spre deosebire de protocolul cu fereastr glisant din capitolul 3. Alocarea dinamic a tampoanelor nseamn, de fapt, o fereastr cu dimensiune variabil. La nceput, emitorul trimite cereri pentru un anumit numr de tampoane bazndu-se pe o estimare a necesitilor. Receptorul aloc attea tampoane ct i poate permite. Emitorul compar constant numrul de TPDU-uri trimise (i neconfirmate) cu numrul de tampoane alocate la receptor i se blocheaz n caz c ar trebui s depeasc acest numr. Receptorul trimite napoi confirmri i situaia tampoanelor alocate, mpreun cu traficul n sens invers. Fig. 6-16 este un exemplu pentru modul n care administrarea dinamic a ferestrelor poate fi folosit ntr-o subreea cu datagrame, cu un numr de secven pe 4 bii. S presupunem c informaia despre alocarea tampoanelor este mpachetat n TPDU-uri distincte i c este separat de traficul n sens invers. La nceput A dorete opt tampoane, dar nu i se acord dect patru. Dup aceea sunt trimise trei TPDU-uri, iar al treilea este pierdut. TPDU-ul 6 confirm recepia tuturor TPDU-urilor cu numere de secven mai mici sau egale cu 1, permind lui A s elibereze acele tampoane i, mai mult, l informeaz pe A c B poate s mai recepioneze trei TPDU-uri (adic TPDU-urile cu numere de secven 2,3,4). A tie c a trimis deja numrul 2, deci se gndete c ar putea trimite 3 i 4, ceea ce i ncearc s fac. n acest moment, el este blocat i trebuie s atepte alocarea unui tampon. Expirarea timpului pentru primirea confirmrii determin retransmisia mesajului 2 (linia 9), care poate avea loc, dei emitorul este blocat, deoarece se vor utiliza tampoane deja alocate. n linia 10, B confirm primirea tuturor TPDU-urilor pn la 4, dar l ine pe A nc blocat. O astfel de situaie ar fi fost imposibil cu protocolul cu fereastr glisant prezentat n capitolul 3. Urmtorul TPDU de la B la A aloc nc un tampon i i permite lui A s continue. n cazul strategiilor pentru alocarea tampoanelor de tipul celei de mai sus, eventuale probleme pot s apar n reele neorientate pe conexiune dac sunt pierdute TPDU-uri de control. S privim linia 16 din Fig. 6-16: B a mai alocat tampoane pentru A, dar TPDU-ul care transmitea aceast informaie a fost pierdut. Deoarece TPDU-urile de control nu sunt numerotate sau retransmise, A va fi blocat. Pentru a preveni aceast situaie, fiecare calculator gazd trebuie s trimit periodic pe fiecare conexiune TPDU-uri de control ce pot conine confirmri i informaii despre starea tampoanelor. n acest fel, A va fi deblocat mai devreme sau mai trziu. Pn acum am presupus tacit c singura limit impus ratei de transfer a emitorului este legat de dimensiunea spaiului alocat la receptor pentru tampoane. Deoarece preul memoriei continu s scad vertiginos, ar putea deveni posibil echiparea unei gazde cu suficient de mult memorie, astfel nct lipsa tampoanelor s pun rar probleme, dac le va pune vreodat.

SEC. 6.2

NOTTUNI DE BAZ DESPRE PROTOCOALELE DE TRANSPORT

469

A 1 2 3 4 5 -*

Mesajul < cere 8 tarnpoane> <ack=15, buf=4> <seq = 0, data = m0> <seq = 1,data = m1> <seq = 2, data = m2> <ack= 1, buf = 3> <seq = 3, data = m3> <seq = 4, data = m4> <seq = 2, data = m2> <ack = 4, buf = 0> <ack = 4, buf = 1> <ack = 4, buf = 2> <seq = 5, data = m5> <seq = 6, data = m6> <ack = 6, buf = 0> <ack = 6, buf = 4>

Comentarii A cere 8 tampoane B l acord tampoane numai de la 0 la 3 A mai are 3 tampoane libere A mai are 2 tampoane libere Mesaj pierdut, dar A crede c mai are un singur tampon liber B confirm 0 i 1 i permite 2-4 A mai are tampoane A nu mai are tampoane libere i trebuie s se opreasc A retransmite la expirarea intervalului de timp Toate mesajele sunt confirmate, dar A este n continuare blocat A poate s l trimit acum pe 5 B a mai gsit un tampon A mai are un tampon liber A este blocat din nou A este blocat n continuare Posibil interblocare

* -

6 7 8 9 10 11 12 13
14

~*
*

15 16

Fig. 6-16. Alocarea dinamic a tampoanelor. Sgeile indic direcia transmisiei. Punctele de suspensie (...) indic pierderea unui TPDU. Atunci cnd spaiul de memorie alocat pentru tampoane nu limiteaz fluxul maxim, va aprea o alt limitare: capacitatea de transport a subreelei. Dac dou rutere adiacente pot s schimbe cel mult x cadre pe secund i exist k ci distincte ntre dou calculatoare gazd, atunci este imposibil transferul la o rat mai mare de k * x TPDU-uri pe secund, orict de multe tampoane ar fi alocate la cele dou capete ale conexiunii. Dac emitorul se grbete prea tare (adic trimite mai mult de k * x TPDU-uri pe secund), reeaua se va congestiona, deoarece nu va putea s livreze datele le fel de repede cum le primete. Este necesar un mecanism bazat pe capacitatea de transport a subreelei i nu pe capacitatea de memorare n tampoane a receptorului. Evident, mecanismul de control al fluxului trebuie aplicat la emitor pentru a preveni existena prea multor TPDU-uri neconfirmate la acesta. Belsens (1975) a propus folosirea unei scheme cu fereastr glisant n care emitorul modific dinamic dimensiunea ferestrei pentru a o potrivi la capacitatea de transport a reelei. Dac reeaua poate s transporte c TPDU-uri pe secund i durata unui ciclu (incluznd transmisia, propagarea, timpul petrecut n cozi, prelucrarea la destinaie i revenirea confirmrii) este r, atunci dimensiunea ferestrei la emitor trebuie s fie c*r. Folosind o fereastr cu aceast dimensiune, emitorul va putea lucra la capacitate maxim. Orice mic scdere a performanelor reelei va genera blocri ale emitorului. Pentru a ajusta periodic dimensiunea ferestrei, emitorul poate urmri cei doi parametri, dup care poate calcula dimensiunea dorit a ferestrei. Capacitatea de transport a subreelei poate fi determinat pur i simplu numrnd TPDU-urile confirmate ntr-o anumit perioad de timp i raportnd la acea perioad. n timpul msurtorii, emitorul trebuie s transmit ct mai repede pentru a fi sigur c factorul care limiteaz numrul confirmrilor este capacitatea de transport a

470

NIVELUL TRANSPORT

CAP. 6

subreelei i nu rata mic de emisie. Timpul necesar pentru ca un TPDU transmis s fie confirmat poate fi msurat cu exactitate i media poate fi calculat continuu. Deoarece capacitatea de transport a reelei depinde de trafic, dimensiunea ferestrei trebuie ajustat frecvent pentru a urmri schimbrile n capacitatea de transport. Aa.cum vom vedea mai departe, n Internet se folosete un mecanism similar.
6.2.5 Multiplexarea

Multiplexarea mai multor conversaii pe conexiuni, circuite virtuale i legturi fizice joac un rol important n mai multe niveluri ale arhitecturii reelei. n cazul nivelului transport, multiplexarea poate fi necesar din mai multe motive. De exemplu, n reelele care folosesc circuite virtuale n subreea, fiecare conexiune consum spaiu n tabelele ruterelor pe toat durata de via a conexiunii. Dac exist i tampoane dedicate circuitului virtual n fiecare ruter, atunci un utilizator care las un terminal de teleprelucrare (remote terminal) deschis n timpul pauzei de cafea consum resurse costisitoare. Dei aceast manier de implementare ignor unul din principalele motive care au condus la comutarea de pachete, i anume c utilizatorul trebuie facturat pornind de la cantitatea de date trimise i nu de la timpul de conectare, muli furnizori de servicii au ales aceast abordare datorit asemnrii cu modelul comutrii de circuite pe care l-au folosit decenii de-a rndul.
Adres la nivel transport /
Adres la nivel reea

Nivel

4 3

2 1

A
Liniile ruterului

|* \
' Ctre ruter

(a)

(b)

Fig. 6-17. (a) Multiplexare n sus. (b) Multiplexare n jos. Consecina unei structuri de preuri care penalizeaz puternic utilizarea mai multor circuite virtuale simultan pentru o perioad lung de timp este c realizarea multiplexrii mai multor conexiuni transport peste aceeai conexiune reea devine mult mai atractiv. Aceast form de multiplexare, numit multiplexare n sus, este prezentat n Fig. 6-17(a). n aceast figur, patru conexiuni transport diferite folosesc n comun aceeai conexiune reea (de exemplu, un circuit virtual ATM) ctre calculatorul gazd de la distan. Atunci cnd timpul de conectare reprezint partea cea mai important a preului pltit pentru serviciile furnizate de nivelurile inferioare, este la latitudinea

SEC. 6.2

NOIUNI DE BAZA DESPRE PROTOCOALELE DE TRANSPORT

471

nivelului transport s grupeze mai multe conexiuni transport pe un numr minim de conexiuni reea. Dac prea multe conexiuni transport corespund aceleiai conexiuni reea, atunci performanele vor fi proaste, deoarece fereastra va fi n general plin i un utilizator va avea de ateptat pn s-i vin rndul s transmit un mesaj. Dac unei conexiuni reea i corespund prea puine conexiuni transport, atunci serviciul va fi scump. Atunci cnd multiplexarea n sus este utilizat mpreun cu ATM, apare situaia ironic (tragic?) n care un cmp al antetului la nivel transport este folosit pentru a identifica conexiunea, dei ATM furnizeaz, exact n acelai scop, mai mult de 400 numere de circuite virtuale pentru o cale virtual. Multiplexarea poate s fie util nivelului transport i din alt motiv, legat de deciziile tehnice si nu de politica de preuri ca pn acum. S presupunem c un utilizator foarte important are nevoie, din cnd n cnd, de o conexiune cu o lime de band mare. Dac subreeaua realizeaz un control al fluxului cu fereastr glisant, cu un numr de .secven pe n bii, atunci n utilizatorul, trebuie s se opreasc cnd 2 -l pachete ateapt confirmare i trebuie s atepte pn cnd pachetele sunt propagate ctre gazda aflat la distan i sunt confirmate. n cazul n care conexiunea fizic se face prin satelit, utilizatorul este de fapt limitat la 2n-l pachete la fiecare 540 msec. Pentru n=8 i pachete de 128 bii, limea de band utilizabil este de aproximativ 484 Kbps, dei limea de band a canalului fizic este de 100 de ori mai mare. O soluie posibil este ca nivelul transport s deschid mai multe conexiuni reea i s distribuie traficul prin acestea (ntr-un sistem round-robin), la fel ca n Fig. 6-17(b). Acest mod de operare se numete multiplexare n jos. n cazul a k conexiuni reea deschise limea de band real este multiplicat cu un factor k. Folosind 4095 circuite virtuale, pachete de 128 bii i un numr de secven pe 8 bii, este teoretic posibil s se obin rate de transfer care depesc 1.6 Gbps. Aceste performane nu pot fi stabilite dect dac linia de ieire suport 1.6 Gbps, deoarece toate cele 4095 circuite sunt multiplexate pe aceeai linie fizic, cel puin n Fig. 6-17(b). Dac sunt disponibile mai multe linii de ieire, multiplexarea n jos poate fi utilizat pentru a mri i mai mult performanele. 6.2.6 Refacerea dup cdere n cazul n care calculatoarele gazd sau ruterele se ntmpl s cad, recuperarea dup o astfel de cdere devine o problem. Dac entitatea de transport este n ntregime coninut de calculatorul gazd, atunci revenirea dup o cdere a reelei sau a unui ruter este simpl. Dac nivelul reea furnizeaz un serviciu datagram, atunci entitatea de transport tie s rezolve problema TPDU-urilor pierdute. Dac nivelul reea furnizeaz un serviciu orientat pe conexiune, atunci pierderea unui circuit virtual este tratat stabilind un circuit virtual nou i apoi ntrebnd entitatea de transport aflat la distan care TPDU-uri a primit deja i ce TPDU-uri nu. Acestea din urm pot fi retransmise. Cderea unui calculator gazd pune o problem mult mai suprtoare. n particular, clienii pot dori s continue s lucreze imediat dup ce serverul cade i repornete. Pentru a ilustra aceast dificultate, s presupunem c o gazd (clientul) trimite un fiier lung unei alte gazde (serverul) folosind un protocol simplu de tip pas-cu-pas (stop-and-wait). Nivelul transport de pe server nu face dect s paseze utilizatorului TPDU-urile primite, unul cte unul. Dac n timpul transmisiei serverul cade, la revenirea acestuia tabelele sunt reiniializate i serverul nu va mai ti precis unde a rmas.

472

NIVELUL TRANSPORT

CAP. 6

ntr-o ncercare de a reveni n starea sa iniial, serverul ar putea s trimit cereri tuturor celorlalte gazde anunnd c tocmai s-a refcut dup o cdere i cernd clienilor s-1 informeze despre situaia tuturor conexiunilor deschise. Fiecare client poate fi n una din urmtoarele stri: un TPDU neconfinnat (starea SI) sau nici un TPDU neconfirmat (starea SO). Bazndu-se numai pe aceast informaie, clientul trebuie s decid dac s retransmit sau nu cel mai recent TPDU. La prima vedere pare evident: atunci cnd afl de cderea i revenirea serverului, clientul trebuie s retransmit doar dac are TPDU-uri neconfirmate (adic este n starea SI). Totui, o privire mai atent descoper dificultile care apar n aceast abordare naiv. S considerm, ca exemplu, situaia n care entitatea de transport de pe server trimite mai nti confirmarea i apoi, dup ce confirmarea a fost trimis, paseaz datele procesului aplicaie. Trimiterea confirmrii i transferul datelor procesului aplicaie sunt dou evenimente distincte, indivizibile i care nu pot avea loc simultan. Dac o cdere a serverului are loc dup trimiterea confirmrii, dar nainte de transferul datelor, clientul va primi confirmarea i se va afla n starea SO, atunci cnd anunul despre cdere ajunge la el. n acest caz, clientul nu va mai retransmite (ceea ce este incorect), creznd c TPDU-ul respectiv a fost recepionat. Aceast decizie a clientului va conduce la lipsa unui TPDU. n acest moment s-ar putea spune: Nimic mai simplu! Tot ceea ce trebuie fcut este s reprogramm entitatea de transport astfel, nct s transfere datele mai nti i s trimit confirmarea dup aceea!". S vedem: dac transferul datelor a avut loc, dar serverul cade nainte s trimit confirmarea, clientul va fi n starea SI, va retransmite i astfel vom avea un TPDU duplicat n fluxul de date ctre procesul aplicaie. Oricum ar fi proiectai emitorul i receptorul, ntotdeauna vor exista situaii n care revenirea dup o cdere nu se va face corect. Serverul poate fi programat n dou feluri: s fac mai nti confirmarea sau s transfere mai nti datele. Qientul poate fi programat n patru feluri: s retransmit ntotdeauna ultimul TPDU, s nu retransmit niciodat, s retransmit numai n starea SO, s retransmit numai n starea SI. Rezult astfel opt combinaii, dar, aa cum vom vedea, pentru fiecare combinaie exist o anumit succesiune de evenimente pentru care protocolul nu funcioneaz corect.
Strategia folosit de receptor
a

Mai nti confirm, apoi transfer

te-

Mai nti transfer, apoi confirm


,

Strategia folosit de emitor Retransmite ntotdeauna Nu retransmite niciodat Retransmite n SO Retransmite n S1

AC(T)

ATC

C(AT)

C(TA)

TAC

TC(A)

OK LOST OK LOST

DUP OK DUP OK

OK LOST LOST OK

OK LOST LOST OK

DUP OK DUP OK

DUP OK OK DUP

OK = Protocolul funcioneaz corect DUP = Protocolul genereaz un mesaj duplicat LOST = Protocol pierde un mesaj

Fig. 6-18. Combinaiile diferitelor strategii posibile pentru server i client.

SEC. 6.3

UN PROTOCOL SIMPLU DE TRANSPORT

473

La server sunt posibile trei evenimente: trimiterea unei confirmri (A), transferul datelor la procesul aplicaie (T) i cderea (C). Aceste trei evenimente pot s fie ordonate n 6 feluri: AC(T), ATC, C(AT), C(TA), TAC i TC(A). Parantezele sunt folosite pentru a indica faptul c nici A, nici T nu pot urma dup C (odat ce serverul a czut, e bun czut). Fig. 6-18 prezint toate cele opt combinaii ale strategiilor clientului i serverului i prezint secvenele valide pentru fiecare din ele. pe reinut c pentru orice strategie exist o secven de evenimente pentru care protocolul nu funcioneaz corect. De exemplu, dac clientul retransmite ntotdeauna, secvena ATC va genera un duplicat care nu poate fi detectat, n timp ce pentru celelalte dou secvene totul este n regul. ncercarea de a reproiecta mai minuios protocolul nu ajut. Chiar dac clientul i serverul schimb mai multe TPDU-uri nainte ca serverul s transfere datele, astfel nct clientul tie exact ceea ce se petrece pe server, nu poate afla dac serverul a czut imediat nainte sau imediat dup transferai datelor. Concluzia se impune de la sine: dat fiind condiia de baz ca dou evenimente s nu fie simultane, revenirea dup o cdere nu poate fi fcut transparent pentru nivelurile superioare. n termeni mai generali, acest rezultat poate fi reformulat astfel: restartarea dup o cdere a nivelului N nu poate fi fcut dect de ctre nivelul N + l , i aceasta doar dac nivelul superior reine suficient informaie de stare. Aa cum am artat mai sus, nivelul transport poate s revin dup erorile nivelului reea numai dac fiecare capt al conexiunii ine minte unde a rmas. Am ajuns astfel la problema definirii precise a ceea ce nseamn o confirmare capt-a-capt n principiu, protocolul de transport este unul capt-la-capt i nu nlnuit ca la nivelurile de mai jos. S considerm cazul unui utilizator care genereaz cereri de tranzacii pentru o baz de date de la distan. S presupunem c entitatea de transport aflat la distan este programat s trimit mai nti TPDU-ul nivelului superior i apoi s confirme. Chiar i n acest caz, primirea unei confirmri de ctre maina utilizator nu nseamn neaprat c maina gazd de la distan a avut timp s actualizeze baza de date. De fapt, o adevrat confirmare capt-la-capt, a crei primire arat c sau efectuat toate prelucrrile de ctre maina de la distan, este probabil imposibil de obinut. Acest subiect este discutat n detaliu de Saltser .a. (1984).

6.3 UN PROTOCOL SIMPLU DE TRANSPORT


Pentru a concretiza ideile discutate, n acest capitol vom studia n detaliu un exemplu de nivel transport. Exemplul a fost ales pentru a fi ct mai realist, dar i suficient de simplu i uor de neles. Vom utiliza setul abstract de primitive orientate pe conexiune prezentat n Fig. 6-3. 6.3.1 Primitivele serviciului ales ca exemplu Prima problem const n definirea exact a primitivelor de transport. Pentru CONNECT este uor: vom avea o rutin de bibliotec connect care poate fi apelat cu parametri potrivii pentru stabilirea unei conexiuni. Parametrii sunt TSAP-ul local i cel aflat la distan. n timpul apelului, apelantul este blocat n timp ce entitatea de transport ncearc s stabileasc conexiunea. Dac conexiunea reuete, apelantul este deblocat i poate s nceap s transmit date.

474

NIVELUL TRANSPORT

CAP. 6

Atunci cnd un proces dorete s accepte conexiuni, el face un apel lisen specificnd un anumit TSAP pe care l ascult. Dup aceasta, procesul este blocat pn cnd un proces aflat la distan ncearc s stabileasc o conexiune cu TSAP-u la care ateapt. De observat c acest model este asimetric. O parte este pasiv, executnd listen i ateptnd ca ceva s se ntmple. Cealalt parte este activ i iniiaz conexiunea. O ntrebare interesant este: ce trebuie fcut dac partea activ ncepe prima?. O posibilitate este ca ncercarea de conectare s nu reueasc dac nu exist nici un proces care s asculte la TSAP-ul aflat la distan. O alt posibilitate este ca iniiatorul s se blocheze (eventual pentru totdeauna) pn cnd apare un proces care s asculte Ia TSAP-ul aflat la distan. Un compromis folosit n exemplul nostru este pstrarea cererii de conexiune la receptor pentru un anumit interval de timp. Dac un proces de pe acest calculator gazd apeleaz lisen nainte ca timpul s expire, atunci conexiunea este stabilit, altfel conexiunea este refuzat i apelantul este deblocat ntorcnd un cod de eroare. Pentru a elibera o conexiune vom folosi un apel disconnect. Atunci cnd ambele pri s-au deconectat, conexiunea este eliberat. Cu alte cuvinte, folosim un modei de deconectare simetric. Transmisia de date are exact aceeai problem ca i stabilirea conexiunii: emitorul este activ, dar receptorul este pasiv. Vom folosi aceeai soluie pentru transmisia de date ca i pentru stabilirea conexiunii, adic un apel activ sen care trimite datele i un apei pasiv receive care blocheaz pn cnd sosete un TPDU. Definiia concret a serviciului const astfel din cinci primitive: CONNECT, LSTEN, DISCONNECT, SEND i RECEVE. Fiecare primitiv corespunde unei funcii de bibliotec care execut acea primitiv. Parametrii pentru primitive i funciile de bibliotec sunt:
connum = LlSTEN(local) connum = CONNECT (local, remote) staus = SEND(connum, buffer, bytes) satus = RECEIVE(connum, buffer, byesj staus = DISCONNECT(connum)

Primitiva LISTEN anun disponibilitatea serverului de a accepta cereri de conexiune ia TSAPul indicat. Utilizatorul primitivei este blocat pn cnd se face o ncercare de conectare la TSAP-u specificat. Blocarea poate s fie definitiv. Primitiva CONNECT are doi parametri, un TSAP local (adic o adres la nivel transport) i un TSAP aflat la distant si ncearc s stabileasc o conexiune ntre acestea dou. Dac reuete, ea ntoarce connum, un numr nenegativ utilizat pentru a identifica conexiunea. Dac nu reuete, motivul este pus n connum ca un numr negativ. n modelul nostru (destul de simplu), fiecare TSAP poate s participe la cel mult o singur conexiune de transport, deci un motiv pentru refuzul unei cereri de conectare poate fi c adresa la nivel transport este deja folosit. Cteva alte motive pot fi: gazda de la distan czut, adres local incorect sau adres de la distan incorect. Primitiva SEND trimite coninutul unui tampon ca un mesaj pe conexiunea indicat, eventual divizndu-1 n mai multe uniti, dac este prea mare. Erorile posibile, ntoarse n status, pot fi: nu exist conexiune, adres de tampon invalid sau numr de bii negativ. Primitiva RECEIVE indic faptul c apelantul ateapt s recepioneze date. Dimensiunea mesajului este plasat n cmpul byes. Dac procesul aflat la distan a eliberat conexiunea sau

SEC. 6.3

UN PROTOCOL SIMPLU DE TRANSPORT

475

dac adresa pentru tampon este incorect (de exemplu, n afara spaiului de adrese ai programului utilizator), funcia va ntoarce un cod de eroare indicnd natura problemei. Primitiva DISCONNECT pune capt unei conexiunii transport indicate prin parametrul connum. Erori posibile sunt: connum aparine de fapt altui proces sau connum nu este un identificator valid de conexiune. Codul de eroare sau 0 pentru succes sunt returnate n staus. 6.3.2 Entitatea de transport aleas ca exemplu nainte de a studia programul aferent entitii de transport, trebuie spus c acesta este un exemplu similar celor din capitolul 3: este prezentat mai mult n scop pedagogic dect pentru a fi utilizat. Mai multe detalii tehnice (precum detectarea extensiv a erorilor) care ar fi necesare unui produs real au fost lsate deoparte pentru simplitate. Nivelul transport utilizeaz primitivele serviciului reea pentru a trimite i recepiona TPDU-mi. Trebuie s alegem primitivele serviciului reea pe care Ie vom utiliza pentru acest exemplu. O posibilitate ar fi fost: un serviciu datagram nesigur. Nu am fcut aceast aiegere pentru a pstra simplitatea exemplului. Folosind un serviciu datagram nesigur, codul pentru entitatea de transport ar fi devenit foarte mare i complicat, n cea mai mare parte legat de pachete pierdute sau ntrziate. Mai mult, cea mai mare parte a ideilor au fost deja discutate n capitolul 3. Am ales n schimb un serviciu reea sigur, orientat pe conexiune. n acest fel ne putem concentra asupra problemelor puse de nivelul transport care nu apar n nivelurile inferioare. Acestea includ, ntre altele, stabilirea conexiunii, eliberarea conexiunii i gestiunea tampoanelor. Un serviciu de transport simplu, construit peste un nivel reea ATM, ar putea s semene cu acesta. n general, entitatea de transport poate s fie parte a sistemului de operare a! calculatorului gazd sau poate s fie un pachet de funcii de bibliotec n spaiul de adrese utilizator. De asemenea, ea poate s fie coninut de un cip coprocesor sau de placa de reea. Pentru simplitate, exemplul nostru a fost programat ca i cum entitatea de transport ar fi un pachet de funcii de bibliotec, dar schimbrile necesare pentru a o face parte a sistemului de operare sunt minime (fiind n principal legate de modul cum sunt adresate tampoanele). Merit remarcat faptul c, n acest exemplu, entitatea de transport nu este o entitate separat, ci este o parte a procesului utilizator. Mai precis, atunci cnd utilizatorul folosete o primitiv blocant, de exemplu LISTEN, se blocheaz toat entitatea de transport. n timp ce aceast arhitectur este potrivit pentru un calculator gazd cu un singur proces utilizator, pentru un calculator gazd cu mai muli utilizatori este normai ca entitatea de transport s fie un proces separat, distinct de toate celelalte procese. Interfaa cu nivelul reea se face prin intermediul procedurilor tojie i fromjiet. Fiecare are ase parametri. Primul este identificatorul conexiunii, care este n coresponden bijectiv cu circuitul virtual la nivel reea. Apoi urmeaz biii Q i M care, atunci cnd au valoarea 1, indic mesaje de control i, respectiv, faptul c mesajul continu i n urmtorul pachet. Dup acestea urmeaz tipul pachetului, ales dintr-un set de ase tipuri de pachete prezentate n Fig. 6-19. La sfrit se gsete un indicator ctre zona de date i un ntreg care indic numrul de octei de date. La apelurile to_ne, entitatea de transport completeaz toi parametrii pentru ca nivelul reea s-i poat citi; la apelurile fromjiet nivelul reea dezasambleaz un pachet sosit pentru entitatea de transport. Transferul informaiei sub forma unor parametri ai unei proceduri i nu a pachetului de trimis sau de recepionat protejeaz nivelul transport de toate detaliile protocolului nivelului reea.

NIVELUL TRANSPORT

:AP.6

Dac entitatea de transport ncearc s trimit un pachet atunci cnd fereastra corespunztoare a circuitului virtual este plin, ea va fi blocat ntr-un apel tojiet pn cnd va fi spaiu n fereastr. Mecanismul este transparent pentru entitatea de transport i este controlat de nivelul reea prin comenzi ca enabkjransportjayer i disablejransportjayer, anaioage celor descrise n protocoalele din capitolul 3. Gestionarea ferestrei de pachete este fcut de nivelul reea.
Tip pachet CALL_REQUEST CAIL.ACCEPTED CLEAR_REQUEST CIEAFLCQNRRMTSON DATA CREDIT Explicaii Trimis pentru a stabili conexiunea , Rspuns Ia CALL_ REQUEST Trimis pentru a elibera conexiunea _ _ _ CLEAR_REQUEST Pentru transport de dae Pachet de control pentru gestionarea ferestrei

Fng. 6-19. Tipurile de pachete folosite la nivel reea. Pe lng acest mecanism transparent de suspendare mai exist dou proceduri, sleep i wakeup, apelate de entitatea de transport. Procedura sleep este apelat atunci cnd entitatea de transport este blocat logic n. ateptarea unui eveniment extern, n general sosirea unui pachet. Dup ce a fost apelat skq?, entitatea de transport (i procesul utilizator, bineneles) sunt blocate. Codul entitii de transport este prezentat n Fig. 6-20. Orice conexiune este ntr-una din urmtoarele apte stri: IDLE- conexiunea ne a fost nc stabilit WAITING - a fost executat CONNECT i trimis: CALL_REQUEST QUEUED - a sosit un CALL_REOUEST, nu a fost executat nc nici im apel LSTEN ESTABLISHED - conexiunea a fost stabilit SENDING - utilizatorul ateapt permisiunea de a trimite un pachet RECEIVING - a fost apelat RECEIVE DISCONNECTiNG - un apel DISCONNECT a fost fcut local Pot s apar tranziii ntre stri ori de cte ori are loc unul din urmtoarele evenimente: este secuta o primitiv, sosete un pachet sau expir un interval de timp

#include #i!ic]ude #include #include #inc1ude #inc1ude #indude #inc!ude #indude #include

MAX_C0NN 32 MAX_MSG_SIZE 8192 MAX_PKT_SIZE 512 TIMEOUT 20 CRED 1 OK 0 ERRJULL -l ERRJEJECT -2 ERR_CLOSED -3 L O W ERR -3

/* numrul maxim de conexiuni deschise simultan */ /* dimensiunea maxim a unui mesaj n octei */ /* dimensiunea maxim a unui pachet n octei */

SEC. 6.3

UN PROTOCOL SIMPLU DE TRANSPORT

477

typedef int transport_address; typedef enum {CALL_REQ,CALL_ACC, CIEAR_REQ, CLEAR_CONFS DATA_PKT,CREDIT} pktjype; typedef enum {IDLE, WAITING, QUEUED, ESTABLISHEDS SENDING, RECEIVING, DSCONN} cstate; /* Variabile globale */ transport_address listen_address; int listen_conn unsigned char data[MAX_PKT_SIZE] /* adresa local care este ascultat */ /* identificatorul de conexiune pentru listen */ /* zona pentru pachetele de date */

struct conn { transport_address local_address5 remote_address; cstate state; /* starea conexiunii */ unsigned char *user_buf_addr; /* indicator la ablonul de recepie */ int byte_count; /* contor de emisie/recepie*/ int clr_req_received; /* setat atunci cnd este primit un pachet CLEAR_REQ*/ int timer; ^ /* folosit pentru a evita ateptrile infinite */ .int credits; /* numrul de mesaje care poate fi trimis */ }; conn[MAX_CONN] /* prototipuri */ void sleep(void); void wakeup(void); void to_net(int cid, int q5 int m pkt_type pt, unsigned char *p, int bytes); void from net(int *cids int *q s int *m pkt_type *pt s unsigned char *p 9 int *bytes); int listen (transport_address t) { /* Utilizatorul vrea stabileasc o int i=I, found=G; for (i=l; i<= MAX_CONN; i++) if (conn[i].state == QUEUED && found = i; break; } if (found == 0) { /* unul listen_address = t; sleepQ; i conn[i].state = ESTABLISHED; conn[i].timer = 0 listen_conn = 0 ; to_net(is 0s 0s CALL_ACCS 0 ) ; return(i);

conexiune. Trebuie vzut daca CALL_REQ a sosit deja */ /* caut n tabela de conexiuni CALL_REQ*/ conn[i].locall_address == t) {

nu a gsit nici un CALL_REQ. Ateapt pn cnd sosete sau pn cnd expira intervalul de timp de ateptare */ = listen_conn; /* conexiunea este stabilit /* ceasul nu este folosit /* 0 este presupus o adres invalid /* spune niv. reea s accepte cererea de conexiune /* ntoarce identificatorul conexiunii */ */ */ */ */

int connect (transport_address 1, transport_address r) { /* Utilizatorul dorete s stabileasc o conexiune cu un proces aflat la aflat la distan; se trimite un pachet CALL_REQ */ int i; struct conn *cptr; data[0] = r; data[l] = 1; i = MAXC0NN /* pachetul CALL_REQ are nevoie de asta */ /* caut n tabel napoi */

478

NIVELUL TRANSPORT

CAP. 6

while (conn[i].state != IDLE && i>l) i = i-I; if (conn[i].state == IDLE) { cptr = &conn[i]; cptr->local_address = 1 ; ; cptr->remote_address = r; cptr->state = WAITING; cptr->clr_req_received = 0; cptr->credits = 0; cptr->timer = 0; to_net(is 0, 0 5 CALL_REQ, data, 2 ) ; sleep(); if (cptr->state == ESTABLISHED) return (i); if (cptr->clr_req_received ) { cptr->state = IDLE to_net(is 0, 0, CLEAR_CONF5 datas 0);return(ERR_REJECT); } else return (ERR_FULL)

/* Face o intrare n tabel */

/* ateapt CALL_ACC sau CLEAR_REQ */ /* cererea de conexiune este refuzat */ /* napoi n starea IDLE */

/* conexiunea este refuzat: insuficient spaiu n tabele */

int send (int cid9 unsigned char bufptr[]9 int bytes) { /* Utilizatorul dorete s trimit un mesaj */ int i, count, m; struct conn *cptr = &conn[cid]; /* Intr n starea SENDING*/ cptr->state = SENDING; cptr->byte_count = 0 ; if (cptr->clr_req_received == 0 && cptr->credits == 0 ) sleepQ; if (cptr->clr_req_received == 0) { /* Exist credite; mparte mesajul n pachete dac este cazul do { if (bytes - cptr->byte_count > MAX_PKT_SIZE) { /* mesaj format din mai multe pachete */ count = MAX_PKT_SIZE; m = 1; /* mai urmeaz pachete } else {count = bytes - cptr->byte->count; /un mesaj format dintr-un pachet m=0; /* ultimul pachet al acestui mesaj for (i=0; i<count; i++) data[i]=bufptr[cptr->byte_count+l]; to_net(cid, 0, m,DATA_PKTs data s count); /* trimite un pachet cptr->byte_count=cptr->byte_count + count; /* incrementeaz nr. Octeilor trimii } while (cptr->byte_count < bytes); /*bud pn cnd ntregul mesaj este trimis cptr->credits--; /* fiecare mesaj folosete un credit cptr->state = ESTABLISHED; return(OK); ) else f cptr->state = ESTABLISHED; return(ERR_CLOSED); /* ntoarce insucces: cellalt capt vrea s se deconecteze

*/

*/ */ */ */ */ */ */

*/

SEC. 6.3

UN PROTOCOL SIMPLU DE TRANSPORT

479

int receive (int cid, unsigned char bufptr[], int *bytes) /* Utilizatorul este gata s primeasc un mesaj */ struct conn *cptr = &conn[cid]; if (cptr->clr_req_received) { /* Conexiunea nc stabilit; ncearc s recepioneze */ cptr->state = RECEIVING; cptr->user_buf_addr = bufptr; cptr->byte_count = 0; data[0] = CRED; data[l] = 1; to_net(cid, 1, 0, CREDIT, data, 2 ) ; /* trimite CREDIT */ sleepO; /* se blocheaz n ateptarea datelor */ *bytes = cptr->byte_count;

cptr->state = ESTABLISHED; return(cptr->clr_req_received ? ERR_CLOSED : OK); }

int disconnect (int cid) { /* Utilizatorul vrea s se deconecteze */ struct conn *cptr = &conn[cid]; if (cptr -> clr_req_received) { cptr->state = IDLE; to_net(cid, 0, 0, CLEAR_CONF, data, 0 ) ; } else { cptr->state = DISCONNECT; to_net(cid, 0, 0, CLEAR_REQS data, 0 ) ; } return (OK); } void packet_arrival (void) { /* A sosit un pachet; urmeaz prelucrarea lui */ int cid; /* conexiunea pe care a sosit pachetul */ int count, i q5 m; pkt_type ptype; unsigned char data [MAX_MKT_SIZE]; /* date din pachetul care sosete */ struct conn *cptr; from_net(&sid, &q, &ptypr, data, &count); /* preia pachetul */ cptr = &conn[cid]; switch (ptype) { case CALL_REQ: /* utilizatorul de la distan vrea s stabileasc o conexiune */ cptr->local_address = data[0]; cptr->remote_address = data[l]; if (cptr->loca1_address ==. listen_address) { listen_conn = cid; cptr->state = ESTABLISHED; wakeupO; /* cealalt parte a iniiat deconectarea */ /* conexiunea este eliberat */ /* se iniiaz terminarea */ /* conexiunea nu este eliberat pn cnd cealalt parte nu-i d acordul */

480

NIVELUL TRANSPORT

CAP. 6

} else { cptr->state = QUEUED; cptr->timer = TIMEOUT; }


cptr->clr_req_received = 0; cptr->credits = 0; case CALL_ACC: /* u t i l i z a t o r u l de la distan a acceptat CALL_REQ trimis */ cptr->state = ESTABLISHED; wakeupO; case CLEAR_REQ: /* utilizatorul de la distan vrea s se deconecteze sau s refuze un apel */ cptr->clr_req_received = 1; if (cptr->state == DISCONN) cptr->state = IDLE; if (cptr->state == WAITING || cptr->state == RECEIVING || cptr->state == SENDING) wakeupO; case CLEAR_CONF: /* u t i l i z a t o r u l de la distan accept deconectarea */ cptr->state = IDLE; if (cptr->state == SENDING) wakeupO; case CREDIT: cptr->credits +=data[l]; /* u t i l i z a t o r u l de la distan ateapt date */ /* au fost trimise date */

case DATA_PKT: for (i=0; i<count; i++) cptr->user_buff_addr[cptr->byte_count + i] = d a t a [ i ] ; cptr->byte_count += count; if (m == 0) wakeupO;

void clock( void) { /* la fiecare interval de timp al ceasului se verific eventualele depiri ale timpilor de ateptare pentru c e r e r i l e aflate n starea Q U E U E D */

int i;

struct conn *cptr; for ( i = l ; i<=MAX_CONNs i cptr = &conn[i]; if (cptr->timer > 0) { cptr->timer --; if (cptr->timer == 0) { cptr->state = IDLE; t o _ n e t ( i s 0, 05 CLEAR REQS data, 0);

/* ceasul funciona */ /* timpul a expirat */

Fig. 6-20. Entitatea de transport aleas ca exemplu. Procedurile prezentate n Fig. 6-20 sunt de dou tipuri. Majoritatea sunt apelate direct de ctre programele utilizator, totui packetjinival i clock sunt diferite. Execuia lor este declanat de evenimente externe: sosirea unui pachet i, respectiv, avansul ceasului. Ele sunt de fapt rutine de

SEC/6.3

UN PROTOCOL SHJH'EU.Iffi TRANSPORT

481

YoiajpE.esupuie. cLafie^je/a^MLAin^jniei^^ o alt procedur a entitii de transport. Acestea pot fi _exeeutt<numai atunci eand^rejcesul utilizator este n ateptare sau att timp ct.el ruleaz n afara.entitii de transport. Aceast proprietate este crucial pentru funcionarea corect a entitii 4& tr-ansport. Existena bitului Q n antetul pachetului ne permite s evitm timpul suplimentar introdus de antetul protocolului de transport. Mesajele dedate obinuite sunt trimise ca pachete de date cu (2=0. Mesajele legate de protocolul de transport, dintre care exist numai unul (CREDIT) n exemplul nostru, sunt trimise ca pachete de date cu Q = l . Aceste mesaje de control sunt detectate i prelucrate de entitatea de transport receptoare. Structura de date de baz folosit de entitatea de transport este vectorul conn, care are cte o nregistrare pentru fiecare conexiune posibil. n nregistrare sunt meninute starea conexiunii, incluznd adresa de nivel transport la fiecare capt, numrul de mesaje trimise i recepionate pe conexiune, starea curent, un indicator (pointer) la tamponul utilizator, numrul de octei ai mesajului trimis sau recepionat, un bit indicnd dac utilizatorul aflat la distan a apelat DISCONNECT, un ceas, un contor folosit pentru a permite transmiterea mesajelor. Nu toate aceste cmpuri sunt folosite n exemplul nostru simplu, dar o entitate de transport complet ar avea nevoie de toate, poate chiar de mai multe. Fiecare element din conn este iniializat cu starea IDLE. Atunci cnd un utilizator apeleaz CONNECT, nivelului reea i se va cere s trimit un pachet C A L L R E Q U E S T ctre maina de la distan i utilizatorul este blocat. Atunci cnd CALLREQUEST ajunge de partea cealalt, entitatea de transport este ntrerupt pentru a executa packetjinival, care verific dac utilizatorul local ascult la adresa specificat. Dac da, atunci este trimis napoi un pachet CALL_ACCEPTED i utilizatorul de la distan este trezit; dac nu, atunci cererea CALL_REQUEST este pus ntr-o coad pentru un interval de timp TIMEOUT. Dac n acest interval este fcut un apel LISTEN, atunci conexiunea este stabilit; dac nu, conexiunea este refuzat la sfritul intervalului de timp. Mecanismul este necesar pentru a preveni blocarea iniiatorului conexiunii pentru un timp nedefinit n cazul n care procesul aflat la distan nu vrea s se conecteze. Dei am eliminat antetul pentru protocolul de transport, mai trebuie gsit o modalitate pentru a determina crei conexiuni transport i aparine un anumit pachet, deoarece mai multe conexiuni pot coexista simultan. Cea mai simpl soluie este folosirea numrului de circuit virtual de la nivel reea i ca numr de conexiune transport. n plus, numrul de circuit virtual poate fi folosit i ca index n vectorul conn. Atunci cnd un pachet sosete pe circuitul virtual k la nivel reea, elni va aparine conexiunii k a crei stare este pstrat mconhfk]. La iniierea unei conexiuni^ numrul de conexiune este ales de entitatea de transport care a iniiat-o. Pentru cerere de conexiune, nivelul reea alege ca numr de conexiune orice numr de circuit virtual care nu a fost nc folosit. Pentru a evita gestionarea tampoanelor n interiorul entitii de transport, este folosit un mecanism de gestiune a fluxului diferit de fereastra-glisant tradiional. Atunci cnd un utilizator apeleaz RECEIVE, este trimis un mesaj de credit entitii de transport de pe maina care va transmite i este nregistrat n vectorul conn. Atunci cnd este apelat SEND, entitatea de transport verific dae vreun credit a sosit pe conexiunea respectiv. Dac da, mesajul este trimis (chiar i n mai multe pachete, dac este cazul) i credit este decrementat; dac nu, atunci entitatea de transport se blocheaz pn la sosirea unui credit. Mecanismul garanteaz c nici un mesaj nu este trimis dect dac cealalt parte a apelat deja RECEIVE. Ca rezultat, ori de cte ori sosete un mesaj,

482

NIVELUL TRANSPORT

CAP. 6

exist cu siguran un tampon disponibil pentru ei. Aceast schem poate fi uor generalizat pentru a permite receptorilor s ofere tampoane multiple i s cear mai multe mesaje. Trebuie reinut simplitatea codului din Fig. 6-20.0 entitate de transport real ar verifica n mod normal validitatea tuturor parametrilor furnizai de utilizator, ar putea s revin dup cderea reelei, ar putea rezolva coliziunile la apel i ar susine un serviciu transport mult mai general, care ar include faciliti cum sunt ntreruperile, datagramele i versiunile nonblocante ale primitivelor SENDiRECEIVE. 33 Exemplul vzut ca un automat finit

Scrierea unei entiti de transport este o munc dificil i riguroas, n special pentru protocoalele reale. Pentru a reduce probabilitatea de apariie a unei erori, adeseori este util s reprezentm protocolul ca un automat finit. Am vzut deja c protocolul nostru folosit ca exemplu are apte stri pentru fiecare conexiune. Este de asemenea posibil s izolm cele dousprezece evenimente care pot s apar pentru a schimba starea unei conexiuni. Cinci dintre aceste evenimente sunt cele cinci primitive ale serviciului de transport. Alte ase sunt reprezentate de sosirile celor ase tipuri distincte de pachete. Ultimul este expirarea intervalului de timp stabilit. Fig. 6-21 arat aciunile principale ale protocolului sub forma unei matrice. Pe coloane sunt prezentate strile, iar pe linii cele 12 evenimente. Fiecare intrare n matrice (adic n automatul finit) din Fig. 6-21 are pn la trei cmpuri: un predicat, o aciune i o nou stare. Predicatul indic condiiile n care aciunea este executat. De exemplu, pentru intrarea din colul snga-sus, dac este executat un LI STEN i nu mai exist spaiu n tabele (predicatul PI), atunci LISTEN eueaz i starea rmne aceeai. Pe de alt parte, dac un pachet CALLJREQUEST a sosit deja 3a adresa de nivel transport la care se face LISTEN (predicatul P2), atunci conexiunea este stabilit imediat. O alt posibilitate este ca P2 s fie fals, adic nici un CALLJREQUEST nu a fost primit, caz n care conexiunea rmne n starea /DLEn ateptarea unui pachet CALLJREQUEST. Merit s subliniem c alegerea strilor folosite n matrice nu este n ntregime determinat de protocolul nsui. n acest exemplu, nu exist nici o stare LISTENING, care ar urma n mod normal apelului LISTEN. Nu a fost introdus o stare LISTENING deoarece o stare este asociat cu o intrare n tabela de conexiuni i dup un ape! LISTEN nu exist nc nici o conexiune. De ce? Pentru c ani decis s folosim identificatorii circuitelor virtuale de la nivel reea ca identificatori pentru conexiune i, pentru un apel LISTEN, numrul circuitului virtual este n cele din urm ales de nivelul reea atunci cnd sosete un CALLJREQUEST. Aciunile de la Al la A12 sunt aciuni importante, precum trimiterea pachetelor sau rearmarea ceasurilor. Nu sunt menionate toate aciunile minore, cum ar fi iniializarea unor cmpuri aie nregistrrii ataate conexiunii. Dac o aciune implic trezirea unui proces n ateptare, atunci aciunile care urmeaz trezirii procesului sunt considerate i ele. De exemplu, dac un pachet CALL_REQUEST sosete i exist un proces adormit care l ateapt, atunci transmiterea pachetului CALL_ACCEPT este considerat ca fcnd parte din aciunea care urmeaz recepiei lui CALL_REQUEST. Dup ce este efectuat fiecare aciune, conexiunea ajunge ntr-o nou stare, aa cum apare i n Fig. 6-21.

SEC. 6.3

UN PROTOCOL SIMPLU DE TRANSPORT

483

State
Idle Waiting Queued -/Estab Established Sending Receiving Disconnecting

LISTEN CONNECT DiSCONNECT


Q.

P1:~1/ldle P2: AI/Estab P2: A2/ldle


P1:-/ldle P1:A3/Wait

P4:A5/ldle P4: A6/Disc P5: A7/Estab P5:AS/Send

SEND RECEIVE Call_req Ca!l_acc


'(O

A9/Receiving P3: AI/Estab P3:A4/Que'd

-/Estab

i Clear_req Clear_conf DataPkt Credit

-/Idle

AIC/Estab

AlO/Estab

AlO/Estab

-/Idle

-/Idie

CC Q_

A12/Estab

AII/Estab

A7/Estab

c or co I Timeout <

~/ldle

Predicate P1: Tabela de conexiuni plin P2: Cerere de conexiune n ateptare P3: Apel LISTEN n ateptare P4: Pachet Clear_req n ateptare P5: Credit disponibil

Aciuni A1: Trimite Ca!l_acc A7: Trimite mesaj A2: Ateapt Call_req A8: Ateapt credit A9: Trimite credit A3: Trimite Call_req A4: Pornete ceasul A10: Seteaz indicator A5: Trimite Ciear_conf Clr_req_received A6: Trimite Clear_req A11: nregistreaz credit A12: Accept mesajul

Fig. 6-21. Protocolul ales ca exemplu, reprezentat ca un automat finit. Fiecare intrare are un predicat opional, o aciune opional i o nou stare. Caracterul tilda indic faptul c nici o aciune important nu este efectuat. Bara deasupra predicatului este reprezentarea pentru predicatul negat. Intrrile vide corespund unor secvene de evenimente imposibile sau eronate. Avantajul reprezentrii protocolului ca o matrice este ntreit. n primul rnd, n aceast form este mult mai simplu pentru programator s verifice sistematic fiecare combinaie stare/ eveniment/ aciune. n implementrile reale, unele combinaii vor fi folosite pentru tratarea erorilor. n Fig. 6-21 nu s-a fcut nici o distincie ntre situaiile imposibile i cele care sunt

484

NIVELUL TRANSPORT

CAP. 6

numai ilegale. De exemplu, dac o conexiune este n starea WAITING, evenimentul DISCONECT este imposibil deoarece utilizatorul este blocat i nu poate s fac nici un apel. Pe de alt parte, n starea SENDING nu pot sosi date deoarece nu a fost generat nici un credit. Sosirea unui pachet de date va fi o eroare a protocolului. Al doilea avantaj al reprezentrii protocolului ca o matrice este legat de implementarea acestuia, ntr-un vector bidimensional elementul act[i][j] ar putea fi vzut ca un indicator la procedura care trateaz evenimentul i atunci cnd starea este j. O implementare posibil este codificarea entitii de transport ca o bucl n care se ateapt la nceput producerea unui eveniment. Dup producerea evenimentului, este identificat conexiunea implicat i este extras starea ei. Cunoscnd acum starea i evenimentul, entitatea de transport nu face dect s acceseze vectorul act i s apeleze procedura adecvat. Aceast abordare ar conduce la o arhitectur mult mai regulat i mai simetric dect cea a entitii de transport implementate de noi. Al treilea avantaj al abordrii folosind un automat finit este legat de descrierea protocolului. n unele standarde, protocoalele sunt specificate ca un automat finit de tipul celui din Fig. 6-21. Trecerea de la acest tip de descriere la o entitate de transport funcional este mult mai uoar dac entitatea de transport este i ea modelat cu ajutorul unui automat finit. Cel mai important dezavantaj este c aceast abordare poate s fie mai dificil de neles dect metoda direct pe care am utilizat-o Ia nceput. Totui, aceast problem poate fi rezolvat, fie i parial, desennd automatul finit ca un graf, aa cum am fcut-o n Fig. 6-22.

CLEAR REQ, CLEAR CONF

-22. Protocolul dat ca exemplu, n reprezentare grafic. Pentru simplificare, tranziiile care las starea conexiunii nemodificat au fost omise.

SEC. 6.4

PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP)

485

6.4 PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP)


Internet-ul are dou protocoale importante la nivel transport: un protocol orientat pe conexiuni i un altul fr conexiuni. Ambele vor fi studiate n seciunea urmtoare. Protocolul orientat pe conexiuni este TCP. Protocolul fr conexiuni este UDP. Ne vom concentra atenia asupra protocolului TCP, UDP nefiind n esen altceva dect IP extins cu un scurt antet. TCP (Transport Comraunication Protocol - protocol de comunicaie de nivel transport) a fost proiectat explicit pentru a asigura un flux sigur de octei de la un capt la cellalt al conexiunii ntr-o inter-reea nesigur. O inter-reea difer de o reea propriu-zis prin faptul c diferite pri ale sale pot diferi substanial n topologie, lrgime de band, ntrzieri, dimensiunea pachetelor i ali parametri. TCP a fost proiectat s se adapteze n mod dinamic la proprietile reelei Internet i s fie robust n ceea ce privete mai multe tipuri de defecte. TCP a fost definit n mod oficial n RFC 793. Odat cu trecerea timpului, au fost detectate diverse erori i inconsistene i au fost modificate cerinele n anumite subdomenii. Aceste clarificri, precum i corectarea ctorva erori sunt detaliate n RFC 793. Extensiile sunt furnizate n RFC 1323. Fiecare main care suport TCP dispune de o entitate de transport TCP, fie ca proces utilizator, fie ca parte a nucleului care gestioneaz fluxurile TCP i interfeele ctre nivelul IP. O entitate TCP accept fluxuri de date utilizator de la procesele locale, le mparte n fragmente care nu depesc 64K octei (de regul n fragmente de aproximativ 1500 de octei) i expediaz fiecare fragment ca o datagram IP separat. Atunci cnd datagramele IP coninnd informaie TCP sosesc la o main, ele sunt furnizate entitii TCP, care reconstruiete fluxul original de octei. Pentru simplificare, vom folosi cteodat doar TCP , subnelegnd prin aceasta sau entitatea TCP de transport (o poriune de program) sau protocolul TCP (un set de reguli). Din context va fi clar care din cele dou noiuni este referit. De exemplu, n Utilizatorul furnizeaz date TCP-ului" este clar referirea la entitatea TCP de transport. Nivelul IP nu ofer nici o garanie c datagramele vor fi livrate corect, astfel c este sarcina TCPului s detecteze eroarea i s efectueze o retransmisie atunci cnd situaia o impune. Datagramele care ajung (totui) la destinaie pot sosi ntr-o ordine eronat; este, de asemenea, sarcina TCP-ului s le reasambleze n mesaje respectnd ordinea corect (de secven). Pe scurt, TCP-ul trebuie s ofere fiabilitatea pe care cei mai muli utilizatori o doresc i pe care IP-ul nu o furnizeaz. 6.4.1 Modelul Serviciului TCP Serviciul TCP este obinut prin crearea att de ctre emitor ct i de ctre receptor a unor puncte finale, numite socluri (sockets), aa cum s-a discutat n Sec. 6.1.3. Fiecare soclu are un numr de soclu (adres) format din adresa IP a mainii gazd i un numr de 16 bii, local gazdei respective, numit port. Port este numele TCP pentru un TSAP. Pentru a obine o conexiune TCP, trebuie stabilit explicit o conexiune ntre un soclu de pe maina emitoare i un soclu de pe maina receptoare. Apelurile de soclu sunt prezentate n Fig. 6-6. Un soclu poate fi folosit la un moment dat pentru mai multe conexiuni. Altfel spus, dou sau mai multe conexiuni se pot termina la acelai soclu. Conexiunile sunt identificate prin identificatorii soclurilor de la ambele capete, adic (soclu 1, soclu 2). Nu este folosit nici un alt numr sau identificator de circuit virtual.

486

NIVELUL TRANSPORT

CAP. 6

Numerele de port mai mici dect 256 se numesc porturi general cunoscute i sunt rezervate serviciilor standard. De exemplu, orice proces care dorete s stabileasc o conexiune cu o main gazd pentru a transfera un fiier utiliznd FTP, se poate conecta la portul 21 al mainii destinaie pentru a contacta demonul su FTP. Similar, portul 23 este folosit pentru a stabili o sesiune de lucru la distan utiliznd TELNET. Lista porturilor general cunoscute este coninut n RFC 1700. Toate conexiunile TCP sunt duplex integral i punct-la-punct. Duplex integral nseamn c traficul se poate desfura n ambele sensuri n acelai timp. Punct-a-punct indic faptul c fiecare conexiune are exact dou puncte finale. TCP nu suport difuzarea parial sau total. O conexiune TCP este un flux de octei i nu un flux de mesaje. Dimensiunile mesajelor nu se conserv de la un capt la cellalt. De exemplu, dac procesul emitor execut patru scrieri de cte 512 octei pe un canal TCP, aceste date pot fi livrate procesului receptor ca patru fragmente (cfaunks) de 512 octei, dou fragmente de 1024 octei, un singur fragment de 2048 octei (vezi Fig. 623) sau n orice alt mod. Nu exist posibilitatea ca receptorul s determine numrul de uniti n care a fost scris informaia. n UNIX, aceeai proprietate o au i fiierele. Cititorul unui fiier nu poate spune dac fiierul a fost scris bloc cu bloc, octet cu octet sau tot dintr-o dat. Ca i un fiier UNIX, programele TCP nu au nici cea mai vag idee despre semnificaia octeilor i nici cel mai mic interes pentru a afla acest lucru. Un octet ese pur i simplu un octet.
Antet 1P Antet TCP

B C

fa)

(b)

Fig. 6-23. (a) Patru segmente de 512 octei au fost trimise ca datagrame P separate, (b) Livrarea celor 2048 octei ctre aplicaie, printr-un singur apel read. Atunci cnd o aplicaie trimite date ctre TCP, TCP-ul le poate expedia imediat sau ie poate reine ntr-un tampon (n scopul colectrii unei cantiti mai mari de informaie pe care s o expedieze toat odat), dup bunul su plac. Cu toate acestea, cteodat, aplicaia dorete explicit ca informaia s fie expediat imediat. De exemplu, s presupunem c un utilizator este conectat la o main de la distan. Dup ce a fost terminat o linie de comand i s-a tastat Return, este esenial ca linia s fie imediat expediat ctre maina de la distan i s nu fie memorat pn la terminarea urmtoarei linii. Pentru a fora expedierea, aplicaia poate folosi indicatorul PUSH, care i semnaleaz TCP-ului s nu ntrzie procesul de transmisie. Unele din primele aplicaii foloseau indicatorul PUSH ca un fel de marcaj pentru a delimita marginile mesajelor. Dei acest truc funcioneaz cteodat, uneori el eueaz datorit faptului c, la recepie, nu toate implementrile TCP-ului transmit aplicaiei indicatorul PUSH. Mai muit dect att, dac mai multe indicatoare PUSH apar nainte ca primul s fi fost transmis (de exemplu, pentru c linia de legtur este ocupat), TCP-ul este liber s colecteze toat informaia referit de ctre aceste indicatoare ntr-o singur datagram IP, fr s includ nici un separator ntre diferitele sale pri. O ultim caracteristic a serviciului TCP care merit menionat aici const n informaia

SEC. 6.4

PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP)

487

urgent. Atunci cnd un utilizator apas tasta DEL sau CTRL-C pentru a ntrerupe o prelucrare la distan, aflat deja n execuie, aplicaia emitor plaseaz o informaie de control n fluxul de date i o furnizeaz TCP-ului mpreun cu indicatorul URGENT. Acest eveniment impune TCP-ului ntreruperea acumulrii de informaie i transmisia imediat a ntregii informaii disponibile deja pentru conexiunea respectiv. Atunci cnd informaia urgent este recepionat la destinaie, aplicaia receptoare este ntrerupt (de ex. prin emisia unui semnai, n terminologie UNIX), astfel nct, eliberat de orice alt activitate, aplicaia s poat citi fluxul de date i s poat regsi informaia urgent. Sfritul informaiei urgente este marcat, astfel nct aplicaia s tie cnd se termin informaia. nceputul informaiei urgente nu este marcat. Este sarcina aplicaiei s determine acest nceput. Aceast schem furnizeaz de fapt un rudiment de mecanism de semnalizare, orice alte detalii fiind lsate la latitudinea aplicaiei. 6=4.2 Protocolul TCP n aceast seciune vom prezenta un punct de vedere general asupra protocolului TCP, pentru a ne concentra apoi, n seciunea care i urmeaz, asupra antetului protocolului, cmp cu cmp. Fiecare octe al unei conexiuni TCP are propriul su nurnr de secven, reprezentat pe 32 bii. Pentru o main care utilizeaz la viteza maxim o reea local de lOMbps, dei este teoretic posibi ca numerele, de secven s depeasc valoarea maxim reprezentabii pe 32 de bii ntr-o singur or, n realitate dureaz mai mult. Numerele de secven sunt utilizate att pentru confirmri ct i pentru mecanismul de secveniere, acesta din urm utiliznd cmpuri separate de 32 de bii din antet. Entitile TCP de transmisie i de recepie interscnimb informaie sub form de segmente. Un segment const dintr-un antet de exact 20 de octei (plus o parte opional) urmat de zero sau mai muli octei de date. Programul TCP este cel care decide ct de mari trebuie s fie aceste segmente. El poate acumula informaie provenit din mai multe scrieri ntr-un singur segment sau poate fragmenta informaia provenind dintr-o singur scriere n mai multe segmente. Exist dou limite care restricioneaz dimensiunea unui segment. n primul rnd, fiecare segment, inclusiv antetul TCP, trebuie s ncap n cei 65.535 de octei de informaie util IP. n al doilea rnd, fiecare reea are o unitate maxim de transfer sau MTU (Maximum Transfer Unit), deci fiecare segment trebuie s ncap n acest MTU. n realitate, MTU este n general de cteva mii de octei, definind astfel o limit superioar a dimensiunii unui segment. Dac un segment parcurge o secven de reele fr a fi fragmentat i ajunge apoi la o reea ai crui MTU este mai mic dect dimensiunea segmentului, ruterul de la frontiera acelei reele fragmenteaz segmentul n dou sau mai multe segmente mai mici. Un segment care este prea mare pentru o reea pe care o tranziteaz poate fi spart de ctre ruter n mai multe segmente. Fiecare nou segment obine propriile antete TCP i IP, astfel nct fragmentarea realizat de ctre rutere mrete ncrcarea total n reea (deoarece fiecare segment este mrit cu antetul de 40 de octei de informaie suplimentar). Protocolul de baz utilizat de ctre entitile TCP este protocolul cu fereastr glisant. Atunci cnd un emitor transmite un segment, el pornete un cronometru. Atunci cnd un segment ajunge la destinaie, entitatea TCP receptoare trimite napoi un segment (cu informaie util, dac aceasta exist sau fr, n caz contrar) care conine totodat i numrul de secven urmtor pe care aceasta

488

NIVELUL TRANSPORT

CAP. 6

se ateapt s-1 recepioneze. Dac cronometrul emitorului depete o anumit valoare naintea primirii confirmrii, emitorul retransmite segmentul neconfirmat. Dei acest protocol pare simplu, pot aprea multe situaii particulare pe care le vom prezenta mai jos. De exemplu, avnd n vedere c segmentele pot fi fragmentate, este posibil ca o parte a segmentului s fie recepionat i confirmat de ctre entitatea TCP receptoare, n timp ce restul s fie pierdut. De asemenea, segmentele pot ajunge ntr-o ordine arbitrar, de exemplu octeii 30724095 pot fi recepionai, dar nu pot fi confirmai datorit absenei octeilor 2048-3071. Segmentele pot de asemenea ntrzia pe drum un interval de timp suficient de mare pentru ca emitorul s detecteze o depire a cronometrului i s le retransmit. Dac segmentul retransmis parcurge o cale diferit de cea parcurs de segmentul original i este fragmentat n mod diferit, atunci unii bii sau unele poriuni, att din segmentul original ct i din segmentul duplicat, pot fi recepionate sporadic, ceea ce impune o tratare atent, astfel nct fluxul de octei s fie fiabil. In sfrit, cu attea reele care compun Internetul, este posibil ca un segment s ntlneasc n drumul su o reea congestionat sau chiar temporar nefuncional. TCP trebuie s fie pregtit s fac fa unor astfel de situaii i s le rezolve ntr-o manier eficient. Un efort considerabil a fost dedicat optimizrii performanelor fluxurilor TCP, inndu-se cont inclusiv de probleme legate de reea. n continuare vor fi prezentai un numr de algoritmi utilizai de numeroase implementri TCP.

n figura 6-24 este prezentat structura unui segment TCP. Fiecare segment ncepe cu un antet format dintr-o structur fix de 20 de octei. Antetul fix poate fi urmat de un set de opiuni asociate antetului. In continuarea opiunilor, dac ele exist, pot urma pn ia 65.535 20 - 20 = 65.515 de octei de date, unde primul 20 reprezint antetul IP, iar al doilea antetul TCP. Segmente care nu conin octei de date sunt nu numai permise, dar i utilizate n mod frecvent pentru confirmri i mesaje de control.
^ 32 bii >-

Port surs

i Numr de secven Numr de confirmare

Port destinaie

| Lungimea I antetului

TCP

A P R S F R C S S Y I G K H T N N Sum de contrai

Dimensiunea ferestrei indicator urgent

Opiuni {unul sau mai multe cuvinte pe 32 de bii} Date (opional)

ig. 6-24. Antetul TCP.

SEC. 6.4

PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP)

489

S disecm acum structura antetului TCP, cmp cu cmp. Cmpurile Poit surs i Port destinaie identific punctele finale ale conexiunii. Fiecare main poate decide pentru sine modalitatea de alocare a porturilor sale mai mari de 256. Un port formeaz mpreun cu adresa IP a mainii sale un unic TSAP de 48 de bii. Conexiunea este identificat de ambele numere ale soclurilor surs i destinaie. Cmpurile Numr de secven i Numr de confirmare au semnificaia funciilor lor uzuale. Trebuie notat c cel din urm indic octetul urmtor ateptat i nu ultimul octet recepionat n mod corect. Ambele cmpuri au lungimea de 32 de bii, deoarece ntr-un flux TCP fiecare bit de informaie este numerotat. Lungimea antetului TCP indic numrul de cuvinte de 32 de bii care sunt coninute n antetul TCP. Aceast infomiatie este util, deoarece cmpul Opiuni este de lungime variabil, proprietate pe care o transmite astfel i antetului. Tehnic vorbind, acest cmp indic n realitate nceputul datelor din segment, msurat n cuvinte de 32 de bii, dar cum acest numr este identic cu lungimea antetului n cuvinte, efectul este acelai. Urmeaz un cmp de ase bii care este neutilizat. Faptul c acest cmp a supravieuit intact mai mult de un deceniu, este o mrturie despre ct de bine a fost proiectat TCP-ul. Protocoale mai prost concepute ar fi avut nevoie de el pentru a corecta erori ale proiectrii iniiale. Urmeaz acum ase indicatori de cte un bit. URG este poziionat pe 1 dac Indicatorul Urgent este valid. Indicatoml Urgent este folosit pentru a indica deplasamentul n octei fa de numrul curent de secven la care se gsete informaia urgent. O astfel de facilitate suplinete mesajele de ntrerupere. Aa cum am menionat deja anterior, aceast facilitate reprezint esena modului n care emitorul poate transmite un semnal receptorului fr ca TCP-ul n sine s fie cauza ntreruperii. Bitul ACK este poziionat pe 1 pentru a indica faptul c Numrul de confiimare este valid. n cazul n care ACK este poziionat pe 0, segmentul n discuie nu conine o confirmare i cmpul Numr de confiimare este ignorat. Bitul PSH indic informaia FORAT. Receptorul este rugat respectuos s livreze aplicaiei informaia respectiv imediat ce este recepionat i s nu o memoreze n ateptarea umplerii tampoanelor de comunicaie (lucru care, altminteri, ar fi fcut din raiuni de eficien). Bitul RST este folosit pentru a desfiina o conexiune care a devenit inutilizabil datorit defeciunii unei maini sau oricrui alt motiv. El este de asemenea utilizat pentru a refuza un segment invalid sau o ncercare de deschidere a unei conexiuni. n general, recepionarea unui segment avnd acest bit poziionat indic o problem care trebuie tratat n funcie de context. Bitul SYN este utilizat pentru stabilirea unei conexiuni. Cererea de conexiune conine SYN = 1 i ACK = 0 pentru a indica faptul c acel cmp suplimentar de confirmare nu este utilizat. Rspunsul la o astfel de cerere conine o confirmare, avnd deci SYN = 1 i ACK - 1. n esen, bitul SYN este utilizat pentru a indica o CERERE DE CONEXIUNE i o CONEXIUNE ACCEPTAT, bitul ACK fcnd distincia ntre cele dou posibiliti. Bitul FIN este folosit pentru a ncheia o conexiune. El indic faptul c emitorul nu mai are nici o informaie de transmis. Cu toate acestea, dup nchiderea conexiunii, un proces poate recepiona n continuare date pe o durat nedefinit. Ambele segmente, SYN i FIN, conin numere de secven i astfel este garantat faptul c ele vor fi prelucrate n ordinea corect. n TCP, fluxul de control este tratat prin ferestre glisante de dimensiune variabil. Cmpul Fereastr indic numrul de octei care pot fi trimii, ncepnd de la octetul confirmat. Un cmp

490

NIVELUL TRANSPORT

CAP. 6

Fereastr de valoare 0 este perfect legal i spune c octeii pn ia Numr de confirmare -1 inclusiv au fost recepionai, dar receptorul dorete cu ardoare o pauz, aa c mulumete frumos, dar pentru moment nu dorete continuarea transferului. Permisiunea de expediere poate fi acordat ulterior prin trimiterea unui segment avnd acelai Numr de confirmare, dar un cmp Fereastr cu o valoare nenui. Este de asemenea prevzut o Sum de control, n scopul obinerii unei fiabiliti extreme. Aceast sum de control este calculat pentru antet, informaie i pseudo-antetul conceptual prezentat n Fig. 6-25. n momentul calculului, Suma de control TCP este poziionat pe zero, iar cmpul de date este completat cu un octet suplimentar nul dac lungimea sa este un numr impar. Algoritmul de caicul al sumei de control este simplu, el adunnd toate cuvintele de 16 bii n complement fa de i aplicnd apoi nc o dat complementul fa de i asupra sumei. n acest mod, atunci cnd receptorul aplic aceiai caicul asupra ntregului segment, inclusiv asupra Sumei de control, rezultatul ar trebui s fie 0.
32 Bii
1 1 1 1 < ! 1 ! > 1 1
: :

Adres surs Adres destinaie


i

0GQ0Q000

Protocoi = 5

Lungime segment TCP

FIg. 6-25. Pseudo-anteui inclus n suma de control TCP. Pseudo-antetul conine adresele IP ale mainii surs i destinaie, de 32 de bii fiecare, numrul de protocoi pentru TCP (6) i numrul de octei ai segmentului TCP (incluznd i antetul). Prin includerea pseudo-anetuiui n calculul sumei de control TCP se pot detecta pachetele care au fost preluate eronat, dar procednd astfel, este negat nsi ierarhia protocolului, deoarece adresa IP aparine nivelului P i nu nivelului TCP. Cmpul Opiuni a fost proiectat pentru a permite adugarea unor facilitai suplimentare neacoperite de antetul obinuit. Cea mai important opiune este aceea care permite fiecrei maini s specifice ncrcarea maxim de informaie util TCP pe care este dispus s o accepte. Utilizarea segmentelor de dimensiune mare este mai eficient dect utilizarea segmentelor de dimensiune mic datorit amortizrii antetului de 20 de octei prin cantitatea mai mare de informaie util. Cu toate acestea, este posibil ca maini mai puin performante s nu fie capabile s manevreze segmente foarte mari. In timpul iniializrii conexiunii, fiecare parte anun dimensiunea maxim acceptat i ateapt de la partener aceeai informaie. Ctig cel mai mic dintre cele dou numere. Dac o main nu cunoate aceast opiune, valoarea implicit de informaie util este de 536 octei. Este de ateptat ca toate mainile din Internet s accepte segmente de dimensiune 536 + 20 = 556 octei. O fereastr de 64 K octei reprezint adesea o problem pentru liniile cu o lrgime de band mare i/sau cu ntrzieri mari. Pe o linie T3 (44.736 Mbps) trimiterea unei ferestre ntregi de 64 K octei dureaz doar 12 msec. Dac ntrzierea propagrii dus-ntors este de 50

SEC. 6.4

PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP)

491

msec (valoarea tipic pentru o linie trans-continental), emitorul va atepta confirmri 3 fiind deci inactiv- A din timp. Pe o conexiune prin satelit, situaia este chiar mai rea. O fereastr de dimensiune mare ar permite emitorului s continue pomparea informaiei, ns o astfel de dimensiune nu poate fi reprezentat n cei 16 bii ai cmpului Fereastr. n RFC 1323 se propune o opiune Scal a ferestrei, permind emitorului i receptorului s negocieze un factor de scalare a ferestrei. Acest numr permite ambelor pri s deplaseze 32 cmpul Fereastr cu pn la 16 bii spre stnga, permind astfel ferestre de pn la 2 octei. Aceast opiune este suportat n prezent de cele mai multe implementri ale TCP-ului. O alt opiune propus de RFC 1106, i care este n prezent implementat pe scar larg, const n utilizarea unei repetri selective n locul unui protocol cu ntoarcere de n pai. Dac receptorul primete un segment eronat urmat de un numr mare de segmente corecte, protocolul TCP clasic va constata ntr-un final o depire de timp i va retrimite toate segmentele neconfirmate, deci i pe acelea care au fost recepionate corect. RFC 1106 introduce NAK-urile pentru a permite receptorului s cear un anumit segment (sau segmente). Dup obinerea acestora, el poate confirma toat informaia memorat reducnd astfel cantitatea de informaie retransmis. 6.4.4 Administrarea conexiunii TCP n TCP conexiunile sunt stabilite utiliznd nelegerea n trei pai", discutat n Sec. 6.2.2. Pentru a stabili o conexiune, una din pri - s spunem serverul - ateapt n mod pasiv o cerere de conexiune prin execuia primitivelor LISTEN i ACCEPT, putnd specifica o surs anume sau nici o surs n mod particular. Cealalt parte - s spunem clientul - execut o primitiv CONNECT, indicnd adresa IP i numrul de port la care dorete s se conecteze, dimensiunea maxim a segmentului TCP pe care este dispus s o accepte i, opional, o informaie utilizator (de exemplu o parol). Primitiva CONNECT trimite un segment TCP avnd bitul SYN poziionat i bitul^4C/<C nepoziionat, dup care ateapt un rspuns.
Gazd 1 Gazd 2 Gazd 1 Gazd 2

E F

Q.

V+l)
(a) (b)

Fig. 6-26. (a) Stabilirea unei conexiuni TCP n cazul normal, (b) Coliziunea apelurilor.

492

NIVELUL TRANSPORT

CAP. 6

Atunci cnd sosete la destinaie un segment, entitatea TCP receptoare verific dac nu cumva exist un proces care a executat LISTEN pe numrul de port specificat n cmpul Port destinaie. n caz contrar, trimite un rspuns cu bitul RST poziionat, pentru a refuza conexiunea. Dac exist vreun proces care ascult la acel port, segmentul TCP recepionat va fi dirijat ctre procesul respectiv. Acesta poate accepta sau refuza conexiunea. Dac o accept, trimite napoi expeditorului un segment de confirmare. n Fig. 6-26(a) este reprezentat secvena de segmente TCP transferate n caz de funcionare normal. De notat c un segment SYN consum un octet din spaiul numerelor de secven, astfel nct confirmarea s poat fi fcut fr ambiguiti. Secvena de evenimente ilustrat n Fig. 6-26(b) reprezint cazul n care dou maini ncearc simultan s stabileasc o conexiune ntre aceleai dou porturi. Rezultatul acestor evenimente este c doar o conexiune ajunge s fie stabilit i nu dou, deoarece conexiunile sunt identificate prin punctele lor terminale. Dac prima iniializare conduce ia crearea unei conexiuni identificat prin (x, y) i acelai lucru l face i cea de-a doua iniializare, atunci este construit o singur intrare de tabel, n spe pentru (x, y). Numrul iniial de secven asociat unei conexiuni nu este 0, din motivele discutate anterior. Se utilizeaz o schem bazat pe un ceas cu o btaie la fiecare 4 jisec. Pentru sigurana suplimentar, atunci cnd o main se defecteaz, este posibil ca ea s nu fie reiniializat n timpul de via maxim al unui pachet (120 sec), garantndu-se astfel c pachetele unei conexiuni anterioare nu se plimb nc pe undeva prin Internet. Dei conexiunile TCP sunt bidirecionale, pentru a nelege cum sunt desfiinate conexiunile, cel mai bine este s ni ie imaginm sub forma unei perechi de legturi unidirecionale. Fiecare legtur unidirecional este eliberat independent de perechea sa. Pentru eliberarea unei conexiuni, orice partener poate expedia un segment TCP avnd bitul FIN poziionat, lucru care indic faptul c nici o informaie nu mai urmeaz s fie transmis. Atunci cnd FIN-xil este confirmat, sensul respectiv de comunicare este efectiv oprit. Cu toate acestea, informaia poate fi transferat n continuare, nedefinit, n cellalt sens. Conexiunea este desfiinat atunci cnd ambele direcii au fost oprite. n mod normal, pentru a elibera o conexiune sunt necesare patru segmente TCP: cte un FIN i un ACK pentru fiecare sens. Cu toate acestea, este posibil ca primul ACK i cel de-a! doilea FIN s fie cuprinse n acelai segment reducnd astfel numrul total ia trei. La fel ca n conversaiile telefonice, n care ambele persoane pot spune la revedere" i pot nchide telefonul simultan, ambele capete ale unei conexiuni TCP pot expedia segmente FIN n acelai timp. Acestea sunt confirmate ca de obicei, conexiunea fiind astfel eliberat. Nu exist de fapt nici o diferen esenial ntre cazurile n care mainile elibereaz conexiunea secvenial respectiv simultan. Pentru a evita problema celor dou armate, sunt utilizate cronometre. Dac un rspuns la un FIN nu este recepionat pe durata a cei mult dou cicluri de maxime de via ale unui pachet, emitorul FIN-uhii elibereaz conexiunea. Cealalt parte va observa n final c nimeni nu mai pare s asculte la cellalt capt al conexiunii, datorit expirrii unui interval de timp. Aceast soluie nu este perfect, dar avnd n vedere faptul c o soluie perfect este teoretic imposibil, va trebui s ne mulumim cu ce avem. n realitate astfel de probleme apar foarte rar. Paii necesari stabilirii unei conexiuni pot fi reprezentai printr-un automat cu stri finite, cele 11 stri ale acestuia fiind prezentate n Fig. 6-27. n fiecare stare pot aprea doar anumite evenimente. Atunci cnd are loc un astfel de eveniment, este ndeplinit o aciune specific. Atunci cnd se produce un eveniment a crui apariie nu este legal n starea curent, este semnalat o eroare.

SEC. 6.4

PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP)

493

Fiecare conexiune debuteaz n starea NCHIS. Aceast stare este prsit dac urmeaz s se stabileasc o conexiune pasiv (LISTEN) sau activ (CONNECr). Dac partenerul stabilete o conexiune de tipul opus, starea devine STABILIT. Desfiinarea conexiunii poate fi iniiat de oricare din parteneri, odat cu eliberarea conexiunii revenindu-se n starea NCHIS.
Stare CLOSED (NCHIS) LISTEN (ASCULTARE) SYN RCVD (Recepie SYN) SYN SENT (Transmisie SYN) ESTABLISHED (STABILIT) FIN WAIT1 (Ateptare FIN 1) FIN WAIT 2 (Ateptare FIN 2) TIMED WAIT (Ateptare Temporizat) CLOSING (In curs de NCHIDERE) CLOSE WAIT (NCHIDE i ATEAPT) LAST ACK (CONFIRMARE FINALA) Descriere Nici o conexiune nu este activ sau n ateptare Serverul ateapt recepionarea unui apel S-a recepionat o cerere de conexiune; atept ACK Aplicaia a nceput deschiderea unei conexiuni Starea normal de transfer a datelor Aplicaia a anunat c termin Partenerul este de acord cu eliberarea conexiunii Se ateapt moartea" tuturor pachetelor Ambele pri ncearc simultan nchiderea Partenerul a iniiat eliberarea conexiunii Se ateapt moartea" tuturor pachetelor

Fig. 6-27. Strile utilizate n automatul cu stri finite pentru controlul conexiunii TCP. Automatul cu stri finite este reprezentat n Fig. 6-28. Cazul cel mai comun, al unui client conectndu-se activ la un server pasiv, este reprezentat prin linii groase - continue pentru client i ntrerupte pentru server. Liniile subiri reprezint secvene de evenimente mai puin obinuite, dar posibile. Fiecare linie din Fig. 6-28 este etichetat cu o pereche eveniment/aciune. Evenimentul poate fi unul iniiat de ctre utilizator printr-un apel sistem (CONNECr, LISTEN, SEND sau CLOSE), recepionarea unui segment (SYN, FIN, ACK sau RST) sau, ntr-un singur caz, expirarea unui interval de timp egal cu dublul ciclului de via a unui pachet. Aciunea const n expedierea unui segment de control (SYN, FIN sau RST) sau nici o aciune", lucru reprezentat prin . Comentariile sunt incluse ntre paranteze. Diagrama poate fi neleas cel mai bine urmrind de la bun nceput calea urmat de un client (linia groas continu) i apoi calea urmat de un server (linia groas ntrerupt). Atunci cnd o aplicaie de pe maina client genereaz o cerere CONNECT, entitatea TCP local creeaz o nregistrare de conexiune, o marcheaz ca fiind n starea SYN SENT i trimite un segment SYN. De observat c mai multe conexiuni pot fi deschise (sau n curs de a fi deschise) n acelai timp spre folosul mai multor aplicaii, astfel nct o stare este asociat unei conexiuni i este nregistrat n nregistrarea asociat acesteia. La recepia unui SYN + ACK, TCP expediaz ultima confirmare (ACK) din nelegerea n trei pai" i comuta n starea STABILIT. Din acest moment, informaia poate fi att expediat ct i recepionat. Atunci cnd se termin o aplicaie, se apeleaz primitiva CLOSE care impune entitii TCP locale expedierea unui segment FIN i ateptarea ACK-vlui corespunztor (dreptunghiul figurat cu linie . ntrerupt i etichetat nchidere activ"). Atunci cnd ACK-\A este recepionat, se tranziteaz n starea ATEPTARE FIN 2, unul din sensuri fiind n acest moment nchis. Atunci cnd cellalt sens este la rndul su nchis de partenerul de conexiune, se recepioneaz un FIN care este totodat i confirmat. n acest moment, ambele sensuri sunt nchise, dar TCP-ul ateapt un interval de timp egal cu dublul duratei de via a unui pachet, garantnd astfel c toate pachetele acestei conexiuni

494

NIVELUL TRANSPORT

CAP. 6

au murit i c nici o confirmare nu a fost pierdut. Odat ce acest interval de timp expir, TCP-ul terge nregistrarea asociat conexiunii.
(Start) NCHIS LISTEWSYN/SYN + ACK ASCULTARE RST/ SYN/SYN + ACK
A

CONNECT/SYN CLOSE/-

CLOSE/-

PRIMIT

SYN

SEND/SYN {deschidere simultan)

SYN

TRMIS

{Starea de transfer a datelor) ACK/CLOSE/FSN i


STABiLIT

SYN + ACK/ACK (Pasu 3 din "nelegerea n trei pai"!

(nchidere activai Ateptare 'FIN I ACK/ Ateptare 2


+ ACK/ACK

(nchidere 'i, n curs de NCHIDERE ACK/ Ateptare Temporizat


i

Pasiv)

i NCHIDE i ATEAPT CLOSE/F1N CONFIRMARE

{Depire de timp/l SNCHiS (Revenire Sa nceput) ACK/

FIg. 6-28. Automatul cu stri finite pentru controlul conexiunii TCP. Linia groas continu este calea normal pentru client. Linia groas ntrerupt este calea normal pentru server. Liniile subiri sunt evenimente neuzuale. S examinm acum gestiunea conexiunii din punctul de vedere al server-ului. Acesta execut. LISTEN i se aeaz" fiind totodat atent pentru a vedea cine se ridic n picioare". La receptionarea unui SYN, acesta este confirmat i serverul comut n starea SYNRCVD. Atunci cnd SKV-ul server-ului este la rndul su confirmat, nelegerea n trei pai" este complet, serverul comutnd n starea STABILIT. De acum, transferul informaiei poate ncepe.

SEC. 6.4

PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP)

495

Atunci cnd s-a sturat", clientul execut CLOSE, ceea ce conduce la atenionarea server-ului prin recepionarea unui FIN (dreptunghiul figurat cu linie ntrerupt i etichetat nchidere pasiv"). Atunci cnd i acesta execut un CLOSE, se trimite un FIN ctre client. Odat cu primirea confirmrii clientului, serverul desfiineaz conexiunea i terge nregistrarea asociat. 6.45 Politica TCP de Transmisie a datelor Administrarea ferestrei n TCP nu este direct legat de confirmri, aa cum se ntmpl la cele mai multe protocoale de nivel legtur de date. De exemplu, s presupunem c receptorul are un tampon de 4096 octei, aa cum se vede n Fig. 6-29. Dac emitorul transmite un segment de 2048 de octei care este recepionat corect, receptorul va confirma segmentul. Deoarece acum tamponul acestuia din urm mai are liberi doar 2048 octei (pn cnd aplicaia terge nite date din acest tampon), receptorul va anuna o fereastr de 2048 octei ncepnd de la urmtorul octet ateptat. Acum, emitorul transmite ali 2048 octei, care sunt confirmai, dar fereastra oferit este 0. Emitorul trebuie s se opreasc pn cnd procesul aplicaie de pe maina receptoare a ters nite date din tampon, moment n care TCP poate oferi o fereastr mai mare. Atunci cnd fereastra este 0, n mod normal emitorul nu poate s transmit segmente, cu dou
A

excepii. In primul rnd, informaia urgent trebuie trimis, de exemplu pentru a permite utilizatorului s opreasc procesele rulnd pe maina de la distan. n al doilea rnd, emitorul poate trimite un segment de un octet pentru a determina receptorul s reanune urmtorul octet ateptat i dimensiunea ferestrei. Standardul TCP prevede n mod explicit aceast opiune pentru a preveni interblocarea n cazul n care se ntmpl ca anunarea unei ferestre s fie vreodat pierdut. Emitorii nu transmit n mod obligatoriu date de ndat ce acest lucru este cerut de ctre aplicaie. Nici receptorii nu trimit n mod obligatoriu confirmrile de ndat ce acest lucru este posibil. De exemplu, n Fig. 6-29, atunci cnd sunt disponibili primii 2K octei, TCP, tiind c dispune de o fereastr de 4K octei, va memora informaia n tampon pn cnd ali 2K octei devin disponibili i astfel se va putea transmite un segment cu o ncrcare util de 4K octei. Aceast facilitate poate fi folosit pentru mbuntirea performanelor. S considerm o conexiune TELNET cu un editor interactiv care reacioneaz la fiecare apsare a tastelor. n cel mai ru caz, atunci cnd un caracter sosete la entitatea TCP emitoare, TCP creeaz un segment TCP de 21 octei, pe care l furnizeaz IP-ului pentru a fi transmis ca o datagram IP de 41 octei. De partea receptorului, TCP transmite imediat o confirmare de 40 octei (20 octei antet TCP i 20 octei antet IP). Mai trziu, cnd editorul a citit caracterul, TCP transmite o actualizare a ferestrei, deplasnd fereastra cu un octet la
A

dreapta. Acest pachet este de asemenea de 40 octei. In final, cnd editorul a prelucrat caracterul, transmite ecoul sub forma unui pachet de 41 octei. Cu totul, sunt folosii 162 octei din lrgimea de band i sunt trimise patru segmente pentru orice caracter tiprit. Atunci cnd lrgimea de band este redus, aceast metod de lucru nu este recomandat. O abordare folosit de multe implementri TCP pentru optimizarea acestei situaii const n ntrzierea confirmrilor i actualizrilor de fereastr timp de 500ms, n sperana apariiei unor informaii la care s se ataeze pentru o cltorie pe gratis. Presupunnd c editorul are un ecou de 50 ms, este necesar acum un singur pachet de 41 octei pentru a fi trimis utilizatorului de la distan, reducnd numrul pachetelor i utilizarea lrgimii de band la jumtate.

496

NIVELUL TRANSPORT

CAP. 6

Aplicaia execut o scriere de 2 octei

Emitor

Receptor Tamponul j receptorului 4k

ACK = 2048 WIN = 2043


iicaia execut o scriere de 2 octei Emitorul sste bSoca Aplicaia citete 2 K octei

Emitorul poate trimite ! pn la 2K octei

Fig. 6-29. Controlul ferestrei n TCP. Dei aceast regul reduce ncrcarea reelei de ctre receptor, emitorul opereaz nc ineficient trimind pachete de 41 octei care conin un singur octet de date. O modalitate de a reduce aceast deficien este cunoscut ca algoritmul Iui Nagle (Nagle, 1984). Sugestia lui Nagle este simpl: atunci cnd emitorul dispune de date, n secven, de cte un octet, ei va trimite doar primul octet, restul octeilor fiind memorai pn ia confirmarea primului octet. Apoi vor fi trimise toate caracterele memorate ntr-un segment TCP i va continua memorarea pn la confinnarea tuturor octeilor. Dac utilizatorul tasteaz repede i reeaua este lent, un numr substanial de caractere poate fi plasat n fiecare segment, reducnd cu mult lrgimea de band folosit. n plus, algoritmul permite transmisia unui nou pachet, dac s-a dispus de suficient informaie pentru a umple jumtate dintr-o fereastr sau pentru a completa un segment. Implementrile TCP folosesc pe scar larg algoritmul lui Nagle, dar exist situaii cnd este mai bine ca el s fie dezactivat. n particular, cnd o aplicaie X-Windows ruleaz prin Internet, deplasrile mausului trebuie transmise mainii de la distan. Gruparea lor pentru a fi transmise n rafal provoac o micare imprevizibil a cursorului, lucru care nemulumete profund utilizatorii.

SEC. 6.4

PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP)

497

O alt problem care poate ruina performana TCP este sindromul ferestrei stupide. (Clark, 1982). Aceast problem apare atunci cnd informaia este furnizat entitii TCP emitoare n blocuri mari, dar la partea receptoare o aplicaie interactiv citete datele octet cu octet. Pentru a nelege problema, s analizm Fig. 6-30. Iniial, tamponul TCP al receptorului este plin i emitorul tie acest fapt (adic are o fereastr de dimensiune 0). Apoi, aplicaia interactiv citete un caracter de pe canalul TCP. Aceast aciune face fericit entitatea TCP receptoare, deci ea va trimite o actualizare de fereastr ctre emitor dndu-i astfel dreptul de a mai trimite un octet. ndatorat, emitorul trimite un octet. Cu acesta, tamponul este plin i receptorul confirm segmentul de 1 octet, dar repoziioneaz dimensiunea ferestrei la 0. Acest comportament poate continua la nesfrit.

Tamponul receptorului este piin

Aplicaia citete 1 octet

::pe;riwMnc::U .ri octet: Antet

Transmisie de actualizare de fereastr Se recepioneaz un nou octet

Antet Octet

Tamponui receptorului este piin

Fig. 6-30= Sindromul ferestrei stupide. Soluia lui Clark este de a nu permite receptorului s trimit o actualizare de fereastr la fiecare octet. n schimb, el este forat s atepte pn cnd spaiul disponibil are o dimensiune decent, urmnd s-1 ofere pe acesta din urm. Mai precis, receptorul nu ar trebui s trimit o actualizare de fereastr pn cnd nu va putea gestiona minimul dintre dimensiunea maxim oferit atunci cnd conexiunea a fost stabilit i jumtate din dimensiunea tamponului su, dac este liber. Mai mult dect att, emitorul poate ajuta netrimind segmente de dimensiune mic. n schimb, el ar trebui s ncerce s atepte pn cnd acumuleaz suficient spaiu n fereastr pentru a trimite un segment ntreg sau mcar unul coninnd cel puin jumtate din dimensiunea tamponului receptorului (pe care trebuie s o estimeze din secvena actualizrilor de fereastr recepionate pn acum).

498

NIVELUL TRANSPORT

CAP. 6

Algoritmul lui Nagle i soluia lui Clark pentru sindromul ferestrei stupide sunt complementare. Nagle a ncercat s rezolve problema furnizrii datelor ctre TCP octet cu octet, cauzat de aplicaia emitoare. Clark a ncercat s rezolve problema extragerii datelor de la TCP octet cu octet, cauzat de ctre aplicaia receptoare. Ambele soluii sunt valide i pot lucra mpreun. Scopul este ca emitorul s nu trimit segmente mici, iar receptorul s nu cear astfel de segmente. Receptorul TCP face, pentru mbuntirea performanelor, mai mult dect simpla actualizare a ferestrei n uniti mari. Ca i emitorul TCP, el are posibilitatea s memoreze date, astfel nct s poal bloca o cerere de READ a aplicaiei pn cnd i poate furniza o cantitate semnificativ de informaie. Astfel se reduce numrul de apeluri TCP, deci suprancrcarea. Bineneles. n acest mod va crete i timpul de rspuns, dar pentru aplicaii care nu suni interactive, aa cum este transferul de fiiere, eficiena poate fi mai important dect rspunsul n timp la cereri individuale. O alt problem de discutat despre receptor se refer la ce trebuie s fac acesta cu segmentele care nu sosesc n ordine. Ele pot fi reinute sau descrcate, dup placul receptorului. Bineneles, confirmrile pot fi trimise numai atunci cnd toat informaia pn ia octetul confirmat a fost recepionat. Dac receptorul primete segmentele 0,1, 2, 4,5, 6 i 7, el poate confirma totul pn ia ultimul octet din segmentul 2 inclusiv. Atunci cnd emitorul constat o depire de timp, el va retransmite segmentul 3. Dac receptorul a memorat n tampon segmentele 4 pn la 7, odat cu recepia segmentului 3 el poae confirma toi octeii pn Ia sfritul segmentului 7. 6.46 Ccsrols aragestiiei M TCP

Atunci cnd ncrcarea la care este supus o reea este mai mare dect poae aceasta s suporte, apare o cretere a congestiei. nternet-ui nu face excepie. In aceast seciune, vom discuta algoritmi care se ocup cu astfel de congestii i care au fost dezvoltai pe parcursul ultimelor decenii. Dei nivelul reea ncearc de asemenea s controleze congestia, cea mai mare parte a muncii este fcut de TCP, i aceasta deoarece adevrata soluie a congestiei const n micorarea ratei de transfer a informaiei. Teoretic, congestia poate fi controlat pe baza unui principiu mprumutat din fizic: iegea conservrii pachetelor. Ideea de baz este de a nu injecta un nou pachet n reea pn cnd un pachet mai vechi nu o prsete (de exemplu este furnizat receptorului). TCP ncearc s ating acest scop prin manipularea dinamic a dimensiunii ferestrei. Primul pas n controlul congestiei este detecia ei. Mai demult, detecia congestiei era dificil. O depire de timp datorat pierderii unui pachet putea fi cauzat fie de (1) zgomotul de pe linia de transmisie, fie de (2) descrcarea pachetului pe un traseu congestionat. Diferenierea celor dou cazuri era dificil. In zilele noastre, pierderea pachetului din pricina erorilor de -transmisie este destul de rar, deoarece cele mai multe din trunchiurile principale de comunicaie sunt din fibr (dei reelele fr fir sunt o poveste separat). In consecin, cele mai multe depiri ale timpilor de transmisie pe Internet se datoreaz congestiilor. Toi algoritmii TCP din Internet presupun c depirile de timp sunt cauzate de congestii i monitorizeaz aceste depiri pentru a detecta problemele. nainte de a discuta despre modalitatea n care TCP reacioneaz la congestii, s descriem n primul, rnd modul n care se ncearc prevenirea apariiei lor. Atunci cnd se stabilete o conexiune, trebuie s se aleag o fereastr de o dimensiune potrivit. Receptorul poae specifica o fereastr bazndu-se pe dimensiunea tamponului propriu. Dac emitorul accept aceast dimensiune a

SEC. 6.4

PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP)

499

ferestrei, nu mai pot aprea probleme datorit depirii tamponului la recepie, dar pot aprea n schimb datorit congestiei interne n reea. n Fig. 6-31, putem vedea interpretarea hidraulic a acestei probleme. n Fig. 6-31 (a), observm o conduct groas care duce la un receptor de dimensiune mic. Atta timp ct emitorul nu trimite mai mult ap dect poate conine gleata, apa nu se va pierde. n figura 6-3l(b), factorul de limitare nu mai este capacitatea gleii, ci capacitatea de transport a reelei. Dac vine prea repede prea mult ap, ea se va revrsa i o anumit cantitate se va pierde (n acest caz prin umplerea plniei).

Ajustarea ratei de transmisie

Reeaua de transmisie

Receptor i capacia

mic

a)

(b)

Fig. 6-31. (a) O reea rapid alimentnd un rezervor de capacitate mic. (b) O reea lent alimentnd un receptor de mare capacitate. Soluia din Internet este de a realiza posibilitatea existenei a dou probleme - capacitatea reelei i capacitatea receptorului - i de a le trata pe fiecare separat. Pentru a face acest lucru, fiecare emitor menine dou ferestre: fereastra acceptat de ctre receptor i o a doua fereastr, fereastra de congestie. Fiecare reflect numrul de octei care pot fi trimii de ctre emitor. Numrul octeilor care pot fi trimii este dat de minimul dintre cele dou ferestre. Astfel, fereastra efectiv este minimul dintre ceea ce emitorul crede c este n regul" i ceea ce receptorul crede c este n regul". Dac receptorul spune: Trimite 8K", dar emitorul tie c o rafal de mai mult de 4K poate aglomera excesiv reeaua, el va trimite 4K. Din alt punct de vedere, dac receptorul

500

NIVELUL TRANSPORT

CAP. 6

spune: Trimite 8K" i emitorul tie c o rafal de 32K poate strbate fr efort reeaua, el va trimite toi cei 8K cerui. La stabilirea conexiunii, emitorul iniializeaz fereastra de congestie la dimensiunea celui mai mare segment utilizat de acea conexiune. El trimite apoi un segment de dimensiune maxim. Dac acest segment este confirmat naintea expirrii timpului, mai adaug un segment ia fereastra de congestie, fcnd-o astfel de dimensiunea a dou segmente de dimensiune maxim, i trimite dou segmente. Odat cu confirmarea fiecruia din aceste segmente, fereastra de congestie este redimensionat cu nc un segment de dimensiune maxim. Atunci cnd fereastra de congestie este de n segmente, dac toate cele n segmente sunt confirmate n timp util, ea este crescut cu numrul de octei corespunztor celor n segmente. De fapt, fiecare rafal confirmat cu succes dubleaz fereastra de congestie. Fereastra de congestie crete n continuare exponenial pn cnd sau se produce o depire de timp, sau se atinge dimensiunea ferestrei receptorului. Ideea este ca dac rafale de dimensiune, s spunem, 1024,2048 i 4096 de octei funcioneaz fr probleme, dar o rafal de 8192 octei duce la o depire de timp, fereastra de congestie va fi stabilit la 4096 de octei pentru a evita congestia. Atta timp ct fereastra de congestie rmne la 4096, nu va fi transmis nici o rafal mai mare de aceast valoare, indiferent ct de mult spaiu de fereastr este oferit de ctre receptor. Acest algoritm este numit algoritmul startului lent, fr a fi ns ctui de puin lent (Jacobson, 1988). Este exponenial. Este de ateptat ca toate implementrile TCP s l suporte.

Depire de timp

10

12

14

16

18

20

22

24

Nurnr de transmisie

Fig. 6-32. Un exemplu al algoritmului de congestie din Internet.

SEC. 6.4

PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP)

501

S privim acum algoritmul de control al congestiei n cazul Internetului. El utilizeaz n plus fa de ferestrele de recepie i de congestie un al treilea parametru, numit prag, iniial de 64K. Atunci cnd apare o depire de timp, pragul este poziionat la jumtate din fereastra curent de congestie i fereastra de congestie este repozitionat la dimensiunea unui segment maxim. Startul lent este utilizat apoi pentru a determina ct poate reeaua s duc, atta doar c acea cretere exponenial se oprete odat cu atingerea punctului critic. De aici nainte transmisiile reuite mresc n mod liniar dimensiunea ferestrei de congestie (cu cte un segment maxim pentru fiecare rafal) n locul uneia pentru fiecare segment. De fapt, algoritmul presupune c este acceptabil tierea ferestrei de congestie la jumtate, din acel punct continundu-i gradual calea spre dimensiuni mai mari. Funcionarea algoritmului de congestie se poate vedea n Fig. 6-32. Dimensiunea unui segment maxim este, n acest caz, de 1024 de octei. Iniial fereastra de congestie are 64K, dar apare o depire de timp i deci pragul este stabilit la 32K iar fereastra de congestie la 1K acesta fiind punctul 0 al transmisiei din figur. Fereastra de congestie crete apoi exponenial pn atinge pragul (32K). ncepnd de aici, creterea este liniar. Transmisia 13 nu are noroc (este de la sine neles) i apare o depire de timp. Pragul este stabilit la jumtate din fereastra curent (acum 40K, deci jumtate este 20K) i startul lent este iniiat din nou. Atunci cnd confirmrile pentru transmisia 18 ncep s soseasc, primele patru incrementeaz fiecare fereastra de congestie cu un segment, dar dup aceea creterea devine liniar. Dac nu mai apar depiri de timp, fereastra de congestie va continua s creasc pn la dimensiunea ferestrei receptorului. n acest punct, creterea ei va fi oprit i va rmne constant atta timp ct nu mai apar depiri i fereastra receptorului nu i modific dimensiunea. Ca un alt aspect, dac un pachet ICMP SOURCE QUENCH sosete i este furnizat TCP-ului, acest eveniment este tratat la fel ca o depire de timp. Munca pentru mbuntirea mecanismelor de control a congestiei continu. De exemplu, Brakmo .a. (1994) au anunat mbuntirea ratei de transfer a TCP-ului cu 40% pn la 70% prin controlul mai precis al ceasului, prevznd congestiile naintea apariiei depirilor de timp i folosind acest avertisment prealabil pentru a mbuntii algoritmul startului lent. 6.4.7 Administrarea contorului de timp n TCP TCP utilizeaz (cel puin conceptual) mai multe contoare pentru a face ceea ce are de fcut. Cel mai important dintre acestea este contorul de retransmisie. Atunci cnd este trimis un segment, se pornete un contor de retransmisie. Dac segmentul este confirmat nainte de expirarea timpului, contorul este oprit. Pe de alt parte, dac timpul expir naintea primirii confirmrii, segmentul este retransmis (i contorul este pornit din nou). ntrebarea care se pune este urmtoarea: Ct de mare trebuie s fie timpul de expirare? Aceast problem este mult mai dificil la nivelul transport din Internet dect la nivelul protocoalelor generice de legtur de date prezentate n Cap. 3. n cazul din urm, intervalul ateptat este uor predictibil (de exemplu, are o variant sczut), deci contorul poate fi determinat s expire chiar imediat dup ce era ateptat confirmarea, aa cum se arat n Fig. 6-33(a). Atta timp ct confirmrile sunt rareori ntrziate n nivelul legtur de date, absena unei confirmri TCP trebuie s fac fa unui mediu radical diferit. Funcia de densitate a probabilitii pentru timpul necesar ntoarcerii unei confirmri TCP arat mai degrab ca n Fig. 6-33(b) dect ca n Fig. 6-33(a). Este dificil determinarea circuitului dus-ntors pn la

502

NIVELUL TRANSPORT

CAP. 6

destinaie. Chiar i cnd acesta este cunoscut, stabilirea intervalului de depire este de asemenea dificil. Dac intervalul este prea scurt, s spunem Tj n Fig. 6-33(b), vor aprea retransmisii inutile, aglomernd Internet-ul cu pachete fr rost. Dac este prea lung, (T2), performanele vor avea de suferit datorit unei retransmisii ntrziate de fiecare dat cnd se pierde un pachet. Mai mult dect att, media i varianta distribuiei sosirii confirmrilor se pot schimba cu rapiditate pe parcursul a ctorva secunde atunci cnd apare sau se rezolv o congestie. la momentul ateptat nseamn, n general, pierderea cadrului de confirmare.
0.31

0.3

0.2

0.1 h

20 30 40 50 ! cltoriei dus-ntors (msec)

20 30 40 50 cltoriei dus-ntors fmsec) (b)

Fij

-33. (a) Densitatea de probabilitate a sosirilor n timp a confirmrilor n nivelul legtur de date. (b) Densitatea de probabilitate a sosiri confirmrilor pentru TCP.

Soluia este de utilizare a unui algoritm profund dinamic care ajusteaz constant intervalul de depire bazndu-se pe msurtori continue ale performanei reelei. Algoritmul general utilizat de ctre TCP este datorat lui lacobsen (1988) i este descris mai jos. Pentru fiecare conexiune, TCP pstreaz o variabil, RTT, care este cea mai bun estimare a circuitului dusntors ctre destinaia in discuie. Atunci cnd este trimis un segment, se pornete un contor, att pentru a vedea ct de mult dureaz pn la primirea confirmrii ct i pentru a iniia o retransmisie n cazul scurgerii unui interval prea lung. Dac se primete confirmarea naintea expirrii contorului, TCP msoar ct de mult i-a trebuit confirmrii s soseasc, fie acest timp M. n continuare el actualizeaz RTT, dup formula: RTT = aRTT + (l-a)M unde a este un factor de netezire care determin ponderea dat vechii valori. Uzual, a=7/8. Chiar presupunnd o valoare bun a lui RTT, alegerea unui interval potrivit de retransmisie nu este o sarcin uoar. n mod normal, TCP utilizeaz $RTT, dar problema const n alegerea lui (3. n implementrile iniiale, (3 era ntotdeauna 2, dar experiena a artat c o valoare constant este inflexibil deoarece nu corespunde n cazul creterii variantei. n 1988, Jacobson a propus ca j3 s fie aproximativ proporional cu deviaia standard a funciei de densitate a probabilitii timpului de primire a confirmrilor, astfel nct o variant mare implic un

SEC. 6.4

PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP)

503

(3 mare i viceversa. In particular, el a sugerat utilizarea deviaiei medii ca o estimare puin costisitoare a deviaiei standard. Algoritmul su presupune urmrirea unei alte variabile de netezire, D, deviaia. La fiecare sosire a unei confirmri, este calculat diferena dintre valorile ateptate i observate RTT - M . O valoare netezit a acesteia este pstrat n D, prin formula D = aD + (l-a)\RTT-M unde a poate sau nu s aib aceeai valoare ca cea utilizat pentru netezirea lui RTT. Dei D- nu este chiar deviaia standard, ea este suficient de bun i Jacobson a artat cum poate fi calculat utiliznd doar adunri de ntregi, scderi i deplasri, ceea ce este un mare punct ctigat. Cele mai multe implementri TCP utilizeaz acum acest algoritm i stabilesc valoarea intervalului de depire la: Depire = RTT + 4* D Alegerea factorului 4 este ntr-un fel arbitrar, dar are dou avantaje. n primul rnd, multiplicarea prin 4 poate fi fcut printr-o singur deplasare. n al doilea rnd, minimizeaz depirile de timp i retransmisiile inutile, datorit faptului c mai puin de un procent din totalul pachetelor sosesc cu ntrzieri mai mari de patru ori deviaia standard. (De fapt, Jacobson a propus iniial s se foloseasc 2, dar experiena ulterioar a demonstrat c 4 conduce la performane mai bune). O problem legat de estimarea dinamic a lui RTT se refer la ce trebuie fcut n situaia n care un segment cauzeaz o depire i trebuie retransmis. Atunci cnd confirmarea este primit, nu este clar dac aceasta se refer la prima transmisie sau la o transmisie urmtoare. O decizie eronat poate contamina serios estimarea lui RTT. Phil Karn a descoperit aceast problem pe o cale dificil. El este un radio amator entuziast, interesat n transmiterea pachetelor TCP/IP prin operare radio, un mediu recunoscut pentru lipsa de fiabilitate (pe o zi senin, la destinaie ajung jumtate din pachete). El a fcut o propunere simpl: s nu se actualizeze RTT pentru nici un segment care a fost retransmis. n loc de aceasta, timpul de expirare este dublat la fiecare eec, pn cnd segmentele ajung prima oar la destinaie. Aceast corecie este numit algoritmul Iui Karn. Cele mai multe din implementrile TCP utilizeaz acest algoritm. Contorul de retransmisie nu este singurul utilizat de ctre TCP. Un al doilea contor este contorul de persisten. El este proiectat s previn urmtoarea situaie de interblocare. Receptorul trimite o confirmare cu o dimensiune a ferestrei 0, spunndu-i emitorului s atepte. Mai trziu, receptorul actualizeaz fereastra, dar pachetul cu aceast actualizare este pierdut. Acum, att emitorul ct i receptorul ateapt o reacie din partea celuilalt. Atunci cnd contorul de persisten expir, emitorul transmite o sond ctre receptor. Rspunsul la aceast investigare furnizeaz dimensiunea ferestrei. Dac aceast dimensiune continu s fie zero, contorul de persisten este repoziionat i ciclul se repet. Dac este nenul, informaia poate fi acum transmis. Un al treilea contor utilizat de unele implementri este contorul de meninere n viat. Cnd o conexiune a fost inactiv o lung perioad de timp, contorul de meninere n via poate expira pentru a fora una din pri s verifice dac cealalt parte exist nc. Dac aceasta nu rspunde, conexiunea este nchis. Aceast facilitate este controversat, deoarece suprancarc reeaua i poate termina o conexiune altfel sntoas datorit unei partiionri tranzitorii a reelei. Ultimul contor folosit la fiecare conexiune TCP este acela utilizat n strile de ATEPTARE CONTORIZAT pe parcursul nchiderii conexiunilor. El funcioneaz pe durata a dou viei

504

NIVELUL TRANSPORT

CAP.fr

maxime ale unui pachet, pentru a se asigura c, atunci cnd o conexiune este nchis, toate pachetele create de aceasta au murit. 6.4.8 UDP Setul de protocoale Internet suport de asemenea un protocol de transport fr conexiune, UDP (User Data Protocol - protocol pentru informaia utilizator). UDP ofer aplicaiilor o modalitate de a trimite datagrame IP neprelucrate ncapsulate i pe care le transmite fr a stabili o conexiune. Multe aplicaii client-server n care o parte emite cereri i cealalt parte emite rspunsuri folosesc, mai curnd UDP dect s se complice s stabileasc i apoi s elibereze o conexiune. UDP este descris n RFC 768.
- 32 Bii

Port surs Lungime UDP

Port destinaie Sum de control UDP

Fig. 6-34. Antetul UDP. Un segment UDP const dintr-un antet de 8 octei urmat de date. Antetul este prezentat n Fig. 6-34. Cele dou porturi au acelai rol ca i n TCP: de a identifica punctele terminale ale mainilor surs i destinaie. Cmpul lungime UDP include cei 8 octei ai antetului plus datele. Cmpul sum de control UDP cuprinde acelai format pseudo-antet prezentat n Fig. 6-25, antetul UDP i datele UDP, completate, dup caz, pn la un numr par de octei. El este opional i n cazul n care nu este calculat, este memorat ca 0 (o valoare 0 rezultat n urma calculelor este memorat ca un ir de bii 1, ceea ce este acelai lucru n complement fa de 1). Dezactivarea acestuia este o prostie, excepie fcnd cazul n care calitatea informaiei chiar nu conteaz (de exemplu, transmisia vocal digitizat).

Teoretic, protocoalele de transport ar trebui s fie independente de tehnologia nivelului reea. n particular, TCP-ului ar trebui s nu-i pese dac IP ruleaz peste o reea cablu sau radio. n practic, acest lucru conteaz, deoarece cele mai multe implementri TCP au fost atent optimizate pe baza unor'presupuneri care sunt adevrate pentru reele cu cabluri, dar care nu mai sunt valabile n cazul reelelor fr fir. Ignorarea proprietilor de transmisie fr fir poate conduce la o implementare TCP corect din punct de vedere logic, dar cu performane incredibil de proaste. Principala problem este algoritmul de control al congestiei. Aproape toate implementrile TCP din zilele noastre pleac de la premisa c depirile de timp sunt cauzate de congestie i nu de pierderea pachetelor. In consecin, atunci cnd expir un contor, TCP ncetinete ritmul i trimite pachete cu mai puin vigoare (ex. algoritmul startului lent al iui Jacobson).

SEC. 6.4

PROTOCOALE INTERNET DE TRANSPORT (TCP I UDP)

505

Ideea din spatele acestei abordri const n reducerea ncrcrii reelei i n diminuarea astfel a suferinei cauzate de congestie. Din nefericire, legturile bazate pe transmisia fr fir sunt profund nefiabile. Ele pierd tot timpul pachete. Pentru a controla aceast pierdere a pachetelor, abordarea corect este s se retrimit ct mai repede posibil. ncetinirea ritmului nu face dect s nruteasc lucrurile. Dac presupunem c, atunci cnd emitorul transmite 100 de pachete pe secund, 20% din totalul pachetelor se pierde, productivitatea este de 80 pachete/sec. Dac emitorul ncetinete ritmul la 50 pachete/sec, productivitatea scade la 40 pachete/sec. Atunci cnd se pierde un pachet pe o reea cu cabluri, emitorul ar trebui s ncetineasc ritmul. Atunci cnd se pierde un pachet pe o reea fr fir, emitorul ar trebui s se strduiasc i mai tare. Dac emitorul nu tie despre ce tip de reea este vorba, luarea unei decizii este dificil. n mod frecvent, calea de la emitor la receptor este eterogen. Primii 1000 km pot s fie ntr-o reea cu cabluri, dar ultimul kilometru poate s fie fr fir. Acum, luarea unei decizii n situaia unei depiri de timp este i mai dificil, dat fiind c intervine i locul n care apare problema. O soluie propus de Bakne i Badrinath (1995), TCP indirect, const n spargerea conexiunii TCP n dou conexiuni separate, ca n Fig. 6-35. Prima conexiune pleac de la emitor la staia de baz. Cea de-a doua leag staia de baz de receptor. Aceast staie de baz nu face dect s copieze pachetele din cele dou conexiuni n ambele direcii.
Emitor

TCP

Staie de Baz

TCP

Gazda mobil Ruter Antena

Fig. 6-35. Spargerea conexiunii TCP n dou conexiuni. Avantajul acestei scheme este acela c ambele conexiuni sunt acum omogene. Depirile de timp din prima conexiune pot ncetini emitorul, n timp ce depirile de timp din cea de-a doua l pot accelera. Ali parametri pot fi de asemenea reglai separat n fiecare din cele dou conexiuni. Dezavantajul este acela c este negat nsi semantica TCP. Atta timp ct fiecare parte a conexiunii este o conexiune TCP n sine, staia de baz confirm fiecare segment TCP n mod obinuit. Doar c acum, recepia unei confirmri de ctre emitor nu mai nseamn c receptorul a primit segmentul, ci doar c el a fost primit de ctre staia de baz. O soluie diferit, datorat lui Balakrishnan . a. (1995), nu ncalc semantica TCP. Ea se bazeaz pe mici modificri fcute n codul nivelului reea din staia de baz. Una din modificri const n adugarea unui agent de supraveghere care observ i intercepteaz pachetele TCP care pleac spre gazda mobil precum i confirmrile care se ntorc de la acesta. Atunci cnd observ un segment TCP care pleac spre gazda mobil, dar nu observ confirmarea recepionrii acestuia ntr-un interval de timp dat (relativ scurt), agentul ascuns pur i simplu retransmite acel segment, fr a mai spune sursei acest lucru. De asemenea, el

506

NIVELUL TRANSPORT

CAP. 6

genereaz o retransmisie i atunci cnd observ confirmri duplicate din partea gazdei mobile^ lucru care indic invariabil faptul c aceasta a pierdut ceva. Confirmrile duplicate sunt descrcate pe loc, pentru a evita ca sursa s le interpreteze ca un semn de congestie. Cu toate acestea, uii dezavantaj al acestei transparene este acela c, dac legtura fr fir pierde multe pachete, sursa poate depi limita de timp n ateptarea unei confirmri i poate invoca n consecin algoritmul de control al congestiei. n cazul TCP-ului indirect, algoritmul de control al congestiei nu va fi niciodat iniiat dac nu apare ntr-adevr o situaie de congestie n partea cablat" a reelei. Algoritmul Balakrishnan ofer de asemenea o soluie problemei pierderii segmentelor generate de ctre gazda mobil. Atunci cnd staia de baz constat o pauz n interiorul domeniului numerelor de secven, aceasta genereaz o cerere pentru o repetare selectiv a octetului lips, utiliznd o opiune TCP. Prin aceste dou corecturi, legtura fr fir devine mai fiabil n ambele direcii fr ca sursa s tie acest lucru i fr modificarea semanticii TCP. Dei UDP-ul nu sufer de aceleai probleme ca i TCP-ul, comunicaia fr fir induce i pentru el anumite dificulti. Principala problem este aceea c programele utilizeaz UDP ateptndu-se ca acesta s fie foarte fiabil. Ele tiu c nu este furnizat nici o garanie, dar cu toate acestea se
A

ateapt ca el s fie aproape perfect. Intr-un mediu fr fir, el va fi ns departe de perfeciune. Pentru programele care sunt capabile s se refac dup pierderea mesajelor UDP, dar numai cu un cost considerabil, trecerea brusc de la un mediu n care mesajele puteau fi pierdute mai mult teoretic dect practic la un mediu n care ele sunt pierdute sistematic poate conduce la un dezastru n ceea ce privete performanele. Comunicaia fr fir afecteaz i alte domenii dect cel al performanelor. De exemplu, cum poate o gazd mobil s gseasc o imprimant local la care s se conecteze, altfel dect prin utilizarea propriei imprimante? Oarecum legat de aceasta este i problema obinerii paginii WWW din celula local, chiar dac numele ei nu este cunoscut. De asemenea, proiectanii paginilor WWW au tendina s presupun disponibil o mare lrgime de band. Punerea unui simbol standard pe fiecare pagina poate s devin contraproductiv dac transmisia acestuia cu 9600 bps dureaz 30 sec la fiecare referire a paginii i acest lucru ajunge pn la urm s irite utilizatorii.

6.5 PROTOCOALE AAL DE NIVEL ATM


Nu este foarte clar dac ATM are sau nu un nivel transport. Pe de-o parte, nivelul ATM are funcionalitatea unui nivel reea cu un alt nivel (AAL) plasat imediat deasupra sa, lucru care face din AAL un nivel de tip transport. Unii experi agreeaz acest punct de vedere (de exemplu De Prycker, 1993, pagina 112). Unul din protocoalele utilizate acolo (AAL 5) este din punct de vedere funcional similar cu UDP-ul, care este incontestabil un protocol de nivel transport. Pe de alt parte, nici unul din protocoalele AAL nu furnizeaz o conexiune capt-la-capt fiabil precum TCP-ul (dei cu foarte mici modificri ar fi putut s o fac). De asemenea, n cele mai multe aplicaii este utilizat un alt nivel transport, situat deasupra AAL-ului. n loc s despicm firul n patru, vom discuta n acest capitol despre nivelul AAL i protocoalele sale, fr s pretindem c el ar fi cu adevrat un nivel de tip transport. Nivelul AAL din reelele ATM difer radical de TCP, mai ales pentru c proiectanii si au fost interesai n principal de transmisia vocii i a imaginilor video, pentru care livrarea rapid este mai important dect acurateea datelor. S ne reamintim c nivelul ATM emite doar celule de 53 octei

SEC. 6.5

PROTOCOALE AAL DE NIVEL ATM

una dup cealalt. Nu dispune de un control al erorii, control al fluxului i de nici un alt control. n consecin, el nu este foarte potrivit pentru cerinele celor mai multor aplicaii. Pentru a rezolva problema, n Recomandarea 1363, TU a definit un nivel capt-la-capt deasupra nivelului ATM. Acesta, numit AAL (ATM Adaptation Lavei- - nivel de adaptare ATM), are o istorie zbuciumat, plin de erori, revizuiri i lucruri lsate neterminate. n seciunile care urmeaz, vom arunca o privire asupra acestuia i asupra modului su de proiectare. Scopul AAL-ului este de a furniza un serviciu util programelor de aplicaie protejndu-le de automatismul decuprii datelor n celule, la surs, i de reasamblarea !or la destinaie. Atunci cnd a nceput definirea AAL, TU a realizat c diferite aplicaii au diferite cerine, astfel nct a organizat spaiul de servicii de-a lungul a trei axe: 1. Serviciu de timp real / serviciu de timp non-real. 2. Serviciu de transmisie cu vitez constant / serviciu de transmisie cu vitez variabil. 3. Serviciu orientat pe conexiuni / serviciu fr conexiuni. n principiu, cu trei axe i dou valori pe fiecare ax pot fi definite opt servicii distincte, aa cum arat Fig. 6-36. ITU a intuit c doar patru din acestea erau utile i le-a numit clasele A, B, C i D, conform figurii. Celelalte nu au fost implementate. ncepnd cu- ATM 4.0, Fig. 6-36 este oarecum nvechit, astfel c ea a fost prezentat aici mai mult ca informaie fundamental pentru a nelege de ce protocoalele AAL au fost proiectate astfel. n locui acestor clase de servicii, diferenierea major se face acum ntre clasele de trafic, studiate n capitolul 5 (ABR5 CBR, NRT-VBR, RT-VBR i UBR). D
smponzare sta Di Timp rea! Fr Timp rea! Fr Timp , rea! i ,_ i rara Timp rea! Fr

Constant

Variabil

Constant

Variabil

Orientat spre conectivitate

Fr conectivitate

Fig. 6-36. Clasele de servicii originale, suportate de ctre AAL (acum nvechite). Pentru a controla aceste patru clase de servicii, ITU a definit patru protocoale, respectiv AAL 1 pn la AAL 4. Cu toate acestea, s-a descoperit n cele din urm c cerinele tehnice ale claselor C i D erau att de apropiate, nct AAL 3 i AAL 4 au fost combinate n AAL 3/4. Ulterior, industria de calculatoare - care cam adormise n timpul acestei schimbri - a realizat c nici unul dintre ele nu era folositor. Problema a fost rezolvat prin simpla definire a unui alt protocol, AAL 5. Vom arunca o privire sumar asupra tuturor celor patru protocoale. De asemenea, vom examina un protocol de control interesant, utilizat pe sistemele ATM.

508 6.5.1

NIVELUL TRANSPORT

CAP. 6

Structura nivelului de adaptare ATM

Nivelul de adaptare ATM este divizat n dou pri principale, una dintre ele fiind mprit mai departe, conform Fig. 6-37. Partea superioar a nivelului de adaptare ATM este numit subnivelul de convergen. Sarcina sa este de a furniza o interfa pentru aplicaie. Ea const dintr-o parte comun tuturor aplicaiilor (pentru un protocol AAL dat) i o parte specific fiecrei aplicaii. Funciile fiecreia din aceste pri sunt dependente de protocol, dar pot include ncadrarea mesajelor i detecia erorii.
Subniveiul de convergen (parte specific de service) Subniveiul de convergen (parte comun) Subniveiui de segmentare i reasambiare Nivelul ATM Discutat n capitolul 5 Discutat n capitolui 6

Nivel de adaptare ATM

Discutat n capitolul 3

Fig. 6-37. Modelul ATM - nivelul de adaptare ATM cu subnivelele aferente. n plus, la surs, subnivelul de convergen este responsabil cu acceptarea fluxului de bii sau a mesajelor de lungime arbitrar de la aplicaii i cu fragmentarea lor n uniti de 44 sau 48 octei n vederea transmisiei. Atta timp ct protocoalele utilizeaz o parte din cei 48 de octei din informaie util ATM pentru propriile antete, dimensiunea exact este dependent de protocol. La destinaie, acest subnivel reasambleaz celulele n mesajele originale. De regul, atunci cnd exist, dimensiunile mesajelor sunt prestabilite. Cu alte cuvinte, dac sursa trimite patru mesaje a cte 512 octei fiecare, ele vor ajunge ca patru mesaje de 512 octei i nu ca un singur mesaj de 2048 octei. n cazul fluxurilor de date nu exist nici o delimitare ntre mesaie si deci acestea nu sunt respectate. Partea inferioar a AAL-ului este' subnivelui SAR (Segmentation And ReassembSy segmentare i reasamblare). Acesta poate aduga antete i ncheieri la unitile de date care i sunt furnizate de ctre subnivelul de convergen, pentru a forma astfel informaiile utile ale celulelor. Aceste ncrcturi sunt furnizate nivelului de transmisie ATM. La destinaie, subnivelul SAR reasambleaz celulele n mesaje. Subnivelul SAR se ocup n principal cu celule, iar subnivelul de convergen cu mesaje. Operaia generic de convergen i subnivelele SAR sunt prezentate n Fig. 6-38. Atunci cnd un mesaj sosete de la aplicaie la AAL, subnivelul de convergen poate s-i adauge un antet i/sau o ncheiere. Mesajul este apoi fragmentat n uniti de cte 44 pn la 48 octei care sunt transmise subnivelului SAR. Subnivelul SAR poate s adauge propriul antet i ncheiere fiecrei uniti i s le transmit mai departe nivelului de ATM pentru transmisie, sub form de celule independente. De notat c figura evideniaz cel mai general caz, pentru c unele protocoale AAL au antet i/sau ncheiere nul.

SEC. 6.5

PROTOCOALE AAL DE NIVEL ATM

509

Generat de aplicaie ncheiere Generat de subnivelul de convergen Generat de subnivelul SAR Generat de nivelul ATM Antet ATM Antet SAR Antetul ncheiere subnivelului SAR de convergen Octei ncheierea subnivelului de convergen A S W/y

Mesaj

s
R

cs
r

A R

T A M R

'//////, V777/AV

S A W//AR

T A M R

A S W///,

cs

S A

Nefolositi

Fig. 6-38. ntr-o reea ATM mesajelor le pot fi adugate antete i ncheieri. Subnivelul SAR dispune de asemenea de unele funcii adiionale pentru unele clase de servicii (dar nu pentru toate). Mai precis, el se ocup uneori de detecia i multiplexarea erorilor. Subnivelul SAR este prezent n majoritatea claselor de servicii fiind mai mult sau mai puin solicitat, n funcie de specificul protocolului. Comunicaia ntre aplicaie i nivelul AAL utilizeaz primitivele standard OSI de cerere i indicare, pe care le-am discutat n Cap. 1. Comunicaia ntre subnivele utilizeaz alt gen de primitive. 6.5.2 AAL1

AAL 1 este protocolul utilizat pentru transmisia traficului de clas A, adic traficul orientat pe conexiuni, cu viteza de transmisie constant, de timp real, de exemplu trafic audio i video necomprimat. Biii sunt produi de ctre aplicaie la o vitez de transmisie constant i trebuie s fie livrai la captul ndeprtat cu aceeai rat constant, cu un minimum de ntrziere, fluctuaie i suprancrcare. Intrarea este un ir de bii fr nici o limit de mesaj. Pentru acest trafic, protocoalele de detecie a erorii, de exemplu pas-cu-pas, nu sunt utilizate datorit faptului c ntrzierile introduse prin depirea limitei de timp i prin retransmisii nu sunt acceptabile. Cu toate acestea, celulele lips sunt semnalate aplicaiei care trebuie s ia propriile msuri (dac e cazul) pentru a le recupera. AAL 1 utilizeaz un subnivel de convergen i un subnivel SAR. Subnivelul de convergen detecteaz celulele pierdute i inserate greit. (O celul greit inserat este o celul care este livrat unei destinaii eronate ca rezultat al unei erori nedetectate n identificatorii proprii de circuit virtual sau cale virtual). Acest subnivel netezete de asemenea traficul de intrare pentru a asigura o livrare

510
A

NIVELUL TRANSPORT

CAP. 6

a celulelor la o vitez constant. In final, subnivelul de convergen fragmenteaz mesajele sau fluxurile de intrare n uniti de 46 sau 47 octei care sunt furnizate subnivelului SAR pentru transmisie. La cellalt capt, subnivelul SAR extrage aceste uniti i reconstruiete intrarea original. Subnivelul de convergen din AAL1 nu are nici un antet de protocol propriu. Spre deosebire de AAL 1, subnivelul SAR are un protocol. Formatul celulelor sale este prezentat n Fig. 6-39. Ambele formate ncep cu un antet de un octet, coninnd un numr de secven, SN, de 3 bii (pentru a detecta celulele lips sau greit inserate). Acest cmp este urmat de un cmp protecie numr de secven, SNP, de 3 bii (de exemplu, sum de control), corespunztor numrului de secven i care permite corectarea erorilor singulare i detectarea erorilor duble din cmpul de secven. El utilizeaz un control cu redundan ciclic bazat pe polinomul x3+x+l. Un bit de paritate par care altereaz octetul antet va reduce posibilitatea ca un numr de secven eronat s se strecoare neobservat. Nu este necesar ca celulele AAL 1 s fie completate cu toi cei 47 octei. De exemplu, pentru transmisia digitizat a vocii la o rat de 1 octet la fiecare 125 usec, umplerea unei celule cu toi cei 47 de octei impune nregistrarea unei secvene de sunet de 7.875 msec. Dac ntrzierea dinaintea transmisiei este de neacceptat, atunci pot fi expediate i celule umplute parial. n acest caz, numrul efectiv de octei de infomiatie pe celul este acelai pentru toate celulele si este convenit n avans.
jj

non-P 0 SN SNP

\
Paritate par

47-Octei informaie util

! SN SNP

>

Pointer

Jj 46-Octei informaie util ff 48 Octei

f(

Fig. 6-39. Formatul celulei AAL 1. Atunci cnd trebuie respectate limitele mesajului, se folosesc celulele P. Cmpul Indicator este utilizat pentru a preciza deplasamentul de nceput al urmtorului mesaj. Doar celulele cu un numr de secven par pot fi celule P, indicatoml fiind astfel n domeniul 0 - 92 i putnd fi plasat fie n informaia propriei celule, fie n celula care urmeaz. S observm c aceast schem permite mesajelor s conin un numr arbitrar de octei, astfel nct mesajele pot fi rulate continuu, fr a fi necesar alinierea lor la limita de celul. Bitul cel mai semnificativ al cmpului Indicator este rezervat pentru dezvoltri ulterioare. Bitul iniial de antet al tuturor celulelor cu numr impar formeaz un flux de date utilizat pentru sincronizarea de ceas. 6.5.3 AL2 AAL 1 este proiectat pentru fluxuri de date simple, orientate pe conexiuni, de timp real i fr detecie de erori, excepie fcnd doar celulele lips i greit inserate. AAL 1 este un protocol

SEC. 6.5

PROTOCOALE AAL DE NIVEL ATM

511

adecvat pentru fluxuri audio i video necomprimate pure sau pentru orice alt tip de fluxuri de date n care civa bii distorsionai din cnd n cnd nu creeaz o problem. Pentru fluxuri audio i video comprimate, viteza de transfer poate varia puternic n timp. De exemplu, multe scheme de compresie transmit periodic un cadru video complet, i apoi transmit doar diferenele dintre cadrele intermediare i ultimul cadru complet, pentru mai multe cadre. Atunci cnd camera este staionar i nimic nu se mic, diferenele dintre cadre sunt minore, dar cnd camera este deplasat rapid, diferenele sunt importante. De asemenea, limitele mesajelor trebuie respectate, astfel nct s poat fi recunoscut nceputul cadrului complet urmtor chiar n cazul unor pierderi de celule sau unor date eronate. Din aceste motive este necesar un protocol aparte. AAL 2 a fost proiectat n acest scop.
-1 O c t e t SN IT * L 2 Octei CRC

45-Octei informaie util 48 Octei

Fig. 6-40. Formatul celulei AAL 2. Ca i n AAL 1, subnivelul CS nu are un protocol propriu, ns subnivelu SAR are un astfel de protocol. Formatul unei celule SAR este prezentat n Fig. 6-40. El are un antet de 1 octet i o ncheiere de 2 octei, lsnd loc pentru cei pn la 45 de octei de date per celul. Cmpul SN (Sequence Number - numr de secven) este utilizat pentru numrarea celulelor n scopul detectrii celulelor lips sau greit inserate. Cmpul TI (Information Type - tipul informaiei) este utilizat pentru a indica faptul c celula reprezint nceputul, mijlocul sau sfritul unui mesaj. Cmpul LI (Length Indicator - indicator de lungime) indic dimensiunea informaiei utile, n octei (poate s fie mai mic dect 45 octei). n sfrit, cmpul CRC este o sum de control a ntregii celule, pentru detectarea erorilor. Dei pare ciudat, dimensiunile cmpurilor nu sunt incluse n standard. Conform unei surse interne, chiar la finalul procesului de standardizare comitetul a realizat c AAL 2 avea att de multe probleme, nct nu ar trebui s fie utilizat. Din pcate, era prea trziu pentru a mai opri procesul de standardizare. Trebuia respectat un termen final. Cu un ultim efort, comitetul a nlturat toate dimensiunile cmpurilor, astfel nct standardul formal s poat fi emis la timp, dar ntr-o asemenea form, nct nimeni nu a putut s-1 utilizeze. Aa este viaa n lumea standardizrii. 6.5.4 AAL 3/4

La nceput, ITU a avut diferite protocoale pentru clasele C i D, serviciu orientat pe conexiuni i serviciu fr conexiuni pentru transport de date sensibil la pierderi sau erori, dar care nu este dependent de timp. Apoi ITU a descoperit c n realitate nu erau necesare dou protocoale i, prin urmare, ele au fost combinate ntr-un singur protocol, AAL 3/4. AAL 3/4 poate opera n dou moduri: flux sau mesaj. n modul mesaj, fiecare apel dinspre aplicaie spre AAL 3/4 injecteaz un mesaj n reea. Mesajul este livrat ca atare, altfel spus, limitele

512
A

NIVELUL TRANSPORT

CAP. 6

mesajului sunt respectate. In modul flux, limitele nu sunt respectate. Discuia urmtoare se va concentra asupra modului mesaj. n fiecare mod este asigurat transportul fiabil i nefiabil (de exemplu fr garanie). O caracteristic a lui AAL 3/4 care nu este prezent n nici unul din celelalte protocoale este multiplexarea. Acest aspect al lui AAL 3/4 permite sesiunilor multiple (de exemplu conectare de la distan) de la o singur gazd s circule pe aceiai circuit virtual i s fie separate la destinaie, ca n Fig. 6-41.

/virtual 1

Circuit

Cale virtual /

Trei sesiuni
muIipSexae pe circuitul virtual 2 sesiuni

iltiplexarea mai multor sesiuni pe un acelai circuit virtual. Motivul pentru care se dorete aceast facilitate este acela c de multe ori companiile de transmisie taxeaz fiecare stabilire a unei conexiuni i fiecare secund n care o conexiune este deschis. Dac o pereche de maini are mai multe sesiuni deschise simultan, furnizarea unui circuit virtual propriu pentru fiecare sesiune va costa mai mult dect multiplicarea tuturor sesiunilor pe un acelai canal virtual. Dac un singur circuit virtual are suficient lime de band pentru a asigura ndeplinirea sarcinii, atunci sunt inutile mai multe circuite. Toate sesiunile care utilizeaz un singur circuit virtual au aceeai calitate a serviciului, deoarece aceasta este negociat pentru fiecare circuit virtual n parte. Aceast abordare reprezint motivul real pentru care formatele AAL 3 i AAL 4 au fost separate: americanii doreau multiplexare, n timp ce europenii nu doreau acest lucru. n concluzie, fiecare grup a mers pe cont propriu dezvoltndu-i propriul standard. n cele din urm, europenii au decis c salvarea a 10 bii din antet nu merita preul de a nu mai putea realiza comunicarea dintre Statele Unite i Europa. Pentru acest pre ei ar fi putut fi mndri n singurtatea lor, iar noi, n ioc de trei standarde, am fi avut parte de patru standarde AAL (din care unul inutilizabil) incompatibile. Spre deosebire de AAL 1 i AAL 2, AAL 3/4 are att un protocol pentru subnivelul de convergen ct i un protocol pentru subnivelul SAR. Dinspre aplicaie sosesc n subnivelul de convergent mesaje de 65535 octei. Ele sunt nti aliniate la un multiplu de 4 octei, apoi le sunt ataate un antet i o ncheiere, conform Fig. 6-42.
Octei 1 CPI 1 Btag Dimensiune
BA

3-3

1 Etag jime (0-65535)

Informaie util 11 Ia 65535 oct.)

Umplu-

Antet CS

ncheiere CS

Fig. 6-42. Formatul mesajului n subnivelul de convergen din AAL 3/4.

SEC. 6.5

PROTOCOALE AAL DE NIVEL ATM

513

Cmpul CPI (Common Part Indicator - indicatorul prii comune) furnizeaz tipul mesajului i unitatea de numrare pentru dimensiunea BA i cmpul Lungime. Cmpurile Btag si Etag sunt utilizate pentru a ncadra mesajele. Cei doi octei trebuie s fie identici i sunt incrementai cu unu de fiecare dat cnd se trimite un nou mesaj. Acest mecanism verific pierderile i inserrile eronate de celule. Cmpul dimensiune BA este utilizat pentru alocarea tamponului. El spune receptorului ct de mult spaiu s aloce n avans pentru memorarea mesajului care urmeaz s soseasc. Cmpul Lungime indic din nou lungimea ncrcrii utile, n modul mesaj, el trebuie s fie egal cu dimensiune BA, putnd diferi ns n modul flux. ncheierea mai conine de asemenea i un octet neutilizat. Dup ce subnivelul de convergen a construit i a adugat un antet i o ncheiere la mesaj, conform Fig. 6-42., mesajul este ncredinat subnivelului SAR, care l decupeaz n segmente de cte 44 octei. S observm c, pentru a suporta multiplexarea, subnivelul de convergen poate construi intern mai multe mesaje n acelai timp i poate trimite segmente de cte 44 octei ctre subnivelul SAR, mai nti dintr-un mesaj, apoi din altul, n orice ordine. Subnivelul SAR insereaz fiecare segment de 44 de octei n ncrcarea util a unei celule, al crei format este dat de Fig. 6-43. Aceste celule sunt apoi transmise ctre destinaie, unde sunt reasamblate, apoi este verificat suma de control i se acioneaz conform rezultatului.
Bii

2 4
S S T N

10

6
44 octei - informaie util rr 1-44

10

MID

LI

CRC

00 Mijloc 01 Sfrit 10 nceput 11 Mesaj de o singur celul

48 Octei

Fig. 6-43. Formatul celulei AAL 3/4. Cmpurile din formatul celulelor AAL 3/4 au semnificaiile urmtoare: Cmpul ST (Segment Type - tipul segmentului) este utilizat pentru ncadrarea mesajelor. El indic dac o celul reprezint nceputul unui mesaj, este n mijlocul mesajului, este ultima celul din mesaj sau este un mesaj de dimensiune mic (de exemplu o singur celul). Urmeaz apoi un numr de secven pe 4 bii, SN, pentru detectarea celulelor lips sau inserate greit. Cmpul MID (Multiplexing ID - identificator de multiplexare) este utilizat pentru a determina care celul aparine crei sesiuni. S ne reamintim c subnivelul de convergen poate avea mai multe mesaje aparinnd mai multor sesiuni diferite, memorate n acelai timp, i poate trimite segmente din aceste mesaje n orice ordine dorete. Toate segmentele mesajelor care aparin sesiunii / conin / n cmpul MID, astfel nct ele s poat fi corect reasamblate la destinaie. ncheierea conine lungimea informaiei i suma de control a celulei. De notat c AAL 3/4 conine suprancrcarea protocoalelor a dou nivele: sunt adugai 8 octei fiecrui mesaj i sunt adugai 4 octei fiecrei celule. Una peste alta acesta este un mecanism greoi, mai ales pentru mesaje scurte.

514 6.5.5 AAL 5

NIVELUL TRANSPORT

CAP. 6

Protocoalele AAL 1 pn la AAL 3/4 au fost proiectate n mare parte de ctre industria de telecomunicaie i standardizate de ctre ITU, fr ca industria de calculatoare s participe prea mult. Atunci cnd, n cele din urm, industria de calculatoare s-a trezit i a nceput s neleag implicaiile din Fig. 6-42, s-a instaurat un sentiment de panic. Complexitatea i ineficienta generat de dou nivele de protocoale, combinat cu suma de control surprinztor de scurt (doar 10 bii) a impulsionat civa cercettori s inventeze un nou protocol de adaptare. El a fost numit SEAL (Simple Efficient Adaptation Layer - nivel de adaptare simplu i eficient), lucru care sugereaz faptul c proiectanii l-au comparat cu vechile protocoale. Dup cteva discuii, Forumul ATM a acceptat SEAL i i-a atribuit numele AAL 5. Pentru mai multe informaii asupra AAL 5 i asupra diferenelor acestuia fa de AAL 3/4, se poate consulta (Suzuki, 1994). AAL 5 ofer aplicaiilor sale mai multe tipuri de servicii. O posibilitate este serviciul fiabil (de exemplu, livrarea garantat cu control al fluxului pentru a prentmpina supraaglomerrile). O alt posibilitate este serviciul nefiabi (de exemplu, nici o garanie de livrare), cu alternativele de a descrca sau de a transmite aplicaiei (cu avertismentul de eroare) celulele cu erori n suma de control. Este suportat att comunicaia de tip uni-destinaie ct i de tip multi-destinaie, dar multidestinaia nu garanteaz livrarea. La fel ca i AAL 3/4, AAL 5 suport att modul mesaj ct i modul flux. n modul mesaj, o aplicaie poate transmite, nivelului AAL o datagram de lungime ntre 1 i 65535 octei astfel nct fie se garanteaz sosirea datagramei la destinaie, fie se ncearc livrarea ei n condiii ct mai bune. Odat cu sosirea l subnivelui de convergen, mesajul este aliniat i completat cu o ncheiere, aa cum se arat n Fig. 6-44. Numrul de octei adugai pentru aliniere (de la 0 la 47 de octei) este astfel ales, nct ntregul mesaj, inclusiv ncheierea i octeii n discuie, s fie un multiplu de 48. AAL 5 nu are un antet al subnivelului de convergen, ci doar o ncheiere de 8 octei.
Octei Informaie util (1 la 65,535 octei) 1 1 Lungime CRC

UU

Fig. 6-44. Formatul mesajului n subnivelui de convergen din AAL 5. Cmpul UU (User to User - utilizator la utilizator) nu este folosit chiar de nivelul AAL. De fapt, el este disponibil nivelurilor superioare, de exemplu pentru secveniere sau multiplexare. Nivelul superior n discuie poate fi partea specific de serviciu a subnivelului de convergen. Cmpul Lungime indic adevrata informaie util, fr a pune la socoteal octeii adugai pentru aliniere. Pentru a renuna la mesajul curent n timpul fluxului de transfer, este utilizat o valoare 0. Cmpul CRC este suma standard de 32 de bii calculat pentru ntregul mesaj, inclusiv ncheierea i octeii adugai pentru aliniere (cu valoarea cmpului CRC considerat 0). ncheierea conine n plus un octet rezervat dezvoltrilor ulterioare. Mesajul este emis prin furnizarea sa subnivelului SAR, care nu adaug nici un antet sau ncheiere. n loc de aceasta, el fragmenteaz mesajul n uniti de 48 de octei fiecare, aceste uniti fiind pasate ctre nivelul ATM de transmisie. De asemenea, el spune nivelului ATM s poziioneze

SEC. 6.5

PROTOCOALE AAL DE NIVEL ATM

515

un bit n cmpul PTI al ultimei celule, astfel nct s se respecte limitele de mesaj. S-ar putea spune c acest lucru este o amestecare incorect a nivelurilor de protocoale, deoarece nivelul AAL nu ar trebui s utilizeze bii din antetul nivelului ATM. Procednd astfel, se violeaz principiul de baz al ingineriei protocoalelor, sugerndu-se c proiectarea nivelurilor ar fi trebuit probabil s fie realizat ntr-o alt manier. Principalul avantaj al lui AAL 5 asupra lui AAL 3/4 const ntr-o eficien mult mai mare. Dac AAL 3/4 adaug doar 4 octei per mesaj, AAL 5 adaug de asemenea 4 octei per celul, reducnd capacitatea informaiei utile la 44 de octei, ceea ce reprezint o pierdere de 8 procente pentru mesajele lungi. AAL 5 are o ncheiere ceva mai mare (8 octei), dar nu adaug suprancrcare la nivelul fiecrei celule. Lipsa unui numr de secven n celule este compensat printr-o sum de control mai mare, care poate detecta pierderile, inserrile eronate sau celulele lips fr a folosi numerele de secven. n comunitatea Internet, se prognozeaz c interfaa cu reelele ATM se va realiza prin transportul pachetelor IP care conin un cmp ncrcare util de tipul AAL5. Diferite abordri aie acestei idei sunt discutate n RFC 1483 i RFC 1577. 6.5.6 O comparaie a protocoalelor AL Dac, n acest moment, cititorul consider c diferitele protocoale AAL sunt inutil de similare unul altuia i superficial concepute, faptul este de neles. deea de a avea subnivele SAR i de convergen distincte st de asemenea sub semnul ntrebrii, mai ales dac avem n vedere c AAL 5 nu conine nimic n subnivelul SAR. O mic mbuntire a antetului nivelului ATM ar fi fost suficient pentru secveniere, multiplexare i ncadrare.
Element Clasa de serviciu Multiplexare Delimitarea mesajelor Alocarea n avans a tampoanelor Octei utilizator disponibili Umplutur CS Suprancrcare de protocol CS (octei) Sum de control CS Octei SAR de ncrcare util Suprancrcare de protocol SAR (octei) Sum de control SAR AAL1 A Nu Absent Nu 0 0 0 Absent 46-47 1-2 Absent AAL 2 AAL 3/4 AAL 5

B
Nu Absent Nu 0 0 0 Absent 45 3 Absent

C/D Da
Btag/Etag Da 0 Cuvn pe 32 bii 8 Absent 44 4 10 bii

C/D
Nu Bit n PT1 Nu 1 0-47 octei 8 32 bii 48 0 Absent

Fig. 6-45. Cteva din diferenele ntre diversele protocoale AAL. Fig. 6-45. reunete cteva diferene ntre diversele protocoale AAL. Aceste diferene se refer la eficien, control al erorii, multiplexare i la legtura dintre subnivelele AAL. Impresia global pe care o las AAL este aceea de prea multe variante cu diferene minore ntre ele i de lucru fcut doar pe jumtate. Cele patru clase iniiale de servicii, A, B, C, D, au fost efectiv abandonate. AAL 1 este probabil inutil; AAL 2 este nefuncional; AAL 3 i AAL 4 n-au vzut niciodat lumina zilei; AAL 3/4 este ineficient i are o sum de control prea mic.

516

NIVELUL TRANSPORT

CAP. 6

Viitorul ncepe cu AAL 5, dar i aici mai este loc pentru mbuntiri. Mesajele AAL 5 ar fi trebuit s aib un numr de secven i un bit pentru a distinge ntre mesajele de date i mesajele de control, astfel nct ele s poat fi folosite ntr-un protocol fiabil de nivel transport. Pentru acestea ar fi putut fi utilizat chiar spaiul liber din ncheiere. Ct despre transportul fiabil, suprancrcarea adiional a nivelului transport este cerut n partea superioar a sa, dei ar fi putut fi evitat. Dac ntregul Comitet AAL ar fi concretizat munca sa ntr-un proiect de semestru, foarte probabil c profesorul l-ar fi dat napoi cu cererea de a-1 pune la punct i de a-1 preda atunci cnd este finalizat. Mai multe critici ale ATM-ului pot fi gsite n (Sterbenz . a., 1995). 6.5.7 SSCOP - protocol orientat pe conexiuni, specific serviciului n ciuda attor protocoale AAL diferite, nici unul din ele nu ofer conexiuni de transport capt-la-capt fiabile i simple. Pentru aplicaiile care necesit acest lucru exist un alt protocol AAL: SSCOP (Service Specific Connection Oriented Protocol - protocol orientat pe conexiuni, specific serviciului). Cu toate acestea, SSCOP este utilizat doar pentru control, nu i pentru transmisie de date. Utilizatorii SSCOP transmit mesaje, la fiecare din ele atandu-se un numr de secven de 24 de bii. Mesajele pot conine pn la 64K octei i nu sunt fragmentate. Ele trebuie s fie livrate n ordine. Spre deosebire de alte protocoale fiabile de transport, mesajele lips sunt ntotdeauna retransmise prin repetare selectiv mai curnd dect prin protocol cu reluare n. SSCOP este n principal un protocol cu fereastr glisant dinamic. Pentru fiecare conexiune, receptorul pstreaz o fereastr de numere de secven ale mesajelor pe care este pregtit s le recepioneze i o hart de bii care marcheaz mesajele deja deinute. Aceast fereastr i poate schimba dimensiunea n timpul operrii protocolului. Lucrul neobinuit la SSCOP este modul n care controleaz confirmrile: nu exist nici o acumulare nainte de ataare. In locul acesteia, emitorul investigheaz periodic receptorul cerndu-i s-i trimit napoi harta de bii care indic starea ferestrei. Bazndu-se pe acest rezultat, emitorul descarc mesajele care au fost acceptate i actualizeaz propria fereastr. SSCOP este descris n detaliu n (Henderson, 1995).

6.6 ELEMENTE DE PERFORMAN


n reelele de calculatoare sunt foarte importante elementele de performan. Atunci cnd sunt interconectate sute sau mii de calculatoare, au loc adesea interaciuni complexe cu consecine nebnuite. Aceast complexitate conduce n mod frecvent la performane slabe fr ca cineva s tie de ce. n seciunile urmtoare vom examina mai multe elemente legate de performana reelei pentru a identifica tipurile de probleme i ce poate fi fcut pentru rezolvarea lor. Din nefericire, nelegerea performanei reelei este mai degrab o art dect o tiin. Este prea puin teorie care st la baz i de fapt aceasta nu folosete n situaii practice. Cel mai bun lucru pe care l putem face este s indicm reguli rezultate dintr-o experien ndelungat i s prezentm exemple luate din lumea real. Am amnat n mod intenionat aceast discuie dup studiul nivelului transport din reelele TCP i ATM, pentru a fi capabili s indicm locurile unde lucrurile au fost fcute corect si unde nu.

SEC. 6.6

ELEMENTE DE PERFORMANA

517

Nivelul transport nu este singurul loc unde apar elemente legate de performan. Am vzut unele elemente la nivelul reea, n capitolul precedent. Fr nici un dubiu, nivelul reea tinde s fie preocupat n mare msur de rutare i controlul congestiei. Mai general, elementele orientate sistem tind s fie legate de nivelul transport, aa c acest capitol este locul potrivit pentru a le examina. n urmtoarele cinci seciuni vom examina cinci aspecte de performan ale reelei: 1. 2. 3. 4. 5. Probleme de performan. Msurarea performanei reelei. Proiectarea de sistem pentru performane mai bune. Prelucrarea rapid TPDU. Protocoale pentru reele viitoare de mare performan.

Ca o parantez, avem nevoie de un nume pentru unitile schimbate de ctre entitile de transport. Termenul TCP de segment este cel mai confuz i n acest context nu este niciodat utilizat n afara lumii TCP. Termenii uzuali ATM, CS-PDU, SAR-PDU i CPCS-PDU sunt specifici doar pentru ATM. Pachetele se refer n mod clar la nivelul reea i mesajele aparin nivelului aplicaie. Din lipsa unui termen standard, vom reveni la numirea unitilor schimbate de entitile de transport TPDU-uri. Cnd ne referim att la TPDU ct i la pachet, vom utiliza pachet ca un termen comun, ca de exemplu n Procesorul trebuie s fie suficient de rapid pentru a prelucra pachetele n timp real." Prin aceasta subnelegem att pachetul nivelului reea ct i TPDU-ul ncapsulat n el. 6.6.1 Probleme de performan n reelele de calculatoare Unele probleme de performan, cum este congestia, sunt cauzate de suprancrcarea temporar a resurselor. Dac apare subit o cretere de trafic la nivelul unui ruter peste nivelul care poate fi controlat de acesta, se va produce o congestie i performanele vor avea de suferit. Congestia a fost studiat n detaliu n capitolul precedent. Performanele se degradeaz de asemenea n cazul unei dezechilibrri structurale a balanei resurselor. De exemplu, dac o linie de comunicaie de un gigabit este ataat la un PC terminal de performan sczut, procesorul slab nu va putea prelucra suficient de repede pachetele care sosesc, unele din acestea pierzndu-se. Aceste pachete vor fi retransmise n cele din urm, adugnd ntrzieri, risipind lrgimea de band i n general reducnd performanele. Suprancrcarea poate fi de asemenea iniiat n mod sincron. De exemplu, dac un TPDU conine un parametru eronat (de exemplu portul sau procesul pentru care este destinat), n multe cazuri receptorul va napoia cu mult grij un anun de eroare. S vedem acum ce s-ar putea ntmpla dac un TPDU eronat ar fi rspndit ctre 10000 de miini: fiecare din ele ar putea ntoarce un mesaj de eroare. Furtuna de difuzare rezultat ar putea s scoat din funciune reeaua. UDP a suferit de aceast problem pn cnd protocolul a fost modificat pentru a mpiedica mainile s rspund erorilor cauzate de TPDU-urile UDP-ului trimise ctre adrese de difuzare. Un al doilea exemplu de suprancrcare sincron este dat de efectele unei cderi a energiei electrice. Odat cu revenirea curentului, toate mainile execut programul ROM de reiniializare. O secven tipic de reiniializare poate cere n primul rnd unui anume server (RARP) identitatea precis a mainii, apoi poate cere unui server de fiiere o copie a sistemului de operare. Dac sute de maini execut acest lucru simultan, serverul va ceda probabil sub aceast ncrcare.

518

NIVELUL TRANSPORT

CAP. 6

Chiar n absena unei suprancrcri sincrone i chiar atunci cnd sunt suficiente resurse disponibile, performanele pot fi slabe datorit unei proaste reglri a sistemului. De exemplu, dac o main are suficient memorie i putere de prelucrare, dar nu a fost alocat suficient spaiu pentru tampoane, vor aprea aglomerri i se vor pierde TPDU-uri. Similar, dac algoritmul de planificare nu acord o prioritate suficient de mare prelucrrii TPDU-urilor care sunt recepionate, unele din ele se vor pierde. Un alt element de reglare este potrivirea corect a intervalelor de limit de timp. Atunci cnd este trimis un TPDU, n mod normal se poziioneaz un contor pentru a evita pierderea sa. Dac limita de timp este prea scurt, se vor produce retransmisii inutile, obturnd cablurile. Dac limita de timp este prea lung, se vor introduce ntrzieri inutile dup pierderea unui TPDU. Ali parametri de reglare includ lungimea intervalului de timp dup care datele acumulate sunt confirmate si numrul de retransmisii nainte de renunare.

(a)

(b)

(O

(d)

Fig. 6-46. Evoluia transmisiei unui megabit de la San Diego la Boston, (a) La momentul t=0. (b) Dup 500 usec. (c) Dup 20 msec. (d) Dup 40 msec. Reelele gigabit aduc cu ele noi probleme de performan. S considerm, de exemplu, transmisia de date de la San Diego la Boston, unde tamponul de recepie este de 64K octei. S presupunem c legtura este de 1 Gbps i c ntrzierea ntr-un singur sens prin fibra de sticl este de 20 msec. Iniial, la momentul t = 0, conducta este goal, ca n Fig. 6-46(a). Doar cu 500 usec mai trziu, n Fig. 6-46(b), toate TPDU-urile sunt deja plasate pe fibr. TPDU-ul

SEC. 6.6

ELEMENTE DE PERFORMAN

519

conductor va fi acum undeva n vecintatea Brawley-ului, nc departe, n California de Sud. Cu toate acestea, transmisia trebuie s se opreasc pn se primete o actualizare de fereastr. Dup 20 msec, TPDU-ul conductor atinge Boston-ul, ca n Fig. 6-46(c) i este confirmat. n final, la 40 msec dup momentul iniial, prima confirmare sosete napoi la emitor i a doua rafal poate s fie transmis. Atta timp ct linia de transmisie a fost utilizat pentru 0.5 msec din cele 40 msec, eficiena este undeva n jurul a 1.25 procente. Aceast situaie este tipic pentru cazul folosirii protocoalelor vechi n linii gigabit. O mrime util de reamintit cnd se analizeaz performanele reelei este produsul lrgime de band-ntrziere. El este obinut prin multiplicarea lrgimii de band (n bii pe secund) cu ntrzierea traseului dus-ntors (n secunde). Produsul reflect capacitatea conductei de la emitor la receptor i napoi (n bii). De exemplu, n Fig. 6-46 produsul lrgime de band-ntrziere este de 40 milioane de bii. Cu alte cuvinte, pentru a funciona la vitez maxim, emitorul poate transmite rafale de 40 milioane de bii pn la recepionarea primei confirmri. Umplerea conductei (n ambele sensuri) presupune o cantitate nsemnat de bii. Acesta este motivul pentru care o rafal de jumtate de milion de bii atinge o eficien de 1.25 procente: ea reprezint doar 1.25 procente din capacitatea conductei. Concluzia care poate fi tras aici este c pentru atingerea unor performane bune, fereastra receptorului trebuie s fie cel puin la fel de mare ca i produsul lrgime de band-ntrziere, preferabil chiar puin mai mare, deoarece receptorul poate s nu rspund instantaneu. Pentru o linie gigabit transcontinental, pentru fiecare conexiune sunt necesari cel puin 5 megabii. Dac eficiena este dezastruoas pentru un megabit, imaginai-v cum ar arta ea pentru transmisia ctorva sute de octei pentru un apel de procedur Ia distan. n cazul n care nu se gsete o alt utilitate pentru linie n timpul n care primul client este n ateptarea rspunsului, o linie gigabit nu este cu nimic mai bun ca o linie megabit, numai c este mult mai scump. O alt problem de performane care poate aprea n aplicaiile de timp critic precum audio/video este fluctuaia. Un timp mediu de transmisie de valoare mic nu este suficient. De asemenea, este necesar i o deviaie standard mic. Obinerea att a unui timp mediu de transmisie mic ct i a unei deviaii standard mici, cere un efort serios de inginerie. 6.6.2 , Msurarea performanelor reelei Atunci cnd performanele unei reele sunt slabe, utilizatorii ei se plng persoanelor care o administreaz, cernd mbuntirea situaiei. Pentru a crete performanele, operatorii trebuie mai nti s determine cu exactitate ce se ntmpl. Pentru a afla ce se ntmpl n realitate, operatorii trebuie s efectueze msurtori. n aceast seciune ne vom concentra asupra msurrii performanelor reelei. Discuia care urmeaz se bazeaz pe lucrarea lui Mogul (1993). O discuie mai amnunit asupra procesului de msurare se gsete n (Jain, 1991; i Villamizan i Song, 1995). Ciclul de baz utilizat pentru mbuntirea performanelor reelei conine urmtorii pai: 1. Msurarea performanelor i a parametrilor relevani ai reelei. 2. ncercarea de a nelege ceea ce se petrece. 3. Modificarea unuia din parametri.

520

NIVELUL TRANSPORT

CAP. 6

Aceti pai se repet pn la atingerea unor performane suficient de bune sau pn cnd este clar c i ultima mbuntire posibil a fost pus n aplicare. Msurarea poate fi fcut n multe moduri i n multe locuri (att fizic ct i n stiva de protocoale). Cel mai important mod de msurare este iniializarea unui contor la nceputul unei activiti i observarea timpului necesar pentru ndeplinirea acelei sarcini. De exemplu, un element cheie n msurare este aflarea timpului necesar unui TPDU pentru a fi confirmat. Alte msurtori sunt fcute cu contoare care nregistreaz frecvena de apariie a unor evenimente (de exemplu, numrul de TPDU-uri pierdute). n final, unii pot fi interesai s afle valorile unor mrimi, ca de exemplu numrul de octei prelucrai ntr-un anume interval de timp. Msurarea performanelor i a parametrilor reelei ascunde multe capcane poteniale. n cele ce urmeaz, enunm doar cteva din acestea. Orice ncercare sistematic de a msura performanele reelei trebuie s le evite. Dimensiunea testului trebuie s fie suficient de mare Timpul necesar pentru a trimite un TPDU nu trebuie msurat o singur dat, ci n mod repetat, s zicem, de un milion de ori, lundu-se n considerare media valorilor rezultate. Un test de dimensiune mare va reduce gradul de incertitudine n media i deviaia standard a msurtorii. Aceast incertitudine poate fi calculat pe baza formulelor statistice obinuite. Testele trebuie s ie reprezentative Ideal ar fi ca ntreaga secven a celor un milion de msurtori s fie repetat n diferite momente ale zilei i ale sptmnii pentru a pune n eviden efectul diferenelor de ncrcare a sistemului asupra mrimii msurate. Msurtorile de congestie, de exemplu, nu sunt prea utile dac sunt fcute ntr-un moment n care nu exist nici o congestie. Uneori rezultatele pot corespunde iniial intuiiei, de exemplu congestii importante a orele 10,11, sau 1,2 dup amiaz, dar se poate ca Ia amiaz congestia s lipseasc (cnd toi utilizatorii au pauz de prnz).

Ceasurile calculatoarelor funcioneaz prin adugarea la intervale regulate a valorii unu ia un anumit contor. De exemplu, un contor de milisecunde adaug unu la contor la fiecare 1 msec. Utilizarea unui astfel de contor pentru a msura un eveniment care dureaz mai puin de 1 msec nu este imposibil, dar necesit o oarecare atenie. Pentru a msura intervalul necesar trimiterii unui TPDU, de exemplu, ceasul sistem (s spunem n milisecunde) ar trebui s citeasc momentul n care se intr n codul de transport i din nou cnd se prsete acest cod. Dac timpul real de transmisie TPDU este de 300 usec, diferena dintre cele dou citiri va fi sau 0, sau 1, ambele valori greite. Cu toate acestea, dac msurtoarea este repetat de un milion de ori i suma tuturor msurtorilor este mprit la un milion, timpul mediu va avea o precizie mai bun de 1 jisec. Ne trebuie s se petreac ceva neateptat n timpul msurtorilor Efectuarea msurtorilor pe un sistem universitar n ziua n care urmeaz s fie predat vreun proiect important poate conduce la rezultate diferite fa de cele ce s-ar obine n ziua imediat.

SEC. 6.6

ELEMENTE DE PERFORMAN

521

urmtoare. Similar, dac vreun cercettor se decide s conduc o videoconferin n reea, n timpul testelor poate fi obinut un rezultat alterat. Cel mai bine este ca testele s fie rulate pe un sistem complet inactiv, ntreaga sarcin fiind construit n vederea testrii. Chiar i aceast abordare are propriile-i capcane. Dei ne-am atepta ca nimeni s nu utilizeze reeaua la ora 3 dimineaa, acesta poate s fie chiar momentul n care un program de salvare automat ncepe s copieze coninutul tuturor discurilor pe band video. Mai mult dect att, s-ar putea s existe un trafic important pentru minunatele pagini de Web de pe reea, situate n zone aflate pe alte meridiane orare. Lucrul cu memoria tampon (ascuns) poate distruge msurtorile Pentru a msura timpul de transfer al fiierelor, calea cea mai evident este de a deschide un fiier de dimensiune mare, de a-1 citi n ntregime i de a-1 nchide, urmnd a vedea ct de mult a durat toat operaia. Se repet apoi operaia de mult mai multe ori, pentru a obine o medie corect. Problema este c sistemul poate memora fiierul n memoria tampon, astfel nct doar prima msurtoare s fi invocat traficul n reea. Restul nu sunt dect accese la memoria tampon local. Rezultatele unei astfel de msurtori sunt, n esen, fr nici o valoare (doar dac nu cumva se dorete msurarea performanelor memoriei tampon). De obicei, se poate ocoli memoria tampon prin simpla ei suprancrcare. De exemplu, dac memoria tampon este de 10 M octei, ciclul de test ar putea deschide, citi i nchide dou fiiere de 10 M octei la fiecare bucl, n tentativa de a fora rata de succes n accesul la memoria tampon la 0. Cu toate acestea, dac nu se nelege cu absolut precizie algoritmul de manipulare a memorie tampon, trebuie procedat cu grij. Memorarea datelor n tampoane poate avea acelai efect. Se cunoate un program utilitar popular pentru msurarea performanelor TCP/IP care raporteaz performane ale UDP-ului substanial mai mari dect o permit liniile fizice. Cum se ntmpl acest lucru? Un apel ctre UDP ntoarce n mod normal controlul odat ce mesajul a fost acceptat de ctre nucleu i adugat la coada de transmisie. Dac este suficient spaiu n tampon, msurarea a 1000 de apeluri UDP nu nseamn neaprat c informaiile au fost transmise. Cea mai mare a informaiilor poate s se afle nc n nucleu, dar instrumentul de msurare interpreteaz c ele au fost toate deja transmise. Trebuie neles ceea ce se msoar Atunci cnd se msoar timpul necesar pentru a citi un fiier de la distan, msurtorile depind de reea, de sistemele de operare de la ambele capete - client i server, de tipul de echipament al plcii de interfa utilizat, de programele care le controleaz i de ali factori. Procednd cu atenie, putem determina n ultim instan timpul de transfer al fiierului pentru configuraia utilizat. Dac scopul l reprezint reglarea acestei configuraii particulare, atunci msurtorile sunt n regul. Cu toate acestea, dac, n scopul alegerii unei interfee de reea pentru a fi cumprat, sunt fcute msurtori similare pe trei sisteme diferite, rezultatele pot fi complet bulversate n cazul n care unul din programele care controleaz echipamentul este de-a dreptul ngrozitor i utilizeaz doar 10% din performanele plcii.

522 Atenie Ia extrapolarea rezultatelor

NIVELUL TRANSPORT

CAP. 6

S presupunem c s-au fcut msurtori ale unei anumite mrimi prin simularea ncrcrii reelei ntre 0 (sistem complet descrcat) i 0.4 (sistem ncrcat n proporie de 40%), conform punctelor de date i liniilor continue dintre ele din Fig. 6-47. Ar putea fi tentant s se extrapoleze liniar, aa cum o sugereaz linia punctat. Cu toate acestea, multe din rezultatele anterioare indic un factor de 1/(1 - p), unde p este ncrcarea, astfel nct valorile adevrate pot arta mai degrab ca linia ntrerupt. 6=6.3 Proiectarea de sistem pentra performane superioare Msurarea i ajustarea pot mbunti considerabil performanele, dar ele nu pot substitui o proiectare bun de la nceput. O reea proiectat superficial poate fi mbuntit tot n aceeai msur. O soluie rnai bun este s se refac totul de la temelie.

5SO

h
(O

-o

Q.1 ncrcare

3.7

0.8

Fig 6-47= Rspunsul, ca o funcie de ncrcare. In aceast seciune, vom prezenta cteva reguli rezultate dintr-o experien acumulat pe un numr mare de reele. Aceste reguli se refer nu doar la proiectarea de reea, ci i Ia proiectarea de sistem, i aceasta pentra c programul i sistemul de operare sunt deseori mai importante dect rutenii i echipamentul de interfa. Cele mai multe din aceste idei constituiau cunotine de baz aie proiectanilor de reele, care erau propagate din generaie n generaie pe cale oral. Ele au fost prima oar enunate explicit de Mogui (1993); expunerea noastr merge n mare parte n paralel cu a sa. O alt sursa relevant este (Metcalfe, 1993).

SEC. 6.6

ELEMENTE DE PERFORMAN

523

Regula # 1 : Viteza procesorului este mai important dect viteza reelei.

O experien ndelungat a artat c n aproape toate reelele, suprancrcarea indus de sistemul de operare i de protocol domin de fapt timpul de transmisie pe cablu. De exemplu, n teorie, timpul minim pentru un RPC pe o reea Ethernet este de 102 josec, corespunznd unei cereri minime (64 octei) urmate de un rspuns minim (64 octei). n realitate, scderea timpului RPC la 1500 usec este o realizare considerabil (Van Renesse . a., 1988). De notat c 1500 usec nseamn de 15 ori mai prost dect modelul teoretic minim. Aproape toat suprancrcarea este datorat programelor. Similar, cea mai mare problem n funcionarea la 1 Gbps const n plasarea biilor din tamponul utilizatorului pe fibr suficient de repede i n recepionarea acestor bii de ctre procesorul receptor la fel de repede cum sosesc. Pe scurt, dac se dubleaz viteza procesorului, de regul se poate ajunge pn aproape de dublarea productivitii. Dublarea capacitii reelei nu are de regul nici un efect, deoarece gtuirea se produce n general la calculatoarele gazd. Regula #2: Reducerea numrului de pachete pentru a reduce suprancrcarea datorat programelor. Prelucrarea unui TPDU adaug o anumit suprancrcare per TPDU (de exemplu prelucrarea antetului) i o anumit cantitate de prelucrare suplimentar per octet (de exemplu calculul sumei de control). Atunci cnd se trimit un milion de octei, suprancrcarea per octet este aceeai, indiferent dac dimensiunea TPDU variaz. Cu toate acestea, utilizarea de TPDU-uri de 128 octei presupune de 32 de ori mai mult suprancrcare per TPDU fa de cazul a 4K octei per TPDU. Aceast suprancrcare crete cu rapiditate. n plus fa de suprancrcarea TPDU-ului, trebuie considerat i suprancrcarea datorat nivelurilor inferioare. Fiecare sosire a unui pachet genereaz o ntrerupere. Pe procesoarele RISC moderne, fiecare ntrerupere fragmenteaz banda de asamblare a procesorului, interfera cu memoria tampon, presupune o schimbare de context n controlul memoriei i impune salvarea unui numr important din registrele procesorului. O divizare prin n a numrului de TPDU-uri trimise reduce n consecin numrul de ntreruperi i suprancrcarea pachetelor cu un factor de n. Aceast observaie justific necesitatea colectrii unei cantiti importante de date naintea transmisiei, n scopul reducerii numrului de ntreruperi la cellalt capt. Algoritmul Nagle i soluia Clark pentru sindromul ferestrei stupide reprezint ncercri precise n acest sens. Regula #3: Minimizarea comutrilor de context Comutrile de context (de exemplu, din mod nucleu n mod utilizator) sunt catastrofale. Ele au aceleai proprieti incomode ca i ntreruperile, cea mai rea fiind o lung serie de eecuri la accesul iniial la memoria tampon. Comutrile de context pot fi reduse dac funcia de bibliotec ce trimite date le stocheaz intern pn la acumularea unei cantiti semnificative. Similar, de partea receptorului, TPDU-urile de dimensiune mic recepionate ar trebui colectate i trimise utilizatorului dintr-un singur foc i nu individual, n scopul minimizrii comutrilor de context. n cel mai bun caz, sosirea unui pachet produce o comutare de context din modul utilizator curent n modul nucleu i apoi o comutare ctre procesul receptor, astfel nct acesta din urm s preia informaia nou sosit. Din nefericire, n multe sisteme de operare se petrec comutri de contexte suplimentare.

524

NIVELUL TRANSPORT

CAP. 6

Proces utilizator n execuie la momentul recepiei \ '

Controlor de reea \

Preoces receptor
A

/ \

f
4

Spaiu utilizator

1(

Spaiu nucleu

Fig. 6-48. Patra comutri de contexte pentru fiecare pachet, cu un controlor de reea n spaiul utilizator. De exemplu, dac procesul controlor de reea ruleaz ca un proces special n spaiul utilizator, sosirea unui pachet provoac, probabil, o comutare de context de la utilizatorul curent ctre nucleu, apoi nc o comutare de la nucleu ctre controlorul de reea, urmat de nc una napoi ctre nucleu i n final din nucleu ctre procesul receptor. Aceast secven este prezentat de Fig. 6-48. Toate aceste comutri de contexte pentru fiecare pachet consum mult din timpul procesorului i au un efect distrugtor asupra performanelor reelei. Regula #4: Minimizarea copierilor. Efectuarea unor copii multiple este i mai rea dect comutrile multiple de contexte. Nu este nimic deosebit n faptul c un pachet proaspt recepionat este copiat de trei sau patru ori nainte ca TPDU-ul coninut n el s fie livrat. Dup ce un pachet este recepionat de ctre echipamentul de reea ntr-un tampon special cablat pe plac, el este copiat de obicei ntr-un tampon al nucleului. De aici el este copiat ntr-un tampon ai nivelului reea, apoi ntr-unui al nivelului transport i n final de ctre procesul aplicaiei receptoare. Un sistem de operare inteligent va copia cte un cuvnt odat, dar nu este deloc neobinuit s fie necesare cinci instruciuni per cuvnt (ncrcare, memorare, incrementarea unui registru index, un test pentru marcajul de sfrit al datelor i un salt condiionat). Pe o main cu 50 MIPS, trei copieri ale fiecrui pachet, cu cinci instruciuni pe fiecare cuvnt de 32 de bii, necesit 75 nsec pentru fiecare octet recepionat. O astfel de main poate deci accepta date la o rat maxim de aproximativ 107 Mbps. innd cont i de prelucrarea antetului, tratarea ntreruperilor i a comutrilor de contexte, se pot atinge 50 Mbps, aceasta fr a pune la socoteal prelucrarea efectiv a datelor. Evident, controlul unei linii de 1 Gbps nici nu intr n discuie. De fapt, chiar i o linie de 50 Mbps este n afara oricrei discuii. n calculul anterior am presupus c o main cu 50 MIPS poate executa oricare 50 milioane de instruciuni pe secund. De fapt, mainile pot opera la aceast vitez doar dac nu execut referiri la memorie. Operaiile cu memoria sunt, de cele mai multe ori, de trei ori mai lente dect instruciunile registru-registru, aa c, de fapt, obinerea unei rate de 16 Mbps dintr-o linie de 1 Gbps poate s fie considerat un rezultat chiar foarte bun. De notat c echipamentul suport nu ajut n acest caz. Problema este c sistemul de operare execut prea multe operaii de copiere.

SEC. 6.6

ELEMENTE DE PERFORMAN

525

Regula #5: Oricnd se poate cumpra mai mult lrgime de band, dar niciodat o ntrziere mai mic.
Urmtoarele trei reguli se ocup de comunicaie mai mult dect de prelucrarea protocolului. Prima regul stabilete c, dac se dorete o lime de band mai mare, este suficient s o cumperi. Dac se pune o a doua fibr alturi de prima, se dubleaz lrgimea de band, dar nu se micoreaz deloc ntrzierile. Micorarea ntrzierilor presupune mbuntirea programului de protocol, a sistemului de operare sau a interfeei cu reeaua. Chiar dac toate acestea sunt ndeplinite, ntrzierea nu se va reduce dac gtuirea const n timpul de transmisie.

Regula #6: Evitarea congestiei este preferabil eliminrii congestiei.


Vechea maxim conform creia o uncie de prevenire este mai bun dect o livr de nsntoire este cu certitudine valabil i n cazul congestiei reelei. Atunci cnd o reea este congestionat, se pierd pachete, lrgimea de band este irosit, apar ntrzieri inutile i multe altele. Recuperarea din congestie ia timp i rbdare. Este de preferat s se procedeze de aa natur, nct congestia s nu apar. Evitarea congestiei este ca i vaccinarea mpotriva tetanusului: doare puin n momentul n care se face vaccinul, dar aceasta mpiedic o durere mult mai mare mai trziu.

Regula # 7 : Evitarea ntrzierilor.


n reele sunt necesare contoare, dar ele ar trebui utilizate cu msur i ntrzierile ar trebui minimizate. Atunci cnd expir un contor, se repet de regul o aciune. Dac este ntr-adevr necesar repetarea aciunii respective, atunci asta este, dar repetarea ei fr rost reprezint o risip. Modalitatea de a evita o munc suplimentar const n nelegerea faptului c aceste contoare se cam situeaz de partea conservatoare a lucrurilor. Un contor cruia i ia mult timp ca s expire adaug o mic ntrziere suplimentar n cazul (nedorit) n care un TPDU se pierde. Un contor care expir atunci cnd nu ar trebui, mnnc n mod nepermis din timpul procesor, irosete din lrgimea de band i adaug o ncrcare suplimentar n zeci de rutere, probabil fr nici un motiv serios.

6.6.4 Prelucrarea rapid a TPDU-urilor


Morala povetii anterioare este aceea c principalul obstacol ctre reelele rapide l constituie programul de protocol. n aceast seciune, vom studia cteva modaliti pentru a crete viteza acestui program. Pentru mai multe informaii, pot fi citite (Clark i alii 1989; Edwards i Muir, 1995; i Chandranmenon i Varghese, 1995). Suprancrcarea indus de prelucrarea TPDU-urilor are dou componente: suprancrcare per TPDU i suprancrcare per octet. Ambele pot fi atacate. Cheia accelerrii prelucrrii TPDU-urilor const n separarea cazului normal (transferul datelor ntr-un singur sens) i tratarea sa special. Cu toate c este necesar o secven de TPDU-uri speciale pentru a se intra ntr-o stare STABILIT, odat intrat n starea respectiv, prelucrarea TPDU-urilor decurge lin, pn n clipa n care una din pri iniiaz nchiderea conexiunii. S ncepem examinarea prii emitoare din starea STABILIT, atunci cnd exist date de transmis. Pentru claritate, presupunem c entitatea transport este n nucleu, aceleai idei aplicndu-se i n cazul n care este vorba de un proces n spaiul utilizator sau o bibliotec n

526

NIVELUL TRANSPORT

CAP. 6

interiorul procesului emitor. n Fig. 6-49, pentru a executa SEND-ul, procesul emitor intr n mod nucleu prin acionarea unei capcane. Primul lucru pe care l face entitatea transport este de a testa dac nu cumva este vorba de cazul normal: starea este STABILIT, nici o parte nu ncearc s nchid conexiunea, un TPDU ntreg este n curs de a fi transmis (de exemplu, nu este n afara limitelor) i este disponibil un spaiu fereastr suficient la receptor. Dac toate condiiile sunt ndeplinite, nici un test suplimentar nu mai este necesar i poate fi acaparat calea rapid prin entitatea de transport emitoare.

Proces emitor Salt n nucleu pentru transmisia TPDU


r i !_J l .| [.

Proces receptor TPDU transmis procesului receptor

(S

Reea

Fig. 6-49. Calea rapid de la emitor la receptor este indicat printr-o linie groas. Paii de prelucrare ai acestei ci sunt reprezentai prin dreptunghiuri umbrite. In cazul normal, antetele mai multor date TPDU consecutive sunt n mare parte identice. Pentru a profita de acest lucru, n interiorul entitii transport se memoreaz un antet prototip. La nceputul cii rapide, el este copiat ct de repede posibil ntr-un tampon special, cuvnt cu cuvnt. Acele cmpuri care ulterior se modific de la un TPDU la altul sunt suprascrise n tampon. In mod frecvent, aceste cmpuri sunt uor de derivat din variabilele de stare, de exemplu urmtorul numr de secven. Apoi este pasat nivelului reea un indicator spre ntregul antet TPDU, mpreun cu un indicator spre informaia utilizator. i aici se poate urma aceeai strategie (caz neacoperit de Fig. 6-49). In final, nivelul reea furnizeaz pachetul rezultat nivelului legtur de date, n vederea transmisiei. Pentru a exemplifica modul n care opereaz acest principiu n practic, s considerm cazul TCP/IP-ului. Fig. 6-50(a) arat antetul TCP. Cmpurile umbrite sunt identice ntre dou TPDU-uri consecutive, pe un flux ntr-un singur sens. Tot ce are de fcut entitatea transport este s copieze cele cinci cuvinte dintr-un antet prototip n tamponul care urmeaz s fie transmis, s completeze urmtorul numr de secven (prin copierea lui dintr-un cuvnt din memorie), s calculeze suma de control i s incrementeze numrul de secven din memorie. Entitatea poate nmna apoi antetul, mpreun cu datele aferente, unei proceduri IP speciale, n vederea transmisiei obinuite a unui TPDU de dimensiune maxim. n continuare IP copiaz cele cinci cuvinte ale antetului su prototip

SEC. 6.6

ELEMENTE DE PERFORMANTA

527

[vezi Fig. 6-50(b)] n tampon, completeaz cmpul Identificare i calculeaz suma sa de control. Pachetul este acum gata pentru transmisie.
i

Port surs

Port destinaie

VER. IHL

TOS

Lungime total Depl. fragment Sum de control a antetului

Numr de secven Numr de confirmare Lg. Neutil.

Identificare

TTL

Protocol

Dim. fereastr Indicator urgent

Adres surs Adres destinaie

Sum de control

(a)

(b)

Fig. 6-50. (a) Antetul TCP. (b) Antetul IP. n ambele cazuri, cmpurile umbrite se obin din prototip, fr nici o modificare. S aruncm o privire asupra prelucrrii pe calea rapid n cazul receptorului din Fig. 6-49. Pasul 1 const n localizarea nregistrrii de conexiune din TPDU-ul recepionat. n cazul ATM, determinarea nregistrrii de conexiune este uoar: cmpul VPI poate fi utilizat ca index n tabela cilor pentru a obine tabela circuitului virtual pentru acea cale, iar VCI poate fi utilizat ca index al nregistrrii de conexiune. n cazul TCP, nregistrarea de conexiune poate fi memorat ntr-o tabel de dispersie pentru care cheia poate fi o funcie simpl aplicat celor dou adrese IP i celor dou porturi. Odat ce nregistrarea de conexiune a fost localizat, corectitudinea sa trebuie verificat prin compararea ambelor adrese i ambelor porturi. O optimizare care accelereaz i mai mult determinarea nregistrrii de conexiune const n meninerea unui indicator ctre ultima nregistrare utilizat, urmnd ca aceasta s fie prima nregistrare testat. Clark .a. (1989) au aplicat aceast idee i au observat o rat de succes care depete 90%. Alte euristici de cutare sunt descrise n (McKenney i Dove, 1992). n continuare, TPDU-ul este verificat pentru a determina dac este vorba de cazul normal: starea este STABILIT, niciuna din pri nu ncearc nchiderea conexiunii, este un TPDU complet, nici un indicator special nu este poziionat i numrul de secven este cel ateptat. Aceste teste nseamn doar cteva instruciuni. Dac toate condiiile sunt ndeplinite, este invocat o procedur TCP pentru cale rapid. Calea rapid actualizeaz nregistrarea de conexiune i copiaz informaia ctre utilizator. Totodat, suma de control este calculat chiar pe parcursul copierii, eliminnd astfel trecerile suplimentare pe secvena de date. Dac suma de control este corect, nregistrarea de conexiune este actualizat i se trimite o confirmare. Schema general care const ntr-un control rapid la nceput, pentru a vedea dac antetul este cel ateptat, precum i n existena unei proceduri speciale care trateaz cazul respectiv, se numete predicia antetului. Schema este utilizat n multe din implementrile TCP. Atunci cnd aceast optimizare este utilizat mpreun cu celelalte optimizri discutate n acest capitol, este posibil ca TCP-ul s ating la execuie 90% din viteza de copiere local memorie - memorie, presupunnd c mediul de comunicaie este suficient de rapid. Alte dou domenii unde se pot obine ctiguri importante n performane sunt controlul tampoanelor i al contoarelor de timp. n controlul tampoanelor, ideea const n evitarea copierilor

528

NIVELUL TRANSPORT

CAP.6

inutile, aa cum s-a menionat anterior. Controlul contoarelor de timp este important, deoarece aproape nici un contor nu expir de fapt. Acestea sunt poziionate astfel, nct s ne pzeasc mpotriva pierderii de TPDU-uri, dar majoritatea TPDU-urilor, ca i confirmrile lor, de altfel, ajung corect la destinaie. Este deci important s se optimizeze controlul contoarelor de timp pentru cazul n care acestea expir rar.
Poziie 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 ^ indicator spre lista contoarelor pentru T + 10 * indicator spre nsia contoarelor pentru T + 3 -* Timpul curent, T * indicator spre lista contoarelor pentru T + 12

2
3 4 5 6 7 8 9 10

11
12 13 14 15

Fig. 6-51. O roat a timpului. O schem uzual const n utilizarea unei liste mbuntite a evenimentelor generate de contoare, sortate n funcie de momentul expirrii acestora. Intrarea din captul acestei liste conine un contor care indic deprtarea n impulsuri de ceas fa de momentul expirrii. Fiecare din intrrile care urmeaz indic printr-un contor deprtarea n impulsuri de ceas fa de intrarea precedent. Astfel, pentru evenimente care expir n 3, 10 i respectiv 12 impulsuri, cele trei contoare sunt 3,7 i, respectiv, 2. La fiecare impuls de ceas, contorul din captul listei este decrementat. Atunci cnd contorul atinge valoarea 0, se prelucreaz evenimentul asociat lui i urmtorul element din list devine captul listei. Contorul acestuia nu trebuie s fie modificat. Prin aceast schem, inserarea i tergerea evenimentelor sunt operaii costisitoare, cu un timp de execuie proporional cu lungimea listei. Dac intervalul maxim de expirare al contorului este limitat i cunoscut n avans, poate fi utilizat o abordare mai eficient. n acest caz, poate fi utilizat un vector numit roata timpului, ca n Fig. 6-51. Fiecare poziie corespunde unui impuls de ceas. Ceasul curent reprezentat este T = 4. Contoarele sunt planificate s expire la 3, 10 i 12 impulsuri fa de acest moment. Dac un contor nou este brusc poziionat s expire peste 7 impulsuri, se creeaz pur i simplu o intrare n poziia 11. Similar, n cazul n care contorul planificat s expire la T + 10 trebuie s fie anulat, trebuie parcurs lista care ncepe pe poziia 14 i intrarea cerut trebuie tears. S observm c vectorul din Fig. 6-51 nu poate suporta contoare care expir dup T + 15.

SEC. 6.6

ELEMEN1E DE PERFORMAN

Cu fiecare impuls de ceas indicatorul de timp curent este avansat cu o poziie (circular). Dac intrarea indicat este neniil, sunt prelucrate toate contoarele asociate ei. Mai multe variatiuni pe aceast tem sunt discutate n (Varghese i Lauck, 1987).

La nceputul anilor '90 au nceput s apar reele gigabit. Prima reacia a oamenilor a fost s utilizeze pentru ele vechile protocoale, lucru care a pus n scurt timp diferite probleme. Vom discuta n aceast seciune cteva din aceste probleme, precum i direciile urmate de noile protocoale pentru a le soluiona. Alte informaii pot fi gsite n (Baransei . a., 1995; i Partridge, 1994). Prima problem este c multe protocoale utilizeaz secvene de numere de 16 sau 32 de bii. Mai 32 demult, 2 reprezenta o aproximare bun a infinitului. Acest lucru s-a schimbat. La o rat de 1 Gbps sunt necesare aproximativ 32 de secunde pentru transmisia a 232 octei. Dac numerele de secven se refer la octei, aa cum se ntmpl n TCP, atunci un emitor poate ncepe transmisia octetului 0, apoi s transmit ca vntul, i 32 de secunde mai trziu s se ntoarc la octetul 0. Chiar presupunnd c toi octeii au fost confimiai, emitorul nu poate s transmit n siguran noua informaie etichetat de ia 0, deoarece se pot afla n suspensie pe undeva pachete vechi. n Internet, de exemplu, pachetele pot avea o via de 120 sec. Dac numerele se refer la pachete n loc de octei, problema este mai puin serioas, excepie fcnd numerele de secven reprezentate pe 16 bii, caz n care problema este chiar mai grav. Problema este c muli proiectani de protocoale au plecat de ia presupunerea c timpul necesar consumrii spaiului numerelor de secven depete cu mult timpul maxim de via ai unui pachet. n consecin, nu era nici mcar nevoie s i fac griji c duplicate vechi pot s existe nc undeva atunci cnd numerele de secven au revenit la vechile valori. La viteze gigabit aceast presupunere cade. O a doua problem este aceea c viteza de comunicaie a crescut mult mai repede dect viteza de prelucrare. (Not pentru inginerii de calculatoare: Ieii n strad i batei-i pe inginerii de comunicaii! Ne bazm pe voi.) n anii 70, ARPANET-ui opera ia 56 Kbps i avea calculatoare care funcionau la aproape 1 MIPS. Pachetele erau de 1008 bii i astfel ARPANET-ui putea livra aproximativ 56 pachete/sec. Avnd disponibile 18 msec pentru fiecare pachet, o main gazd putea s-i permit s iroseasc 18000 instruciuni pentru prelucrarea unui pachet. Desigur, dac ar fi fcut astfel, ar fi asfixiat complet procesorul, dar putea renuna la doar 9000 instruciuni per pachet i tot iar mai fi rmas jumtate din puterea procesorului pentru celelalte prelucrri. S comparm aceste numere cu calculatoarele moderne de 100 MIPS care interschimb pachete de 4K octei pe o linie gigabit. Pachetele pot curge cu o vitez de peste 30000 pe secund, astfel nct, dac vrem s rezervm jumtate din puterea procesorului pentru aplicaii, prelucrarea unui pachet trebuie s se ncheie n 15 fisec. In 15 jisec, un calculator de 100 MIPS poate executa doar 1500 instruciuni, doar 1/6 din ceea ce i putea permite un calculator gazd ARPANET. Mai mult dect att, instruciunile RISC moderne fac mai puine lucruri per instruciune dect o fceau vechile instruciuni CISC, deci problema este chiar mai grav dect pare. n concluzie: exist mult mai puin timp pentru prelucrarea efectuat de protocol dect exista altdat, deci protocoalele trebuie s devin mai simple. O a treia problem este aceea c protocolul cu reluare n are performane slabe pe linii cu un produs lrgime de band-ntrziere de valoare mare. S considerm de exemplu o linie de 4000 km

530

NIVELUL TRANSPORT

CAP. 6

opernd la 1 Gbps. Timpul de transmisie dus-ntors este de 40 msec, timp n care un emitor poate transmite 5 megaoctei. Dac se detecteaz o eroare, atunci vor fi necesare 40 msec nainte ca emitorul s fie avertizat de acest lucru. Dac este utilizat algoritmul cu reluare n, emitorul nu va avea de retransmis doar pachetul eronat, ci i toi cei 5 megaoctei care i-au succedat. n mod clar, are loc o risip de resurse.
1000 sec jjj '100 sec 10 sec

1 sec % c +3100 msec


05 T3

10 msec 1 msec

J_
10
J

10*

10*

10 10' 10 Rata datelor (bps)

10"

1010

10n

10

12

Fig. 6-52. Timpul necesar transferului i confirmrii unui fiier de un megabit pe o linie de 4000 km. O a patra problem este aceea c liniile gigabit sunt fundamental diferite de liniile megabit, cele de lungime mare fiind limitate n ntrziere mai degrab dect n lrgimea de band. n Fig. 6-52 artm timpul necesar transferului unui fiier de un megabit la 4000 km distan pentru diferite viteze de transfer. La o vitez de pn la 1 Mbps, timpul de transmisie este dominat de viteza la care pot fi transferai biii. La 1 Gbps, ntrzierea de 40 msec a circuitului dus-ntors domin acea milisecund necesar pentru a pune bitul pe fir. Creteri suplimentare ale lrgimii de band aproape c rmn fr efect. Figura 6-52 are implicaii nedorite pentru protocoalele de reea. Se spune c protocoalele pascu-pas (stop-and-wait), precum RPC, au o limit superioar inerent de performan. Aceast limit este dictat de viteza luminii. Orict de mare ar fi progresul tehnologic n optic, nu se poate obine nici o mbuntire (dei noi legi ale fizicii ar fi folositoare). O a cincea problem care merit menionat nu este o problem de protocol sau o problem tehnologic, ci un rezultat al noilor aplicaii. Enunat doar, ea spune c pentru multe aplicaii gigabit, precum multimedia, varianta sosirii pachetelor n timp este la fel de important ca nsi media ntrzierilor. De cele mai multe ori este de preferat o vitez de livrare redus, dar uniform uneia rapide, dar mpiedicate. S revenim acum de la identificarea problemelor la modalitile lor de rezolvare. Vom face, pentru nceput, cteva remarci generale, apoi vom analiza mecanismele de protocol, aspectul pachetelor i programele de protocol.

SEC. 6.6

ELEMENTE DE PERFORMAN

531

Principiul de baz pe care toi proiectanii de reele gigabit ar trebui s-1 nvee pe de rost este: Proiectai astfel, nct s optimizai viteza, nu limea de band. Protocoalele vechi au fost de regul proiectate pentru a minimiza numrul de bii de pe fir, prin utilizarea frecvent a cmpurilor de dimensiuni mici i prin mpachetarea lor n octei i cuvinte. n zilele noastre, exist suficient de mult lime de band. Problema o reprezint prelucrrile efectuate de protocoale, deci acestea trebuie reduse la minim. O modalitate tentant pentru accelerarea lucrurilor este de a construi intefee rapide cu reeaua sub form de echipamente fizice. Dificultatea acestei strategii const n aceea c, n lipsa unui protocol extrem de simplu, un nou echipament nseamn conectarea unei noi plci, cu un al doilea procesor i cu propriul program. Pentru a evita ca un co-procesor de reea s aib un pre comparabil cu al procesorului principal, el este de regul o component mai lent. Consecina acestei soluii este c mult timp, procesorul principal (rapid) este inactiv, ateptnd ca al doilea procesor (cel lent) s fac toat munca critic. Este o naivitate s crezi c procesorul principal ar avea altceva de fcut n acest timp. Mai mult dect att, atunci cnd comunic dou procesoare independente, pot aprea curse critice, fiind deci necesare protocoale complexe, pentru sincronizarea lor corect. n general, cea mai bun abordare este de a concepe protocoalele ct mai simplu i de a lsa procesorul principal s fac toat treaba. S studiem acum noiunea de reacie n protocoalele de mare vitez. Datorit buclei de ntrziere (relativ) lung, reacia ar trebui evitat: receptorului i ia prea mult timp pentru a anuna emitorul. Un exemplu de reacie este controlul vitezei de transfer prin utilizarea unui protocol cu fereastr glisant. Pentru a evita ntrzierile (ndelungate) inerente atunci cnd receptorul trimite emitorului actualizrile de fereastr, cel mai bine este s se utilizeze o rat de transfer dictat de protocol. ntr-un astfel de protocol, emitorul poate trimite tot ceea ce dorete el s trimit, cu condiia s nu o fac mai repede dect s-a convenit iniial cu receptorul. Un al doilea exemplu de reacie este algoritmul startului lent al lui Jacobson. Acest algoritm face interogri multiple pentru a determina ct de mult poate suporta reeaua. n reelele de mare vitez utilizarea a jumtate de duzin de interogri scurte pentru testarea rspunsul reelei conduce la irosirea unei pri imense din limea de band. O schem mai eficient este ca emitorul, receptorul i reeaua s rezerve resursele necesare n momentul stabilirii conexiunii. Rezervarea n avans a resurselor are de asemenea avantajul diminurii fluctuaiilor. Pe scurt, migrarea spre viteze mari mpinge inexorabil proiectarea spre operaii orientate pe conexiuni sau spre ceva foarte apropiat de acestea. n reelele gigabit, o importan deosebit trebuie acordat aspectului pachetelor. Antetul ar trebui s conin ct mai puine cmpuri cu putin pentru a reduce timpul de prelucrare, iar aceste cmpuri ar trebui s fie suficient de mari pentru a-i face munca i pentru a fi aliniate la cuvnt, fiind astfel mai uor de prelucrat. n acest context, suficient de mari" nseamn eliminarea problemelor precum revenirea numerelor de secven la valori vechi ct timp exist nc pachete vechi, incapacitatea receptorilor de a oferi suficient spaiu de fereastr datorit unei dimensiuni prea mici a cmpului fereastr .a.m.d. Antetul i informaia ar trebui s fie prevzute cu sume de control separate, din dou motive. n primul rnd, pentru a face posibil calcularea sumei de control a antetului, dar nu i a datelor. n al doilea rnd, pentru a determina corectitudinea antetului naintea nceperii copierii datelor n spaiul

532

NIVELUL TRANSPORT

CAP. 6

utilizator. Este de dorit s se calculeze suma de control a datelor la momentul copierii lor n spaiul utilizator, dar dac antetul este incorect, copierea poate s se fac n spaiul unui alt proces. Pentru a evita o copiere incorect, dar pentru a permite i calculul sumei de control a datelor n timpul copierii, este esenial ca cele dou sume de control s fie separate. Dimensiunea maxim a datelor ar trebui s fie mare pentru a permite operaii eficiente chiar i n situaia transferului la distane mari. De asemenea, cu ct este mai mare blocul de informaie, cu att este mai mic fraciunea din totalitatea limii de band alocat antetului. O alt caracteristic important este posibilitatea de a trimite o cantitate rezonabil de informaie odat cu cererea de conexiune. In acest fel se poate salva un timp de comunicaie dus-ntors. In sfrit, sunt utile cteva cuvinte despre programul de protocol. Cea mai mare atenie trebuie acordat cazului de succes. Multe din protocoalele vechi aveau tendina de a evidenia ce este de fcut atunci cnd ceva nu mergea cum trebuie (de exemplu pierderea unui pachet). Pentru a face protocoalele s mearg mai repede, proiectanii ar trebui s aib ca scop minimizarea timpului de prelucrare atunci cnd totul funcioneaz corect. Minimizarea timpului de prelucrare n caz de eroare trebuie s treac pe planul doi. O a doua noiune legat de programe este minimizarea timpului de copiere. Aa cum am vzut mai devreme, copierea datelor este n general o surs de suprancrcare. Ideal ar fi ca echipamentul fizic s depoziteze n memorie fiecare pachet recepionat ca un bloc contiguu de date. Programul ar trebui apoi s copieze acest pachet n tamponul utilizator printr-o singur copiere de bloc. n funcie de modul de lucru al memoriei tampon, ar fi de dorit chiar s se evite copierea n bucl. Cu alte cuvinte, cel mai rapid mod de a cooia 1024 de cuvinte este de a avea 1024 de instruciuni MOVE una dup cealalt (sau 1024 de perechi mcrcare-memorare). Rutina de copiere este critic ntr-o asemenea msur, nct, dac nu exist alt modalitate de a pcli compilatorul ca s produc cu precizie codul optimal, ea ar trebui scris cu mna, cu mult atenie, direct n cod de asamblare. Spre sfritul anilor '80, a existat o scurt adiere de interes n ceea ce privete protocoalele speciale rapide precum NETBLT (Clark . a., 1987), VTMP (Cheriton i Wiiliamson 1989) i XTP (Chesson, 1989). O trecere n revist se poate gsi n (Doeringer i alii, 1990). Cu toate astea, tendina actual este de a simplifica protocoalele complexe pentru a le face i pe acestea mai rapide. ATM prezint multe din caracteristicile discutate rnai sus, la fel ca i IPv6.

Nivelul transport reprezint cheia pentru nelegerea protocoalelor stratificate diferit. EI furnizeaz diferite servicii, cel mai important dintre acestea fiind fluxul de octei de la emitor la receptor capt-la-capt, fiabil i orientat pe conexiuni. Ei este adresat prin primitive de serviciu care permit stabilirea, utilizarea i eliberarea conexiunilor. Protocoalele de transport trebuie s fie capabile s controleze conexiunea n reele nefiabile. Stabilirea conexiunii este complicat de existena pachetelor duplicate ntrziate, care pot aprea la momente inoportune. Pentru a le face fa, stabilirea conexiunii trebuie fcut prin intermediul protocoalelor cu nelegere n trei pai. Eliberarea unei conexiuni este mai simpl dect stabilirea sa, dar este nc departe de a fi banal datorit problemei celor dou armate.

SEC. 6.8

PROBLEME

533

Chiar i n cazul unui nivel reea complet fiabil, nivelul transport are suficient de mult de lucru, aa cum am vzut n exemplul nostru. El trebuie s controleze toate primitivele de serviciu, toate conexiunile i contoarele de timp i trebuie s aloce i s utilizeze credite. Principalul protocol de transport n Internet este TCP. El utilizeaz un antet de 20 de octei pentru toate segmentele. Segmentele pot fi fragmentate de mter n interiorul Internet-ului, deci calculatoarele gazd trebuie s fie pregtite s le reasambleze. S-a depus un mare efort pentru optimizarea performanelor TCP-ului, utiliznd algoritmii Nage, Clark, Jacobson, Karn i alii. ATM are patru protocoale la nivelul AAL. Toate acestea fragmenteaz mesajele n celule, la surs i reasambleaz celulele n mesaje la destinaie. Subnivelele CS i SAR adaug propriile antete i ncheieri n diferite moduri, lsnd o informaie util per celul ntre 44 i 48 octei. Performanele reelei sunt dominate n mod tipic de protocol i de tratarea suprancrcrii TPDU-urilor, situaie care se nrutete la viteze mari. Protocoalele ar trebui proiectate astfel, nct s minimizeze numrul de TPDU-uri, copierile lor repetate i comutrile de context. Pentru reelele gigabit sunt de dorit protocoale simple, care se bazeaz mai curnd pe viteza fluxului de control dect pe creditul fluxului de control.

6.8
1.

PROBLEME
n exemplele noastre de primitive de transport din Fig. 6-3, LISTEN este un apel blocant. Este acest lucru strict necesar? Dac nu, explicai cum ar putea fi utilizat o primitiv neblocant. Ce avantaje ar avea aceasta pentru schema descris n text? n modelul pe care se bazeaz Fig. 6-5 se presupune c pachetele pot fi pierdute de ctre nivelul reea i trebuie deci s fie confirmate individual. S presupunem c nivelul reea este 100% fiabil i nu pierde pachete niciodat. Ce modificri sunt necesare (dac sunt necesare) n Fig. 6-5? Imaginai o problem generalizat a celor n armate, n care acordul dintre oricare dou armate este suficient pentru victorie. Exist un protocol care i permite albastrului s ctige? S presupunem c pentru generarea numerelor de secven iniiale se utilizeaz o schem dirijat de ceas cu un contor de timp de 15 bii. Ceasul genereaz un impuls la fiecare 100 msec i durata de via maxim a unui pachet este de 60 sec. Ct de des este necesar s aib loc o resincronizare. a) n cel mai ru caz? b) atunci cnd se consum 240 de numere de secven pe secund? De ce este necesar ca timpul maxim de via al unui pachet, T, s fie suficient de mare pentru a acoperi nu numai dispariia pachetului, dar i a confirmrii? S ne imaginm c pentru stabilirea unei conexiuni se utilizeaz un protocol cu nelegere n doi pai i nu unul cu nelegere n trei pai. Cu alte cuvinte, al treilea mesaj nu mai este necesar. Sunt posibile interblocri n aceast situaie? Dai un exemplu sau artai c nu exist nici o interblocare.

2.

3. 4.

5. 6.

534

NIVELUL TRANSPORT

CAP. 6

7.

S considerm problema recuperrii dup defectarea unei maini gazd (de exemplu Fig. 6-18). Dac intervalul dintre scrierea i trimiterea unei confirmri, sau vice-versa, poate fi fcut relativ scurt, care sunt cele mai bune strategii emitor-receptor pentru minimizarea ansei de defectare a protocolului? Sunt posibile interbiocrile pentru entitile transport descrise n text? Din pur curiozitate, programatorul entitii transport din Fig. 6-20 a decis s pun contoarele n interiorul procedurii skep, pentru a colecta astfel statistici despre vectorul conn. ntre acestea se afl i numerele de conexiuni din fiecare dintre cele apte stri posibile Z/,- (Z=1,. .., 7). Dup scrierea unui program FORTRAN serios pentru a analiza datele, programatorul nostru a descoperit c relaia Int = MAX_C0NN pare s fie totdeauna adevrat. Exist i ali invariani care s implice doar aceste apte variabile? Ce se ntmpl dac utilizatorul entitii transport din Fig. 6-20 trimite un mesaj de iungime 0? Discutai semnificaia rspunsului. Pentru fiecare eveniment care poate aprea n entitatea transport din Fig. 6-20. spunei dac este sau nu permis atunci cnd utilizatorul ateapt n starea transmisie. .Discutai avantajele i dezavantajele creditelor fa de protocoalele cu fereastr glisant. Fragmentarea i reasamblarea datagramelor sunt controlate de I? i sunt invizibile TCP-uIui. nseamn acest lucru c TCP-ul nu trebuie s-i fac griji pentru datele care sosesc n ordine eronata/

8. 9.

10.

11.

12. 13.

14

Un proces de pe maina 1 a fost asociat portului p i un proces de pe maina 2 a fost asociat portului q. Este posibil ca ntre cele dou porturi s fie deschise mai multe conexiuni TCP n acelai timp? Informaia util maxim dintr-un segment TCP este de 65515 octei. De ce a fost ales un numr att de straniu? Descriei dou moduri de a ajunge n starea SYNRCVD din Fig. 6-28. Prezentai un dezavantaj potenial al algoritmului Nagle atunci cnd este utilizat ntr-o reea puternic congestionat. S considerm efectul utilizrii startului lent pe o linie cu timpul circuitului dus-ntors de 10 rnsec i fr congestie. Fereastra receptorului este de 24 Koctei i dimensiunea maxim a segmentului este de 2 Koctei. Ct timp trebuie s treac nainte ca prima fereastr complet s poat fi trimis? S presupunem c fereastra de congestie TCP este de 18 Koctei i apare o depire de timp. Ct de mare va fi fereastra dac urmtoarele patru rafale de transmisie reuesc? Se presupune c dimensiunea maxim a segmentului este de 1K.

15.

16. 17.

18.

19.

SEC. 6.8

PROBLEME

535

20. Dac timpul circuitului TCP dus-ntors, RTT, este la un moment dat 30 msec i urmtoarele confirmri sosesc dup 26, 32 i, respectiv, 24 msec, care este noul RTT estimat? Utilizai <x=0.9. 21. O main TCP trimite cadre de 65535 octei pe un canal de 1 Gbps pentru care ntrzierea pe un singur sens este de 10 msec. Care este productivitatea maxim care poate fi atins? Care este eficiena liniei? 22. ntr-o reea care are dimensiunea maxim a TPDU-urilor de 128 octei, timpul maxim de via al unui TPDU de 30 sec i numrul de secven de 8 bii, care este rata maxim de date per conexiune? 23. De ce exist UDP? Nu ar fi fost suficient ca procesul utilizator s fie lsat s trimit pachete blocIP? 24. Un grup de N utilizatori localizai n aceeai cldire utilizeaz acelai calculator aflat la distan printr-o reea ATM. Utilizatorul mediu genereaz n medie L linii de trafic (intrare + ieire) pe or, lungimea medie a liniei fiind de P octei, exclusiv antetee ATM. Compania care asigur transmisia pachetelor factureaz C ceni pentru fiecare octet transmis, plus X ceni pe or pentru fiecare circuit virtual ATM deschis. n ce condiii este avantajos din punctul de vedere al costului s se multiplexeze toate cele N conexiuni de transport pe acelai circuit virtual ATM, dac o astfel de multiplexare adaug 2 octei la fiecare pachet de date? Se presupune c un singur circuit virtual ATM are suficient lime de band pentru toi utilizatorii. 25. Poate AAL 1 s controleze mesaje mai scurte de 40 de octei utiliznd schema cu cmp Indicatori Explicai rspunsul. 26. Ghicii dimensiunile cmpurilor din AAL 2 nainte ca ele s fie extrase din standard. 27. AAL 3/4 permite ca sesiuni multiple s fie multiplexate pe un singur circuit virtual. Dai un exemplu de situaie n care acest lucru nu are nici o valoare. Presupunei c un singur circuit virtual are suficient lime de band pentru a transporta tot traficul. Indicaie: Gndii-v la cile virtuale. 28. Care este dimensiunea informaiei utile pentru mesajele care intr ntr-o singur celul AAL 3/4? 29. Care este eficiena transmisiei unui mesaj de 1024 octei prin intermediul lui AAL 3/4? Cu alte cuvinte, ce fraciune din biii transmii sunt bii utili de date? Aceeai problem i pentru AAL 5. 30. Un dispozitiv ATM transmite mesaje de o singur celul la 600 Mbps. O celul dintr-o sut este complet eronat din cauza zgomotului aleatoriu. Cte erori nedetectate pe sptmn pot fi ateptate cu o sum de control AAL 5 de 32 bii? 31. Un client trimite cereri de 128 de octei ctre un server localizat la 100 km deprtare, printr-un cablu optic de 1 gigabit. Care este eficiena liniei n timpul apelului de procedur la distan?

536

NIVELUL TRANSPORT

CAP. 6

32. S considerm din nou situaia din problema precedent. Calculai timpul minim posibil de rspuns att pentru linia de 1 Gbps anterioar ct i pentru o linie de 1 Mbps. Ce concluzie putei trage? 33. S presupunem c msurai timpul necesar recepionrii unui TPDU. Atunci cnd apare o ntrerupere, se citete timpul sistem n milisecunde. Cnd TPDU-ul este complet prelucrat, se citete din nou timpul sistem. S-au nregistrat 0 msec de 270000 de ori i 1 de 730000 de ori. Care este timpul de recepie al unui TPDU? 34. Un procesor execut instruciuni la o vitez de 100 MIPS. Informaia poate fi copiat cte 64 de bii odat, fiecare copiere a unui cuvnt costnd ase instruciuni. Dac un pachet recepionat trebuie s fie copiat de dou ori, poate fi controlat de ctre sistem o linie de 1 Gbps? Pentru a simplifica, presupunem c toate instruciunile, inclusiv acelea de citire/scriere din memorie, ruleaz la viteza maxim de 100 MIPS. 35. Pentru a evita problema revenirii numerelor de secven la valori iniiale n timp ce exist nc pachete vechi, s-ar putea utiliza numere de secven pe 64 de bii. Cu toate acestea, teoretic, un cablu optic poate opera la 75 Tbps. Care este durata maxim de via pe care trebuie s o aib un pachet pentru ca viitoarele reele de 75 Tbps s nu se loveasc de aceeai problem a revenirii numerelor de secven chiar i n cazul reprezentrii lor pe 64 bii? Presupunei, ca i TCP-ul,, c fiecare octet are propriul su numr de secven. 36. In text am calculat c o linie gigabit livreaz unei maini gazd 30000 de pachete pe secund, permindu-i doar 1500 de instruciuni pentru a prelucra un pachet i lsnd doar jumtate din capacitatea procesorului pentru aplicaii. Acest calcul presupune pachete de 4 K. Refacei Iul pentru pachetele ARPANET de dimensiune de 128 octei. 37. Pentru o reea care opereaz la 1 Gbps pe o distan de 4000 km, factorul limitator nu este dat de lrgimea de band, ci de ntrziere. Considerm un MAN cu sursa i destinaia situate n medie la 20 km una de cealalt. La ce vitez de date ntrzierea circuitului dus-ntors datorat vitezei luminii egaleaz ntrzierea de transmisie pentru un pachet de 1 Kocte? 38. Modificai programul din Fig. 6-20 pentru a asigura revenirea din erori. Adugai un nou tip de pachet, reset, care poate ajunge doar dup ce conexiunea a fost deschis de ambele pri i n-a fost nchis de niciuna. Acest eveniment, care are loc simultan la ambele capete ale conexiunii, indic faptul c orice pachet care era n tranzit a fost sau distrus, sau livrat, n orice caz el nemaiafindu-se n subreea. 39. Scriei un program care simuleaz controlul tampoanelor ntr-o entitate transport, utiliznd un flux de control cu fereastr glisant i nu un control al fluxului cu credite, ca n Fig. 6-20. Lsai procesele de pe nivelul superior s deschid conexiuni, s trimit date i s nchid .conexiuni n mod aleatoriu. Pentru a pstra programul ct mai simplu, facei ca toat informaia s cltoreasc doar de la maina A la maina B i deloc n sens invers. Experimentai cu diferite strategii de alocare a tampoanelor la nivelul mainii B, ca, de exemplu, tampoane dedicate unei anume conexiuni fa de tampoane preluate dintr-un depozit comun i msurai productivitatea total atins n ambele cazuri.

NIVELUL APLICAIE
Dup ce am terminat toate preliminariile putem aborda nivelul aplicaie unde pot fi gsite toate aplicaiile interesante. Nivelurile de sub nivelul aplicaie servesc la asigurarea unui transport sigur, dar nu ndeplinesc nici o funcie concret pentru utilizatori. n acest capitol vom studia cteva aplicaii reale. Totui, chiar i la nivelul aplicaie, apare necesitatea unor protocoale suport care s permit funcionarea aplicaiilor reale. nainte de a ncepe studiul aplicaiilor, vom aborda trei dintre acestea. Primul subiect l reprezint securitatea, care nu este un singur protocol, ci un mare numr de concepte i protocoale ce pot fi folosite pentru asigurarea securitii acolo unde este necesar. Al doilea este DNS, care se ocup de conveniile de nume n Internet. Al treilea protocol suport este cel destinat administrrii reelei. Dup aceea vom examina patru aplicaii reale: pota electronic, USENET (reeaua de tiri), World Wide Web (lumea ca o pnz de pianjen) i, n final, multimedia.

7.1

SECURITATEA REELEI

n primele decenii ale existenei lor, reelele de calculatoare au fost folosite de cercettorii din universiti pentru trimiterea potei electronice i de ctre funcionarii corporaiilor pentru a partaja imprimantele. n aceste condiii, problema securitii nu atrgea de loc atenia. Dar acum, cnd milioane de ceteni obinuii folosesc reelele pentru operaiuni bancare, cumprturi i plata taxelor, securitatea reelei apare la orizont ca o mare problem potenial. n urmtoarele seciuni, vom studia securitatea reelei din mai multe unghiuri, evideniind numeroase pericole i discutnd muli algoritmi destinai a face reelele mai sigure.

537

NIVELUL APLICAIE

CAP. 7

Securitatea este un subiect vast i acoper o multitudine de imperfeciuni. n forma sa cea mai simpl, ea asigur c persoane curioase nu pot citi sau, i mai ru, modifica mesajele destinate altor destinatari. Se ocup de cei care ncearc s apeleze servicii la distan pe care nu sunt autorizai s le foloseasc. De asemenea, securitatea implic verificarea dac un mesaj, ce pretinde c vine de la IRS i spune: Pltete pn vineri", provine ntr-adevr de la IRS sau de la Mafie. Securitatea se ocup de problemele legate de capturarea i falsificarea mesajelor autorizate i de cei ce ncearc s nege faptul c au trimis anumite mesaje. Majoritatea problemelor de securitate sunt cauzate intenionat de persoane ruvoitoare ce ncearc s obin anumite beneficii sau s provoace ru cuiva. Civa dintre cei care comit n mod obinuit astfel de fapte sunt menionai n Fig. 7-1. Din aceast list trebuie s rezulte clar c realizarea unei reele sigure implic ceva mai mult dect pstrarea ei fr erori de programare. Aceasta implic surciasarea unor adversari adeseori inteligeni, dedicai i uneori bine dotai material. Trebuie de asemenea s fie clar c msurile care pot stopa inamici accidentali vor avea un impact redus asupra unor adversari serioi.
Scop Pentru a se distra furnd pota electronic a celorlali Student Pentru a testa securitatea sistemului cuiva; pentru a fura date Sprgtor Pentru a pretinde c reprezint toat Europa, nu numai ndorra Responsabil de vnzri Pentru a descoperi panul strategic de marketing al competitorului Om de afaceri Fost funcionar Pentru a se rzbuna c a fost concediat Contabil j Pentru a sustrage bani de ia o companie [ Agent de vnzri j Pentru a nega o promisiune fcut clientului prin pot eiectronic Sariatam Pentru a fura numere de cri de credit si a le vinde Spion j Pentru a afla puterea militar a inamicului Terorist [ Pentru a fura secrete legate de ostiliti armate Adversar I

Fig. 7-. Cteva persoane ce cauzeaz probleme de securitate i motivele acestora. Problemele securitii reelei pot fi mprite, n mare, n patru domenii interconectate: confidenialitate, autentificare, nerepudiere i controlul integritii. Confidenialitatea se refer la pstrarea informaiei departe de utilizatorii neautorizai. Aceasta este ceea ce vine de obicei n mintea oamenilor atunci cnd se gndesc la securitatea reelei. Autentificarea reprezint determinarea identitii persoanei cu care vorbeti nainte de a dezvlui informaii importante sau de a intra ntr-o afacere. Nerepudierea implic semnturi: cum s dovedeti c un client a fcut ntradevr o comand pentru zece milioane de nimicuri de 89 de ceni fiecare, dac, mai trziu, el pretinde c preul era de 69 de ceni? In fine, cum poi fi sigur c un mesaj pe care l-ai primit a fost cei trimis cu adevrat i nu unul pe care un adversar rutcios i-a modificat n tranzit sau 1-a msluit? Toate aceste aspecte (confidenialitate, autentificare, nerepudiere i controlul integritii) apar i n sistemele tradiionale, dar cu cteva diferene semnificative. Confidenialitatea i integritatea sunt realizate prin folosirea potei nregistrate i prin sigilarea documentelor. Jefuirea trenului ce duce pota este mai greu de realizat dect era n zilele lui Jesse James. De asemenea, oamenii pot de obicei s spun ce diferen este ntre un document original i o fotocopie i adeseori numai primul are valoare pentru ei. Ca test, facei o fotocopie a unui cec valid, ncercai luni s ncasai de la banc banii pe cecul original. Apoi ncercai mari s ncasai banii pe

SEC. 7.1

SECURITATEA REELEI

539

fotocopie. Observai diferena din comportamentul bncii. Cu cecuri electronice, originalul i copia nu sunt distinctibile. Va trece ceva vreme pn ce bncile se vor obinui cu aceasta. Oamenii autentific ali oameni prin recunoaterea feelor, vocilor i scrisului lor. Dovada semnrii se face prin semnturi pe scrisori cu antet, sigilii etc. Falsificarea poate fi de obicei detectat prin scris, hrtie i experi n grafologie. Nici una din aceste opiuni, nu este disponibil electronic. Evident, sunt necesare alte soluii. nainte de a intra n prezentarea acestor soluii, merit s consumm cteva minute pentru a stabili unde anume n stiva de protocoale se situeaz securitatea reelei. Exist probabil mai mult dect un singur loc. Fiecare nivel are o oarecare contribuie la aceasta. n nivelul fizic, ascultarea firelor poate fi zdrnicit prin nchiderea liniilor de transmisie n tuburi sigilate coninnd gaz de argon la presiuni nalte. Orice ncercare de a sfredeli tubul va duce ia pierderi de gaz, reducnd presiunea i trgnd alarma. Anumite sisteme militare folosesc aceast tehnic. La nivelul legtur de date, pachetele transmise pe o linie punct-la-punct pot fi codificate cnd prsesc una dintre maini i decodificate cnd intr n cealalt. Toate detaliile pot fi manipulate ia nivelul legtur de date, fr ca nivelurile mai nalte s aib cunotin de ceea ce se petrece. Aceast soluie eueaz, totui, atunci cnd pachetele trebuie s traverseze mai multe rutere, deoarece pachetele trebuie decriptate n fiecare mter, fcndu-ie astfel vulnerabile ia atacurile din interiorul rutereior. De asemenea, ea nu permite ca anumite sesiuni s fie protejate (de exemplu, acelea ce implic cumprturile on-line prin cri de credit), iar altele nu. Cu toate acestea, criptarea legturii (link enayption), cum este numit aceast metod, poate fi adugat cu uurin la orice reea si este adeseori util. La nivelul reea, pot fi instalate ziduri de protecie pentru a pstra pachetele n interior sau pentru a pstra pachetele n afara acestuia. Am studiat zidurile de protecie n Cap. 5. La nivelul transport, conexiuni ntregi pot fi criptate, de la un capt la cellalt, adic de ia un proces ia cellalt. Cu toate c aceste soluii conduc la realizarea confidenialitii si muli oameni muncesc din greu pentru a ie mbunti, nici una dintre ele nu soluioneaz problema autentificrii sau nerepudierii ntr-un mod suficient de generai. Pentru a rezolva aceste probleme, soluiile trebuie s se gseasc ia nivelul aplicaie, motiv pentru care ele sunt studiate n cadrul acestui capitol. 7.1.1 Criptografia tradiional

Criptografia are o istorie lung i pitoreasc. In aceast seciune, vom schia doar cteva dintre aspecte, ca informaii de baz pentru ceea ce urmeaz. Pentru o istorie complet se recomand a fi citit cartea lui Kahn (1967). Pentru o tratare detaliat a situaiei actuale n domeniu a se vedea (Kaufiman .a. 1995; Schneier, 1996; i Stinson, 1995). Din punct de vedere istoric, la arta criptografiei au contribuit patru grupuri de oameni: armata, corpurile diplomatice, cei ce au inut jurnale i ndrgostiii. Dintre acestea, armata a avut rolul cel mai important i a structurat domeniul. In interiorul organizaiilor militare, mesajele ce trebuiau criptate erau de obicei date unor funcionari codori prost pltii, pentru criptare i transmitere. Volumul de mesaje nu permitea ca aceast munc s fie fcut doar de civa specialiti de elit. Pn Ia apariia calculatoarelor, una din marile constrngeri ale criptografiei a fost capacitatea funcionarilor codori de a realiza transformrile necesare, adeseori pe cmpul de lupt, cu echipament redus. O constrngere suplimentar a fost dificultatea de comutare rapid de ia o metod criptografic ia alta, deoarece aceasta implica reantrenarea unui numr mare de oameni.

NIVELUL APLICAIE

CAP. 7

Totui, pericolul ca un cod s fie capturat de ctre un inamic a fcut s devin esenial posibilitatea de a schimba metoda criptografic imediat, n caz de nevoie. Aceste necesiti antagoniste au dat natere modelului din Fig. 7-2. Mesajele ce trebuie criptate, cunoscute sub numele de text dar (plain text), sunt transformate printr-o funcie parametrizat de o cheie (key). Ieirea procesului de criptare, cunoscut sub numele de text cifrai (ciphertex), este apoi transmis, adeseori prin curier sau radio. Presupunem c inamicul ascult i copiaz cu acuratee ntreg textul cifrat. Totui, ei nu tie care este cheia de decriptare i astfel nu poate decripta prea uor textul cifrat. Uneori intrusul poate nu numai s asculte canalul de comunicaie (intrus pasiv), ci i s nregistreze mesajele i s le retransmit mai trziu, s injecteze propriile sale mesaje sau s modifice mesajele legitime nainte ca ele s fi fost preluate de receptor (intms activ). Arta de a sparge cifruri se numete criptanaliz (ayptanalysis). Arta de a concepe cifruri (criptografia) i cea de a le sparge (cripanaliza) sunt cunoscute sub numele colectiv de

irtrus ssre doar ascult

rus
care poate modifica mesaiele

Fsxt clar, P-

Metod de eripsre

Metod de decriptare

Text dar

Cheie de criptare, k

Cheie de decriptare

Fig. 7-2. Modelul de criptare. Va fi adesea util s avem o notaie pentru a pune n relaie textul dar, textul cifrat i cheile. Vom folosi C=EK(P) pentru a simboliza c n urma criptrii textului dar P, folosind cheia K, a rezultat textul cifrat C. Similar, P=DK(C) reprezint decriptarea lui C pentru a obine din nou textul clar.

DK(EK(P))=P Aceast notaie sugereaz c E i D sunt funcii matematice, ceea ce, de altfel, i sunt. Singurul artificiu este acela c ambele sunt funcii cu doi parametrii iar noi arn scris unul din parametrii (cheia) ca indice, nu ca argument, pentru a face distincie ntre ei i mesaj. O regui fundamental a criptografiei este aceea c trebuie presupus cunoaterea de ctre orice criptanalist a metodei generale utilizate pentru criptare. Cu alte cuvinte, criptanalistul tie cum lucreaz metoda de criptare E din Fig. 7-2. Cantitatea de efort necesar pentru a inventa, testa i

SEC. 7.1

SECURITATEA REELEI

541

instala o metod nou, ori de cte ori vechea metod este compromis sau se crede a fi compromis, a fcut ntotdeauna nepractic a o pstra secret i a o crede secret atunci cnd nu este; face mai mult ru dect bine. Aici apare cheia. Cheia const dintr-un ir (relativ) scurt care selecteaz una dintre mai multe criptri poteniale. In contrast cu metoda general, care poate fi schimbat doar la civa ani, cheia poate fi schimbat orict de des este nevoie. Astfel modelul nostru de baz este stabil i metoda general, cunoscut de toat lumea, este parametrizat cu o cheie secret i uor de schimbat. Caracterul nesecret al algoritmului nu poate fi subliniat suficient. Prin publicarea algoritmului, criptograful d libertatea ca acesta s fie consultat de un numr larg de criptoiogi din mediul academic, pasionai s sparg sistemul pentru a putea publica articole care s demonstreze ct de detepi sunt ei. Dac muli experi au ncercat s sparg algoritmul timp de 5 ani dup publicarea sa i nici unul nu a reuit, probabil c algoritmul este destul de solid. . Adevratul secret este cheia, iar lungimea sa reprezint un aspect foarte important. S considerm o simpl combinaie de seif. Principiul general este c se introduc cifre n secven. Oricine tie aceasta, dar cheia este secret. O lungime a cheii de dou cifre nseamn c exist 100 de posibiliti. O lungime a cheii de trei cifre nseamn 1000 de posibilti i o lungime a cheii de ase cifre nseamn un milion. Cu ct cheia este mai lung, cu att este mai mare volumul de munc (work factor) cu care are de-a face criptanalistul. Factorul de munc pentru a sparge sistemul prin cutare exhaustiv n spaiul cheilor este exponenial n raport cu lungimea cheii. Secretul provine din a avea un algoritm puternic (dar public) i o cheie lung. Pentru a-i mpiedica fratele mai mic s-i citeasc pota electronic, sunt suficiente chei de 64 de bii. Pentru a pstra la distan inamici puternici, sunt necesare chei de cel puin 256 de bii. Din punctul de vedere al criptanalistului, problema sa are trei variante principale. Cnd are la dispoziie o cantitate de text cifrat i nici un fel de text clar, el este confruntat cu problema textului cifrat (ciphertext only problem). Criptogramele care apar la seciunea de enigme a ziarelor pun acest tip de problem. Cnd criptanalistul are ceva text clar i textul criptat corespunztor, problema este cunoscut sub numele de probiema textului clar cunoscut (known plaintextproblem). n sfrit, atunci cnd criptanalistul poate cripta buci de text clar la propria sa alegere, avem de-a face cu problema textului clar ales (chosen plaintext problem). Criptogramele din ziare ar putea fi sparte ntr-un mod evident dac criptanalistului i s-ar permite s pun ntrebri de genul: Care este criptarea pentru ABCDE? Novicii n domeniul criptografiei presupun adeseori c dac un cifru poate rezista unui atac ciphertext only", el este sigur. Aceast presupunere este foarte naiv. n multe cazuri criptanalistul poate ghici unele pri din textul clar. De exemplu, primul lucru pe care multe sisteme cu divizarea timpului (timesharing) 1 spun cnd sunt invocate este PLEASE LOGIN". Avnd cteva perechi text clar - text criptat, sarcina criptanalistului devine mult mai uoar. Pentru a realiza securitatea, criptograful trebuie s fie prudent i s se asigure c sistemul este rezistent, chiar dac inamicul su poate cripta cantiti arbitrare de text clar ales. Metodele de criptare au fost istoric mprite n dou categorii: cifruri cu substituie i cifruri cu transpoziie. Vom studia acum pe scurt pe fiecare dintre aceste cifruri, ca informaie fundamental pentru nelegerea criptografiei moderne.

542

NIVELUL APLICAIE

CAP. 7

Girurile cu substituie ntr-un cifru cu substituie fiecare liter sau grup de litere este nlocuit() pentru deghizare cu alt liter sau grup de litere. Unul dintre cele mai vechi cifruri cunoscute este Cifirul toi Caesar, atribuit lui Julius Caesar. n aceast metod, a devine D, b devine E, c devine F,.... z devine C. De exemplu, cuvntul attack devine DWIVDFN. In exemple textul clar va fi scris cu litere mici, iar textul cifrat va fi scris cu majuscule. O mic generalizare a cifrului Iui Caesar permite alfabetului textului cifrat s fie deplasat cu Ic litere, n loc de a fi deplasat ntotdeauna cu 3. n acest caz, k devine o cheie pentru metoda general a alfabetelor deplasate circular. Cifrul Caesar poate s fi nelat pe Cartaginezi, dar de atunci el nu mai neal pe nimeni. Urmtoarea mbuntire este de a stabili pentru fiecare simbol din textul clar, s spunem pentru simplitate cele 26 de litere, o coresponden cu o alt liter. De exemplu: textul clar: textul cifrat: abcdefghijklmnopqrstuvwxyz Q W E R T Y U i O? A S D F G H J K L Z X C VBNM

Sistemul generai este numit substituie monoaifahetic (monoalphabetic substitution), cheia fiind irul de 26 de litere corespunznd ntregului alfabet. Pentru cheia anterioar, textul clar attack va fi transformat n QZZQEA. La prima vedere, acesta ar putea fi considerat un sistem sigur deoarece, dei criptanalistul cunoate sistemul general (substituie liter cu liter), el nu cunoate care dintre cele 26!=4xlO26 chei posibile este folosit. Spre deosebire de cifrul lui Caesar, ncercarea tuturor acestora nu este o abordare prea promitoare. Chiar i la lusec per soluie, unui calculator i-ar trebui 10 b ani pentru a ncerca toate cheile. Totui, dndu-se o cantitate surprinztor de mic de text cifrat, cifrul poate fi spart cu uurin. Atacurile de baz folosesc ca informaie proprietile statistice ale limbajelor naturale. n englez, de exemplu, e este cea mai frecvent liter, urmat de t, o, a, n, i etc. Cele mai comune combinaii de dou litere, sau 'digrame (digrams), sunt th, n, er, re i an. Cele mai comune combinaii de trei litere, sau irigrame (trigrams), sunt the, ing, and i ion. Un criptanalist ce ncearc s sparg un cifru monoalfabetic va ncepe prin a numra frecvenele relative ale tuturor literelor din textul cifrat. Dup aceea el trebuie s ncerce s asocieze cea mai frecvent liter cu e, urmtoarea cu t. Apoi el trebuie s caute trigramele, s o gseasc pe cea mai comun de forma tXe, care sugereaz puternic c X este h. Similar, dac apare frecvent ablonul ihY, probabil c Feste a. Cu aceast informaie, el poate cuta apariiile frecvente ale trigramelor de forma aZW, care sunt asemntoare cu and. Prin astfel de presupuneri fcute asupra celor mai comune litere, digrame, trigrame i cu ceva cunotine despre abloanele asemntoare de vocale i consoane, criptanalistul construiete liter cu liter o variant de text clar. O alt abordare este aceea de a ghici un cuvnt sau o expresie probabil. De exemplu, considerai urmtorul text cifrat provenind de la o firm de contabilitate (mprit n blocuri de cte cinci caractere): CTBMN BYCTC BTJDS QXBNS GSTJC BTSWX CTQTZ CQVUI QJSGS TJQZZ MNQJS VLNSZ VSZJU JDSTS JQUUS JUBXJ DSKSU JSNTK BGAQJ ZBGYQ TLCTZ BNYBN QJSW

SEC. 7.1

SECURITATEA REELEI

543

Un cuvnt probabil ntr-un mesaj provenind de la o firm de contabilitate este financiai Folosind propriile noastre cunotine, cum ar fi faptul c financiai are o liter repetat (/), cu alte patru litere ntre apariiile lor, vom cuta n textul cifrat repetri de litere aflate la aceast distan. Gsim 12 potriviri pe poziiile 6, 15, 27, 31, 42, 48, 56, 66, 70, 71, 76 i 82. Totui, doar dou dintre acestea, 31 i 42 au urmtoarea liter (cea corespunznd lui n n textul clar) repetat n locul corespunztor. Din acestea dou, doar 31 are un a corect poziionat, deci tim ci financiai ncepe la poziia 30. Din acest punct, deducerea cheii este uor de realizat folosind statisticile de frecven a literelor n textele englezeti. Cifrurile cu transpoziie Cifrurile cu substituie pstreaz ordinea simbolurilor din textul clar, dar le deghizeaz. Spre deosebire de acestea, cifrurile cu transpoziie (transposition ciphers) reordoneaz literele, dar nu le deghizeaz. Figura 7-3 descrie un cifru cu transpoziie simplu, transpoziia pe coloane. Cifrul are drept cheie un cuvnt sau o expresie ce nu conine litere repetate. In acest exemplu cheia este MEGABUCK. Scopul cheii este s numeroteze coloanele, coloana 1 fiind sub litera din cheie cea mai apropiat de nceputul alfabetului .a.m.d.. Textul clar este scris orizontal, pe rnduri. Textul cifrat este citit pe coloane, ncepnd cu coloana al crui numr de sub liter este mai mic.
M E G A B U C K

2 4 5 1 2 8 3 6
p I e a s e t r
T e x t c l a r

a n s f e r o n i \ \ i o n e m
d

pleasetransferonemilliondollarsto myswissbankaccountsixwotwo t s
T e x c i f r a t

!
n k

a
a c

r s

o m y s w
b

s
o

t w

AFLLSKSOSELAWAIATOOSSCTCLNMOMANT ESILYNTWRNNTSOWDPAEDOBUOERIRICXB

o t w o a b c d

Fig. 7-3. Un cifru cu transpoziie. Pentru a sparge un cifru cu transpoziie, criptanalistul trebuie mai nti s fie sigur c are de-a face cu un cifru cu transpoziie. Analiznd frecvena de apariie pentru E, T,A, O, I, N etc, este uor de vzut dac ele se ncadreaz n ablonul obinuit pentru text clar. Dac da, cifrul este sigur un cifru cu transpoziie, deoarece ntr-un astfel de cifru, fiecare liter este reprezentat de ea nsi. Urmtorul pas ce trebuie fcut este s se emit o presupunere asupra numrului de coloane. n multe cazuri un cuvnt sau o expresie probabil poate fi ghicit() din contextul mesajului. De exemplu, s presupunem c un criptanalist bnuiete c expresia text clar miliondollars apare pe undeva prin mesaj. Se observ c n urma mpachetrii acestei expresii, n textul cifrat apar digramele MO, IL, LL, LA, IR i OS. Litera O din textul cifrat urmeaz dup litera M din acelai text

544

NIVELULAPUCAE

CAP. 7

(adic sunt vertical adiacente n coloana 4) deoarece ele sunt separate n expresia probabil de o distan egal cu lungimea cheii. Dac a fost folosit o cheie de lungime 7, n locul acestora ar fi trebuit s apar digramele MD, IO, LL, LL, IA, OR i NS. De fapt, pentru fiecare lungime a cheii, n textul cifrat sunt produse seturi diferite de digrame. Prin vnarea diferitelor posibiliti, criptanalistul poate determina cu uurin lungimea cheii. Pasul care a rmas este ordonarea coloanelor. Cnd numrul de coloane, k, este mic, poate fi examinat fiecare dintre cele k(k-l) perechi de coloane pentru a vedea dac diagrama de frecvene se potrivete diagramei pentru textul clar n englez. Perechea cu cea mai bun potrivire se presupune c este corect poziionat. Acum fiecare coloan ce a rmas este ncercat a fi succesorul acestei perechi. Coloana pentru care frecvena digramelor i trigramelor se potrivete cel mai bine se presupune a fi corect. Coloana precedent este gsit n acelai mod. Exist anse ca textul clar s devin recognoscibil n acest punct (de exemplu, dac apare milloin, este clar ce erori exist n el). Anumite cifruri cu transpoziie accept un bloc de lungime fix la intrare i produc un bloc de lungime fix la ieire. Aceste cifruri pot fi descrise complet dndu-se doar o list n care s se precizeze ordinea n care caracterele vor fi trimise la ieire. De exemplu, cifrul din Fig. 7-3 poate fi vzut ca un cifru bloc pe 64 de caractere. Ieirea sa este 4,12,20,28,36,44,52,60,5,13,..., 62. Cu alte cuvinte, cel de-al patrulea caracter de la intrare, a, este primul ce va fi trimis la ieire, urmat de al doisprezecelea,/ .a.m.d. Chei acoperitoare Construirea unui cifru imposibil de spart este actualmente destul de simpl; tehnica este cunoscut de decenii. n primul rnd alegei un ir aleatoriu de bii pe post de cheie. Apoi convertii textul clar ntr-un ir de bii, de exemplu folosind reprezentarea ASCII. n final, calculai XOR ntre cele dou iruri, bit cu bit. Textul cifrat rezultat nu poate fi spart, deoarece orice text clar posibil este n mod egal un probabil candidat. Textul cifrat nu d criptanalistului absolut nici o informaie. Pentru un eantion suficient de mare de text cifrat, fiecare liter va aprea la fel de des, de asemenea i orice digram sau trigram. Aceast metod, cunoscut sub numele de metoda cheilor acoperitoare {one-time pad) are, din nefericire, numeroase dezavantaje n practic. Unul dintre dezavantaje este faptul c nu poate fi memorat cheia, astfel nct att transmitorul ct i receptorul trebuie s poarte cu ei o copie scris a acesteia. Dac vreunul dintre ei este capturat, evident c existena cheilor scrise nu este de dorit. n plus, cantitatea total de date care poate fi transmis este limitat de dimensiunea cheii disponibile. Dac spionul d lovitura i descoper o comoar de date, el nu va fi capabil s le transmit napoi la cartierul general deoarece cheia a fost epuizat. O alt problem este senzitivitatea metodei la pierderea sau inserarea de caractere. Dac transmitorul i receptorul pierd la un moment dat sincronizarea, toate datele de aici ncolo vor aprea ca fiind eronate. Odat cu apariia calculatoarelor, metoda cheilor acoperitoare poate deveni practic pentru anumite aplicaii. Sursa unei chei poate fi un CD special care conine civa gigabii de informaie i care, transportat ntr-o cutie de CD pentru muzic, precedai de cteva cntece, nu va da niciodat de bnuit. Desigur, la viteza reelei de ordinul gigabiilor, a trebui s introduci un nou CD la fiecare 5 secunde poate deveni suprtor. Din acest motiv, vom ncepe acum studiul algoritmilor de criptare moderni, care pot prelucra cantiti de text clar de dimensiune arbitrar.

SEC. 7.1 7,1.2

SECURITATEA REELEI

545

Dou principii criptografice fiindamentale

Dei n paginile ce vor urma vom studia diferite sisteme criptografice, pentru toate acestea exist dou principii de baz a cror nelegere este important. Primul principiu este acela c toate mesajele criptate trebuie s conin informaie redundant, adic informaie ce nu este necesar pentru nelegerea mesajului. Un exemplu poate clarifica de ce este nevoie de aceasta. S considerm o companie ce se ocup cu comenzile prin pot, CC, cu 60000 de produse. Creznd c vor fi foarte eficieni, programatorii de ia CC au decis c mesajele de comand trebuie s conin un nume de client pe 16 octei, urmat de un cmp de date pe 3 octei (1 octet pentru cantitate i 2 octei pentru numrul produsului). Ultimii 3 octei vor fi criptai folosind o cheie foarte lung, cunoscut doar de client i de CC. La prima vedere sistemul pare sigur i, ntr-un anumit sens, chiar este, deoarece intruii pasivi nu pot decripta mesajele. Din nefericire, exist o slbiciune fatal a acestui sistem, care l face de neutilizat. S presupunem c o funcionar recent concediat vrea s se rzbune pe CC pentru c a dat-o afar. Chiar nainte de a pleca, ea ia (o parte din) lista clienilor. Ea lucreaz n timpul nopii i scrie un program care genereaz comenzi fictive folosind nume de clieni reali. Deoarece nu posed lista cheilor, ea pune numere aleatorii n ultimii 3 octei i trimite sute de comenzi la CC. Cnd sosesc aceste mesaje, calculatorul CC folosete numele clientului pentru a localiza cheia i a decripta mesajul. Din nefericire pentru CC, aproape fiecare mesaj de 3 octei este valid, iar calculatorul ncepe s tipreasc instruciunile trimise. Dei pare ciudat ca un client s comande 137 de seturi de leagne pentru copii sau 2^-0 de cutii cu nisip, calculatorul poate crede c acesta plnuiete s deschid o mulime de locuri de joac. In acest mod, un intrus activ (ex-funcionara) poate cauza probleme imense, chiar dac ea nu poate nelege mesajele pe care le genereaz calculatorul ei. Problema poate fi rezolvat prin adugarea unor informaii redundante tuturor mesajelor. De exemplu, dac mesajele de comand sunt extinse la 12 octei, dintre care primii 9 trebuie s fie zerouri, atunci acest atac nu ar mai fi funcional, deoarece ex-funcionara nu mai poate genera un ir mare de mesaje valide. Morala povestirii este aceea c toate mesajele trebuie s conin o cantitate considerabil de informaie redundant, astfel nct intruii activi s nu poat trimite gunoaie aleatorii care s fie interpretate ca mesaje valide. Totui, adugarea informaiei redundante uura spargerea mesajelor de ctre cripanaliti. S presupunem c afacerea de comenzi prin pot este foarte competitiv i competitorul principal al companiei CC, ST, ar vrea tare mult s tie cte cutii de nisip vinde CC. n consecin, ei ascult linia telefonic a CC. In schema original, cu mesaje de 3 octei, criptanaliza era aproape imposibil, deoarece dup ghicirea unei chei, criptanalistul nu avea cum s-i dea seama dac a ghicii corect. Cu noua schem de 12 octei, este uor pentru criptanalist s disting un mesaj valid de unui invalid. Astfel, principiul criptografic numrul unu este ca toate mesajele s conin informaie redundant pentru a mpiedica intruii activi s nele receptorul trimindu-i un mesaj fals. Cu toate acestea, aceeai redundan faciliteaz intruilor pasivi spargerea sistemului, deci aici apar unele probleme. Mai mult dect att, redundana nu trebuie niciodat s fie folosit sub forma a n zerouri la nceputul sau sfritul unui mesaj, deoarece trecerea unor astfel de mesaje prin anumii algoritmi criptografici d rezultate predictibile, simplificnd criptanaiiza. Un ir aleatoriu de cuvinte englezeti ar fi o alegere mult mai bun pentru redundan.

546

NIVELUL APLICAIE

CAP. 7

Cel de-al doilea principiu criptografic este acela c trebuie luate anumite msuri pentru a mpiedica intruii activi s retransmit mesaje mai vechi. Dac nu se iau nici un fel de astfel de msuri, ex-funcionara noastr ar putea asculta linia telefonic a CC i ar putea retransmite mesajele valide trimise anterior. O astfel de msur este de a include n fiecare mesaj o amprent de timp valid doar pentru, s spunem, 5 minute. Receptorul trebuie doar s pstreze mesajele primite n ultimele 5 minute, pentru a compara mesajele nou sosite cu anterioarele i pentru a filtra duplicatele. Mesajele mai vechi de 5 minute pot fi aruncate, deoarece orice rspuns trimis mai trziu de 5 minute va fi refuzat ca fiind prea vechi. Alte msuri n afara amprentelor de timp vor fi discutate mai trziu.

7.

Algoritmi ca Cheie Secret

Criptografia modern utilizeaz aceleai idei de baz ca i criptografia tradiional, transpoziia i substituia, dar accentul este diferit. Tradiional, criptografii foloseau algoritmi simpli i se bazau pe chei foarte lungi pentru securitatea lor. n zilele noastre este adevrat contrariul: obiectivul este de a face algoritmii de criptare att de compleci i ireversibili, nct, chiar dac un criptanalist achiziioneaz cantiti imense de text cifrat la alegerea sa, e s nu fie capabil s fac ceva cu ele. Transpoziiile i substituiile pot fi implementate cu circuite simple. Figura 7-4(a) arat un dispozitiv, cunoscut sub numeie de cutie P (P vine de la permutare), folosit pentru a efectua o transpoziie asupra unei intrri de 8 bii. Dac cei 8 bii sunt selectai s fie notai de sus n jos cu 01234567, ieirea acestei cutii P particulare este 36071245. Printr-o cablare intern corespunztoare, o cutie P poate fi fcut s realizeze orice transpoziie i s o fac practic la viteza luminii.
Cutie P Cutie S S, Cifru produs

s,
1 ^ ^ '2

s 8i
! c I 6

S10|

(a)

(O

Fig. 7-4. Elemente de baz ale cinurilor produs, (a) Cutie P. (b) Cutie S. (c) Produs. Substituiile sunt realizate de cutiile S, dup cum este artat n Fig. 7-4(b). In acest exemplu este introdus un text clar de 3 bii, iar la ieire este furnizat un text cifrat pe 3 bii. Intrarea de 3 bii selecteaz una dintre cele opt linii ce ies din primul nivel i o poziioneaz pe 1; toate celelalte linii sunt 0. Cei de-al doilea nivel este o cutie P. Ce de-al treilea nivel codific din nou n binar linia selectat la intrare. Cu cablajul artat, dac opt numere scrise n octal 01234567 ar fi fost introduse unul dup cellalt, secvena de ieire ar fi 24506713. Cu alte cuvinte, 0 a fost nlocuit cu 2,1 a fost nlocuit cu 4 etc. Din nou, prin cablarea corespunztoare a cutiei P n interiorul cutiei S, poate fi realizat orice substituie. Puterea real a acestor elemente de baz devine vizibil doar atunci cnd conectm n cascad o serie ntreag de cutii pentru a forma un cifru produs, dup cum este artat n Fig. 7-4(c). n acest

SEC. 7.1

SECURITATEA REIELEI

547

exemplu, 12 linii de intrare au fost transpuse de primul nivel. Teoretic, ar fi posibil s avem ca al doilea nivel o cutie S care s pun n coresponden un numr de 12 bii cu alt numr de 12 bii. i2 Totui, un astfel de dispozitiv ar necesita 2 =4096 cabluri ncruciate la nivelul su din mijloc. In schimb, intrarea este mprit n patru grupuri de 3 bii, fiecare fiind substituit independent de celelalte. Cu toate c aceast metod este mai puin general, ea este nc puternic. Prin includerea unui numr suficient de mare de niveluri n cifrul produs, ieirea poate deveni o funcie extrem de complicat de intrare.

n ianuarie 1977, guvernul SUA a adoptat ca standard oficial pentru informaiile nesecrete un cifru produs i dezvoltat de IBM. Acest cifru, DES (Data Encryption Standard - Standard pentru Criptarea Datelor), a fost larg adoptat n industrie pentru a fi utilizat n produsele de securitate. El nu mai este de mult sigur n forma sa original (Wayner, 1995), dar ntr-o form modificat el este nc util. Vom explica acum cum lucreaz DES.
Text clar 64 bii I I ; : ! !

L=,

Transpoziia iniial

f i i f T

Iteraia 1 | .o
I I I ! I I l

i.2
I 03

IO

Iteraia 2

iO

iteraia 16 T V I

|_ Interschimbarea 32 bii j
f t T t

Transpoziia invers f T ? Text cifrat 64 bii (a) b)

Fig. 7-5. Cifrul DES. (a) Schem general, (b) Detalierea unei iteraii. O prezentare general a DES este fcut n Fig. 7-5(a). Textul clar este criptat n blocuri de cte 64 de bii, rezultnd blocuri de 64 de bii de text cifrat. Algoritmul, care este parametrizat cu o cheie de 56 de bii, are 19 runde distincte. Prima rund este o transpoziie independent de cheie, aplicat asupra textului clar de 64 de bii. Ultima rund este exact inversa acestei transpoziii. Penultima

548

NIVELUL APLICAIE

CAP. 7

rund schimb cei mai din stnga 32 de bii cu cei mai din dreapta 32 de bii. Cele 16 runde rmase sunt funcional identice dar sunt parametrizate de funcii de cheie diferite. Algoritmul a fost proiectat pentru a permite ca decriptarea s se fac cu aceeai cheie ca i criptarea, dar paii sunt parcuri n ordine invers. Funcionarea unuia dintre paii intermediari este ilustrat n Fig. 7-5(b). Fiecare rund ia dou intrri de 32 de bii i produce dou ieiri de 32 de bii. Ieirea din stnga este o simpl copie a intrrii din dreapta. Ieirea din dreapta rezult n urma unui SAU EXCLUSIV (XOR) bit cu bit ntre intrarea din stnga i o funcie depinznd de intrarea din dreapta i de o cheie pentru aceast rund, Kt. Toat complexitatea rezid n aceast funcie. Funcia const din patru pai, parcuri n secven. n primul rnd, este construit un numr de 48 de bii, E, prin expandarea celor 32 de bii ai lui R i 4 n concordan cu o transpoziie fix i o regul de duplicare. n al doilea rnd, E i Kt sunt combinate prin XOR. Ieirea este apoi mprit n opt grupuri de cte 6 bii i fiecare dintre acestea este introdus ntr-o cutie S diferit. Fiecare dintre cele 64 de intrri posibile ntr-o cutie S este pus n coresponden cu o ieire de 4 bii. n final, aceti 4x8 bii sunt trecui printr-o cutie P. n fiecare din cele 16 iteraii este folosit o cheie diferit. nainte de nceperea algoritmului este aplicat o transpoziie de 56 de bii asupra cheii. Chiar nainte de nceperea fiecrei iteraii, cheia este partiionat n dou uniti de cte 28 de bii, fiecare dintre ele este rotit a stnga cu un numr de bii depinznd de numrul iteraiei. Kt este derivat din aceast cheie rotit prin aplicarea unei transpoziii pe 56 de bii asupra ei. La fiecare rund este extras i permutat o alt submulime de 48 de bii din cei 56 de bii.

n ciuda complexitii sale, DES este, la baz, un cifru cu substituie monoaifabetic, folosind caractere pe 64 de bii. Ori de cte ori se cifreaz acelai bloc de text clar, la ieire se va obine acelai bloc de text cifrat. Un criptanalist poate exploata aceast proprietate pentru a sparge DES-ul.
Nume Funcie

Prim
j

A d a m s B ! a cjk C O|l D a
Octei -*V

|L e s |R
S|,
, n O

t
8

b i n K i m

i n

1
B

C|l|e
OJ

r k

:$:

s s

$ 5 0 0 , |0 0|0

M| a i n a 9 eji"

i s| ,

bjb i e

j ajnj i

oi r i

1 3 $|
4

! . ]

::

16-

Fig. 7-6. Texul clar al unui fiier criptat ca ansamblu de 16 blocuri DES. Pentru a vedea cum poate fi folosit aceast proprietate a cifrului cu substituie monoaifabetic pentru a submina DES-ul, s considerm cea mai evident metod de criptare a unui mesaj lung: prin spargerea n blocuri consecutive de 8 octei (64 de bii) i prin criptarea lor unul dup altul, cu aceeai cheie. Dac este nevoie, ultimul bloc este umplut pn la 64 de bii. Tehnica este cunoscut ca modul cu carte de coduri electronic (Electronic Code Book).

SEC. 7.1

SECURITATEA REELEI

549

n Fig. 7-6 este prezentat nceputul fiierului coninnd primele anuale ale unei companii care s-a decis s-i premieze angajaii. Fiierul const din nregistrri de 32 de octei, cte o nregistrare pentru fiecare angajat, n formatul artat: 16 octei pentru nume, 8 octei pentru funcia ocupat i 8 octei pentru prim. Fiecare din cele 16 blocuri de 8 octei (numerotate de la 0 la 15) este criptat cu DES. Leslie a avut o controvers cu eful i nu ateapt prea mult de la aceast prim. n schimb Kim este favorita efului i oricine tie asta. Leslie poate avea acces la fiier dup ce el a fost criptat, dar nainte de a fi trimis la banc. Poate Leslie s rectifice aceast situaie nedreapt, dat fiind doar fiierul criptat? Nici o problem. Tot ceea ce are Leslie de fcut este s realizeze o copie a blocului de text cifrat 11 (care conine prima lui Kim) i s-1 foloseasc pentru a nlocui blocul de text cifrat cu numrul 3 (care conine prima lui Leslie). Chiar i fr a ti ce cuprinde blocul 11, Leslie se poate atepta s aib un Crciun mai fericit anul acesta. (Copierea blocului de text cifrat 7 este de asemenea o posibilitate, dar este mai probabil s fie descoperit; n plus, Leslie nu este o persoan lacom). Pentru a para acest tip de atac, DES (i toate cifrurile bloc) trebuie nlnuite n diferite moduri astfel nct nlocuirea unui bloc n modul n care a fcut-o Leslie s conduc la situaia n care textul clar decriptat, ncepnd cu blocul nlocuit, s fie gunoi. Un mod de nlnuire este nlnuirea blocurilor cifrate {Cipher block chaining). n aceast metod, prezentat n Fig. 7-7, fiecare bloc de text clar este combinat prin XOR (#) cu blocul anterior de text cifrat,
A

nainte de a fi criptat. In consecin, acelai bloc de text clar nu se va mai pune n coresponden cu acelai bloc de text cifrat, iar criptarea nu mai este o mare substituie monoalfabetic. Primul bloc este combinat prin XOR cu un vector de iniializare, IV {Initialization Vector), ales aleatoriu, care este transmis mpreun cu textul cifrat. Putem vedea cum lucreaz nlnuirea blocurilor cifrate prin examinarea exemplului din Fig. 7-7. Putem ncepe prin a calcula C0=E(P0 XOR IV). Apoi vom calcula C1=E{P1 XOR Co) i aa mai departe. Decriptarea lucreaz n acelai mod, c\iP0=IVXORD(Co) i aa mai departe.
Pi

Key D Cutie de /criptare Cheie Cutie de decriptare #) \ SAU p exclusiv (b)

Fig. 7-7. nlnuirea blocurilor cifrate (Cipher block chaining). Criptarea blocului i este o funcie de toate textele clare din blocurile de la 0 la i-\, astfel nct acelai text clar va genera text cifrat diferit n funcie de locul unde apare. O transformare de tipul celei fcute de Leslie va avea ca rezultat un nonsens n cele dou blocuri ce ncep din cmpul de

550

NIVELUL APUCATE

CAP. 7

prim al lui Leslie. Pentru un ofier de securitate perspicace, aceast caracteristic poate sugera de la cine s porneasc investigaia. nlnuirea blocurilor cifrate are de asemenea avantajul c acelai bloc de text clar nu va rezulta niciodat n acelai bloc de text cifrat, fcnd criptanaliza mai dificil. De fapt, acesta este principalul motiv pentru care este folosit. Cu toate acestea, nlnuirea blocurilor cifrate are dezavantajul de a necesita ca un ntreg bloc de 64 de bii s soseasc nainte ca decriptarea s poat ncepe. Acest mod este nepotrivit pentru folosirea n cazul terminalelor interactive, unde oamenii pot introduce linii mai scurte de 8 caractere i apoi se pot opri n ateptarea unui rspuns. Pentru criptrile octet-cu-octet poate fi utilizat modul cu reacie cifrat (Cipher feedback mode), artat n Fig. 7-8. n aceast figur, starea mainii de criptare este artat dup ce octeii 0 pn la 9 au fost criptai i trimii. Cnd sosete blocul 10 din textul clar, dup cum este ilustrat n Fig. 7-8(a), algoritmul DES opereaz asupra registrului de deplasare 64 de bii pentru a genera 64 de bii de text cifrat. Octetul cel mai din stnga al textului cifrat este combinat prin XOR cu Pl0. Acest octet este transmis pe linie. n plus, registml de deplasare este deplasat cu 8 bii la stnga, provocnd ieirea lui C2 pe la captul din stnga i inserarea lui C/o n poziia care tocmai a rmas vacant la dreapta lui Cy. Coninutul registrului de deplasare depinde de ntreaga istorie anterioar a textului clar, astfel nct un ablon care se repet de mai multe ori n textul clar va fi criptat de fiecare dat diferit n textul cifrat. Ca i la nlnuirea blocurilor cifrate, este necesar un vector de iniializare pentru a porni rostogolirea mingii. Decriptarea n modul cu reacie cifrat face acelai lucru ca i criptarea. In particular, coninutul registrului de deplasare este criptat, nu decriptai, astfel nct octetul selectat care este combinat prin XOR cu Cio pentru a obine Plo este acelai cu cel ce a fost combinat prin XOR cu PI0 pentru a-1 obine pe Clo prima dat. Atta vreme ct cele dou registre de deplasare rmn identice, decriptarea lucreaz corect.
Reg. de deplasare pe 64 bii Reg. de deplasare pe 64 bii

c 2 c 3 r 'r

r ! r
1

"8| U 9
V

c2

C 3 |C 4

c5
i

Ce

c7 c8

9
J J

Cutie de criptare Sei. octetul cei mai din stnga


10" '10

Cheie-

criptare Sel. octetul ce! mai din stnga

'10

'10'

SAU exclusiv (a) (b)

Fig. 7-8. Modul cu reacie cifrat (Cipher feedback mode). Ca o digresiune, trebuie menionat c dac un bit din textul cifrat este inversat accidental n timpul transmisiei, cei 8 octei ce sunt descifrai n timp ce octetul eronat se gsete n registml de

SEC 7.1

SECURITATEA REELEI

551

deplasare vor fi n ntregime alterai. Odat ce octetul eronat este mpins afar din registrul de deplasare, va fi generat iari un text clar corect. Astfel, efectul unui singur bit inversat este relativ localizat i nu va ruina tot restul mesajului. Cu toate acestea, exist aplicaii n care a avea o eroare de transmisie de 1 bit care s strice 64 de bii de text clar reprezint o pierdere prea mare. Pentru aceste aplicaii exist o a patra opiune, modul cu reacie de Ia ieire (Output Feedback mode). Acesta este identic cu modul cu reacie cifrat, cu excepia faptului c octetul ce va fi introdus pe la captul din dreapta n registrul de deplasare va fi extras de acolo chiar nainte de a fi combinat prin XOR i nu dup aceasta. Modul cu reacie de la ieire are proprietatea c o eroare de 1 bit n textul cifrat cauzeaz o eroare de un singur bit n textul clar rezultat. Pe de alt parte, este mai puin sigur dect alte moduri i trebuie evitat utilizarea sa n scopuri generale. De asemenea, modul cu carte electronic de coduri trebuie evitat, cu excepia unor mprejurri speciale (de exemplu, criptarea unui singur numr aleatoriu, cum ar fi o cheie de sesiune). Pentru operaii normale, atunci cnd la intrare sosesc uniti de cte 8 octei (de exemplu, pentru criptarea fiierelor de pe disc), trebuie utilizat modul cu nlnuirea blocurilor cifrate, iar pentru iruri de intrare neregulate, cum ar fi intrarea de la tastatur, trebuie folosit modul cu reacie cifrat. Spargerea DES-ului DES a fost implicat n numeroase controverse nc din ziua n care a fost lansat. El se baza pe un cifru dezvoltat i brevetat de IBM, numit Lucifer, cu excepia faptului c acest cifru al IBM-ului folosea o cheie de 128 de bii n locul uneia de 56 de bii. Atunci cnd guvernul federal al SUA a dorit s standardizeze un cifru ca nefiind secret, el a invitat" IBM-ul s discute" aceast problem cu NSA, agenia sprgtoare de coduri a guvernului, care utilizeaz cel mai mare numr de matematicieni i criptologi din lume. NSA este att de secret, nct n industrie a aprut urmtoarea glum: : Ce nseamn NSA? R: No Such Agency (Nu exist o astfel de agenie). De fapt, NSA vine de la National Security Agency (Agenia Naional de Securitate). Dup ce au avut loc aceste discuii, IBM a redus cheia de la 128 de bii la 56 de bii i a decis s pstreze secret procesul prin care a fost proiectat DES-ul. Muli oameni suspecteaz faptul c lungimea cheii a fost redus pentru a exista sigurana c NSA poate sparge DES-ul, dar nici o organizaie cu un buget mai mic nu poate face asta. Pstrarea secretului proiectrii a fost fcut probabil pentru a ascunde o trap (u ascuns) care ar putea uura spargerea DES-ului de ctre NSA. Cnd un angajat al NSA a atenionat discret IEEE s abandoneze conferina planificat pe teme de criptografie, acesta nu i-a fcut pe oameni s se simt mai bine. n 1977, doi cercettori n criptografie de la Stanford, Diffie i Hellman (1977), au proiectat o main pentru a sparge DES-ul i s-a estimat c ea poate fi construit cu un buget de 20 de milioane de dolari. Dat fiind o mic bucat de text clar i textul cifrat corespunztor, aceast main ar putea s gseasc cheia, prin cutarea exhaustiv a 2 56 intrri din spaiul cheilor, n mai puin de o zi. n prezent, o astfel de main ar costa probabil 1 milion de dolari. O

552

NIVELUL APLICAIE

CAP. 7

proiectare detaliat pentru o main ce poate sparge DES-ul prin cutare exhaustiv n aproape patru ore este prezentat n (Wiener, 1994). Aici exist o alt strategie. Dei criptarea software este de 1000 de ori mai lent dect criptarea hardware, cel mai scump calculator personal poate face aproape 250 000 criptri/sec n software i este probabil nefolosit 2 milioane de secunde/lun. n acest timp, n care nu este folosit, el poate fi utilizat pentru a sparge DES-ul. Dac cineva ar trimite un mesaj spre unul dintre cele mai populare grupuri de tiri din Internet, nu ar fi greu s nrolezi 140 000 de 6 oameni pentru a verifica 7x10' chei ntr-o lun. Probabil cea mai inovatoare idee pentru spargerea cifrului DES este Loteria Chinezeasc (Quisquater i Girault, 1991). n acest proiect, fiecare aparat de radio i televizor trebuie echipat cu un cip DES capabil s realizeze 1 milion de criptri/secund n hardware. Presupunnd c fiecare din cei 1.2 miliarde de oameni din China posed un aparat de radio, ori de cte ori guvernul chinez vrea s decripteze un mesaj criptat cu DES, el rspndete perechea text clar/text cifrat i fiecare dintre cele 1.2 miliarde de tipuri ncepe cutarea n seciunea sa prestabilit din spaiul cheilor. n 60 de secunde, vor fi gsite una (sau mai multe) potriviri. Pentru a asigura c aceste potriviri vor fi raportate, tipurile pot fi programate s afieze pe ecran sau s anune mesajul: FELICITRI! TOCMAI AI CTIGAT LOTERIA CHINEZEASCA. PENTRU A RIDICA PREMIUL,'V RUGM S SUNAI LA 1-900-MARELE-PREMIU Concluzia care trebuie tras din aceste argumente este aceea c DES-ul nu mai trebuie folosit pentru criptarea documentelor importante. Cu toate c 25fi este un nesemnificativ 7 x IO16, 2 112 este un impuntor 5xlO33. Chiar cu un miliard de tipuri DES executnd un miliard de operaii pe secund, ar trebui 100 de milioane de ani pentru a cuta exhaustiv ntr-un spaiu de chei pe 112 bii. Astfel apare ideea de a rula DES-ul de dou ori, cu dou chei diferite pe 56 de bii. Din nefericire, Merkle i Hellman (1981) au dezvoltat o metod care face ca dubla criptare s devin suspect. Aceasta poart numele de atacul ntlnlrea-la-mijloc (meet-n-the-middle) i lucreaz astfel (Hellman, 1980). S presupunem c cineva a dublu-criptat o serie de blocuri de text clar, folosind modul carte electronic de coduri. Pentru cteva valori ale lui i, criptanalistui posed perechile (Ph C), unde: Ci=Ek2(tkllri;; Dac aplicm acum funcia de decriptare DJQ pentru fiecare membru ai ecuaiei, obinem: D k 2 (Q)=E k l (P i ) deoarece criptarea lui x i decriptarea luix cu aceeai cheie dau tot A:. Atacul ntlnirea-la-mijloc" folosete aceast ecuaie pentru a gsi cheile DES, Kl i K2, dup cum urmeaz: 1. Se calculeaz i?(-=;(Pi) pentru toate cele 256 valori ale lui /, unde E este funcia de criptare a DES-ului. Acest tablou se sorteaz cresctor dup JR,-.

SEC. 7.1

SECURITATEA REELEI

553

2. Se calculeaz Sj=Dj(Ci) pentru toate cele 256 valori ale lui /, unde D este funcia de
decriptare a DES-ului.. Acest tablou este sortat cresctor dup 5,. R , - care se potrivete cu un Sj din al doilea tablou. 3. Se parcurge primul tablou cutnd un J Atunci cnd este gsit o prtrivire, avem o pereche de chei (/,;), astfel nct DfCi)=Ej{Pt). i este un potenial Kl i; este un potenial K2. 4. Se verific dac Ej(Ei{P2)) este egal cu C2. Dac da, se ncearc toate celelalte perechi (text clar, text cifrat). Dac nu, continu cutarea potrivirilor n cele dou tablouri. Cu siguran c nainte ca adevratele chei s fie localizate, vor aprea multe alarme false, dar, n cele din urm, acestea vor fi gsite. Atacul necesit doar 2 57 operaii de criptare sau decriptare (pentru a construi cele dou tablouri), mult mai puine dect 2112. Totui, este de asemenea necesar un total de 260 octei de memorie pentru cele dou tablouri, astfel c atacul nu este realizabil n forma de baz, dar Merkle i Hellman au artat diferite optimizri i compromisuri ce permit un spaiu de memorare mai mic la un cost de calcul mai mare. Avnd n vedere toate acestea, probabil c dubla criptare folosind DES nu este mult mai sigur dect criptarea simpl. Tripla criptare este o alt problem. Chiar din 1979, IBM a realizat c lungimea cheii DES era prea mic i a conceput un mod de a o crete efectiv, folosind tripla criptare (Tuchman, 1979). Metoda aleas, care de atunci a fost ncorporat n Standardul Internaional 8732, este ilustrat n Fig. 7-9. Aici sunt folosite dou chei i trei runde. n prima rund textul clar este criptat cu K^ n a doua rund, este rulat DES n mod de decriptare, folosind cheia K2. n final, este efectuat o alt criptare cu Ki.

i i i
E D (a)

K,

K2

K, D
LLI

1
(b)

K2

K,

Fig. 7-9.Tripla criptare folosind DES. Proiectarea d natere imediat la dou ntrebri. Prima, de ce sunt folosite doar dou chei n loc de trei? A doua, de ce este folosit succesiunea de transformri EDE, n loc de EEE? Motivul pentru care sunt utilizate dou chei este acela c majoritatea criptografilor paranoici admit c 112 bii sunt suficieni pentru aplicaiile comerciale la momentul actual. A extinde la 168 de bii nseamn a aduga o suprancrcare inutil pentru gestiunea i transportul unei alte chei. Motivul pentru criptare, decriptare i apoi iar criptare este compatibilitatea cu produsele existente ce folosesc sisteme DES cu o singur cheie. Att funcia de criptare ct i cea de decriptare sunt corespondene ntre mulimi de numere pe 64 de bii. Din punct de vedere criptografic, cele dou corespondene sunt la fel de puternice. Totui, folosind EDE n locul EEE, un calculator ce utilizeaz tripla criptare poate comunica cu unul ce folosete criptarea simpl, punnd Ki=K2. Aceast proprietate permite triplei criptri s fie pus n practic treptat, lucru care nu intereseaz pe criptografii din mediul academic, dar care este de o importan considerabil pentru IBM i clienii si.

554

NIVELUL APLICAIE

CAP. 7

Nu este cunoscut nici o metod care s fi spart triplul-DES n modul EDE. Van Oorschot i Wiener (1988) au prezentat o metod pentru a mri viteza cutri EDE cu un factor al lui 16, dar chiar i cu acest atac, EDE este foarte sigur. Pentru oricine care dorete doar ce-i mai bun, este recomandat EEE cu trei chei distincte de 56 de bii (168 de bii n total). nainte de a prsi subiectul DES, merit cel puin s menionm dou progrese recente n criptanaliz. Primul progres este criptanaliza diferenial (Biham i Sharnir, 1993). Aceast tehnic poate fi folosit pentru a ataca orice cifru bloc. Lucreaz la nceput cu o pereche de blocuri de text clar care difer doar printr-un numr mic de bii i studiaz cu grij ceea ce se ntmpl ia fiecare iteraie intern pe msur ce criptarea avanseaz. n multe cazuri, anumite combinaii apar mai des dect altele i aceast observaie conduce ia un atac probabilistic. Cellalt progres, mai puin important, este criptanaliza liniar (Matsui, 1994). Aceasta poate 43 sparge DES-ul cu doar 2 texte clare cunoscute. Lucreaz prin combinarea XOR a anumitor bii din textul clar i din textul cifrat pentru a genera un bit. Cnd aceasta se efectueaz repetat, jumtate din bii trebuie s fie 0 i jumtate s fie 1. Totui, adeseori, cifruriie introduc o deviaie ntr-o direcie sau n alta i aceast deviaie, cu toate c este rnic, poate fi exploatat pentru a reduce factorul de munc. Pentru mai multe detalii a se vedea lucrarea lui Matsui. IDEA Poate toat aceast agitaie asupra ntrebrii de ce este DES-ul nesigur este ca i o frecie la un picior de lemn, dar realitatea este c DES-ui, n varianta sa de criptare singular este nc foarte folosit n aplicaii de securizare, cum ar fi cele bancare folosind maini de raportare automat. Dei alegerea lui a fost probabil potrivit ia momentul respectiv, cu zece sau mai muli ani n urm, ea nu mai este demult adecvat. La acest punct, probabil c cititorul se ntreab pe buc dreptate: Dac DES-ul este att de siab, de ce nu a inventat nimeni alt cifru bloc mai bun?". Adevrul este c au fost propuse multe cifruri bloc, printre care BLOWFISH (Schneier, 1994), Crad (Kalinski i Robshaw, 1991), EEAL (Shimizu i Miyaguchi, 1988), KHAFRE (Metkle, 1991), L0KI91 (Brown .a., 1991), xNEWDES (Scott, 1985), REDOC-II (Cusick i Wood, 1991) i SAFER K64(Massey, 1994). Schneier (1996) Ie prezint pe toate acestea i nenumrate altele. Probabil c cel mai interesant i mai important dintre cifruriie bloc post-DES este IDEA (International Data EncrypioE Algorifam) (Lai i Massey, 1990; i Lai, 1992). S studiem acum IDEA mai n detaliu. IDEA a fost proiectat de doi cercettori din Elveia, astfel nct este probabil n afara oricrei directive" trasate de NSA, care ar fi putut s introduc o u secret (trap). Cifrul folosete o cheie pe 128 de bii, care i face imun pentru deceniile care urmeaz la atacurile prin for brut, cele de tipul loteria Chinezeasc" i ntlnirea-la-mijioc". A fost de asemenea proiectat pentru a rezista la criptanaliza diferenial. La momentul actual, nu este cunoscut nici o tehnic sau main care s fie capabile s sparg IDEA. Structura de baz a algoritmului seamn cu DES-ul prin aceea c blocurile de la intrare, de 64 de bii de text clar, sunt alterate printr-o secven de iteraii parametrizate pentru a produce la ieire blocuri de 64 de bii de text cifrat, dup cum este artat i n Fig. 7-10(a). Dat fiind alterarea extensiv ia nivel de bit (pentru fiecare iteraie, fiecare bit de ieire depinde de fiecare bit de intrare), opt iteraii sunt suficiente. Ca toate cifruriie bloc, DEA poate fi utilizat att n modul cu reacie cifrat (CFB) ct i n toate celelalte moduri de nlnuire prezentate la DES.

SEC. 7.1

SECURITATEA REELEI

555

Detaliile unei iteraii sunt prezentate n Fig. 7-10(b). Sunt folosite trei operaii, toate asupra unor 16 numere fr semn pe 16 bii. Aceste operaii sunt XOR, adunare modulo 2 i nmulire modulo 16 2 +1. Toate acestea trei pot fi uor realizate pe un microcalculator pe 16 bii, ignornd prile cele mai semnificative ale rezultatului. Operaiile au proprietatea c oricare dou perechi nu se supun legii de asociativitate sau distributivitate, fcnd criptanaliza i mai dificil. Cheia pe 128 de bii este folosit pentru a genera 52 de subchei de cte 16 bii fiecare, 6 pentru fiecare din cele 8 iteraii i 4 pentru transpoziia final. Decriptarea folosete acelai algoritm, dar cu chei diferite.

iliilii
Iteraia 1 Iteraia 2

Text clar 64 bii

Patru blocuri de intrare pe 16 bii

Iteraia 7
V
v

i>

\<

Iteraia 8
u i' i
1

Transformare f t T ? Text cifrat 64 bii

Patru blocuri de intrare pe 16 bii (+) Adunare pe 16 bii modulo 216 ( V ) nmulire pe 16 bii moduo 2 1 6 + 1 ( # ) SAU exclusiv pe 16 bii

al

(b)

Fig. 7-10. (a)IDEA. (b) Detaliile unei iteraii. Au fost realizate att implementri software ct, i hardware ale algoritmului IDEA. Prima implementare software rula pe un 386 la 33 MHz i realiza criptarea la o vitez de 0.88 Mbps. Pe o main modern, de zece ori mai rapid, pentru o implementare software se poate atinge o vitez de 9 Mbps. La ETH Zurich a fost construit un cip VLSI la 25 de MHz care cripteaz la o rat de 177 Mbps. 7.1.4 Algoritmi cu Cheie Public

Istoric, distribuia cheilor a fost ntotdeauna punctul slab al multor criptosisteme. Indiferent de ct de puternic era un criptosistem, dac un intrus a putut fura cheia, sistemul i-a pierdut valoarea.

556

NIVELUL APLICAIE

CAP. 7

Deoarece toi criptologii au considerat ntotdeauna ca de la sine neles faptul c att pentru criptare ct i pentru decriptare se folosete aceeai cheie (sau una uor derivabil din cealalt) i c aceasta trebuie distribuit tuturor utilizatorilor sistemului, prea a exista ntotdeauna urmtoarea problem inerent: cheile trebuia protejate contra furtului dar, n acelai timp, ele trebuiau distribuite, astfel nct ele nu puteau fi sechestrate ntr-un seif de banc. n 1976, doi cercettori de la Universitatea Stanford, Diffie i Hellman (1976), au propus un tip radical nou de criptosistem n care cheile de criptare i decriptare sunt diferite, iar cheia de decriptare nu poate fi dedus din cheia de criptare. n propunerea lor, algoritmul (cheia) de criptare, E, i algoritmul (cheia) de decriptare, D, trebuiau s satisfac trei cerine. Aceste cerine pot fi exprimate simplificat dup cum urmeaz: 1. D(E(P))=P 2. Este mai mult dect dificil a se deduce D din E. 3. E nu poate fi spart printr-un atac cu text clar ales. Prima cerin spune c, dac se aplic D unui mesaj criptat, E(P), se obine textul clar original, P. Cea de-a doua cerin este clar. Cea de-a treia cerin este necesar deoarece, dup cum vom vedea la un moment dat, intruii pot experimenta i testa algoritmul dup pofta inimii. In aceste condiii, nu exist nici un motiv pentru ca E, cheia de criptare, s nu poat fi fcut public. Metoda lucreaz astfel: o persoan, s spunem Alice, dorind s primeasc mesaje secrete, concepe mai nti cei doi algoritmi EA i DA ce satisfac cerinele de mai sus. Algoritmul de criptare i cheia, EA, sunt fcui apoi publici, de unde i numele de criptografie cu cheie public (n contrast cu criptografia cu cheie secret). Aceasta poate fi realizat prin punerea lor ntr-un fiier pe care oricine dorete poate s l citeasc. Alice public algoritmul de decriptare (pentru a putea fi liber consultat), dar pstreaz cheia de decriptare secret. Astfel, EA este public, dar DA este privat. S vedem acum dac putem rezolva problema stabilirii unui canal sigur ntre Alice i Bob, care nu au mai avut niciodat vreun contact anterior. Att cheia de criptare a Alicei, EA, ct i cea a lui Bob, EB, sunt presupuse a se gsi ntr-un fiier ce poate fi citit de oricine. (De fapt se ateapt ca toi utilizatorii reelei s-i publice cheile lor de criptare imediat ce se conecteaz n reea). Acum Alice ia primul ei mesaj, P, calculeaz EB(P) i l trimite lui Bob. Bob l decripteaz aplicndu-i cheia sa secret DB [adic, el calculeazDB(EB (P))=P\. Nimeni altcineva nu poate citi mesajul criptat, EB(P), deoarece sistemul de criptare este presupus puternic i deoarece este prea greu s se deduc DB(P) din EB(P) public cunoscut. Alice i Bob pot comunica acum ntr-o manier sigur. n acest punct ar fi poate util o observaie asupra terminologiei. Criptografia cu cheie public necesit ca fiecare utilizator s aib dou chei: o cheie public, folosit de toat lumea pentru a cripta mesajele ce-i sunt trimise, i o cheie secret, de care utilizatorul are nevoie ca s-i decripteze mesajele. Ne vom referi n mod constant la aceste chei ca fiind cheia public i, respectiv, cheia privat i le vom deosebi de cheile secrete folosite att pentru criptare ct i pentru decriptare n criptografia convenional (numit i criptografie cu cheie simetric). Algoritmul RSA Singura problem este aceea c avem nevoie de algoritmi care s satisfac complet toate cele trei cerine. Datorit posibilelor avantaje ale criptografiei cu chei publice, muli cercettori au lucrat din greu la acest subiect i au fost deja publicai civa algoritmi. O

SEC. 7.1

SECURITATEA REELEI

557

metod bun a fost descoperit de un grup de la MIT (Rivest .a., 1978). Ea este cunoscut prin iniialele numelor celor trei descoperitori (Rivest, Shamir, Adelman): RSA. Metoda lor este bazat pe cteva principii din teoria numerelor. Vom rezuma mai jos modul n care se folosete aceast metod; pentru detalii, a se consulta articolul. 1. Se aleg dou numere prime,p i q, (de obicei mai mari dect IO100). 2. Se calculeaz n=pxqiz = (p- l)x(q-l). 3. Se alege un numr relativ prim cu z i este notat cu d. 4. Se gsete e astfel nct e x d = 1 mod z. Cu aceti parametri calculai n avans, suntem gata s ncepem criptarea. mprim textul clar (privit ca ir de bii) n blocuri, astfel nct fiecare mesaj de text clar, P, s intre n intervalul 0 < P < n. Aceasta poate fi fcut grupnd textul clar n blocuri de cte k bii, unde k este cel mai mare numr ntreg pentru care inegalitatea 2k < n este adevrat. Pentru a cripta mesajul P, se calculeaz C = F (mod n). Pentru a decripta C, se calculeaz P = Cf (mod n). Se poate demonstra c pentru toi P din intervalul specificat, criptarea i decriptarea sunt funcii inverse una alteia. Pentru a realiza criptarea este nevoie de e i n. Pentru a realiza decriptarea este nevoie de d i n. De aceea, cheia public const din perechea (e, n) iar cheia privat din perechea (d, n). Securitatea metodei este bazat pe dificultatea factorizrii numerelor mari. Dac un criptanalist ar putea factoriza numrul n (public cunoscut), el ar putea gsi/? i q, iar din acestea pe z. Cu z i e cunoscui, criptanaistul l poate calcula pe d folosind algoritmul lui Euclid. Din fericire, matematicienii au ncercat s factorizeze numere mari de cel puin 300 de ani i experiena acumulat sugereaz c aceasta este o problem mai mult dect dificil. In conformitate cu Rivest i colegii si, factorizarea unui numr de 200 de cifre necesit un timp de calcul de 4 miliarde de ani; factorizarea unui numr de 500 de cifre necesit IO25 ani. n ambele cazuri ei presupun c se folosete cel mai bun algoritm de factorizare i un calculator cu timp de execuie a unei instruciuni de 1 usec. Chiar dac viteza calculatoarelor va continua s sporeasc cu un ordin de mrime pe deceniu, vor mai trece secole pn cnd factorizarea unui numr de 500 de cifre va deveni realizabil, moment n care descendenii notri vor alege pur i simplu/ i q mai mari. Un exemplu didactic banal pentru algoritmul RSA este dat n Fig. 7-11. Pentru acest exemplu am alesp = 3 i q = 11, rezultnd n = 33 i z = 20. O valoare potivit pentru d este d = 7, deoarece 7 i 20 nu au factori comuni. Cu aceste alegeri, e poate fi gsit prin rezolvarea ecuaiei le = 1 (mod 20), care d e - 3. Textul cifrat, C, pentru textul clar al mesajului, P, este dat de C = P3 (mod 33). Textul cifrat este decriptat de ctre receptor dup regula P = C7 (mod 33). Figura prezint ca exemplu criptarea i decriptarea textului clar SUZANNE". Deoarece numerele prime alese pentru acest exemplu sunt prea mici, P poate fi mai mic dect 33, astfel nct blocul de text clar poate conine doar un singur caracter. Rezultatul este un cifru cu substituie monoalfabetic, nu foarte impresionant. Dac n locul acestora am fi ales j? i q = 10100, am fi avut n = IO200, astfel nct fiecare bloc poate fi de pn la 664 bii 664 200 (2 = 10 ) sau 83 de caractere de 8 bii, fa de 8 caractere pentru DES.

558
Textclar(P)
r
K

NIVELUL APLICAIE

CAP. 7

Text cifrat (C)


A

Dup decriptare

Simbolic Numeric

P3
6859 9261 17576 2744 2744 125
V

P3 (mod 33)

c7
13492928512 1801088541 1280000000 78125 78125 8031810176

C7 (mod 33)

Simbolic

S U Z A N N E

19 21 26

14 14 05

01

28 21 20 1 5 5
26
J

19 21 26 1 14 14 5

S U A N N E

Calcul efectuat de emitor

Calcul efectuat de receptor

Fig. 7-11. Un exemplu de algoritm RSA. Trebuie subliniat c folosirea RSA n modul descris este similar folosirii DES-ului n modul ECB - blocuri de intrare identice conduc la blocuri de ieire identice. De aceea este necesar o anumit form de nlnuire pentru criptarea datelor. Totui, n practic, multe sisteme bazate pe RSA folosesc criptografia cu cheie public n principal pentru distribuirea cheilor de sesiune de unic folosin utilizate pentru DES, IDEA sau ali algoritmi similari. RSA este prea lent pentru a cripta eficient volume mari de date. Ali Algoritmi cu Cheie Public Cu toate c RSA este larg rspndit, nu este n nici un caz singurul algoritm cu cheie public cunoscut. Primul algoritm cu cheie public a fost algoritmul rucsacului (Merkle i Hellman, 1978). Ideea este c cineva posed un numr mare de obiecte, fiecare cu greutate diferit. Posesorul codific mesajul prin selecia secret a unei submulimi de obiecte i plasarea lor n rucsac. Greutatea total a obiectelor din rucsac este fcut public, ca i lista tuturor obiectelor posibile. Lista obiectelor din rucsac este inut secret. Cu cteva restricii suplimentare, problema gsirii unei liste de obiecte cu greutatea dat a fost gndit ca fiind imposibil de calculat i formeaz baza pentru algoritmul cu cheie public. Inventatorul algoritmului, Ralph Merkle, a fost aproape sigur c acest algoritm nu poate fi spart, astfel c el a oferit o recompens de 100 de dolari oricui l va putea sparge. Adi Shamir (S"-ul din RSA) 1-a spart cu promptitudine i a primit recompensa. Fr a-i pierde curajul, Merkle i-a ntrit algoritmul i a oferit o recompens de 1000 de dolari oricui va putea sparge noul algoritm. Ron Rivest (R" -ui din RSA) 1-a spart cu promptitudine i a luat banii. Merkle nu a ndrznit s ofere 10000 de dolari pentru urmtoarea versiune, astfel c A" (Leonard Adelman) nu a avut noroc. Cu toate c a fost corectat i mbuntit din nou, algoritmul rucsacului nu este considerat sigur i este rareori utilizat.Alte scheme cu cheie public sunt bazate pe dificultatea calculului logaritmilor discrei (Rabin, 1979), Algoritmii care folosesc acest principiu au fost inventai de El Gamal (1985) i Schnorr (1991). Exist cteva alte scheme, cum ar fi cele bazate pe curbe eliptice (Menezes i Vanstone, 1993), dar cele trei categorii majore sunt cele bazate pe dificultatea factorizrii numerelor mari, a calculului logaritmilor discrei i a determinrii coninutului unui rucsac din greutatea sa. Aceste probleme

SEC. 7.1

SECURITATEA REELEI

559

sunt considerate ca fiind autentic dificile deoarece matematicienii le studiaz de muli ani fr vreun progres notabil. 7,1.5 Protocoale de Autentificare

Autentificarea (autfientication) este tehnica prin care un proces verific dac partenerul su de comunicaie este cel presupus a fi i nu un impostor. Verificarea identitii unui proces de la distan, n cazul unui intrus activ i ruvoitor, este surprinztor de dificil i necesit protocoale complexe bazate pe criptografie. In aceast seciune, vom studia cteva din multele protocoale de autentificare folosite n reelele nesigure de calculatoare. Ca fapt divers, anumii oameni confund autorizarea cu autentificarea. Autentificarea are de-a face cu chestiunea dac comunici sau nu cu un anumit proces. Autorizarea se ocup cu ceea.ce i este permis unui proces s fac. De exemplu, un proces client contacteaz un server de fiiere i spune: Eu sunt procesul lui Scott i vreau s terg fiierul cookbookoid", Din punctul de vedere ai serverului de fiiere, trebuie gsit rspunsul la dou ntrebri: 1. 2. Chiar este procesul iui Scott? (autentificare) Are Scott voie s tearg cookbooLoldl (autorizare)

Doar dup ce s-a rspuns afirmativ, fr ambiguitate ia ambele ntrebri poate avea loc aciunea cerut. ntrebarea de mai nainte este cu adevrat una cheie. Odat ce serverul de fiiere tie cu cine vorbete, verificarea autorizrii este doar o problem de cutare n intrrile din tabelele locale. Din acest motiv, n aceast seciune ne vom concentra asupra autentificrii. Modelul genera! pe care l folosesc toate protocoalele de autentificare este urmloru. Un utilizator iniiator (de fapt un proces), s spunem Alice, vrea s stabileasc o conexiune sigur cu un al doilea utilizator, Bob. Alice i Bob sunt numii uneori protagoniti (principals), personajele principale din povestirea noastr. Bob este un bancher sau un centra autorizat de distribuire a cheilor (KDC - Key DistrlfentioK Center), care este ntotdeauna credibil. Urmeaz.alte cteva schimburi de mesaje n diferite direcii. n timp ce aceste mesaje sunt transmise, un intrus mecher. Trudy+, poate intercepta, modifica sau rspunde a mesaje n scopul de a-i nela pe Alice i Bob sau doar pentru a ncurca treburile. Cu toate acestea, ia ncheierea protocolului de comunicare, Alice este sigur c a vorbit cu Bob, iar acesta este sigur c a vorbit cu Alice. Mai mult dect att. n cele mai multe protocoale, cei doi vor fi stabilit i o chele secret de sesiune, pentru folosirea n conversaiile viitoare. In practic, din motive de performan, tot traficul de date este criptat folosind criptografia cu cheie secret, n timp ce criptografia cu cheie public este larg folosit n protocoale de autentificare i pentru stabilirea unei chei de sesiune. Motivul pentru utilizarea unei chei de sesiune noi, aleas aleatoriu pentru fiecare conexiune este de a minimiza cantitatea de trafic care este transmis cu cheile secrete sau cheile publice ale utilizatorilor, pentru a reduce cantitatea de text cifrat pe care intrusul o poate obine i pentru a reduce stricciunile care se pot produce dac un proces eueaz, iar vidajul su de memorie (core) cade n mini rele. Este de sperat c singura cheie prezent va fi cheia de sesiune. Toate cheile permanente trebuie s fie anulate cu grij dup stabilirea sesiunii.
+

Mulumesc lui Kaufmai! .a.23 (1995) pentru a fi dezvluit numele ei. (n.a.)

56

NIVELUL APLICAIE

CAP. 7

Autentificare Bazat pe Cheie Secret Partajat


Pentru primul nostru protocol de autentificare vom presupune c Alice i Bob partajeaz deja o cheie secret, KAB (n protocoalele formale vom abrevia Alice cu A i, respectiv, Bob cu B). Aceast cheie partajat trebuie sa fi fost stabilit anterior prin telefon sau direct, dar, pentru orice eventualitate, nu prin intermediul unei reele (nesigure). Protocolul este bazat pe un principiu ce se gsete n multe protocoale de autentificare: o parte trimite un numr aleatoriu celeilalte, care l transform apoi ntr-un anumit mod i retumeaz rezultatul. Astfel de protocoale se numesc protocoale provocare-rspuns (challenge-response). In acest protocol i n cele ce urmeaz va fi folosit urmtoarea notaie: A, B reprezint identitile lui Alice i Bob Ri reprezint provocrile, unde indicele identific pe cel ce trimite provocarea K( sunt cheile, unde i indic proprietarul; Ks este cheia de sesiune Secvena de mesaje pentru primul nostru protocol de autentificare cu cheie partajat este ilustrat n Fig. 7-12. n mesajul 1 Alice i-trimite lui Bob identitatea sa, A, ntr-un mod pe care Bob l nelege. Bineneles c Bob nu are nici un mijloc de a cunoate dac acest mesaj vine de la Alice sau de la Trudy, astfel nct el alege o provocare, un numr aleatoriu mare, RB, i l trimite napoi spre Alice" sub forma mesajului 2, ca text clar. Alice cripteaz atunci mesajul cu cheia pe care ea o partajeaz cu Bob i trimite textul cifrat K^iRg} napoi, ca mesajul 3. Cnd Bob vede acest mesaj el tie imediat c vine de la Alice, deoarece Trudy nu cunoate KM i astfel nu putea s genereze mesajul respectiv. Mai mult dect att, deoarece RB a fost ales aleatoriu dintr-un spaiu mare (s spunem, de exemplu, numere aleatorii pe 128 de bii), este destui de puin probabil ca Trudy s fi vzut RB i rspunsul asociat lui ntr-o sesiune anterioar.
1 A
R
D

Alice

4 5

K A B (R A )

Fig. 7-12. Autentificare n doi pai folosind un protocol de tipul provocare-rspuns. La acest punct, Bob este sigur c vorbete cu Alice, dar Alice nu este sigur de nimic. S-ar putea ca Trudy s fi interceptat mesajul 1 i s fi trimis napoi replica RB. Poate c Bob a murit azi-noapte. Pentru a descoperi cu cine vorbete, Alice alege un numr aleatoriu RA i l trimite lui Bob ca text clar, n mesajul 4. Cnd Bob rspunde cu KAB(RA), Alice tie c vorbete cu Bob. Dac ei vor s stabileasc acum o cheie de sesiune, Alice poate alege una, Ks, i o poate trimite lui Bob criptat cu KAB.

Bob

3 KAB{Fy

SEC. 7.1

SECURITATEA REELEI

561

Cu toate c protocolul din Fig. 7-12 funcioneaz, el conine mesaje n plus. Acestea pot fi eliminate, dup cum este ilustrat n Fig. 7-13. Aici Alice iniiaz protocolul provocare-rspuns, n loc de a-1 atepta pe Bob s o fac. Similar, n timp ce rspunde la provocarea Alicei, Bob o trimite pe a sa. ntregul protocol poate fi redus la trei mesaje n loc de cinci.
1 A,R A

Alice

RB, K A B (R A )

K A B (R B )

Fig. 7-13. Un protocol mai scurt de autentificare n doi pai. Este acest nou protocol o mbuntire a celui original? ntr-un anumit sens da: este mai scurt. Din nefericire, i el este greit. n anumite situaii, Trudy poate nela acest protocol folosind ceea ce se numete atacul prin reflexie. n particular, Trudy l poate sparge dac este posibil s deschid sesiuni multiple cu Bob la un moment dat. Aceast situaie ar fi adevrat, de exemplu, dac Bob este o banc i este pregtit s accepte simultan mai multe conexiuni cu maini de efectuat pli. Atacul prin reflexie al lui Trudy este prezentat n Fig. 7-14. El pornete cu faptul c Trudy pretinde c este Alice i trimite RT. Bob rspunde, ca de obicei, cu propria sa provocare, RB. Acum Trudy este lovit. Ce poate s fac? Nu cunoate K^Rg).
A, RT

Prima sesiune

udy

A,R B

_Q O

A doua sesiune

K AB (RB)

Prima sesiune

Fig. 7-14. Atacul prin reflexie. Ea poate deschide o a doua sesiune cu mesajul 3, furniznd RB luat din mesajul 2 ca provocare a ei. Bob l cripteaz calm i trimite napoi KAB(RB) n mesajul 4. Acum Trudy are informaia care i lipsea, aa c poate s-i termine prima sesiune i s o abandoneze pe cea de-a doua. Bob este acum convins c Trudy este Alice, aa c atunci cnd ea ntreab de balana contului su bancar, el i-o d fr nici o problem. Apoi cnd ea i cere s transfere toi banii la o banc secret din Elveia, el face asta fr nici un moment de ezitare.

Bob

562
Morala aceste povestiri este:

NIVELUL APLICATE

CAP. 7

A proiecta un protocol corect de autentificare este mai greu dect pare.

Cele ce urmeaz sunt trei reguli generale adeseori utile: Iniiatorul s dovedeasc cine este naintea celui care rspunde. n acest caz, Bob transmite informaii importante nainte ca Trudy s-i fi dat vreo dovad c este cine pretinde a fi. Iniiatorul i cel ce rspunde s folosesc chei diferite pentru dovad, chiar dac aceasta presupune existena a dou chei partajate K^i K'AB. iniiatorul i cel ce rspunde s-i extrag provocrile din mulimi diferite. De exemplu, iniiatorul trebuie s foloseasc numere pare, iar cel ce rspunde s foloseasc numere impare. Aici au fost violate toate cele trei reguli, cu rezultate dezastruoase. De notat c primul nostru protocol de autentificare (cel cu cinci mesaje) cerea ca Alice s-i demonstreze mai nti identitatea, astfel nct protocolul nu este subiect pentru atacul prin reflexie. Stabilirea anei chei secrete: schimbul de chei Diffie-Hellman Am presupus c Bob i Alice mpart o cheie secret. S presupunem c nu este aa: Cum pot ei s stabileasc una? O modalitate ar fi ca Alice s- sune pe Bob i s-i dea cheia ei ia telefon, dar el probabil va ncepe s se ntrebe: Cum tiu eu c eti Alice i nu Trudy?". Ei ar putea ncerca s aranjeze o ntlnire, fiecare din ei aducnd un paaport, un permis de conducere i trei cri de credit semnificative, dar fiind oameni ocupai, nu vor fi capabili s gseasc, vreme de luni de zile, o dat acceptabil pentru amndoi. Din fericire, orict de incredibil ar prea, exist un mod pentru cei ce sunt total strini s stabileasc, chiar la lumina zilei, o cheie secret partajat, cu Trudy nregistrnd grijulie fiecare mesaj. Protocolul care permite strinilor s stabileasc o cheie secret partajat se numete interschimhui de chei Diffie-Helimaii (Diffie i Hellman, 1976) i lucreaz astfel. Alice i Bob trebuie s se pun de acord asupra a dou numere prime mari, n i g, unde (n~l)/2 este de asemenea prim i asupra lui g se aplic anumite condiii. Aceste numere trebuie s fie publice, astfel c fiecare din ei trebuie doar s aleag n ig i s o spun celuilalt, n mod deschis. Acum Alice alege un numr mare (s spunem pe 512 bii), JC, i l pstreaz secret. Similar, Bob alege un numr mare, secret, y.
Alice alege x Bob aiege y

1 <
xy

] n, g, g mod n jH g mod n f-

ca
Bob calculeaz {g x mod n) v = g x y mod n

Alice calculeaz f g v mod n) x


= g mod n
,

Fig. 745. Schimbul de cheie Diffie-Hellman.

SEC. 7.1

SECURITATEA REELEI

563

Alice iniiaz protocolul de schimb al cheii trimindu-i lui Bob un mesaj ce conine (n, g, g* mod n), dup cum se arat n Fig. 7-15. Bob rspunde trimindu-i lui Alice un mesaj ce conine g mod n. Acum Alice are numrul pe care i 1-a trimis Bob i l ridic la puterea x pentru a obine (/ mod rif. Bob efectueaz o operaie similar pentru a obine (f mod rif. Din legile aritmeticii modulare, ambele calcule duc hgxy mod n. Iat cum Alice i Bob partajeaz acum o cheie secret/ 7 mod n. Este evident c Trudy vede ambele mesaje. Ea cunoate pe g i pe n din mesajul 1. Dac ea ar putea calcula x i y ar putea s descopere cheia secret. Necazul este c, dat fiind doar g* mod n, ea nu poate afla pe x. Nu este cunoscut nici un algoritm practic pentru calculul logaritmilor discrei modulo un numr prim foarte mare. Pentru a face exemplul anterior mai concret, vom folosi (complet nerealist) valorile n = 47 ig = 3. Alice alege x = 8 i Bob alegea = 10. Ambele chei sunt pstrate secrete. Mesajul lui Alice ctre Bob este (47, 3, 28) deoarece 3S mod 47 este 28. Mesajul lui Bob ctre Alice este (17). Alice calculeaz 178 mod 47, care este 4. Bob calculeaz 28 10 mod 47, care este 4. Alice i Bob au determinat independent cheia secret care este 4. Trudy are de rezolvat ecuaia 3* mod 47 = 28 care poate fi fcut prin cutare exhaustiv n cazul unor numere mici ca acestea, dar nu i atunci cnd toate numerele sunt lungi de sute de bii. Toi algoritmii cunoscui la ora actual iau prea mult timp, chiar i atunci cnd sunt rulai folosind un supercalculator masiv paralel. n ciuda eleganei algoritmului Diffie-Hellman, exist o problem: cnd Bob ia tripletul (47, 3, 28), cum tie el c este de la Alice i nu de la Trudy? Nu exist nici o modalitate pentru aceasta. Din nefericire Trudy poate exploata acest fapt pentru a-i nela att pe Alice ct i pe Bob, dup cum este ilustrat n Fig. 7-16. Aici, cnd Alice i Bob l aleg pe x, respectiv pe y, Trudy alege propriul su numr aleatoriu, z. Alice trimite mesajul 1, destinat lui Bob. Trudy l intercepteaz i trimite mesajul 2 lui Bob, folosind g i n coreci (care sunt disponibili public), dar cu al su z n loc de x. De asemenea ea trimite mesajul 3 napoi lui Alice. Mai trziu Bob i trimite lui Alice mesajul 4, pe care Trudy l intercepteaz din nou i l pstreaz.
Alice alege x n, g, g mod n
0)

Trudy aiege z

Bob aege y

n,g,g modn

g modn
g y mod n

Fig. 7-16. Atacul de tip gleata brigzii. Acum fiecare efectueaz aritmetica modular. Alice calculeaz cheia secret ca fiind g* mod n i la fel face i Truly (pentru mesajele lui Alice). Bob calculeaz /z mod n i la fel face i Trudy (pentru mesajele iui Bob). Alice crede c vorbete cu Bob, aa c ea stabilete o sesiune de cheie (cu Trudy). La fel face i Bob. Fiecare mesaj pe care Alice l trimite n sesiunea criptat este capturat de Trudy, memorat, modificat la dorin i apoi (opional) transmis lui Bob. Similar n cealalt direcie. Trudy vede orice i poate modifica toate mesajele la dorin, n timp ce att Alice ct i Bob triesc cu iluzia c au un canal de comunicaie sigur de la unul
2

564

NIVELUL APLICAIE

CAP. 7

la cellalt. Acest atac este cunoscut sub numele de atacul gleata brigzii de pompieri (bucket brigade attack), deoarece el seamn vag cu un departament de pompieri de pe vremuri trecnd din mn n mn gleile de-a lungul liniei de la maina de pompieri la foc. El se mai numete i atacul omul-din-mijloc (men-n-the-middle) i nu trebuie confundat cu atacul ntlnirea-la-mijloc (mee-n-the-middle) asupra cifrurilor bloc. Din fericire, algoritmi mai compleci pot para acest atac. Autentificarea Folosind un Centru de Distribuia Cheilor Stabilirea unui secret partajat cu un strin a mers destul de bine, dar nu n ntregime. Pe de alt parte, probabil c nici nu merit s fie fcut (atacul strugurilor acri). Pentru a vorbi cu n oameni n acest mod ar fi necesare n chei. Pentru persoanele foarte cunoscute, gestiunea cheilor ar deveni o adevrat pacoste, n special dac fiecare cheie trebuie stocat separat pe cte o bucat de cartel de plastic. 0 abordare diferit o reprezint introducerea unui centru autorizat de distribuie a cheilor (iCpC - Key Distribution Center). n acest model, fiecare utilizator are o singur cheie partajat cu fCDC. Autentificarea i gestiunea cheilor de sesiune merg acum prin intermediul KDC. Cel mai ijmplu i mai cunoscut protocol de autentificare KDC este broasca-oi-gura-mare (wide-mouth frog) flSurrows .a., 1990) (aceasta era porecla inventatorului su, Burrows, cptat n timpul facultii). Acest protocol este ilustrat n Fig. 7-17.
1

A,KAB,KS

( }

K l& K \

!\g {Pi, \}

*~ O
i

Fig. 7-17. Protocolul de autentificare broasca-cu-gura-mare. Ideea din spatele protocolului broasca-cu-gura-mare este simpl: Alice alege o cheie de sesiune, fcs> ^ anun KDC c vrea s vorbeasc cu Bob folosind Ks. Acest mesaj este criptat cu cheia secret pe care Alice o mparte cu KDC, KA. KDC decripteaz acest mesaj, extrage identitatea lui Bob i cheia de sesiune. Apoi el construiete un nou mesaj ce conine identitatea lui Alice i cheia de sesiune i trimite acest mesaj lui Bob. Criptarea este fcut, cu KB, cheia secret pe care Bob o mparte cu KDC. Cnd Bob decripteaz mesajul, el afl c Alice vrea s vorbeasc cu el i cheia pe care aceasta vrea s o utilizeze. Autentificarea are loc gratuit. KDC tie c mesajul 1 trebuie s fi venit de la Alice, deoarece nimeni altcineva nu poate s-1 cripteze cu cheia secret a Alicei. Similar, Bob tie sigur c mesajul 2 vine de la KDC, n care el are ncredere, deoarece nimeni altcineva nu mai cunoate cheia lui secret. Din nefericire, acest protocol prezint o grav imperfeciune. Trudy are nevoie de ceva bani, aa c ea imagineaz un serviciu pe care l poate executa pentru Alice, face o ofert atractiv i obine postul. Dup ce i face treaba, Trudy cere politicos lui Alice s-i plteasc transferndu-i banii prin

SEC. 7.1

SECURITATEA REELEI

565

banc. Aa c Alice stabilete o cheie de sesiune cu bancherul ei, Bob. Apoi ea i trimite lui Bob un mesaj prin care cere ca banii respectivi s fie transferai n contul lui Trudy. In acelai timp, Trudy se ntoarce la vechile ei obiceiuri, furturile prin reea. Ea copiaz att mesajul 2 din Fig. 7-17, ct i cererea de transferare a banilor care l urmeaz. Mai trziu ea le trimite lui Bob. Bob le ia i gndete: Alice probabil c a angajat-o din nou pe Trudy. Cu siguran c ea lucreaz bine." Bob transfer din nou o cantitate de bani egal cu prima din contul lui Alice n al lui Trudy. La ctva timp dup cea de-a 50-a pereche de mesaje pe care o primete, Bob alearg afar din biroul su pentru a o gsi pe Trudy i a-i oferi un mprumut mare astfel ca ea s-i poat extinde afacerea ce se dovedete a fi att de plin de succes. Problema se numete atacul prin replic. Sunt cteva soluii posibile la atacul prin replic. Prima este de a include n fiecare mesaj o amprent de timp. Astfel, dac cineva primete un mesaj expirat, l ignor. Necazul cu aceast abordare este c ntr-o reea ceasurile nu sunt niciodat perfect sincronizate, astfel nct va exista un ntreg interval de timp n care o amprent de timp este valid. Trudy poate rspunde la mesaj n timpul acestui interval i s scape. Cea de-a doua soluie este s se pun, n fiecare mesaj, un numr de mesaj unic, folosibil o singur dat, numit n general momentan (nonce). Fiecare parte trebuie s-i rememoreze toate numerele momentane folosite anterior i s rejecteze orice mesaj ce conine un numr momentan folosit deja. Dar numerele momentane trebuie rememorate la nesfrit, chiar i atunci cnd Trudy ncearc s rspund la un mesaj vechi de 5 ani. De asemenea, dac o main cade i i pierde lista de numere momentane, ea va fi din nou vulnerabil la un atac prin replic. Amprentele de timp i numerele momentane pot fi combinate pentru a limita timpul n care acestea din urm nu trebuie terse, dar este evident c protocolul devine ceva mai complicat. O abordare i mai sofisticat a autentificrii este folosirea unui protocol provocare-rspuns multici. Un exemplu binecunoscut de astfel de protocol este protocolul de autentificare Needham-Schroeder (Needham i Schroeder, 1978). O variant a acestuia este prezentat n Fig. 7-18.

RA, A, B K A (R A , B, Ks, KB(A, K s ))


o

O CQ

-1), RB KS(RB-1)

Fig. 7-18. Protocolul de autentificare Needham-Schroeder. n acest protocol, Alice ncepe prin a anuna KDC c ea dorete s vorbeasc cu Bob. Acest mesaj conine un numr aleatoriu mare, RA, pe post de numr momentan. KDC trimite napoi mesajul 2 coninnd numrul aleatoriu al lui Alice mpreun cu un tichet pe care ea l poate trimite lui Bob. Scopul numrului aleatoriu este acela de a o asigura pe Alice c mesajul 2 este proaspt i nu o replic. Identitatea lui Bob este de asemenea inclus pentru cazul n

566

NIVELUL APLICAIE

CAP. 7

care lui Trudy i vine amuzanta idee s nlocuiasc J5-ul din mesajul 1 cu propria sa identitate, astfel nct KDC s cripteze tichetul de la sfritul mesajului 2 cu KT n loc de KB. Tichetul criptat cu KB este inclus n interiorul mesajului criptat, pentru a o mpiedica pe Trudy s-1 nlocuiasc cu altceva pe drumul su napoi spre Alice. Acum Alice i trimite tichetul lui Bob, mpreun cu un nou numr aleatoriu, RA2, cripta! cu cheia de sesiune, Ks. n mesajul 4, Bob trimite napoi KS(RA2 -1) pentru a-i dovedi lui Alice c vorbete cu adevratul Bob. Trimiterea napoi a lui KS(RA2) nu ar fi mers, deoarece ar fi fost posibil ca Trudy tocmai s-1 fi furat din mesajul 3. Dup primirea mesajului 4, Alice este convins c vorbete cu Bob i c pn n acest moment nu s-au folosit replici falsificate. In plus, ea tocmai a generat RA2 cu cteva milisecunde mai nainte. Scopul mesajului 5 este de a-1 convinge pe Bob c este chiar Alice cea cu care vorbete i c nu s-au folosit replici falsificate. Posibilitatea oricrui tip de atac prin replic este eliminat, deoarece fiecare parte genereaz o provocare i rspunde ia ea. Cu toate c protocolul pare a fi destul de solid, el are o mic scpare. Dac Trudy reuete s obin o cheie de sesiune veche n text dar, ea poate s iniieze o nou sesiune cu Bob rspunznd la mesajul 3 corespunztor cheii compromise i convingndu-1 pe acesta c ea este Alice (Denning i Sacco, 1981). De aceast dat ea poate prda contul din banc al lui Alice fr s execute nici o operaie autorizat. Needham i Schroeder au publicat un protocol care corecteaz aceast problem (Needhani i Schroeder, 1987). n acelai numr al aceluiai jurnal, Otway i Rees (1987) au publicat de asemenea un protocol care rezolv problema pe o cale mai scurt. Figura 7-19 ilustreaz un protocol OtwayRees uor modificat.

A, B, R, K A (A, B, R, RA) A, K A { , B , R, RA), 8, KB (A, B, R, RJ

.2 <

o
Q

K,{RB, IC) K A {R A , K s ;

Fig. 7-19. Protocolul de autentificare Otway-Rees (puin simplificat). n protocolul Otway-Rees, Alice ncepe prin a genera o pereche de numere aleatorii, R, care va fi utilizat ca identificator comun, iRA, pe care Alice l va folosi pentru a-1 provoca pe Bob. Cnd Bob preia acest mesaj, el construiete un mesaj nou din partea criptat a mesajului lui Alice i unul analog din partea sa. Ambele pri criptate cu KA i KB> identificnd pe Alice i pe Bob, conin identificatorul comun i o provocare. KDC verific dac R din ambele pri este acelai. S-ar putea s nu fie, deoarece Trudy a intervenit cu R n mesajul 1 sau a nlocuit partea din mesajul 2. Dac cele dou Rs se potrivesc, KDC crede c mesajul de cerere de la Bob este valid. Ei genereaz atunci o cheie de sesiune i o cripteaz de dou ori, o dat pentru Alice i o dat pentru Bob. Fiecare mesaj conine numrul

SEC. 7.1

SECURITATEA REELEI

567

aleatoriu al receptorului, ca dovad c mesajul a fost generat de KDC i nu de Trudy. n acest moment att Alice ct i Bob sunt n posesia unei aceleiai chei de sesiune i pot ncepe comunicarea. Prima dat cnd ei vor schimba mesaje de date, fiecare va putea vedea c cellalt are o copie identic a lui Ks, astfel autentificarea fiind complet. Autentificarea folosind Kerberos Un protocol de autentificare folosit n multe sisteme de timp real este Kerberos, care se bazeaz pe o variant a protocolului Needham-Schroeder. Numele su vine de la un cine cu mai multe capete din mitologia greac, ce era folosit pentru a pzi intrarea n Hades (probabil pentru a-i ine pe cei nedorii afar). Kerberos a fost proiectat la M.I.T. pentru a permite utilizatorilor de la staiile de lucru s acceseze resursele reelei ntr-un mod sigur. Cea mai mare diferen dintre el i Needham-Schroeder este presupunerea lui c toate ceasurile sunt destul de bine sincronizate. Protocolul a trecut prin cteva iteraii. V4 este versiunea cea mai larg utilizat n industrie, aa c pe aceasta o vom descrie. Dup care vom spune cteva cuvinte despre succesoarea sa, V5. Pentru mai multe informaii, vezi (Neuman i Ts'o, 1994; Steiner .a., 1988). Kerberos implic trei servere n afar de Alice (staia de lucru a clientului): 1. Serverul de autentificare (AS - Authentication Server): verific utilizatorii n timpul conectrii. 2. Serverul de acordare a Tichetelor (TGS - Ticket-Graning Server): emite demonstrarea identitii tichetelor". 3. Serverul Bob: realizeaz efectiv aciunea pecare o dorete Alice AS este similar unui KDC prin aceea c el partajeaz o parol secret cu orice utilizator. Sarcina TGS este de a emite tichete care pot convinge serverele reale c acela care deine un tichet TGS este ntr-adevr cel ce pretinde a fi. Pentru a porni o sesiune, Alice st aezat la o staie de lucru public arbitrar i-i tasteaz numele. Staia de lucru transmite numele ei la AS ca text clar, dup cum este artat n Fig. 7-20. Ceea ce vine napoi este o cheie de sesiune mpreun cu un tichet KTCS(A, Ks), destinate TGS-ului. Aceste articole sunt mpachetate mpreun i criptate folosind cheia secret a lui Alice, astfel nct doar Alice s le poat decripta. Doar cnd sosete mesajul 2, staia de lucru i va cere lui Alice parola. Parola este folosit pentru a genera KA, n scopul decriptrii mesajului 2 i obinerii cheii de sesiune i tichetului TGS din interiorul acestui mesaj. n acest moment, staia de lucru nlocuiete parola lui Alice pentru a fi sigur c ea se gsete n interiorul staiei de lucru pentru cel mult cteva milisecunde. Dac Trudy ncearc s se conecteze ca Alice, parola pe care o introduce va fi greit i staia de lucru va detecta acest lucru deoarece partea standard a mesajului 2 va fi incorect. Dup conectare Alice trebuie s anune staia de lucru c dorete s-1 contacteze pe Bob, serverul de fiiere. Atunci staia de lucru trimite spre TGS mesajul 3 cernd un tichet pentru a1 folosi cu Bob. Elementul cheie n aceast cerere este KTGS(A, Ks), care este V4criptat cu cheia secret a TGS i este folosit ca dovad c transmitorul este chiar Alice. TGS rspunde prin crearea unei chei de sesiune KAB, pentru ca Alice s o foloseasc cu Bob. Dou versiuni ale acesteia sunt transmise napoi. Prima este criptat doar cu Ks, astfel nct Alice s poat s o citeasc. A doua este criptat cu cheia lui Bob, KB, astfel nct Bob s o poat citi.

568

NIVELUL APLICAIE

CAP. 7

1 2

A <

Conectare

MKs'Kres^Ks K T G S (A, KS), B, K S (t)

CD O

Ua-

; (B, K ), K (A, K AB'' * B AB B ' " ' * AB


X X

Obine un tichet

(A, K A B ), K A B (t) K iR (t+1}

.ucreaz

Fig. 7-2(1. Modul de operare la Kerberos V4. Tnidy poate copia mesajul 3 i poate ncerca s-1 utilizeze din nou, dar ea va fi mpiedicat de amprenta de timp, t, trimis mpreun cu el. Trudy nu poate nlocui amprenta de timp cu una mai recent, deoarece ea nu cunoate Ks, cheia de sesiune pe care o folosete Alice pentru a vorbi cu TGS. Chiar dac Trudy rspunde repede ia mesajul 3, tot ceea ce va obine este o alt copie a mesajului 4, pe care nu a putut s-i decripteze prima dat i nici a doua-oar. Acum Alice i poate trimite iui Bob KAB pentru a stabili o sesiune cu el. Acest schimb este de asemenea cu amprente de timp. Rspunsul este pentru Alice dovada c ea vorbete chiar cu Bob, nu cu Trudy. Dup o serie de schimburi, Alice poate comunica cu Bob sub acoperirea cheii KAB. Dac mai trziu se decide c are nevoie s comunice cu alt server, Carol, ea va repeta doar mesajul 3 spre TGS, specificnd doar C n loc de B. TGS va rspunde cu promptitudine cu un tichet criptat cu Kc, pe care Alice l poate transmite lui Carol i pe care Carol i va accepta ca dovad c el vine de la Alice. Scopul ntregii aciuni este c acum Alice poate face acces la serverele din toat reeaua ntr-un mod sigur i c parola sa nu va fi niciodat transmis prin reea. De fapt parola trebuie s existe pe staia de lucru doar pentru cteva miiisecunde. Cu toate acestea, trebuie remarcat c fiecare server face propria sa autorizare. Atunci cnd Alice i prezint tichetul su lui Bob, acest tichet doar i demonstreaz lui Bob cine -a trimis. Ceea ce i este permis lui Alice s fac, depinde doar de Bob. Deoarece proiectanii Kerberos-ului nu s-au ateptat ca ntreaga lume s aib ncredere ntr-un singur server de autentificare, ei au prevzut posibilitatea de a avea domenii multiple, fiecare cu propriul su AS i TGS. Pentru a obine un tichet de Ia un server dintr-un domeniu de la distan, Alice ar trebui s cear propriului su TGS un tichet acceptat de TGS-uI din domeniul de la distan. Dac TGS-ui de la distan este nregistrat n TGS-ul local (n acelai mod n care sunt serverele locale), TGS-ul local i va da lui Alice un tichet valid pentru TGS-ul de la distan. Astfel ea poate s lucreze acolo, cum ar fi s ia tichete pentru serverele din acest domeniu. De notat totui c, pentru ca pri din dou domenii diferite s conlucreze, fiecare trebuie s se ncread n TGS-ul celuilalt. Kerberos V5 este mai elegant ca V4 i are o suprancrcare mai mare. Pentru a descrie tipurile de date el folosete i OSI ASNI.l (Abstract Syntax Notation 1) prezentnd mici modificri n protocoale. Mai mult dect att, are timpi de via mai mari pentru tichete, permite rennoirea

SEC. 7.1

SECURITATEA REELEI

569

tichetelor i va elibera tichete postdatate. n plus, cei puin n teorie, nu este dependent de DES, cum este V4, i suport domenii multiple. Autentificarea Folosind Criptografia cu Cheie Public Autentificarea mutual poate fi realizat i cu ajutorul criptografiei cu cheie public. Pentru nceput, s presupunem c Alice i Bob i cunosc deja unul altuia cheile publice (pentru ca problema s nu fie banal). Ei vor s stabileasc o sesiune n care s foloseasc apoi criptografia cu cheie secret, deoarece aceasta este de obicei de 1000 pn la 100 de ori mai rapid dect criptografia cu cheie public. Scopul schimbului iniial este deci de a se autentifica unul pe cellalt i de a se pune de acord asupra unei chei secrete. Acest nceput poate fi fcut n diferite moduri. Un mod tipic este cel artat n Fig. 7-21. Aici Alice ncepe prin a-i cripta identitatea i un numr aleatoriu, RA, folosind cheia public a lui Bob, EB. Cnd primete acest mesaj, Bob nu are nici o idee dac mesajul provine de la Alice sau de ia Trudy, ns intr n joc i i trimite napoi lui Alice un mesaj coninnd RA, propriul su numr aleatoriu, RB, i o propunere de cheie de sesiune Ks.

E B (A,R A ) h
05

E A (R A , RB, Ks}

1 o
! 03

Fig. 7-21. Autentificarea mutual folosind criptografia cu cheie public. Cnd Alice primete mesajul 2, ea l decripteaz folosind propria sa cheie privat. Ea vede RA n mesaj, ceea ce i d o senzaie plcut. Mesajul trebuie s vin de la Bob deoarece Trudy nu are nici un mijloc de a determina RA. Alice accept cheia de sesiune trimind napoi mesajul 3. Cnd Bob vede RjS criptat cu cheia de sesiune pe care a generat-o el, tie c Alice a primit mesajul 2 i a verificat RA. Cum poate ncerca Trudy s compromit acest protocol? Ea poate fabrica mesajul 1 i-I poate pcli pe Bob s o testeze pe Alice, dar Alice va vedea un RA pe care nu 1-a trimis ea i nu va merge niciodat mai departe. Trudy nu poate falsifica mesajul 3 ntr-un mod convingtor, deoarece ea nu tie RB sau Ks i nu le poate determina fr cheia privat a lui Alice. Be data aceasta ea nu are noroc. Totui, protocolul trebuie s aib un punct slab: el presupune c Alice i Bob i cunosc deja unul altuia cheile publice. S presupunem c nu este aa. Alice poate doar s-i trimit lui Bob cheia ei public n primul mesaj i s cear lui Bob s-i trimit napoi cheia lui public n urmtorul mesaj. Necazul cu aceast abordare este c protocolul poate fi subiectul unui atac de tipul gleata brigzii de pompieri". Trudy poate captura mesajul lui Alice ctre Bob i poate trimite propria sa cheie public napoi spre Alice. Alice va crede c are cheia pentru a vorbi cu Bob, cnd, de fapt, ea are cheia pentru a vorbi cu Trudy. Acum Trudy poate citi toate mesajele criptate cu ceea ce crede Alice c este cheia public a lui Bob.

570

NIVELUL APLICAIE

CAP. 7"

Schimbul iniial de chei publice poate fi evitat avnd toate cheile publice memorate ntr-o baz de date. Atunci Alice i Bob pot extrage cheia public a celuilalt din baza de date. Din nefericire, Trudy mai poate nc s dea drumul la atacuri de tipul gleata brigzii de pompieri" prin interceptarea cererilor ctre baza de date i prin trimiterea de rspunsuri simulate coninnd propria sa cheie public. In final, cum tiu Alice i Bob c rspunsul vine de la baza de date real i nu de la Trudy? Rivest i Shamir (1984) au conceput un protocol care mpiedic atacul de tipul gleata brigzii de pompieri" din partea lui Trudy. n protocolul lor cu interbiocare (interiock), dup schimbul de chei publice, Alice i trimite lui Bob doar jumtate din mesajul ei, s spunem doar biii pari (rezultaidup o criptare). Bob i rspunde cu biii si pari. Dup ce primete biii pari ai lui Bob, Alice trimite biii si impari, lucru pe care-1 face i Bob. Ideea aici este c dac ia biii pari ai lui Alice, Trudy nu poate decripta mesajul, chiar dac ea are cheie privat. In consecin, ea nu este capabil s recripteze biii pari folosind cheia public a lui Bob. Dac i va trimite ceva fr sens lui Bob, protocolul va continua, dar Bob va descoperi n scurt timp c mesajul asamblat complet nu are nici un sens i i va da seama c a fost nelat. 7.1.6 Semnturi Digitale

Autenticitatea multor documente legale, financiare i de alt gen este determinat de prezena sau absena unor semnturi autorizate scrise de mn. Iar fotocopiile nu sunt valabile. Pentru sistemele de mesaje computerizate, care urmresc nlocuirea transportului fizic al documentelor scrise cu cerneal pe hrtie, trebuie gsit o soluie la problema autentificrii. Problema de a concepe un nlocuitor pentru semnturile scrise de mn este destul de dificil. De fapt, ceea ce este necesar este un sistem prin care una din pri poate trimite mesaje semnate" celeilalte pri astfel nct: 1. 2. 3. Receptorul poate verifica identitatea pe care pretinde a o avea transmitorul; Transmitorul nu poate s renege mai trziu coninutul mesajului; Receptorul nu poate s fi pregtit el nsui mesajul.

Prima cerin este necesar, de exemplu, n sistemele financiare. Atunci cnd calculatorul unui client ordon calculatorului unei bnci s cumpere o ton de aur, calculatorul bncii trebuie s poat s se asigure c acel calculator care d ordinul aparine ntr-adevr companiei al crei cont va fi debitat. A doua cerin este necesar pentru a proteja banca mpotriva fraudei. S presupunem c banca cumpr o ton de aur i imediat dup aceea preul aurului scade vizibil. Un client necinstit poate s acuze banca, pretinznd c el nu a emis niciodat vreun ordin de cumprare de aur. Cnd banca prezint mesajul n faa curii, clientul neag faptul c l-ar fi trimis. Cea de-a treia cerin este necesar pentru a proteja clientul n eventualitatea c preul aurului explodeaz i banca ncearc s construiasc un mesaj n care clientul cere cumprarea unui lingou de aur n locul unei tone.

SEC. 7.1

SECURITATEA REELEI

571

Semnturi cu Cheie Secret Un mod de abordare pentru semnturile digitale este acela de a avea o autoritate central care tie totul i n care oricine are ncredere, s spunem Big Brother (BB). Fiecare utilizator alege o cheie secret i o duce personal la biroul BB. Astfel, doar Alice i BB vor cunoate secretul lui Alice, KA, .a.m.d. Atunci cnd Alice dorete s trimit un mesaj n clar semnat, P, bancherului su, Bob, ea genereaz KA(B, RA, , P) i l trimite, dup cum este se arat i n Fig. 7-22. BB vede c mesajul este de la Alice, l decripteaz i i trimite lui Bob mesajul din figur. Mesajul trimis spre Bob conine textul clar din mesajul lui Alice i, de asemenea, mesajul semnat KBB(A, , P), unde t este amprenta de timp. Acum Bob rezolv cererea lui Alice.

A,K A <B,R A ,tP) m m K B (A,R A ,,P,K BB (A,,P


X! O CD

Fig. 7-22. Semnturi digitale cu Big Brother. Ce se ntmpl dac Alice neag mai trziu trimiterea mesajului su? Pasul 1 este c oricine poate acuza pe oricine (cel puin n SUA). n final, cnd cazul ajunge n faa curii i Alice neag cu nverunare c a trimis lui Bob mesajul n disput, judectorul l va ntreba pe Bob cum poate fi el sigur c mesajul disputat vine de la Alice i nu de la Trudy. Bob va arta mai nti c BB nu accept un mesaj de la Alice dect dac este criptat cu KA, aa c nu exist nici o posibilitate ca Trudy s-i trimit lui BB un mesaj fals ca provenind de Ia Alice. Apoi Bob va aduce n mod impresionant Proba A, KBB(, t, P). Bob spune c acesta este un mesaj semnat de BB care demonstreaz c Alice i-a trimis P lui Bob. Judectorul i va cere apoi lui BB (n care toat lumea are ncredere) s decripteze Proba A. Cnd BB va depune mrturie c Bob spune adevrul, judectorul va de verdictul n favoarea lui Bob. Cazul va fi nchis. O problem posibil cu protocolul de semnare din Fig. 2-22 apare atunci cnd Trudy rspunde la fiecare mesaj. Pentru a minimiza aceast problem, sunt folosite peste tot amprente de timp. Mai mult, Bob poate verifica toate mesajele recente s vad dac RA a fost folosit n vreunul dintre ele. Dac da, mesajul respectiv este ignorat deoarece este o replic. De remarcat c Bob va refuza toate mesajele foarte vechi din punct de vedere al amprentei de timp. Pentru a se pzi mpotriva atacurilor prin rspuns instantaneu, Bob verific doar RA al oricrui mesaj venit, ca s vad dac s-a mai primit n ultimele ore un astfel de mesaj de la Alice. Dac nu, Bob poate presupune fr nici un risc c mesajul reprezint o nou cerere. Semnturi cu Cheie Public O problem structural n folosirea criptografiei cu cheie secret pentru semnturi digitale este aceea c oricine trebuie s se ncread n Big Brother. Mai mult dect att, Big Brother

572

NIVELUL APLICAIE

CAP. 7

poate citi toate mesajele semnate. Cei mai logici candidai pentru a juca roiul lui Big Brother sunt guvernul, bncile, oamenii legii. Aceste organizaii nu inspir ns ncredere total tuturor cetenilor. De aceea ar fi frumos dac semnarea documentelor nu ar necesita existenta unei astfel de autoriti de ncredere. Din fericire, criptografia cu cheie public i poate aduce aici o important contribuie. S presupunem c algoritmii de criptare i decriptare cu cheie public au proprietatea c E(D(P))=P n plus fa de proprietatea uzualD(E(P))=P. (RSA are aceast proprietate, deci presupunerea nu este nerezonabil). S presupunem c Alice poate trimite un text clar semnat, P, lui Bob transmind EB(DA(P)). O observaie important aici este aceea c Alice cunoate att propria sa cheie secret ct i cheia public a iui Bob, EB, astfel nct construcia acestui mesaj este pentru Alice un lucru realizabil Cnd Bob primete mesajul, el l transform, folosindu-i cheia privat, ca de obicei, rezultnd DA(P), dup cum este artat i n Fig. 7-23. Ei memoreaz acest text ntr-un loc sigur i apoi l decripteaz, folosind EA, pentru a obine textul clar original.
Linia de transmisie

Calculatorul iui Aiice Cheia orivat s lui

Calculatorii! iui Bob Cheia public s Iul Mice, - P

Cheia pubi a iui


F.

Cheia privat a iui Bob,

E B {D A (P))

Fig. 7-23= Semnturi digitale folosind criptografia cu cheie public. Pentru a vedea cum lucreaz semntura, s presupunem c Alice neag ulterior trimiterea mesajului P lui Bob. Atunci cnd cazul ajunge n faa curii, Bob poate aduce ca probe att P ct i DA(P). Judectorul poate verifica uor c Bob are un mesaj valid cripat cu DA, doar aplicnd EA asupra iui. Deoarece Bob nu tie care este cheia privat a lui Alice, singurul mod prin care Bob poate s fi primit mesajul criptat cu aceast cheie privat este ca Alice n persoan s-i fi trimis. Ct timp va fi nchis pentru minciun i fraud, Alice va avea suficient timp s conceap noi algoritmi cu cheie public interesani. Cu toate c folosirea criptografiei cu cheie public pentru semnturi digitale este o schem elegant, exist probleme legate mai degrab de mediul n care acestea opereaz dect de algoritmul de ia baz. De exempiu, Bob poate proba c mesajul a fost trimis de ctre Alice atta vreme ct DA rmne secret. Dac Alice dezvluie cheia sa secret, acest argument nu va mai fi valabil, deoarece oricine poate s fi trimis mesajul, chiar i Bob. Problema poate aprea, de exempiu, dac Bob este agentul de vnzri al iui Alice. Alice i spune Iui Bob s cumpere nite aciuni i s ie pstreze. Imediat dup aceea, preui scade vertiginos. Pentru a repudia mesajul su ctre Bob, Alice face o plngere la poliie, pretinznd c i-a fost spart casa i furat cheia secret. n funcie de legislaia din ara sau inutul su, ea

SEC. 7.1

SECURITATEA REELEI

573

poate fi sau nu rspunztoare legal, n special dac pretinde c a descoperit spargerea cnd sa ntors acas de la munc, la cteva ore mai trziu. O alt problem cu schema de semntur este ce se ntmpl dac Alice decide s-i schimbe cheia. A face acest lucru este evident legal i este probabil o idee bun s o fac periodic. Dac n justiie apare mai trziu un caz, aa cum s-a povestit mai sus, judectorul va aplica actualul EA la DA(P) i va descoperi c nu se obine P. Bob va fi atunci ntr-o situaie delicat. n consecin, apare necesitatea ca o autoritate s nregistreze toate schimbrile de chei i datele acestora. In principiu, orice algoritm cu cheie public poate fi folosit pentru semnturi digitale. Standardul de facto n industrie este algoritmul RSA. Multe produse pentru securitate l folosesc. Totui, n 1991, NIST (National Institute of Standards and Technology) a propus o variant a algoritmului cu cheie public. Ei Gamal pentru noul lor standard DSS (Digital Signafare Standard - Standard pentru Semntur Digital). El Gamal i bazeaz securitatea pe dificultatea calculului logaritmilor discrei i nu pe dificultatea factorizrii numerelor mari. Ca de obicei, cnd guvernul ncearc s impun standarde criptografice, s-a iscat o reacie antagonist de mas. DSS a fost criticat pentru a fi: 1. 2. 3. 4. Prea secret (NSA a proiectat protocolul pentru folosirea El Gama). Prea nou (Ei Gamai nu a fost nc suficient analizat). Prea lent (de 10 pn la 40 de ori mai lent dect RSA n verificarea semnturilor). Prea nesigur (chei fixe de 512 bii).

Dup o revizuire ulterioar, cei de-al patrulea motiv a fost eliminat fiindc s-au permis chei de pn la 1024 bii. Nu este nc clar dac DSS va prinde sau nu. Pentru mai multe detalii, a se vedea (Kaufman .a., 1995; Schneier, 1996; i Stinson, 1995). Rezemate de mesaje O critic adus schemelor de semntur este aceea c adeseori cupleaz dou funcii distincte: autentificare si confidenialitate. Adesea, autentificarea este necesar, dar confidenialitatea eu. Deoarece criptarea este lent, adeseori se dorete s existe posibilitatea de a se trimite documente ca text n clar, ns semnate. Mai jos vom descrie o schem de autentificare care nu necesit criptarea ntregului mesaj (De Jonge i Chaum, 1987). Schema este bazat pe ideea unei funcii de dispersie neinversabile care preia o bucat de text clar de lungime arbitrar din care calculeaz un ir de bii de lungime fix. Funcia de dispersie, adeseori numit rezumat (digest) al mesajului, are trei proprieti importante: 1. 2. 3. Dat fiind P, este uor de calculat MD(P). Dat fiind MD(P), este efectiv imposibil de calculat?. Nimeni nu poate genera dou mesaje avnd aceiai rezumat.

Pentru a satisface criteriul 3, rezumatul trebuie s aib cel puin 128 de bii lungime, de preferat Calcului rezumatului unui mesaj dintr-o bucat de text clar este mult mai rapid dect criptarea unui text clar cu un algoritm cu cheie public. Pentru a vedea cum lucreaz, s considerm din nou

574

NIVELUL APLICAIE

CAP. 7

protocolul de semntur din Fig. 7-22. In loc de a semna P cu KBB(A, t, P), BB calculeaz acum rezumatul mesajului aplicnd MD lui P, rezultnd MD(P). BB mpacheteaz apoi KBB(A, t, MD(P)) ca al cincilea element n lista criptat cu KB care este trimis lui Bob, n Ioc de KBB(A, i, P). In disputa ce apare, Bob poate aduce ca argumente att P c i KBB(A, t, MD(P)). Dup ce Big Brother 1-a decriptat pentru judector, Bob are MD(P), care este garantat a fi original i pretinsul P. Totui, deoarece este efectiv imposibil ca Bob s gseasc un alt mesaj care s aib acest rezumat, judectorul va fi convins uor c Bob spune adevrul. Folosirea rezumatelor mesajelor n acest mod economisete att timpul de criptare ct i costurile pentru transport i memorare. Calculul rezumatelor mesajelor funcioneaz i n criptosistemele cu chei publice, dup cum este artat i n Fig. 7-24. Aici, Alice calculeaz mai nti rezumatul de mesaj pentru textul su clar. Apoi ea semneaz rezumatul i trimite att textul clar ct i semntura lui Bob. Dac Trudy S nlocuiete pe P n timpul transferului, Bob va vedea aceasta atunci cnd va calcula el nsui MD(P).

Alice

P, D {MD(P

Fig. 7-24. Semnturi digitale folosind rezumatul mesajului. Au fost propuse o diversitate de funcii pentru calculul rezumatului. Unele dintre cele mai folosite sunt MD5 (Rivest, 1992) i SHA (NST. 1993). MBS este a cincea din seria de funcii de dispersie proiectate de Ron Rivest. Opereaz prin amestecarea biilor ntr-un mod suficient de complicat, astfel nct fiecare bit de ieire s depind de fiecare bit de intrare. Foarte pe scurt, algoritmul ncepe prin a umple mesajul pn la o lungime de 448 (modulo 512) bii. Lungimea original a mesajului este adugat apoi ca un ntreg pe 64 de bii, dnd o intrare a crei lungime total este un multiplu de 512 bii. Ultimul pas dinaintea nceperii calculului este iniializarea unui tampon de 128 de bii la o valoare fix. Apoi ncepe calculul. Fiecare rund ia un bloc de intrare de 512 bii i i amestec complet cu cei din tamponul de 128 bii. Ca o msur suplimentar, este folosit i o tabel construit folosind funcia sinus. Utilizarea unei funcii cunoscute cum este sinus nu se datoreaz faptului c este mai aleatorie dect un generator de numere aleatorii, ci pentru a evita orice suspiciune c proiectantul a inclus o trap inteligent ascuns prin care doar el poate intra. Refuzul IBMului de a dezvlui principiile aflate la baza proiectrii cutiilor S din DES a diis ia speculaii destul de mari privind existena trapelor ascunse. Pentru fiecare bloc de intrare sunt efectuate patru runde. Acest proces continu pn cnd sunt consumate toate blocurile de intrare. Coninutul tamponului de 128 de bii formeaz rezumatul mesajului. Algoritmul a fost optimizat pentru implementri software pe maini pe 32 de bii. n consecin, el poate s nu fie suficient de rapid pentru viitoarele reele de mare vitez (Touch, 1995). Alt funcie major pentru calculul rezumatului este SHA (Secure Hasfa AlgorithmAlgoritm de Dispersie Sigur), dezvoltat de NSA i acceptat de ctre NST. Ca i MD5, ea

Bob

SEC. 7.1

SECURITATEA REELEI

575

prelucreaz datele de intrare n blocuri de cte 512 bii, dar, spre deosebire de MD5, genereaz un rezumat de mesaj de 160 de bii. ncepe prin a umple mesajul, adugnd apoi lungimea pe 64 de bii pentru a obine un multiplu de 512 bii. Apoi iniializeaz tamponul de ieire de 160 bii. Pentru fiecare bloc de intrare, tamponul de ieire este actualizat folosind blocul de intrare de 512 bii. Nu este folosit o tabel de numere aleatorii (sau de valori ale funciei sinus), dar pentru fiecare bloc sunt calculate 80 de runde, rezultnd un amestec complet. Fiecare grup de 20 de runde folosete funcii de amestecare diferite. Deoarece lungimea rezumatului SHA este cu 32 de bii mi mare dect a rezumatului MD5, 32 toate celelalte elemente fiind identice, SHA este cu un factor de 2 mai sigur dect MD5. Totui, faptul c este mai lent dect MD5 i acela c are o lungime a rezumatului care nu este putere a lui 2 pot fi uneori inconveniente. Altfel, cele dou sunt aproximativ identice din punct de vedere tehnic. Ca politic, MD5 este definit ntr-un RFC i folosit foarte mult n Internet. SHA este un standard guvernamental i este utilizat de companiile care trebuie s l foloseasc, deoarece guvernul le-o impune, sau de cele ce doresc o securitate suplimentar. O versiune revizuit, SHA-1, a fost aprobat ca standard de ctre NIST. Atacul ziua de natere" n lumea criptografiei, nimic nu este ceea ce pare a fi. Cineva poate gndi c sunt necesare 2m operaii pentru a falsifica un rezumat de m bii. De fapt, 2ml2 sunt suficiente dac se folosete atacul zilei de natere, o abordare publicat de Yuval (1979) n lucrarea sa How to Swindle Rabin" (Cum s-1 jefuieti pe Rabin). Ideea acestui atac vine de la o tehnic pe care profesorii de matematic o folosesc adeseori n cursurile lor de teoria probabilitilor. ntrebarea este: Ci studeni trebuie s fie ntr-o clas pentru ca probabilitatea de a exista doi studeni cu aceeai dat de natere s fie 1/2? Muli studeni se ateapt ca rspunsul s fie ceva peste 100. De fapt, teoria probabilitilor spune c trebuie s fie exact 23. Fr a face o analiz riguroas, intuitiv, cu 23 de oameni se pot forma (23x23)/2 = 253 perechi diferite, fiecare dintre ele avnd o probabilitate de 1/365 s fie cea potrivit. n aceast lumin, rezultatul nu mai este deloc surprinztor. Mai general, dac exist o coresponden ntre intrri i ieiri cu n intrri (oameni, mesaje etc.) i k ieiri (zile de natere, rezumate etc), exist n(n-2)/2 perechi de intrare. Dac n(n-2)/2 > k, ansa de a avea cel puin o potrivire este destul de mare. Astfel, cu aproximaie, o potrivire corespunde la n> yjk . Acest rezultat nseamn c un rezumat de 64 de bii poate fi probabil spart prin generarea a aproape 2 32 mesaje i cutnd dou cu acelai rezumat. S vedem acum un exemplu practic. Departamentul de tiina Calculatoarelor de la Universitatea de Stat are disponibil un post de profesor titular i exist doi candidai la el, Tom i Dick. Tom a fost angajat cu doi ani naintea lui Dick, aa c el merge primul la verificare. Dac reuete, Dick are ghinion. Tom tie c efa departamentului, Marylin, are o impresie bun despre activitatea sa, aa c o roag s i scrie o scrisoare de recomandare pentru decan, cel care va decide n cazul su. Odat trimise, toate scrisorile devin confideniale. Marylin spune secretarei, Ellen, s scrie Decanului o scrisoare, subliniind ceea ce dorete. Cnd este gata, Marylin o va revizui, va calcula i va semna un rezumat de 64 de bii i l va trimite decanului. Ellen poate trimite scrisoarea mai trziu, prin pot electronic.

576

NIVELUL APLICAIE

CAP. 7

Din nefericire pentru Tom, Ellen are o idil cu Dick i i-ar plcea s l fac pe Tom s eueze, aa c ea scrie o scrisoare cu urmtoarele 32 de opiuni cuprinse ntre paranteze drepte. Dear Dean Smith, This [letter \ message] is to give my [honest \ frank] opinion of Prof. Tom Wilson, who is [a candidate j up] for tenure [now \ thisyear]. I have [known \ worked with] Prof. Wilson for [about \ almost] six years. He is an [outstanding | excellent] researcher of great [talent | ability] known [worfdwide j internationally] for his [biilliant | creative] insights into [rnany \ a wide variety of] [difficult | challenging] problems. He is also a [highly \ greatly] [respected \ admired] [teacher j educator]. His students give his [classes | courses] [rave \ spectacular] reviews. He is [our \ the Department's] [mostpopular \ bestloved] [teacher | instructor]. [n addition | Additionally] Prof. Wilson is a [gifted \ effective] fund raiser. His [grants j contracts] have brought a [large \ substantial] amount of money into [the | our] Department. [This money has \ Thesefunds have] [enabled j permitted] us to [pursue j cairy oui] many [special \ important] programs, [such as | for example] your State 2000 program. Without these funds we would [be enable \ not be able] to continue this program which is so \important \ essential] to both of us. 1 strongly urge you to grant him ternure. Din nefericire pentru Tom, imediat dup ce Ellen termin de alctuit i introdus mesajul, ea scrie de asemenea un al doilea mesaj: Dear Dean Smith, This [letter j message] is to give my [honest \ frank] opinion of Prof. Tom Wilson, who is [a candidate j up] for tenure [now \ thisyear]. I have [known \ worked with]. Prof. Wilson for [about \ almost] six years. He is an [poor \ weak] researcher not well known n this [field j area]. His research [hardly ever j rarely] shows [insight n \ understanding of} the [key j major] problems of [the \ our] day. Furthermore, he is not a [respected \ admired] [teacher \ educator]. His students give his {classes \ courses] [poor \ bad] reviews. He is [our | the Department's] leasf popular [teacher j instructor], known [mostly j primarly] within [our \ the] Department for his [tendency \ propencity] to [ridicule embarass] students [foolish \ imprudent] enough to ask questions n his classes. [In addition \ Additionally] Tom is a [poor \ marginal] fund raiser. His [grants j contracts] have brought only a [meager j insignificant] amount of money into [the | our] Department. Unless new [money is \ funds are] quickly located, we must have to cancel essential programs such as your State 2000 program. Unfortunately, under these [conditions j circumstances]. I cannot n good [conscience | faith] recommend him to you for [ternure | a permanent position]. Ellen pune calculatorul s calculeze n timpul nopii 2 32 rezumate de mesaj pentru fiecare scrisoare. Exist anse ca un rezumat al primei scrisori s se potriveasc cu un rezumat al celei de-a doua scrisori. Dac nu, ea poate s adauge mai multe opiuni i s ncerce din nou n timpul weekend-ului. S presupunem c gsete o potrivire. S notm scrisoarea bun" cu A i scrisoarea rea" cu B.

SEC. 7.2

DNS - SISTEMUL NUMELOR DE DOMENII

577

Ellen trimite acum scrisoarea A lui Marilyn pentru aprobare. Desigur c Marilyn o aprob, calculeaz rezumatul de 64 de bii, semneaz rezumatul si trimite rezumatul semnat decanului Smith. Independent, Ellen i trimite decanului Smith scrisoarea B. Dup ce primete scrisoarea i rezumatul semnat, decanul ruleaz algoritmul de calcul al rezumatului pentru scrisoarea B, vede c se potrivete cu ceea ce i-a trimis Marilyn i l d afar pe Tom. (Sfrit opional: Ellen i povestete lui Dick ceea ce a fcut. Dick este revoltat i rupe relaia cu ea. Ellen este furioas i se confeseaz lui Marilyn. Marilyn l sun pe Decan. Tom obine pn la urm postul). Atacul zilei de natere este nefezabil la MD5 deoarece, 64 chiar i la un miliard de rezumate pe secund, ar trebui peste 500 de ani pentru a calcula 2 rezumate pentru cele dou scrisori, cu 64 de variante fiecare, succesul nefiind garantat. 7.1.7 Implicaii sociale Implicaiile securitii reelei pentru securitatea individual i a societii n general sunt ocante. Mai jos vom meniona doar cteva din cele mai importante consecine. Guvernelor nu le plac cetenii care au secrete fa de ele. n unele ri (de exemplu, Frana) orice criptografie neguvernamental este pur i simplu interzis, cu excepia cazului n care guvernul primete toate cheile utilizate. Dup cum au punctat Kahn (1980) i Selfridge i Schwartz (1980), interceptarea de ctre guvern s-a practicat la o scar mult mai mare dect iar putea imagina majoritatea oamenilor, iar pentru eforturile lor, guvernele doresc ceva mai mult dect o grmad de bii indescifrabili. Guvernul SUA a propus o schem de criptare pentru viitoarele telefoane digitale care include o caracteristic special ce permite poliiei s asculte i s decripteze toate apelurile telefonice din SUA. Guvernul promite s nu foloseasc aceast caracteristic fr un ordin de la curtea de justiie, dar muli oameni nc i mai amintesc cum fostul director al FBI, J. Edgar Hoover asculta ilegal telefoanele lui Martin Luther King, Jr. i ale altor persoane n ncercarea de a-i neutraliza. Poliia spune c au nevoie de aceast putere pentru a prinde criminalii. Exprimndu-ne moderat, putem spune c dezbaterea este vehement de ambele pri. O discuie asupra tehnologiei implicate (Clipper) este prezentat n (Kaufman .a., 1995). Un mod de a evita aceast tehnologie i de a trimite mesaje ntr-un mod n care guvernul s nu le poat citi este descris n (Blaze, 1994; i Schneier, 1996). Declaraii de opinie ale tuturor prilor sunt prezentate n (Haffman, 1995). Statele Unite au o lege (22 U.S.C. 2778) care interzice cetenilor s exporte muniii (material de rzboi), cum ar fi tancuri i avioane cu reacie, fr autorizarea DoD. Prin aceast lege, software-ul criptografic este clasificat ca muniie. Phil Zimmermann, care a scris PGP (Pretty Good Privacy), un program pentru protecia potei electronice, a fost acuzat c a nclcat aceast lege, chiar dac guvernul admite c el nu 1-a exportat (dar 1-a dat unui prieten pentru a-1 pune pe Internet de unde putea fi obinut de strini). Muli oameni au privit acest incident larg mediatizat ca o nclcare total a drepturilor unui cetean american ce lucreaz pentru mbuntirea siguranei oamenilor.

7.2

DNS - SISTEMUL NUMELOR DE DOMENII

Programele se refer rareori la sisteme gazd, cutii potale i alte resurse prin adresa lor binar (din reea). n loc de numere binare, se utilizeaz iruri ASCII, cum ar fi tana@ait.ucsb.edu. Cu toate acestea, reeaua nelege numai adrese binare, deci este necesar un mecanism care s

578

NIVELUL APLICAIE

CAP. 7

converteasc irurile ASCII n adrese de reea. n seciunea urmtoare se va studia cum este realizat aceast conversie n Internet. nc de la ARPANET exista un fiier host.txt care cuprindea toate sistemele gazd i adresele lor IP. n fiecare noapte, toate gazdele l preluau de la situl unde era pstrat. Pentru o reea format din cteva sute de maini mari, cu divizarea timpului, aceast abordare era destul de rezonabil. Totui, atunci cnd la reea au fost conectate mii de staii de lucru, toi i-au dat seama c aceast abordare nu putea s funcioneze la nesfrit. n primul rnd dimensiunea fiierului ar deveni prea mare. Cu toate acestea i chiar mai important, conflictele de nume de sisteme gazd ar aprea n permanen dac nu ar fi administrate centralizat, ceva de negndit ntr-o reea internaional de dimensiuni uriae. Pentru a rezolva aceste probleme, a fost inventat DNS (Domain Name System Sistemul numelor de domenii). Esena DNS-ului const dintr-o schem ierarhic de nume de domenii i a unui sistem de baze de date distribuite pentru implementarea acestei scheme de nume. In principal este utilizat pentru a pune n coresponden numele sistemelor gazd i adresele destinaiilor de e-mail cu adresele IP, dar poate fi utilizat i pentru alte scopuri. DNS este definit n RFC-urile 1034 i 1035. Foarte pe scurt, DNS este utilizat dup cum urmeaz. Pentru a stabili corespondena dintre un nume i o adres IP, programul de aplicaie apeleaz o procedur de bibliotec numit resoiver, transferndu-i numele ca parametru. Resolver-ul trimite un pachet UDP la server-ul DNS local, care caut numele i returneaz adresa IP ctre resoiver, care o returneaz apelantului. narmat cu adresa IP, programul poate stabili o conexiune TCP cu destinaia sau i poate trimite pachete UDP. 7.2.1 Spaiul de nome DNS Administrarea unui volum mare de nume n permanent schimbare nu este o problem prea uoar. n sistemul potal, administrarea numelor este realizat impunnd ca pe o scrisoare s se specifice (implicit sau explicit) ara, statul sau provincia, oraul, strada i restul adresei destinatarului. Utiliznd o astfel de adresare ierarhic, nu exist nici o confuzie ntre Marvin Anderson de pe Main St. din White Plains, N.Y. i Marvin Anderson de pe Main St. din Austin, Texas. DNS lucreaz n acelai mod. Conceptual, Inernetul este divizat n cteva sute de domenii de nivel superior, fiecare domeniu cuprinznd mai multe sisteme gazd. Fiecare domeniu este partiionat n subdomenii i acestea sunt, la rndul lor, partiionate .a.m.d. Toate aceste domenii pot fi reprezentate ca un arbore, aa cum se arat n Fig. 7-25. Frunzele arborelui reprezint domenii care nu au subdomenii (dar, bineneles, conin sisteme). Un domeniu frunz poate conine un singur sistem gazd sau poate reprezenta o firm, deci s conin mii de sisteme gazda. Domeniile de pe primul nivel se mpart n dou categorii: generice i de ri. Domeniile generice sunt corn (comercial), edu (instituii educaionale), gov (guvernul federal al SUA), int (organizaii internaionale), mii (forele armate ale SUA) i org (organizaii nonprofit). Domeniile de ri includ o intrare pentru fiecare ar, cum se definete n ISO 3166. Fiecare domeniu este denumit de calea n arbore pn la rdcin. Componentele sunt separate prin punct. Astfel, departamentul de inginerie de la SUN poate fi eng.sun.com n loc de numele n stil UNIX /com/sun/eng. De notat c aceast atribuire ierarhic de nume nseamn c eng.sun.com

SEC. 7.2

DNS - SISTEMUL NUMELOR DE DOMENII

579

nu intr n conflict cu posibila utilizare a lui eng n eng.yale.edu, care poate fi folosit de departamentul de Englez de la Yale.
Generice ri

int

corn sun

edu yale eng

gov

mii

ora acrn jack

net ac

~jp

s oce

ni

/ \
jill

leee

/ \

co nec
i

/ \

vu

eng cs ai robot

keio cs pc24
I !

linda

csl

/ \ flits fluit

cs

Fig. 7-25.0 poriune a spaiului numelor de domenii din Internet. Numele de domenii pot fi absolute sau relative. Un nume absolut de domeniu se termin cu un punct (de exemplu, eng.sun.com.), n timp ce unul relativ nu. Numele relative trebuie interpretate n context pentru a determina nelesul adevrat. n ambele cazuri, un nume de domeniu se refer la un anumit nod din arbore i la toate nodurile de sub el. Numele de domenii nu fac distincie ntre litere mici i litere mari, astfel edu sau EDU nseamn acelai lucru. Componentele numelor pot avea o lungime de cel mult 64 caractere, iar ntreaga cale de nume nu trebuie s depeasc 255 de caractere. n principiu, domeniile pot fi inserate n arbore n dou moduri diferite. De exemplu, cs.yale.edu ar putea la fel de bine s fie inclus n domeniul rii us ca cs.yale.ct.us. n practic, totui, aproape toate organizaiile din Statele Unite sunt repartizate dup criteriul generic, iar aproape toate din afara Statelor Unite fac parte din domeniul rii lor. Nu exist nici o regul mpotriva nregistrrii sub dou domenii de nivel superior, dar aceasta poate conduce la confuzii i de aceea puine organizaii o fac. Fiecare domeniu controleaz cum sunt alocate domeniile de sub el. De exemplu, Japonia are domeniile ac.jp i co.jp echivalente cu edu i corn. Olanda nu face nici o distincie i pune toate organizaiile direct sub ni. Astfel cele trei nume urmtoare sunt toate departamente de calculatoare (computer science) din universiti: 1. cs.yale.edu (Universitatea Yale din Statele Unite). 2. cs.vn.nl (Vrije Universiteit n Olanda). 3. cs.keio.ac.jp (Universitatea Keio din Japonia). Pentru a crea un nou domeniu, se cere permisiunea domeniului n care va fi inclus. De exemplu, dac un grup VLSI de la Yale dorete s fie cunoscut ca vlsi.cs.yale, acesta are nevoie de permisiunea celui care administreaz cs.yale.edu. Similar, dac este acreditat o nou universitate, s zicem Universitatea din Northern South Dakota, ea trebuie s cear

580

NIVELUL APLICAIE

CAP. 7

administratorului domeniului edu s-i atribuie unsd.edu. n acest mod sunt evitate conflictele de nume i fiecare domeniu poate ine evidena tuturor subdomeniilor sale. Odat ce un nou domeniu a fost creat i nregistrat, el poate crea subdomenii, cum ar fi cs.unsd.edu, fr a cere permisiunea de la cineva din partea superioar a arborelui. Atribuirea de nume respect graniele organizaionale, nu pe cele ale reelelor fizice. De exemplu, dac departamentele de tiina calculatoarelor i de inginerie electric sunt localizate n aceeai cldire i folosesc aceeai reea local, ele pot avea totui domenii distincte. Similar, dac departamentul de tiina calculatoarelor este mprit n dou cldiri (Babbage Hali i Turing Hali), toate sistemele gazd din ambele cldiri aparin aceluiai domeniu.
7.2.2
A.

nregistrri de resurse

Fiecrui domeniu, fie c este un singur calculator gazd, fie un domeniu de nivel superior, i poate fi asociat o mulime de nregistrri de resuse (resourse records). Pentru un singur sistem gazd, cea mai obinuit nregistrare de resurs este chiar adresa IP, dar exist multe alte tipuri de nregistrri de resurse. Atunci cnd procedura resolver trimite un nume de domeniu DNS, ceea ce va primi ca rspuns sunt nregistrrile de resurse asociate acelui nume. Astfel, adevrata funcie a DNS este s realizeze corespondena dintre numele de domenii i nregistrrile de resurse. O nregistrare de resurs este un 5-tuplu. Cu toate c, din raiuni de eficien, nregistrrile de resurse sunt codificate binar, n majoritatea expunerilor ele sunt prezentate ca text ASCII, cte o nregistrare de resurs pe linie. Formatul pe care l vom utiliza este urmtorul: Nume_Domeniu Timp_de_via Tip Clas Valoare Nume_domeniu (domain_name) precizeaz domeniul cruia i se aplic aceast nregistrare. In mod normal exist mai multe nregistrri pentru fiecare domeniu i fiecare copie a bazei de date pstreaz informaii despre mai multe domenii. Acest cmp este utilizat ca cheie de cutare primar pentru a satisface cererile. Ordinea nregistrrilor n baza de date nu este semnificativ. Cnd se face o interogare despre un domeniu, sunt returnate toate nregistrrile care se potrivesc cu clasa cerut. Cmpul Timp_de_yiaa (time_to_live) d o indicaie despre ct de stabil este nregistrarea. Informaia care este foarte stabil are asigurat o valoare mare, cum ar fi 86400 (numrul de secunde dintr-o zi). Informaiei instabile i este atribuit o valoare mic, cum ar fi 60 (1 minut). Vom reveni la acest punct mai trziu, cnd vom discuta despre utilizarea memoriei ascunse. Cmpul Tip precizeaz tipul nregistrrii. Cele mai importante tipuri sunt prezentate n Fig. 7-26.
Tip SOA A MX NS
CNAME
Semnificaie

PTR
HINFO

TXT

Start autoritate Adresa IP a unui sistem gazd Schimb de pot Server de Nume Nume canonic Pointer Descriere sistem gazd Text

Valoare Parametrii pentru aceast zon ntreg pe 32 de bii Prioritate, domeniu dispus s accepte pot electronica Numele serverului pentru acest domeniu Numele domeniului Pseudonim pentru adresa IP Unitate central i sistem de operare n ASCII Text ASCII neinterpretat

Fig. 7-26. Principalele tipuri de nregistrri de resurse DNS.

SEC. 7.2

DNS-SISTEMUL NUMELOR DE DOMENII

581

O nregistrare SOA furnizeaz numele sursei primare de informaie despre zona serverului de nume, adresa de e-mail a administratorului, un identificator unic i diveri indicatori i contoare de timp. Cel mai important tip de nregistrare este nregistrarea^ (adres). Ea pstreaz adresa IP de 32 de bii a sistemului gazd. Fiecare sistem gazd Internet trebuie s aib cel puin o adres IP, astfel nct alte maini s poat comunica cu el. Unele sisteme gazd au dou sau mai multe conexiuni n reea, caz n care vor avea cte o nregistrare de tip A pentru fiecare conexiune (i astfel pentru fiecare adres IP). Urmtoarea ca importan este nregistrarea MX. Aceasta precizeaz numele domeniului pregtit s accepte pota electronic pentru domeniul specificat. O utilizare obinuit a acestei nregistrri este s permit unei maini care nu este n Internet s primeasc pot de la situri Internet. Livrarea este realizat avnd un sit non-Internet care face un aranjament cu un sit Internet s accepte pota electronic ce i este adresat i s i-o transmit mai departe, utiliznd orice protocol agreat de ambele pri. De exemplu, s presupunem c studenta Cathy de la departamentul de calculatoare din UCLA, dup ce primete diploma n AI, nfiineaz o companie, Electrobrain, n vederea comercializrii ideilor ei. Pentru moment ea nu i poate permite s stabileasc o legtur Internet i face un aranjament cu UCLA s-i permit ca pota electronic s-i fie trimis acolo. Ea va suna de cteva ori pe zi i o va prelua. Ulterior Cathy i nregistreaz compania n domeniul corn i i se atribuie domeniul electrobrain.com. Atunci ea poate cere administratorului domeniului corn s adauge n baza de date corn urmtoarea nregistrare MX:
electrobrain.com 86400 N MX 1mailserver.cs.ucla.edu

n acest fel, pota electronic va fi transmis la UCLA, de unde ea o poate prelua. Pe de alt parte, UCLA poate s o sune i s transfere pota electronic prin orice protocol asupra cruia s-a czut de acord. nregistrrile NS specific numele serverului. De exemplu, fiecare baz de date DNS are n mod normal o nregistrare NS pentru fiecare domeniu de pe primul nivel, astfel nct pota electronic poate fi trimis n zone ndeprtate ale arborelui de nume. Vom reveni la acest aspect mai trziu. nregistrrile CNAME permit crearea pseudonimelor. De exemplu, o persoan familiarizat cu atribuirea numelor n Internet, care dorete s trimit un mesaj unei persoane al crei nume de conectare la un sistem de calcul din departamentul de calculatoare de la M.I.T. este paul poate presupune c adresapaul@cs.mit.edu este corect. De fapt aceast adres nu este corect, deoarece domeniul departamentului de calculatoare de la M.I.T. este lcs.mit.edu. Totui, ca un serviciu pentru cei care nu tiu acest lucru, M.I.T. poate crea o intrare CNAME, pentru a dirija persoanele i programele n direcia corect. O astfel de intrare poate fi:
cs.mit.edu 86400 N CNAME lcs.mit.edu

Ca i CNAME, PTR indic spre un alt nume. Totui, spre deosebire de CNAME, care este n realitate numai o macrodefiniie, PTR este un tip de date DNS a crui interpretare depinde de contextul n care este utilizat. n practic este aproape ntotdeauna utilizat pentru asocierea

582

NIVELUL APLICAIE

CAP. 7

unui nume cu o adres P, pentru a permite cutarea adresei P i obinerea numelui mainii corespunztoare. nregistrrile HNFO permit aflarea tipului de main i de sistem de operare crora le corespunde domeniul. n sfrit, nregistrrile TXT permit domeniilor s se autoidentifice ntr-un mod arbitrar. Aceste dou tipuri de nregistrri sunt pentru comoditatea utilizatorului. Nici una dintre ele nu este necesar, astfel nct programele nu pot conta pe obinerea lor (i probabil c dac Ie obin nu le pot trata). Revenind la structura nregistrrilor de resurse, al patrulea cmp al fiecrei nregistrri este clasa. Pentru informaia Internet, ea este ntotdeauna IN. Pentru informaia non-Intemet, pot fi utilizate alte coduri. n final ajungem la cmpul Valoare. Acest cmp poate fi un numr, un nume de domeniu sau un ir ASCII. Semantica depinde de tipul de nregistrare. O scurt descriere a cmpurilor Valoare pentru fiecare dintre principalele tipuri de nregistrri este dat n Fig. 7-26. Ca exemplu de informaie ce se poate gsi n baza de date DNS a unui domeniu vezi Fig. 7-27. Aceast figur prezint o parte (semi-ipotetic) a bazei de date pentru domeniu! cs.vu.nl prezentat n Fig. 7-25. Baza de date conine apte tipuri de nregistrri de resurse. ;Baza de dae pentru cs.vu.n! cs.vu. ni 86400 IN SOA cs.vu.n! 86400 N TXT cs.vu.n! 86400 N TXT cs.vu.nl 86400 N MX cs.vu.n! 86400 S M MX
flis.cs.vu.ni fis.cs.vu.o flits.cs.vu.nl flits.cs.vu.nl flis.cs.vu.ni fiits.cs.vu.n! www.cs.vu.ni ftp.cs.vu.nl rowboat
86400

star boss (952771, 7200, 7200, 2419200 Faculei Wiskunde en Informatica." Vrije Universitei Amsterdam." 1 zephyr.cs.vu.nl 2top.cs.vu.nl. Sun Unix 130.37.16.112 192.31.231.165 1 flits.cs.vu.nl. 2 zephyr.cs.vu.n!. 3top.cs.vu.nL star.cs.vu.nl zephyr.cs.vu.nl. 130.37.56.201 1 rowboat 2 zephyr Sun Unix 130.37.62.23 Mac MacOS 192.31.231.216 HP Laserie IHSi" Proorietarv

86400 86400 86400 86400 86400 86400 86400

N N N N N N N \H N N N N

HIIMFO

A A MX MX MX
CNAME CNAME

A MX MX
HiNFO

rowboat

N A N HINFO N A N HiNFO

faserje

Fig. 7-27. O parte dintr-o posibil baz de date DNS pentru cs.vu.nl.

SEC. 7.2

DNS - SISTEMUL NUMELOR DE DOMENII

583

Prima linie necomentat din Fig. 7-27 d cteva informaii de baz despre domeniu, de care nu ne vom ocupa. Urmtoarele dou linii furnizeaz informaii textuale despre amplasarea domeniului. Urmeaz dou intrri care specific primul i al doilea loc unde se ncearc s se livreze pota electronic trimis pentrupersoana@cs.vu.nl. Mai nti se ncearc trimiterea la maina zephyr. Dac aceasta eueaz, atunci trebuie s se ncerce la top. Dup o linie liber, adugat numai pentru claritate, urmeaz linii care spun cflits este o staie de lucru SUN care lucreaz sub UNIX i se specific ambele sale adrese IP. Urmeaz trei variante de tratare a potei electronice trimise hflits.cs.vu.nl. Prima alegere este, n mod natural, chiar flits, iar dac nu se reuete, se ncearc la zephyr i apoi la top. Urmeaz un pseudonim, www.cs.vu.nl, astfel ca aceast adres s poat fi utilizat fr a specifica o anumit main. Crearea acestui pseudonim permite ca cs.vu.nl s schimbe serverul www fr invalidarea adresei folosite n mod curent pentru adresarea lui. Un argument similar este valabil pentru, ftp.cs.vu.nl. Urmtoarele patru linii conin o nregistrare tipic pentru o staie de lucru, n acest caz rowboat.cs.vu.nl. Informaia furnizeaz adresa IP, destinaia primar i secundar pentru pota electronic i informaii despre main. Urmeaz o intrare pentru un sistem non-UNIX care nu este capabil s primeasc pota el nsui, urmat de o intrare pentru o imprimant laser. Ceea ce nu este artat (i nu exist n acest fiier) sunt adresele IP utilizate pentru a cuta adresele domeniilor de pe primul nivel. Acestea sunt necesare pentru a cuta sistemele gazd aflate la distan, dar, deoarece ele nu fac parte din domeniul cs.vu.nl, nu se gsesc n acest fiier. Ele sunt furnizate de serverele rdcin ale cror adrese IP sunt prezentate n fiierul de configurare a sistemului i sunt ncrcate n memoria ascuns DNS atunci cnd este pornit serverul DNS. Ele au un timp de expirare foarte mare, astfel nct odat ncrcate, nu sunt eliminate niciodat din memoria ascuns. 7.2.3 Servere de nume Teoretic, un singur server de nume poate conine ntreaga baz de date DNS i poate s rspund tuturor cererilor. n practic, acest server poate fi att de ncrcat, nct s devin de neutilizat. n afar de aceasta, dac se defecteaz, va fi afectat ntregul Internet. Pentru a evita problemele asociate cu existena unei singure surse de informaie, spaiul de nume DNS este mprit n zone care nu se suprapun. O posibil cale de mprire a spaiului de nume din Fig. 7-25 este artat n Fig. 7-28. Fiecare zon conine cte o parte a arborelui precum i numele serverelor care pstreaz informaia autorizat despre acea zon. Normal o zon va avea un server de nume primar, care preia informaia dintr-un fiier de pe discul propriu i unul sau mai multe servere de nume secundare, care iau informaiile de pe serverul primar. Pentru a mbunti fiabilitatea, unele servere pentru o zon pot fi plasate n afara zonei. Plasarea limitelor unei zone este la latitudinea administratorului ei. Aceast decizie este luat n mare parte bazndu-se pe cte servere de nume sunt dorite i unde s fie plasate. De exemplu, n Fig. 7-28, Yale are un server pentru yale.edu care administreaz eng.yale.edu, dar nu i cs.yale.edu, care este o zon separat cu propriile servere de nume. O astfel de decizie poate fi luat atunci cnd un departament ca cel de englez nu dorete s aib propriul server de nume, n schimb departamentul de calculatoare dorete. n consecin cs.yale.edu este o zon separat, n timp ce zona eng.yale.edu nu este separat.

584

NIVELUL APLICAIE

CAP. 7

Fig. 7-28. O parte din spaiul numelor DNS prezentnd mprirea n zone. Atunci cnd un resolver are o cerere referitoare la un nume de domeniu, el transfer cererea unuia din serverele locale de nume. Dac domeniul este sub jurisdicia serverului de nume, cum ar fi ai.cs.yale.edu, care este sub cs.yale.edu, el rentoarce nregistrri de resurse autorizate. O nregistrare autorizat (authoritative record) este cea care vine de la autoritatea care administreaz nregistrarea i astfel este ntotdeauna corect. nregistrrile autorizate se deosebesc de nregistrrile din memoria ascuns, care pot fi expirate. Dac, totui, domeniul se afl la distan, iar local nu este disponibil nici o informaie despre domeniul cerut, atunci serverul de nume trimite un mesaj de cerere la serverul de nume de pe primul nivel al domeniului solicitat. Pentru a clarifica acest proces s considerm exemplul din Fig. 7-29. Aici resolverul de peflits.cs.vu.nl dorete s tie adresa IP a sistemului gazd linda.cs.yale.edu. n pasul 1 trimite o cerere la serverul de nume local cs.vu.nl. Aceast cerere conine numele de domeniu cutat, tipul (A) i clasa (N).

Iniiator flits.cs.vu.nl

Server de nume Server de nume Server de nume Server de nume VU CS Edu Yale . Yale CS cs.vu.nl edu-server.net yale.edu cs.yale.edu

Fig. 7-29. Modul n care un resolver caut un nume aflat la distan, n opt pai. S presupunem c serverul local de nume nu a avut niciodat o cerere pentru acest domeniu i nu tie nimic despre el. Poate solicita informaii de la cteva servere de nume din apropriere, dar dac nici unul dintre ele nu tie, va trimite un pachet UDP la serverul pentru edu specificat n baza de date (vezi Fig. 7-29), edu-seiver.net. Este puin probabil ca acest server s cunoasc adresa linda.cs.yale.edu i probabil nu cunoate nici adresa cs.yale.edu, dar trebuie s cunoasc adresele fiilor din subarbore, astfel c va transmite cererea la serverul de nume yale.edu (pas 3). Acesta va transmite cererea mai departe ctre cs.yale.edu (pas 4), care trebuie s aib nregistrrile autorizate

SEC. 7.3

SNMP - PROTOCOL SIMPLU DE ADMINISTRARE A REELEI

585

de resurse. Deoarece fiecare cerere este de la client la server, nregistrarea de resurs cerut parcurge paii 5 pn la 8. Odat ce aceste nregistrri de resurse ajung napoi la serverul de nume cs.vu.nl, ele vor fi depuse n memoria ascuns, pentru a fi folosite ulterior. Totui, aceast informaie nu este autorizat, deoarece orice schimbare fcut la cs.yale.edu nu se va propaga spre toate serverele care au folosit-o. Din acest motiv intrrile n memoria ascuns nu ar trebui s aib via prea lung. Acesta este motivul pentru care cmpul Timp_de_yia este inclus n fiecare nregistrare de resurs. El informeaz serverele de nume aflate la distan ct timp s menin nregistrrile n memoria ascuns. Dac o anumit main are de ani de zile aceeai adres IP, aceast informaie ar putea fi pstrat timp de o zi. Pentru infonnaii mai volatile este mai sigur ca nregistrrile s fie eliminate dup cteva secunde sau un minut. De menionat c metoda de interogare descris aici este cunoscut ca metoda de interogare recursiv (recursive query), deoarece fiecare server care nu are informaia cerut o caut n alt parte i raporteaz. Este posibil i o alt variant. In acest caz, atunci cnd o cerere nu poate fi rezolvat local, cererea eueaz, dar este returnat numele urmtorului server de pe calea ce trebuie ncercat. Aceast procedur d clientului mai mult control asupra procesului de cutare. Unele servere nu implementeaz interogarea recursiv i ntorc ntotdeauna numele urmtorului server la care s se ncerce. De asemenea merit menionat faptul c atunci cnd un client DNS nu reuete s primeasc un rspuns nainte de expirarea timpului de cutare, data viitoare va ncerca un alt server. Se presupune c serverul este probabil nefuncional, nu c cererea sau rspunsul s-au pierdut.

La nceputul dezvoltrii ARPANET-ului, dac ntrzierea la un anumit sistem gazd era foarte mare, persoana care detecta problema executa programul Ping pentru a primi un pachet de la destinaie. Analiznd amprentele de timp din antetul pachetului returnat, putea fi stabilit localizarea problemei i se luau msuri pentru a fi rezolvat. n plus, numrul de rutere era att mic, nct era posibil verificarea tuturor pentru a descoperi care dintre ele avea probleme. Cnd ARPANET a devenit internet, aceast reea internaional, cu multiple coloane vertebrale i o mulime de operatori, soluia a ncetat s mai fie adecvat, aa c a fost nevoie de instrumente mai bune de administrare a reelei. Dou prime ncercri au fost definite n RFC 1028 i RFC 1067, dar viaa lor a fost scurt. n mai 1990 a fost publicat RFC 1157, definind versiunea 1 a SNMP-ului (Simple Network Management Protocol - protocol simplu de administrare a reelei). mpreun cu un document nsoitor (RFC 1155) despre informaiile de administrare, SNMP furniza o metod sistematic de monitorizare i administrare a unei reele de calculatoare. Aceast structur i acest protocol au fost implementate pe scar larg n cadrul aplicaiilor comerciale i au devenit standarde "de facto" pentru administrarea reelelor. Pe msur ce s-a ctigat experien, au ieit la iveal neajunsuri ale SNMP i astfel o versiune mbuntit a SNMP-uiui (SNMPv2) a fost definit (n RFC-urile 1441-1452), devenind un alt standard Internet. In seciunile care urmeaz, vom avea o scurt discuie despre modelul i protocolul SNMP (mai exact SNMPv2).

586

NIVELUL APLICAIE

CAP. 7

Dei SNMP-ul a fost creat n ideea de a fi simplu, cel puin un autor a reuit s scrie o carte de 600 de pagini despre el (Stellings, 1993a). Pentru o descriere mai compact (450-550 de pagini) consultai crile lui Rose (1994) i Rose i McQoghrie (1995), ambii numrndu-se printre proiectanii SNMP. Alte referine sunt Feit (1995) i Hein i Griffiths (1995). 7.3.1 Modelul SNMP Modelul SNMP de administrare a reelei este format din 4 componente: 1. 2. 3. 4. Noduri administrate. Staii de administrare. Informaii de administrare. Un protocol de administrare.

Aceste componente sunt ilustrate n Fig. 7-30 i vor fi comentate n continuare.


Proces de administrare Gazd Ruter Imprimanta

Staie de administrare

protocoi SNMP

Pune

Fig. 7-30. Componentele modelului de administrare SNMP. Nodurile administrate pot fi sisteme gazd, rutere, puni, imprimante sau alte dispozitive capabile s comunice informaii de stare ctre lumea exterioar. Ca s poat fi administrat direct de SNMP, un nod trebuie s poat executa un proces de administrare SNMP, numit agent SNMP. Toate calculatoarele ndeplinesc aceast cerin, aa cum o fac i multe puni, rutere i dispozitive periferice proiectate pentru utilizarea n reea. Fiecare agent i menine o baz de date local de variabile, care descrie starea i istoria sa i care i influeneaz funcionarea. Administrarea reelei se face de la staii de administrare (management stations), care sunt de fapt calculatoare de uz general care execut programe speciale de administrare. Staiile de administrare conin unul sau mai multe procese care comunic cu agenii prin reea, trimind comenzi i primind rspunsuri. n aceast structur, toat inteligena se gsete n staiile de administrare, n scopul de a menine agenii ct mai simpli posibil i de a minimiza impactul lor asupra dispozitivelor pe care se execut. Multe staii de administrare au o interfa grafic

SEC. 7.3

SNMP - PROTOCOL SIMPLU DE ADMINISTRARE A REELEI

587

ce permite administratorului de reea s inspecteze starea reelei i s ia msuri atunci cnd este necesar. Cele mai multe dintre reele sunt eterogene, cu sisteme gazd de la unul sau mai muli productori, puni i rutere de la alte companii i imprimante de la cu totul altele. Pentru a permite unei staii de administrare (posibil i ea furnizat de un alt productor) s comunice cu toate aceste componente diferite, natura informaiei pstrate de toate dispozitivele trebuie s fie bine specificat. Nu are nici un rost ca staia de administrare s ntrebe un ruter care este rata de pachete pierdute dac rutenii nu ine evidena acesteia. De aceea, SNMP descrie (ngrozitor de detaliat) informaia exact pe care fiecare agent trebuie s o pstreze i formatul n care trebuie furnizat. Cea mai mare parte a modelului SNMP o reprezint definirea celor care trebuie s pstreze anumite informaii precum i modul n care sunt comunicate aceste informaii. Foarte pe scurt, fiecare dispozitiv actualizeaz una sau mai multe variabile care descriu starea sa. n literatura SNMP aceste variabile se numesc obiecte, dar termenul este oarecum neltor, cci nu este vorba de obiecte n sensul sistemelor orientate pe obiecte, deoarece acestea au numai stri, nu i metode (altele dect citirea i scrierea valorilor). Cu toate acestea termenul este att de nrdcinat (de exemplu, este folosit n diferite cuvinte rezervate din cadrul limbajului de specificare utilizat), nct l vom folosi i noi n continuare. Colecia tuturor posibilelor obiecte dintr-o reea este dat ntr-o structur de date numit MIB (Management Information Base - baz de informaii de administrare). Staiile de administrare interacioneaz cu agenii folosind protocolul SNMP. Acest protocol permite staiei de administrare s ntrebe un agent despre starea obiectelor locale i s le modifice dac este necesar. Cea mai mare parte din SNMP este reprezentat de acest tip de comunicaie ntrebare-rspuns. Totui, uneori au loc evenimente neateptate. Nodurile administrate pot s se blocheze sau s se reseteze, liniile de comunicaie pot cdea pentru a reveni apoi la starea de funcionare, pot aprea congestii .a.m.d. Fiecare eveniment important este definit ntr-un modul MIB. Atunci cnd un agent observ c s-a produs un eveniment important, raporteaz imediat evenimentul ctre toate staiile de administrare din lista sa de configuraie. Acest raport se numete (din motive istorice) capcan (trap) SNMP. Raportul afirm' doar c s-a ntmplat un anumit eveniment. Este de datoria staiei de administrare s lanseze ntrebri pentru a afla detaliile neplcute. Deoarece comunicaia de la nodurile dirijate ctre staia de administrare nu este sigur (adic nu este confirmat), este bine ca staia de administrare s interogheze din cnd n cnd fiecare nod administrat pentru a verifica dac nu cumva au aprut evenimente neobinuite. Modelul de interogare la intervale mari, cu accelerare Ia recepia unei capcane se numete interogare direct a capcanelor (trap directed polling). Acest model presupune c fiecare nod administrat este capabil s ruleze intern un agent SNMP. Este posibil ca dispozitivele mai vechi sau care nu au fost proiectate pentru utilizarea n reea s nu aib aceast capacitate. Pentru a le putea folosi i pe acestea, SNMP definete ceea ce numim un agent intermediar (proxy agent), adic un agent care vegheaz asupra unuia sau mai multor dispozitive non SNMP i comunic n locul lor cu staia de administrare i, eventual, chiar cu dispozitivele respective, prin intermediul unor protocoale nestandard. Securitatea i autentificarea joac un rol important n cadrul SNMP-ului. O staie de administrare are capacitatea de a afla foarte multe despre fiecare dintre nodurile pe care le controleaz i, de asemenea, are posibilitatea de a le opri pe toate. De aceea este foarte important ca

588

NIVELUL APLICAIE

CAP. 7

agenii s fie siguri c cererile presupunndu-se a fi de la staia de administrare provin ntr-adevr de la ea. n SNMPvl, staia de administrare se identific prin intermediul unei parole (text normal) aflat n fiecare mesaj. n SNMPv2 securitatea s-a mbuntit considerabil prin folosirea unor tehnici criptografice moderne de tipul celor deja studiate. Aceast modificare a mai ngreunat acest protoco, care era deja ncrcat, i a fost eliminat ulterior. 73.2 ASN.l - Notaia sintactic abstract 1 Nucleul modelului SNMP este mulimea de obiecte administrate de ctre ageni i citite i scrise- de ctre staia de administrare. Pentru a face posibil comunicaia ntre produse de producie diferit este esenial ca aceste obiecte s fie definite ntr-un rnod standard, independent de productor. Mai mult, este necesar o metod standard de codificare a acestora pentru transferul n cadrul reelei. Definiiile din C ar satisface prima cerin, dar acestea nu definesc o codificare a bitului pe fir, astfel nct o staie de administrare folosind codificarea Hule endian (cel mai puin semnificativ primul) pe 32 de bii n complement fa de doi, s poat schimba informaie neambiguu cu un agent care folosete codificarea big endian (cel mai semnificativ primul) pe 16 bii, n complement fa de unu. Din aceast cauz este necesar un limbaj standard de definire a obiectelor, mpreun cu reguli de codificare. Cel folosit de SNMP este preluat de ia OSI i se numete ASN.l (Abstract Synfax Notation One - notaia sintactic abstract unu). La fel ca OSI, este mare, complex i nu prea eficient. (Autorul este tentat s spun c numindu-1 ASN.l n loc de ASN, proiectanii au admis n mod implicit c va fi nlocuit n curnd de ASN.2, dar se abine, politicos, s o fac). Asa-zisa putere a ASN.l (existenta regulilor de codificare neambigue) este de fapt o slbiciune a sa, deoarece regulile de codificare sunt optimizate astfel, nct s minimizeze numrul de bii transmii cu preul unei ocupri mai mari a unitii centrale la ambele capete ale transmisiei: codificare, decodificare. O schem mai simpl, folosind ntregi pe 32 bii aliniai la frontiere de 4 octei, ar fi fost probabil mai bun. Totui, bun sau ru, SNMP este mbibat de ASN.l, deci cine vrea s neleag SNMP-ui trebuie s se familiarizeze cu ASN.l. De aici urmeaz explicaiile. S ncepem cu limbajul de descriere a datelor prezentat n Standardul Internaional 8825. Sintaxa abstract ASN.l este, n esen, un limbaj de declarare a datelor primitive. El i permite utilizatorului s i defineasc obiecte primitive i apoi s le combine n cadrul unora mai complexe. O serie de declaraii din ASN.l sunt asemntoare din punct de vedere funcional cu declaraiile pe care le ntlnim n cadrul fiierelor antet (header) asociate multor programe C.
Tipuri primitive 1NTEGER BITSTRING OCTET STRING NULL OBJECTIDENTIFIER Semnificaie intreg de lungime arbitrar Sir de 0 sau mai muli bii Sir de 0 sau mai muli bii fr semn Rezervat Un tip de date definit oficia!

Cod
CNJ

3
4
K

Fig. 7-31= Tipurile de date primitive din ASN.l permise n SNMP.

SEC. 7.3

SNMP - PROTOCOL SIMPLU DE ADMINISTRARE A REELEI

589

SNMP are o serie de convenii sintactice pe care le vom urmri. Acestea nu sunt totui n totalitate cele folosite de ASN.l. Tipurile de date predefinite sunt scrise cu majuscule (de exemplu INTEGER). Tipurile definite de utilizator ncep cu majuscul, dar trebuie s conin cel puin un caracter diferit de majuscul. Identificatorii pot conine litere mici i mari, cifre, liniu, dar trebuie s nceap cu o liter mic (de exemplu counter). Caracterele de spaiere (tab, caniage return etc.) nu sunt semnificative. Comentariile ncep cu -- i continu pn la urmtoarea apariie-a secvenei -. Tipurile de baz ASN.l permise n SNMP sunt prezentate n Fig. 7-31. (n general vom ignora caracteristici ale ASN.l, cum ar fi tipurile BOOLEAN i REAL, care nu sunt permise n SNMP). Utilizarea codurilor va fi descris mai trziu. O variabil de tipul INTEGER poate, din punct de vedere teoretic, s ia orice valoare ntreag, dar alte reguli SNMP limiteaz intervalul. Pentru a exemplifica folosirea tipurilor, s vedem cum este declarat i (opional) iniializat cu 100 variabila count de tip INTEGER n ASN.l:
count INTEGER ::=100

Deseori este necesar un subtip ale crui variabile sunt limitate la o anumit valoare sau la un interval. Acestea pot fi declarate dup cum urmeaz:
Status ::= INTEGER{up(1), down(2), unknown(3)} PackeSize ::= INTEGER(O..1O23)

joint-iso-ccitt (2)

standard (0)

registrationauthority (1)

memberbody (2)

identifiedorganization (3)

dod (6)

directoryO)

mgmt (2) experimenta! (3) private (4) security(5) mib-2(1)

snmpv2 (6)

system (1) interface (2) ip (4) icmp (5) tcp (6) udp (7) egp (8) transmission (10)sampIe (11)

Fig. 7-32. O parte a arborelui de nume de obiecte ASN.l.

590

NIVELUL APLICATE

CAP. 7

Variabilele de tipul BIT STRING i OCTET' STRING conin zero sau mai muli bii i, respectiv, octei. Un bit este 0 sau 1. Un octet este cuprins ntre 0 i 255 inclusiv. Pentru ambele tipuri pot fi specificate lungimea irului i o valoare iniial. Tipul OBJECT IDENTIFIER furnizeaz o metod de identificare a obiectelor. n principiu, fiecare obiect definit n fiecare standard oficial poate fi identificat n mod unic. Mecanismul folosit este de a defini un arbore de standardizri i de a plasa fiecare obiect i fiecare standard ntr-un loc unic n arbore. Partea de arbore care conine SNMP MIB este prezentat n Fig. 7-32. Primul nivel din arbore conine toate organizaiile importante de standardizare din lume (n viziunea ISO) i anume ISO i CCITT (acum ITU) precum i combinaia celor dou. Din nodul iso sunt definite patru arce, din care unul este pentru identified-organization, ceea ce reprezint concesia ISO c pot exista i alte organizaii implicate n standarde. Ministerului Aprrii al Statelor Unite (DoD) i-a fost atribuit un loc n acest subarbore, iar ministerul a atribuit numrul 1 din ierarhia sa Internetului. n ierarhia Internet, SNMP MIB are codul 1. Fiecare arc din Fig. 7-32 are att o etichet ct i un numr, astfel nct nodurile pot fi identificate prin intermediul unei liste de arce, folosind etichet (numr) sau numere. n consecin, toate obiectele din SNMP MIB sunt identificate prin etichete de forma:
{iso identified-organization(3) dod(6) internetd) mgmt(2) mib-2(1)...}

sau, echivalent, {13 6121...}. De asemenea sunt permise i forme mixte. De exemplu, identificarea anterioar poate fi scris i sub forma:
{internet(1)2 1 ...}

n acest mod, fiecare obiect al fiecrui standard poate fi reprezentat ca un OBJECT IDENTIFIER. ASN.l definete cinci ci de construire a noilor tipuri derivate din cele de baz. SEQUENCE este o list ordonat de tipuri, similar unei structuri din C sau unei nregistrri din Pascal. SEQUENCE OF este un vector uni-dimensional de un anumit tip. SET i SET OF sunt analoage celor de mai sus, dar nu sunt ordonate. CHOICE creeaz o uniune iunion) dintr-o list de tipuri. Cei doi constructori SET nu sunt folosii n nici un document SNMP. O alt cale de a crea noi tipuri este de a redeclara tipuri vechi. Redeclararea unui tip este oarecum similar cu definirea unor tipuri noi n C, de exemplu timej i sizej, amndou de tip long dar care sunt folosite n contexte diferite. Redeclarrile sunt mprite n 4 categorii: universale, n cadrul unei aplicaii, specifice contextului i private. Fiecare marcaj (tag) este format dintr-o etichet i un ntreg identificnd marcajul. De exemplu:
Counter32 ::= [APPLICATION 1] INTEGER (0..4294967295) G32 ::= [APPLICATION 2] INTEGER (0..4294967295)

definesc dou tipuri diferite n cadrul unei aplicaii, amndou fiind ntregi fr semn pe 32 bii, dar fiind din punct de vedere conceptual diferite. Primul dintre ele ar putea, de exemplu, ca odat ajuns la valoarea maxim s continue cu valoarea 0, n timp ce cel de-al doilea ar continua s ntoarc valoarea maxim pn cnd va fi decrementat sau iniializat.

SEC. 7.3

SNMP-PROTOCOL SIMPLU DE ADMINISTRARE A REELEI

591

Un tip redeclarat poate avea cuvntul cheie IMPLICIT dup paranteza dreapt nchis atunci cnd tipul a ceea ce urmeaz reiese din context (ceea ce de exemplu, nu este adevrat n cadrul unui CHOICE). Procednd astfel permitem o mai eficient codificare a biilor, din moment ce marcajul nu mai trebuie transmis. ntr-un tip care implic o alegere (CHOICE) ntre dou tipuri diferite, trebuie transmis un marcaj care s spun receptorului ce tip este prezent. ASN.l definete un mecanism complex de macrodefinire, care este folosit din pin n SNMP. O macrodefiniie poate fi folosit ca un fel de prototip pentru a genera o mulime de tipuri i valori noi, fiecare cu sintaxa proprie. Fiecare macrodefiniie definete cteva cuvinte cheie (eventual opionale), care sunt folosite n apel pentru a identifica parametrii (adic parametrii macrodefiniiilor sunt identificai prin cuvinte cheie, nu prin poziie). Detaliile despre cum funcioneaz macrodefiniiile ASN.l nu fac obiectul acestei cri. Este suficient s spunem c o macrodefiniie este apelat menionnd numele su, urmat de (o parte din) cuvintele cheie i valorile lor pentru respectivul apel. Cteva exemple de macrodefiniii vor fi citate n cele ce urmeaz. Sintaxa de transfer ASN.l Sintaxa de transfer (transfer syntax) ASN.l definete modul n care valorile tipurilor ASN.l sunt convertite neambieuu ntr-o secven de octei care vor fi transmii (si decodificai neambieuu ia cellalt capt). Sintaxa de transfer folosit de ASN.l se numete BER (Basic Eacoding Riiles reguli de codificare de baz). ASN.l are sintaxe de transfer pe care SNMP nu le folosete. Regulile sunt recursive, deci codificarea unui obiect structurat este concatenarea codificrilor componentelor obiectului. Astfel toate obiectele pot fi reduse la o secven bine definit de obiecte primitive codificate. La rndul su, codificarea acestor obiecte este definit de BER. Principiul de baz aflat n spatele regulilor de codificare este c orice valoare transmis, fie c este primitiv sau construit, este format din cel mult patru cmpuri: 1. 2. 3. 4. Identificatorul (tip sau marcaj). Lungimea cmpului. Cmpul de date. Indicatorul de sfrit, dac lungimea datelor este necunoscut.

Ultimul cmp este permis de ASN.l, dar interzis explicit de SNMP, deci vom presupune c lungimea datelor este ntotdeauna cunoscut. Primul cmp identific elementul care urmeaz. La rndul su are trei subcmpuri, ca n Fig. 733. Primii doi bii identific tipul marcajului. Urmtorul bit arat dac valoarea este primitiv (0) sau nu (1). Biii de identificare sunt 00,01,10 i 11 pentru UNIVERSAL, APPLICATION, specific contextului i, respectiv, PRIVATE. Urmtorii cinci bii pot fi folosii pentru codificarea valorii marcajului, dac aceasta este n intervalul 0..30. Dac marcajul este 31 sau mai mare, ultimii cinci bii conin 11111, iar valoarea concret se gsete n urmtorul octet sau n urmtorii octei. Regula folosit la codificarea marcajelor mai mari ca 30 a fost proiectat s funcioneze pentru numere orict de mari. Fiecare octet identificator care urmeaz dup primul conine 7 bii de date. Primul bit are valoarea 0 n toi octeii, cu excepia ultimului. Deci marcajele cu valori pn ia 27-l pot fi reprezentate cu doi octei, iar cele pn ia 214-1, cu 3 octei.

592
Bii 2
Marcaj

NIVELUL APUCATE
1 5
Numr

CAP. 7

00 Universal 01 n cadrul aplicaiei 10 Specific contextului 11 Privat

0 Tip primitiv 1 Tip construit

Fig. 7-33. Primul octet din fiecare element trimis n sintaxa de transfer ASN.l. Codificarea tipului UNIVERSAL este direct. Fiecrui tip primitiv i-a fost atribuit un cod, prezentat n cea de-a treia coloan din Fig. 7-31. SEQUENCE i SEQUENCE OF au acelai cod, 16. CHOICE nu are alocat un cod, din moment ce orice valoare trimis va avea un tip specific. Celelalte coduri sunt pentru tipuri care nu sunt folosite n SNMP. Dup cmpul identificator de 1 octet urmeaz un cmp care precizeaz ci octei ocup datele. Lungimile mai mici de 128 octei sunt codificate direct ntr-un octet care are bitul cel mai din stnga 0. Pentru lungimi mai mari de 128 de octei se folosesc mai muli octei, dintre care primul conine 1 n bitul cel mai semnificativ i lungimea cmpului (pn la 127 de octei) H urmtorii 7 bii. De exemplu, dac lungimea datelor este de 1000 octei, primul octet conine 130 pentru a arta c urmeaz un cmp cu lungimea de doi octei. Apoi urmeaz doi octei ce conin valoarea 1000, octetul cel mai semnificativ fiind primul. Codificarea cmpului de date depinde de tipul de date existent. ntregii sunt codificai n complement fa de doi. Un ntreg mai mic dect 128 necesit un octet, un ntreg mai mic dect 32768 necesit doi octei i aa mai departe. Cel mai semnificativ octet este transmis primul. irurile de bii sunt codificate ca atare. Singura problem este cum s le indicm lungimea. Cmpul lungime precizeaz ci octei are valoarea, nu ci bii. Soluia este ca naintea irului de bii s se transmit un octet care s specifice ci bii (0 pn la 7) din octetul final nu sunt utilizai. Astfel codificarea irului de 9 bii '010011111' va fi 07,4F,80 (hexazecimal). irurile de octei se codific simplu. Octeii din ir sunt transmii ncepnd cu cel mai semnificativ (big endian), de la stnga la dreapta. Valoarea nuli este indicat punnd lungimea irului pe 0. Nu este transmis nici o valoare numeric. Un OBJECTIDENTIFIER este codificat prin secvena de ntregi pe care o reprezint. De exemplu, Internet este {1,3, 6,1}. Totui, deoarece primul numr nu poate fi dect 0,1 sau 2, iar al doilea este mai mic dect 40 (prin definiie ISO nu va recunoate categoria 41), primele dou numere, a i b, sunt codificate printr-un octet cu valoarea 40a+b. Pentru Internet acest numr este 43. Aa cum tim, numerele mai mari ca 127 sunt codificate pe mai muli octei, primul avnd cel mai semnificativ bit setat 1 i numrul de octei n urmtorii 7 bii. Ambele tipuri de secvene sunt transmise ncepnd cu tipul sau marcajul, apoi lungimea total a codificrii, urmat de cmpuri. Cmpurile sunt transmise n ordine. Codificarea unei valori CHOICE este aceeai cu codificarea structurii de date efectiv transmise.

SEC. 7.3

SNMP - PROTOCOL SIMPLU DE ADMINISTRARE A REELEI

593

Tip Numr identificator identificator Lungime ntreg 49 Valoare

00 0 00010 00000001 0 0 110 0 0 1

i r u l de b i i " 1 1 0 ! [ 0 o|o|O 0 0 1 1| | 00 0 00 0 1 Q| [ 0 0 0 0 0 1 0 1J [1 1 Q O O Q O Q j Siru! de octei "xy"

00 0 00100 00000010 01111000 01111001 00 0 00101 00000000


00000011 00000001 00101011 0 0 0 0 1 1 10 00000110 000000 01

Obiect Internet Gauge32 1 4

0 0 0 0 0 1 10 01000010

FIg0 7-34. Codificarea ASN.l pentru cteva exemple de valori.


lor?] Un exemplu care prezint codificrile pentru anumite valori este prezentat n Fig. 7-34. valorile codificate sunt INTEGER 49, OCTET STRING 110', xz", singura valoare posibil pentru NULI, OBIECT IDENTIFIER-ul pentru Internet {1,3,6,1} i valoarea 14 de tip Gauge32.

7.3.3 SMI - Structura informaiei de administrare n seciunea precedent, am discutat numai despre acele pri ale ASN.l care sunt folosite i n SNMP. n realitate documentele SNMP sunt organizate altfel. RFC 1442 spune mai nti c ASN.l va fi folosit pentru a descrie structurile de date ale SNMP, apoi, n cadrul a 57 de pagini, enumera prile din standardul ASN.l pe care nu le dorete i adaug noi definiii (n ASN.l) care sunt necesare. In particular, RFC 1442 definete patru macrodefiniii importante i opt noi tipuri de dae care sunt folosite intens n cadrul SNMP. Acesta este sub-super-setul ASN.l, care se numete SMI (Stractare of Management Information - structura informaiei de administrare) i care este folosit pentru definirea structurilor de date din SNMP. Dei aceast abordare este oarecum birocratic, sunt necesare unele reguli pentru a face posibil comunicarea ntre cele cteva sute de produse ale diferiilor productori. De aceea vom spune cteva cuvinte i despre SMI. La cel mai de jos nivel, variabilele SNMP sunt definite ca obiecte individuale. Obiectele nrudite sunt reunite n grupuri, iar grupurile sunt asamblate n module. De exemplu, exist grupuri pentru obiecte P i obiecte TCP. Un ruter poate suporta grupul IP, dac administratorul su vrea s in evidena pachetelor pierdute. Pe de alt parte, un ruter ieftin poate s nu suporte grupul TCP, din moment ce nu are nevoie s utilizeze TCP ca s realizeze funciile de dirijare. Ideea este ca toi productorii care suport un grup s suporte toate obiectele din grupul respectiv. Totui, un productor care suport un modul nu trebuie s

594

NIVELUL APUCATE

CAP. 7

suporte toate grupurile acestuia, deoarece este posibil ca unele s nu fie aplicabile echipamentului. ; Toate modulele MIB ncep cu un apel al macrodefiniiei MODULE-IDENTTY. Parametrii si furnizeaz numele i adresa celui care 1-a implementat, istoricul reviziilor i alte informaii administrative. De obicei, acest apel este urmat de apelul macrodefiniiei OBJECTIDENTITIY, care precizeaz unde este amplasat modulul n cadrul arborelui din Fig. 7-32. Urmeaz apoi unul sau mai multe apeluri ale macrodefiniiei OBJECT-TYPE, care indic variabilele administrate i le specific proprietile. Gruparea variabilelor n grupuri este fcut prin convenie; n ASN.l sauSMI nu exist instruciuniBEGIN-GROUP si END-GROUP. Macrodefiniia OBJECT-TYPE are patru parametri obligatorii i patru parametri opionali. Primul parametru obligatoriu este SYNTAX i definete tipul variabilei, dintre cele listate n Fig. 735. n cea mai mare parte, aceste tipuri sunt autoexplicate, cu comentariile urmtoare. Sufixul 32 este folosit atunci cnd se dorete un numr pe 32 de bii, chiar dac toate mainile considerate au uniti centrale pe 64 de bii. Tipurile Gauges difer de counter prin aceea c, atunci cnd i ating limita superioar, nu revin la valoarea minim, ci rmn nemodificate. Dac un ruter a pierdut exact 2 32 pachete, este mult mai bine ca el s raporteze 232-l dect 0. SMI suport i vectori, dar nu vom discuta despre acest subiect. Pentru detalii consultai (Rose,1994)
Nume INTEGER Counter32 Gauge32 Uinteger32 Integer32 Counter64 TimeTicks BIT STRING OCTET STRING Opaque OBJECT IDENTIFIER IpAddress NsapAddress Tip Numeric Numeric Numeric Numeric Numeric Numeric Numeric String String String String String String
Octei
Semnificaie

4 4 4 4 4 8 4 4 >0 >0 >0 4 <22

ntreg (pe 32 de bii n implementrile obinuite) Contor fr semn pe 32 de bii circular ntreg fr semn pe 32 de bii, cu limitare ntreg pe 32 de bii chiar pe maini pe 64 de bii ntreg ca i Jnteger32, dar fr semn Contor pe 64 de bii Sutimi de secund de la un anumit moment De la 1 la 32 de bii ir de octei de lungime variabil nvechit; doar pentru compatibilitate 0 list de ntregi din Fig. 7-32 Adres de Internet n notaia zecimal cu puncte Adres OSI NSAP

Fig 7-35. Tipuri de date utilizate pentru variabilele monitorizate de SNMP. n afar de specificarea tipului de date folosit de variabila declarat, macrodefiniia OBJECT TYPE solicit nc trei parametri. MAX-ACCESS conine informaii despre accesul la variabil. Cele mai obinuite valori sunt citire-scriere (read-write) i doar-citire (read-only). Dac o variabil are acces citire-scriere, atunci staia de administrare o poate modifica. Dac accesul este doar-citire atunci staia o poate citi, dar nu o poate modifica. STATUS poate avea trei valori. O variabil current (actual) respect specificarea SNMP curent. O variabil obsolete (nvechit) nu este n conformitate cu versiunea curent, ci cu una mai veche. O variabil deprecated (depit) are un statut ntre primele dou. Este de fapt nvechit, dar comitetul care a scris standardul nu a ndrznit s spun acest lucru de frica reaciei din partea productorilor ale cror produse o folosesc.

SEC. 7.3

SNMP - PROTOCOL SIMPLU DE ADMINISTRARE A REELEI

595

Ultimul parametru obligatoriu este DESCRIPTION, care este un ir ASCII ce descrie rolul variabilei. Dac un administrator cumpr un echipament nou i sclipitor, l interogheaz de la staia de administrare i afl c acesta ine evidena pktCnt7, cmpul DESCRIPTION ar trebui s-i dea o indicaie despre tipul pachetelor numrate. Acest cmp este destinat numai factorului uman (nicidecum calculatorului). lostPacketsOBJECTTYPE - folosete un contor pe 32 de bii SYNTAX Counter32 MAX-ACCESS read-on!y - staia de administrare nu o poate modifica STATUS current -- variabila nu este de nvechit (nc) DESCRIPTION Numrul de pachete pierdute de la ultima pornire" ::= {experimental 20} Fig. 7-36. Un exemplu de variabil SNMP. Un exemplu simplu de declaraie OBIECT TYPE este dat n Fig. 7-36. Variabila se numete iosiPackets i poate fi folosit de ctre un rater sau orice alt echipament care administreaz pachete. Valoarea de dup semnul ::= o plaseaz n arbore. 7.3=4 MDB - Baza de informaii de administrare Colecia de obiecte administrate de SNMP este definit n MIB. Pentru uurin, aceste obiecte sunt grupate (n mod obinuit) n zece categorii, care corespund celor zece noduri de sub mib-2 din Fig. 7-32. (Not: mib-2 corespunde lui SNMPv2 i obiectul 9 nu mai apare). Cele zece categorii au menirea s ofere baza pentru ceea ce ar trebui s neleag o staie de administrare. Cu certitudine n viitor vor fi adugate noi categorii i obiecte, iar productorii sunt liberi s defineasc obiecte n plus pentru produsele lor. Cele zece categorii sunt prezentate n Fig. 7-37.
Grup Sistem Interfee Numr obiecte Descriere Numele, amplasarea i descrierea echipamentului Interfee de reea si traficul lor Traducerea adresei (depit) Statistici pentru pachetele IP Statistici despre mesajele ICMP primite Algoritmi, parametri i statistici TCP Statistici de trafic UDP Statistici de trafic pentru protocoale de poart exterioar Rezervat pentru MIB-uri specifice mediului de transmisie Statistici de trafic SNMP

AT IP

ICMP

TCP UDP EGP


Transmisie SNMP

7 23 3 42 26 19 6 20 0 29

Fig. 7-37. Grupul de obiecte MB- pentru Internet.

pachet Cowt - numr de pachete (n.t.)

596

NIVELUL APLICAIE

CAP. 7

Dei limitrile de spaiu nu ne permit s intrm n detaliile tuturor celor 175 de obiecte definite n MIB II, cteva comentarii sunt totui utile. Grupul sistem permite administratorului s afle denumirea echipamentului, cine 1-a produs, ce hardware i software conine, unde se afl i ce ar trebui s fac. De asemenea, sunt furnizate timpul ultimei porniri i numele i adresa persoanei de contact. Aceast informaie permite ca o companie s se poat angaja s administreze sistemul unei alte companii, care se afl ntr-un alt ora i i permite celei din urm s afle ce configuraie are sistemul i cu cine poate lua legtura n cazul n care apar probleme cu diferite echipamente. Grupul interfee se ocup de adaptoarele de reea. Memoreaz numrul de pachete i de bii trimii i primii de pe reea, numrul de pachete respinse, numrul de transmisii i dimensiunea cozii de ieire. Grupul AT a fost prezent i n MIB-I i furniza informaii despre corespondena dintre adrese (de exemplu de la Ethernet la IP). n SNMPv2 aceast informaie a fost mutat n MIB-uri specifice protocoalelor. Grupul IP se ocup de traficul IP din i spre nod. Este bogat n contoare care memoreaz numrul de pachete respinse pentru o diversitate de motive (de exemplu traseu ctre destinaie necunoscut sau penurie de resurse). De asemenea sunt disponibile statistici despre fragmentarea i reasamblarea datagramelor. Toate aceste elemente sunt deosebit de importante pentru administrarea ruterelor. Grupul ICMP se refer la mesajele de eroare IP. De fapt, are un contor pentru fiecare mesaj ICMP, contor care nregistreaz cte mesaje de acel tip au fost ntlnite. Grupul TCP monitorizeaz numrul curent i cumulat de conexiuni deschise, segmente trimise i primite, precum i diferite statistici referitoare la erori. Grupul UDP ine evidena numrului de datagrame UDP trimise i primite i cte din ultima categorie nu au fost livrate datorit unui port necunoscut sau din alt motiv. Grupul EGP este folosit de ruterele care suport protocolul de poart exterioar. ine evidena numrului de pachete de un anumit tip care au plecat, au venit i au fost corect retransmise sau au venit i au fost eliminate. Grupul transmisie este rezervat pentru MIB-uri specifice mediului de transmisie. De exemplu, statisticile specifice Ethernet pot fi pstrate aici. Scopul includerii unui grup vid n cadrul MIB-II este acela de a rezerva identificatorul {Internet 219} pentru astfel de scopuri. Ultimul grup este cel care colecteaz statisticile despre funcionarea SNMP-ului: cte mesaje au fost transmise, de ce tip sunt acestea .a.m.d. MIB-II este definit formai n cadrul RFC 1213. RFC 1213 const din 175 de apeluri de macrodefiniii similare celor din Fig. 7-36, cu comentarii care delimiteaz cele zece grupuri. Pentru fiecare dintre cele 175 de obiecte definite este furnizat tipul de date mpreun cu un text n limba englez care descrie la ce este folosit variabila. Pentru informaii mai detaliate asupra MIB-II, cititorul este rugat s consulte acest RFC.
7.3.5 Protocolul SNMP

Am vzut pn acum c modelul pe care se sprijin SNMP-ul este o staie de administrare care trimite cereri ctre agenii din nodurile administrate, interesndu-se de cele 175 de variabile, despre care tocmai am discutat, i multe alte variabile specifice echipamentelor. Ultimul punct pe care l

SEC. 7.4

POSTA ELECTRONICA

597

vom discuta este protocolul pe care l folosesc staia de administrare i agenii pentru a comunica. Protocolul este definit n RFC 1448.
Mesaj Get-request Get-next-request Get-bulk-request Set-reques Inform-reques SNMPv2-trap
Descriere

Solicit valoarea uneia sau a mai multor variabile Solicit variabila care urmeaz dup aceasta Aduce o tabel mare Actualizeaz una sau mai multe variabile Mesaj de la administrator la administrator descriind MIB-ul local Raport agent-ctre-administrator referitor la capcan

Fig. 7-38. Tipurile de mesaje SNMP. Modul normal n care este folosit SNMP-ul este acela n care staia de administrare trimite ctre un agent o cerere prin care solicit informaii sau i comand s-i actualizeze starea ntr-un anumit mod. n mod ideal, agentul ntoarce informaia cerut sau confirm actualizarea strii. Datele sunt trimise folosind sintaxa de transfer ASN.l. Totui, pot fi raportate i diferite erori, cum ar fi nu exist o asemenea variabila" (No Such Variable). SNMP definete apte mesaje care pot fi trimise. Cele ase mesaje provenite de la un iniiator sunt listate n Fig. 7-38 (cel de-al aptelea mesaj este mesajul rspuns). Primele trei solicit s fie trimise valori de variabile. Prima form numete explicit variabilele pe care le dorete. Cea de-a doua cere urmtoarea variabil, permindu-i administratorului s parcurg MIB-ul n ordine alfabetic (implicit este vorba de prima variabil). Cea de-a treia form este pentru transferuri mari, ca de exemplu tabele. Urmeaz un mesaj care permite administratorului s actualizeze variabilele unui agent, bineneles n msura n care specificaia obiectului permite acest lucru. Urmtoarea este o cerere de informaie care i permite unui administrator s i comunice altuia ce variabile administreaz. Ultimul este mesajul trimis de ctre un agent unui administrator, atunci cnd apare o capcan.

7.4 POTA ELECTRONIC


O dat ce am terminat trecerea n revist a ctorva dintre protocoalele suport utilizate la nivelul aplicaie, ajungem n sfrit la aplicaiile reale. Cnd sunt ntrebai: Ce vrei s facei acum?,,, puini oameni rspund: S m uit pe nite nume utiliznd DNS-ul. Ei spun ns c i citesc pota sau tirile, c se plimb pe Web, sau c privesc un film pe reea. In restul acestui capitol, vom explica suficient de amnunit cum lucreaz aceste patru aplicaii. Pota electronic, sau e-mail, cum este ea cunoscut de ctre numeroii si admiratori, exist de peste dou decenii. Primul sistem de pot electronic consta pur i simplu din protocoale de transfer de fiiere, cu convenia ca prima linie a fiecrui mesaj (adic fiier) s conin adresa receptorului. Cu timpul, limitrile acestei abordri au devenit din ce n ce mai evidente. O parte dintre neajunsuri erau: 1. Trimiterea unui mesaj ctre un grup de persoane era complicat. Managerii utilizeaz adesea aceast facilitate pentru a trimite note i rapoarte tuturor subordonailor.

NIVELUL APLICAIE 2.

CAP. 7

3. 4.

5.

6.

Mesajele nu aveau structur intern, fcnd astfel dificil prelucrarea lor cu ajutorul calculatorului. De exemplu, dac un mesaj trimis mai departe cu forward era inclus n corpul altui mesaj, extragerea prii incluse din mesajul primit era dificil. Iniiatorul (transmitorul) nu tia niciodat dac mesajul a ajuns sau nu. Dac cineva avea n plan s plece n cltorie de afaceri pentru mai multe sptmni i dorea ca toat pota primit n acest timp s fie preluat de ctre secretar, acest luau nu era uor de realizat. Interfaa utilizator era slab integrat cu sistemul de transmisie, cernd utilizatorilor ca nti s editeze un fiier, apoi s prseasc editorul i s apeleze programul de transfer de fiiere. Nu era posibil transmiterea de mesaje care s conin o combinaie de text, desene, facsimil si voce.

% msur ce s-a ctigat experien, au fost propuse sisteme de pot electronic mai complicate, n 1982 au fost publicate propunerile cu privire la e-mail ale ARPANET, sub numele de RFC821 (protocolul de transmisie) i RFC822 (formatul mesajelor). n prezent acestea au devenit standardele de faco ale Internetului. Doi ani mai trziu, CQTT a emis recomandarea X.400, care a fost preluat ulterior ca baz pentru MOTIS de ctre OSI. n 1988, CCI1T a modificat recomandarea X.400 pentru a o alinia la MOTIS. MOTIS urma s fie aplicaia principal, nava amiral" pentru OSI, un sistem care urma s fie de toate pentru toi. Dup un deceniu de. competiie, sistemele de pot electronic bazate pe RFC822 sunt larg rspndite, n timp ce acelea bazate pe X.400 au disprut dincolo de linia orizontului. Modu! n care un sistem ncropit de o mn de absolveni de tiina calculatoarelor a btut un standard internaional oficial, puternic susinut de ctre toate PTT-urile din lumea ntreag, de multe guverne i de o parte substanial a industriei calculatoarelor, ne aduce n minte povestea biblic a lui David i Goliat. Motivul succesului lui RFC822 nu este dat de faptul c ar fi att de bun, ci c X.400 este att de slab proiectat i att de complex, nct nimeni nu l-ar putea implementa bine. Avnd de ales ntre un sistem nesofisticat, dar care funcioneaz, cum este cel bazat pe RFC822 i sistemul de email_X.400} presupus cu adevrat minunat, dar nefuncional, majoritatea organizaiilor l-au ales pe primul. Pentru o diatrib ampl la adresa sistemului de e-mail bazat pe X.400 a se vedea anexa C din (Rose, 1993). Prin urmare, discuia noastr cu privire la pota electronic se va focaliza asupra RFC821 i RFC822, aa cum sunt folosite n Intemet. 7.4.1 Arhitectur i servicii n aceast seciune vom furniza o prezentare de ansamblu a ceea ce pot face sistemele de pot electronic i cum sunt ele organizate. Aceste sisteme constau de obicei din dou subsisteme: geni-utilizator, care permit utilizatorilor s citeasc i s trimit scrisori prin pota electronic i ageaii de transfer de mesaje, care transport mesajele de la surs la destinaie. Agenii-utilizator sunt programe locale, care furnizeaz o metod de a interactiona cu sistemul de e-mail bazat pe comenzi, meniuri sau grafic. Agenii de transfer de mesaje sunt, n mod tipic, demoni de sistem, care se execut n fundal i transfer mesajele prin sistem. In general, sistemele de pot electronic pun la dispoziie cinci funcii de baz, descrise mai jos.

SEC. 7.4

POTA ELECTRONIC

599

Compunerea - se refer la procesul de creare a mesajelor i a rspunsurilor. Dei pentru corpul mesajului poate fi folosit orice editor de texte, sistemul nsui poate acorda asisten la adresare i la completarea numeroaselor cmpuri antet ataate fiecrui mesaj. De exemplu, cnd se rspunde la un mesaj, sistemul poate extrage adresa iniiatorului din mesajul primit i o poate insera automat n locul potrivit din cadrul rspunsului. Transferul - se refer la deplasarea mesajului de la autor la receptor. n mare, aceasta necesit stabilirea unei conexiuni la destinaie, sau la o main intermediar, emiterea mesajului i eliberarea conexiunii. Sistemul de pot ar trebui s fac acest lucru singur, fr a deranja utilizatorul. Raportarea - se refer la informarea iniiatorului despre ce s-a ntmplat cu mesajul. A fost livrat? A fost respins? A fost pierdut? Exist numeroase aplicaii n care confirmarea livrrii este important i poate avea chiar semnificaie juridic. (tii, domnule judector, sistemul meu de pot electronic nu e foarte de ncredere, aa c presupun c citaia electronic s-a pierdut pe undeva.") Afiarea mesajelor primite este necesar pentru ca utilizatorii s-i poat citi pota. Uneori sunt necesare conversii sau trebuie apelat un program de vizualizare special; de exemplu, dac mesajul este un fiier PostScript, sau voce digitizat. Se mai ncearc uneori i conversii simple i formatri. Dispoziia este pasul final i se refer la ceea ce face receptorul cu mesajul, dup ce 1-a primit. Posibilitile includ eliminarea sa nainte de a-1 citi, aruncarea sa dup citire, salvarea sa .a.m.d. Ar trebui de asemenea s fie posibil regsirea i recitirea de mesaje deja salvate, trimiterea lor mai departe, sau procesarea lor n alte moduri. In plus fa de aceste servicii de baz, majoritatea sistemelor de e-mail dispun de o gam variat de trsturi avansate. S menionm pe scurt cteva dintre ele. Cnd utilizatorii se deplaseaz sau cnd sunt plecai pentru o perioad de timp, pot dori ca pota lor s fie trimis acolo unde se gsesc, aa c sistemul ar trebui s fie capabil s fac acest lucru automat. Majoritatea sistemelor permit utilizatorilor s-i creeze cutii potale (mailboxes) pentru a pstra mesajele sosite. Sunt necesare comenzi de creare i distrugere a cutiilor potale, de inspectare a coninutului acestora, de inserare i de tergere de mesaje din cutii potale .a.m.d. Managerii de companii au adesea nevoie s trimit un acelai mesaj fiecrui subordonat, client sau furnizor. Acest lucru d natere ideii de list de pot (mailing list), care este o list de adrese de pot electronic. Cnd un mesaj este trimis la lista de pot, copii identice ale sale sunt expediate fiecruia dintre cei de pe list. O alt idee important este cea de nregistrare a mesajelor, pentru a permite iniiatorului s tie dac mesajul su a ajuns. Alternativ, se poate dori notificarea automat a mesajelor care nu pot fi livrate. n orice caz, iniiatorul ar trebui s aib un oarecare control asupra raportrii a ceea ce s-a ntmplat. Alte caracteristici evoluate sunt copii la indigo, pot de prioritate mare, pot secret (criptat), receptori alternativi, dac cel primar nu este disponibil, i posibilitatea de a permite secretarelor s se ocupe de pota primit de efii lor. Pota electronic este n prezent folosit pe scar larg n industrie, pentru comunicaie n cadrul companiilor. Aceasta permite unor angajai, rspndii la distane mari unii de ceilali, chiar i peste mai multe fusuri orare, s coopereze la proiecte complexe. Eliminnd majoritatea indiciilor cu privire la funcie, vrst i gen, dezbaterile prin pota electronic tind s se concentreze asupra ideilor i nu a statutului din cadrul organizaiei. Prin pota electronic, o idee sclipitoare a unui student la cursurile de var poate avea un impact mai

600

NIVELUL APLICAIE

CAP. 7

mare dect una stupid, venit de la un vicepreedinte executiv. Unele companii au estimat c pota electronic le-a mbuntit productivitatea cu pn la 30% (Perry and Adam, 1992). O idee cheie n toate sistemele moderne de e-mail este distincia dintre plic i coninutul su. Plicul ncapsuleaz mesajul. Conine toat informaia necesar pentru transportul mesajului, cum ar fi destinaia, adresa, prioritatea, nivelul de securitate, toate acestea fiind distincte de mesajul n sine. Agenii de transfer de mesaje folosesc plicul pentru rutare (dirijare), aa cum face i oficiul potal. Mesajul din interiorul plicului conine dou pri: antetul i corpul. Antetul conine informaie de control pentru agenii utilizator. Corpul mesajului se adreseaz n ntregime utilizatorului uman. Plicurile i mesajele sunt ilustrate n Fig. 7-39. 7.4.2 Agentul utilizator Sistemele de pot electronic au, aa cum am vzut, dou pri eseniale: agenii-utilizator i agenii de transfer de mesaje. n aceast seciune ne vom uita la agenii utilizator. Un agent utilizator este de obicei un program (uneori numit cititor de pot) care accept o varietate de comenzi pentru compunerea, primirea i rspunsul la mesaje, ct i pentru manipularea cutiilor potale. Unii ageni-utilizator au o interfa sofisticat, dirijat prin meniuri sau icoane, care necesit un maus, n timp ce altele accept comenzi de cte un caracter, date de la tastatur. Funcional ns, toi acetia sunt identici. Trimiterea potei electronice Pentru a trimite un mesaj prin pota electronic, un utilizator trebuie s furnizeze mesajul, adresa - destinaie, i eventual ali civa parametri (de exemplu, prioritatea sau nivelul de securitate). Mesajul poate fi produs cu un editor de texte de sine-stttor, cu un program de procesare de text sau, eventual, cu un editor de texte construit n interiorul agentului utilizator. Adresa de destinaie trebuie s fie ntr-un format cu care agentul utilizator s poat lucra. Muli ageni-utilizator solicit adrese de forma cutie_potal@locaie. Deoarece aceste lucruri au fost studiate anterior n acest capitol, nu vom relua materialul respectiv aici. Oricum, merit notat c exist i alte forme de adresare. n particular, adresele X.400 arat radical diferit de cele DNS. Ele sunt compuse din perechi de forma anbut-valoare. De exemplu:
/C=US/SP=MASSACHUSETTS/L=CAMBRIDGE/PA=360 MEMORIAL DR./CN=KEN SMITH/

Aceast adres specific o ar, un stat, o localitate, o adres personal i un nume obinuit (Tom Smith). Sunt posibile multe alte atribute, astfel nct poi trimite mesaje cuiva al crui nume nu-1 tii, atta timp ct tii suficiente alte atribute (de exemplu, compania i funcia). Muli consider aceast form de adresare considerabil mai puin convenabil dect numele DNS. Pentru a fi neprtinitori, trebuie totui s menionm c proiectanii lui X.400 au presupus c utilizatorii vor folosi pseudonime (aliases - iruri scurte de caractere asignate de utilizator) pentru a identifica receptorii, astfel nct utilizatorii nici nu vor vedea mcar vreodat adresa ntreag. Totui, programele necesare pentru acest lucru nu au fost niciodat disponibile pe scar larg, aa c, adesea, cei care trimiteau mesaje ctre utilizatori ale cror adrese erau de tip X.400 trebuia s scrie iruri ca cel de mai sus. n schimb, majoritatea sistemelor de e-mail pentru Internet au permis ntotdeauna utilizatorilor s aib fiiere de pseudonime.

SEC. 7.4

POSTA ELECTRONICA

601

Majoritatea sistemelor de e-mail accept liste de pot, astfel c un utilizator poate trimite, cu o singur comand, un acelai mesaj tuturor persoanelor dintr-o list. Dac lista de pot este pstrat local, agentul-utilizator poate pur i simplu s trimit cte un mesaj separat fiecruia dintre receptorii dorii. Dac lista este pstrat la distan, atunci mesajele vor fi expandate acolo. De exemplu, dac un grup de admiratori de psri au o list de pot numit birders, instalat la meadowlarkarizona.edu, atunci orice mesaj trimis la birders@meadowlarkarizona.edu va fi dirijat ctre Universitatea din Arizona i expandat acolo n mesaje individuale pentru toi membrii listei de pot, oriunde ar fi ei n lume. Utilizatorii acestei liste de pot nu pot determina c aceasta este o list de adrese. Ar putea fi la fel de bine cutia potal personal a Prof. Gabriel O. Birders.
i

Mr. Daniel Dumkopf 18 Willow Lane White Plains, NY 10604

Q.

Name: Mr. Daniel Dumkopf Street: 18 Willow Lane State: NY Zip code: 10604 Priority Urgent Encryption: None From: United Gizmo Address: 180 Main St. Location: Boston, MA 02120 Date: Sept. 1,1996 Subject: Invoice 1081

lic -

Plic

United Gizmo 180 Main St Boston, MA 02120 Sept. 1,1996 Subject: Invoice 1081 Dear Mr. Dumkopf, Our computer records show that you still have not paid the above invoice of $0.00. Please send us a check for $0.00 promptiy. Yours truly United Gizmo

*-

Q)

C <

Q.

Dear Mr. Dumkopf, Our computer records show that you still have not paid the above invoice of $0.00. Please send us a check for $0.00 promptiy. Yours truly United Gizmo

Mesaj

\
(b)

(a)

Fig.7-39. Plicuri i mesaje, (a) pot clasic (b) pot electronic.


Citirea potei electronice

n mod obinuit, cnd este lansat un agent-utilizator, nainte de a afia ceva pe ecran, el se va uita n cutia potal a utilizatorului dup mesajele care sosesc. Apoi poate anuna numrul de mesaje din cutie, sau poate afia pentru fiecare mesaj cte un rezumat de o linie, pentru ca apoi s atepte o comand.

602

NIVELUL APLICATE

CAP. 7

#
1 2 3 4 5 6 7 8

Marcaje K KA KF

Octei 1030 6348 4519 1236 103610 1223 3110 1204

Transmitor asw radia Amy N. Wong bal kaashoek emilyE. saniya dmr

| Subiect ChangestoMINIX Comments on material you sent me Request for information Deadline for grant proposal Text of DCS paper Pointerto WWW page Referee reports forthe paper Re: My student's visit

Fig. 7-40. Un exemplu de afiare a coninutului unei cutii potale. Ca exemplu despre cum lucreaz un agent-utilizator, s aruncm o privire asupra unui scenariu tipic pentru pota electronic. Dup lansarea agentului-utilizator, utilizatorul cere un rezumat al mesajelor sale. O imagine ca aceea din Fig.7-40 apare n acest caz pe ecran. Fiecare linie se refer la cte un mesaj. n acest exemplu, cutia potal conine opt mesaje. Fiecare linie de afiaj conine cteva cmpuri extrase de pe plicul sau din antetul mesajului corespunztor. ntr-un sistem simplu de pot electronic, alegerea cmpurilor afiate este fcut n cadrul programului. ntr-un sistem mai sofisticat, utilizatorul poate specifica ce cmpuri s fie afiate, furniznd un profil al utilizatorului, adic un fiier care descrie formatul de afiare. n exemplul considerat, primul cmp reprezint numrul mesajului. Al doilea cmp, Marcaje, poate conine unK, nsemnnd c mesajul nu este nou, dar a fost citit anterior i pstrat n cutia potal; un A, nsemnnd c deja s-a rspuns la acest mesaj; i / sau un F, nsemnnd c mesajul a fost trimis mai departe altcuiva. Sunt de asemenea posibile i alte marcaje.
Comand h c t s f a d u m k r n b g e Parametru # # adres # # # # # # cutie_potal Descriere Afieaz antetul (antetele) pe ecran Afieaz doar antetul curent Afieaz mesajul (mesajele) pe ecran Trimite un mesaj Trimite mai departe mesajul (mesajele) primite Rspunde la mesaj (mesaje) terge mesajul (mesajele) Reface mesajul (mesajele) terse anterior Mut mesajul (mesajele) ntr-o alt cutie potal Pstreaz mesajul (mesajele) la ieire Citete o nou cutie potal Se deplaseaz la urmtorul mesaj i-l afieaz Se deplaseaz la mesajul precedent i-l afieaz Se deplaseaz la un mesaj specificat fr a-l afia Prsete sistemul de mail i actualizeaz cutia potal

Fig.7-41. Comenzi tipice de manipulare a potei. Al treilea cmp specific lungimea mesajului i al patrulea spune cine a trimis mesajul. Atta timp ct este pur i simplu extras din mesaj, acest cmp poate conine prenume, nume complete, iniiale, nume de cont, sau orice altceva i-a ales transmitorul s pun. n sfrit, cmpul Subiect specific despre ce este mesajul, ntr-un scurt rezumat. Persoanele care omit s includ un cmp Subiect adesea descoper c rspunsurile la scrisorile lor tind s nu obin prioritate maxim.

SEC. 7.4

POSTA ELECTRONIC

Dup ce au fost afiate antetele, utilizatorul poate executa oricare dintre comenzile disponibile. O colecie tipic de comenzi este prezentat n Fig. 7-41. Unele dintre comenzi necesit un parametru. Semnul # precizeaz c este cerut numrul unui mesaj (sau poate ale mai multora). Alternativ, litera a poate fi utilizat pentru a se referi la toate mesajele. Exist nenumrate programe de e-mail. Exemplul nostru l are ca modei pe cei utilizat_de sistemul UNIX Mmdf. deoarece este foarte direct. Comanda h afieaz unul sau mai multe anee n formatul din Fig.7-40. Comanda c tiprete antetul mesajului curent. Comanda * tiprete (adic afieaz pe ecran) mesajul sau mesajele solicitate. Comenzi posibile sunt: 13 pentru a tipri mesajul 3,14-6 pentru a tipri mesajele de la 4 la 6 i ta pentru a afia toate mesajele. Urmtorul grup de trei comenzi se ocup mai mult cu trimiterea mesajelor, dect cu primirea lor. Comanda s trimite un mesaj, apelnd un editor potrivit (de exemplu, specificat n profilul utilizatorului) pentru a permite utilizatorului s compun acest mesaj. Programe specializate n a realiza verificri de ortografie sau gramatic, sau chiar n a face cutri n dicionar, pot stabili dac mesajul este sintactic corect. Din nefericire, generaia actual de programe de pot electronic nu au programe de control care s constate dac transmitorul tie despre ce vorbete. Cnd mesajul este terminat, el este pregtit pentru transmiterea la agentul de transfer de mesaje. Comanda/transmite mai departe un mesaj din cutia potal, cernd o adres ia care s-1 trimit. Comanda a extrage adresa surs din mesajul a care se rspunde i apeleaz editorul oentra a permite utilizatorului s compun replica. Urmtorul grup de comenzi este util pentru manipularea cutiilor potale. De obicei utilizatorii au, pe lng cutia pentru scrisorile sosite, pe care am vzu-o deja, cte o cutie potai pentru fiecare utilizator cu care corespondeaz. Comanda d terge un mesaj din cutia potai, n timp ce comanda u anuleaz tergerea (mesajul nu este ters efectiv nainte de ieirea din programul de pot). Comanda m mut un mesaj ntr-o alt cutie potal. Aceasta este metoda uzual de a salva scrisorile importante dup ce au fost citite. Comanda k pstreaz n cutia potai mesajul indicat, chiar i dup ce a fost citit. Dac un mesaj este citit, dar nu este pstrat explicit, ia ieirea din programul de e-rnaii se execut nite aciuni implicite, cum ar fi mutarea- sa ntr-o cutie potal special, implicit. L n sfrit, comanda r este utilizat pentru a prsi cutia potai curent i a trece ia citirea alteia. Comenzile n, b i g servesc ia deplasarea n cadrul cutiei potale curente. Este un lucru obinuit pentru un utilizator s citeasc mesajul 1, s rspund la el, s-i mute .sau s-1 tearg i apoi s tasteze n pentru a-i obine pe urmtorul. Valoarea acestei comenzi este c utilizatorul nu trebuie s-i pstreze urma pe unde trece. Este posibil s se ntoarc folosind 6, sau s se deplaseze pe un mesaj dat, cu comanda g. In sfrit, comanda e produce ieirea din programul de e-maii i face toate modifieriie cerate, ca de exemplu tergerea unor mesaje i marcarea altora, ca fiind pstrate. Aceast comand suprascrie cutia potal. nlocuindu-i coninutul. n sistemele de pot electronic proiectate pentru nceptori, fiecare dintre aceste comenzi este n mod normai asociat cu o iconi de pe ecran, aa c utilizatorul nu are nevoie s in minte c a nseamn rspuns. In schimb, el trebuie s-i aminteasc faptul c mica poz a unei persoane cu gura deschis nseamn rspuns i nu afiare de mesaj. Ar trebui s fie clar din acest exemplu c pota electronic a parcurs un dram lung din momentul cnd era doar transfer de fiiere. Ageni-utilizator sofisticai fac posibil manevrarea unui volum mare de pot. Pentru persoane cum este autorul, care (fr tragere de inim) primete i trimite mii de mesaje pe an, asemenea instrumente sunt nepreuite.

604

NIVELUL APLICAIE

CAP. 7

7.4.3 Formatele mesajelor S ne ntoarcem acum de la interfaa utilizator la formatul mesajelor de pot electronic n sine. Mai nti ne vom uita la e-mailul ASCII de baz, care utilizeaz RFC 822. Dup aceea ne vom concentra asupra extensiilor multimedia ale RFC 822. RFC 822 Mesajele constau dintr-un plic simplu (descris n RFC 821), un numr de cmpuri antet, o linie goal i apoi corpul mesajului. Fiecare cmp antet se compune (din punct de vedere logic) dintr-o singur linie de text ASCII, coninnd numele cmpului, o virgul i, pentru majoritatea cmpurilor, o valoare. RFC 822 este un standard vechi i nu distinge clar plicul de cmpurile antet, cum ar face un standard nou. La o utilizare normal, agentul-utilizator construiete un mesaj i l transmite agentului de transfer de mesaje, care apoi folosete unele dintre cmpurile antet pentru a construi plicul efectiv, o combinaie oarecum demodat de mesaj i plic. Principalele cmpuri antet, legate de transportul de mesaje, sunt nfiate n Fig. 7-42. Cmpul To: ofer adresa DNS a receptorului primar. Este permis de asemenea existena de receptori multipli. Cmpul Ce: d adresa oricrui receptor secundar. n termenii livrrii, nu este nici o diferen ntre un receptor primar i unul secundar. Este n ntregime o deosebire psihologic, ce poate fi important pentru persoanele implicate, dar este neimportant pentru sistemul de pot. Termenul Ce: (Carbon copy - copie la indigo) este puin depit, din moment ce calculatoarele nu folosesc indigo, dar este bine nrdcinat. Cmpul Bec: (Blind carbon copy - copie confidenial la indigo) este la fel ca Ce:, cu excepia c aceast linie este tears din toate copiile trimise la receptorii primari i secundari. Acest element permite utilizatorilor s trimit copii unei a treia categorii de receptori, fr ca cei primari i secundari s tie acest lucru. Urmtoarele dou cmpuri, From: i Sender:, precizeaz cine a scris i respectiv cine a trimis mesajul. Acestea pot s nu fie identice. De exemplu, se poate ca o directoare executiv s scrie un mesaj, dar ca secretara ei s fie cea care l trimite efectiv. In acest caz, directoarea executiv va fi afiat n cmpul From: i secretara n cmpul Sender. Cmpul From: este obligatoriu, dar cmpul Sender: poate fi omis dac este identic cu From:. Aceste cmpuri sunt necesare n cazul n care mesajul nu poate fi livrat i trebuie returnat transmitorului.
Antet To: Ce: Bec: From: Sender: Received: Return-Path: Coninut Adresatele) de e-mail afle) receptorului(ilor) primar(i) Adresa(ele) de e-mail afle) receptorului(ilor) secundar(i) Adresa(ele) de e-mail pentru blind carbon copy" Persoana sau persoanele care au creat mesajul Adresa de e-mail a transmitorului curent Linie adugat de fiecare agent de transfer de-a lungul traseului Poate fi folosit pentru a identifica o cale de ntoarcere la transmitor

Fig. 7-42. Cmpurile antet ale lui RFC 822, legate de transportul de mesaje.

SEC. 7.4

POTA ELECTRONICA

605

O linie coninnd Received: este adugat de fiecare agent de transfer de mesaje de pe traseu. Linia conine identitatea agentului, data i momentul de timp la care a fost primit mesajul i alte informaii care pot fi utilizate pentru gsirea defeciunilor n sistemul de dirijare. Cmpul Retwn-Path: este adugat de agentul final de transfer de mesaje i are n intenie s indice cum se ajunge napoi la transmittor. n teorie, aceast informaie poate fi adunat din toate antetele Received: (cu excepia numelui cutiei potale a transmitorului), dar rareori este completat aa i de obicei conine chiar adresa transmitorului. n plus fa de cmpurile din Fig. 7-42, mesajele RFC 822 pot conine de asemenea o varietate de cmpuri antet, t'oiosite de agenii-utilizator sau de receptorii umani. Cele mai des ntlnite dintre ele sunt prezentate n Fig. 7-43. Majoritatea lor se explic de la sine, deci nu vom intra n detaliu a toate.
Antet Date: Reply-To: Message-d: in-Repy-To: References: ' Keywords: Subject: Coninut Data i momentul de timp ia care a fost trimis mesajul Adresa de e-maiS la care ar trebui trimise rspunsurile Numr unic, utilizat ulterior ca referin pentru acest mesaj (identificator) Identificatorul mesajului al crui rspuns este mesajul curent Ali identificatori de mesaje relevani Cuvinte cheie alese de utilizator Scurt cuprins al mesajului, afiabil pe o singur linie

Flgc 7-43. Cteva cmpuri utilizate n antetul lui RFC 822. Cmpul Repfy-To: este uneori utilizat cnd nici persoana care a compus mesajul, nici cea care 1-a trimis nu vrea s vad rspunsul De exemplu, un director de marketing scrie un mesaj prin e-mail pentru a spune clienilor despre un nou produs. Mesajul este trimis de o secretar, dar cmpul RepfyTo: conine lista efilor departamentelor de vnzri, care pot rspunde la ntrebri i primi comenzi. Documentul RFC 822 afirm explicit c utilizatorilor le este permis s inventeze noi antete, pentru uzul lor personal, cu condiia ca. aceste antete s nceap cu irul de caractere X-, pentru a evita conflictele (suprapunerile) dintre anteteie oficiale i cele personale. Uneori detepi din anii mari includ cmpuri de tipul X-Fmit-of-the-Day: sau X-Disease-of-the-Week, care sunt legale, dei nu ntotdeauna clarificatoare. Dup antete urmeaz corpul mesajului. Aici utilizatorii pot pune orice vor. Unii oameni i ncheie mesajele cu semnturi elaborate, incluznd caricaturi ASCII simple, citate din personaliti mai mari sau mai mici, declaraii politice i declinri de tot felul (de exemplu: corporaia ABC nu este rspunztoare pentru prerile mele, nu poate nici mcar s le neleag). MIME - Multipurpose Internet MaiS Extensions (extensii de pot cu scop multiplu) La nceputurile ARPANET, pota electronic consta exclusiv din mesaje de tip text, scrise n englez i exprimate n ASCII. Pentru acest context, RFC 822 realiza sarcina complet: specifica antetele, dar lsa coninutul n ntregime n seama utilizatorilor. In zilele noastre, aceast abordare nu mai este adecvat pentru Internetul care se ntinde n lumea ntreag. Problemele includ transmisia i recepia de:

606

NIVELUL APLICAIE

CAP. 7

1. Mesaje n limbi cu accente (de exemplu franceza i germana). 2. Mesaje n alfabete ne-latine (de exemplu ebraic i rus). 3. Mesaje n limbi fr alfabet (de exemplu chinez i japonez). 4. Mesaje care nu conin text deloc (de exemplu audio i video). O soluie posibil a fost propus n RFC 1341-i actualizat n RFC 1521. Aceast soluie, numit MIME (Multipurpose Internet Mail Extensions), este n prezent larg utilizat. O vom descrie n continuare. Pentru informaii suplimentare n legtur cu MME, a se vedea RFC 1521 sau (Rose, 1993). . Ideea fundamental a MIME este s continue s foloseasc formatul RFC 822, dar s adauge structur corpului mesajului i s defineasc reguli de codificare pentru mesajele non-ASCI. Deoarece respect RFC 822, mesajele MME pot fi trimise utiliznd programele i protocoalele de pot existente. Tot ceea ce trebuie modificat sunt programele de transmitere i recepie, pe care utilizatorii le pot face ei nii. MIME definete cinci noi antete de mesaje, aa cum se arat n Fig. 7-44. Primul dintre acestea specific pur i simplu agentului-utilizator care primete mesajul c este vorba de un mesaj MME i ce versiune de MIME utilizeaz. Orice mesaj care nu conine un antet MIMEVersion: este presupus ca fiind un mesaj n text pur, n englez, i este procesat ca atare.
Antet MiME-Version: Content-Description: Conen-ld: Content-Transfer-Encoding: Content-Type: Coninut Identific versiunea de MIME ir adresat utilizatorului care spune ce este n mesa] identificator unic Cum este mpachetat corpul pentru transmisie Natura mesajului \

Fig 7-44. Anteele RFC 822 adugate de ctre MIME. Antetul Content-Description: este un ir de caractere ASCII specificnd ce este n mesaj. Acest antet este necesar pentru ca receptorul s tie dac merit s decodifice i s citeasc mesajul Dac irul de caractere spune: " Fotografia hamsterului Barbarei" i persoana care primete mesajul nu este un mare iubitor de hamsteri, mesajul va fi probabil mai curnd aruncat, dect decodificat ntr-o fotografie color de nalt rezoluie. Antetul Content-Id: identific coninutul. Utilizeaz acelai format ca antetul standard Message-Id:. Antetul Content-Transfer-Encoding: arat cum este mpachetat pentru transmisie corpul mesajului, ntr-o reea care poate ridica obiecii la majoritatea caracterelor diferite de litere, cifre i semne de punctuaie. Sunt furnizate cinci scheme (plus o evadare ctre noi scheme). Cea mai simpl schem se refer chiar la text ASCII Caracterele ASCII utilizeaz 7 bii i pot fi transportate direct prin protocolul de e-mail, atta timp ct nici o linie nu are mai mult de 1000 de caractere. Urmtoarea schem ca simplitate este cam acelai lucru, dar utilizeaz caractere de cte 8 bii, reprezentnd toate valorile de la 0 la 255 inclusiv. Aceast schem de codificare ncalc protocolul (original) de e-mail utilizat n Internet, dar este folosit de unele pri ale Intemetului, care implementeaz nite extensii ale protocolului original. n timp ce declararea codificrii nu o face s devin legal, faptul c o avem explicit poate cel puin s lmureasc lucrurile atunci cnd ceva

SEC. 7.4

POSTA ELECTRONICA

607

merge prost. Mesajele utiliznd codificarea de 8 bii trebuie nc s respecte lungimea maxim a liniei, care este standard. Este chiar mai ru n cazul mesajelor care utilizeaz codificare binar. Aceste mesaje sunt fiiere binare arbitrare, care nu numai c utilizeaz toi cei 8 bii, dar nu respect nici limita de linie de 1000 de caractere. Programele executabile intr n aceast categorie. Nu se acord nici o garanie c mesaje binare vor ajunge corect, dar muli le trimit oricum. Modalitatea corect de a codifica mesaje binare este de a utiliza codificarea n baz 64, numit uneori armur ASCII. n aceast schem, grupuri de cte 24 de bii sunt mprite n patru uniti de cte 6 bii, fiecare dintre aceste uniti fiind transmis ca un caracter ASCII legal. Codificarea este A" pentru 0, B" pentru 1, .a.m.d., urmate de cele 26 de litere mici, cele 10 cifre, i n cele din urm + i / pentru 62 i respectiv 63. Secvenele = = i = sunt utilizate pentru a arta c ultimul grup a coninut doar 8 sau respectiv 16 bii. Se ignor secvenele carriage return i line feed, astfel c ele pot fi inserate dup dorin, pentru a pstra liniile suficient de scurte. Utiliznd aceast schem pot fi trimise sigur texte binare arbitrare. "Pentru mesajele care sunt aproape n ntregime ASCII i conin puine caractere ne-ASCII, codificarea n baz 64 este oarecum ineficient. n locul acesteia se utilizeaz o codificare numit quoted-prtntable-encoding (codificare afiabil marcat). Aceasta este o codificare de tip ASCII pe 7 bii, avnd toate caracterele cu cod mai mare de 127 codificate sub forma unui semn egal urmat de valoarea caracterului reprezentat prin dou cifre hexazecimale. Rezumnd, datele binare ar trebui trimise codificate n baz 64 sau sub form quoied-printable. Cnd exist motive ntemeiate pentru a nu utiliza una dintre aceste scheme, este posibil s se specifice n antetul Content-Transfer-Encoding: o codificare definit de ctre utilizator. Ultimul antet nfiat n Fig. 7-44 este cu adevrat ce! mai interesant. EI specific natura corpului mesajului. n RFC 1521 sunt definite apte tipuri, fiecare avnd unul sau mai multe subtipuri. Tipul i subtipul sunt separate printr-o bar oblic (slash), ca n: Conten-Type: video / mpeg
Tip Text Image Audio Video Application Subtip Piain Richtext Gif Jpeg Basic Mpeg Octe-stream Postscript Rfc822 Prtia! External-body Mixed Alternative Parallel Digest Descriere Text neformatat Text incluznd comenzi simple de formatare imagini fixe n format GiF Imagini fixe n format JPEG Sunet Film n format MPEG Secven neinterpretat de octei Un document afiabil n PostScript Un mesaj MIME RFC 822 Mesajul a fost fragmentat pentru transmisie Mesajul n sine trebuie adus din reea Pri independente n ordine specificat Acelai mesaj n formate diferite Prile trebuie vizualizate simultan Fiecare parte este un mesaj RFC 822 compiet

Message

Muitipart

Fig. 7-45. Tipurile i sub tipurile aparinnd MIME definite n RFC 1521.

608

NIVELUL APLICAIE

CAP. 7

Subtipul trebuie precizat explicit n antet; nu sunt furnizate valori implicite. Lista iniial de tipuri i subtipuri specificate n RFC 1521 este prezentat n Fig. 7-45. De atunci au fost adugate multe altele, introducndu-se intrri adiionale de fiecare dat cnd a devenit necesar. S parcurgem acum lista tipurilor. Tipul text este utilizat pentru text simplu. Combinaia text/plain este folosit pentru mesaje obinuite care pot fi afiate de ndat ce sunt primite, fr codificare sau procesare ulterioar. Aceast opiune permite ca mesajele obinuite s fie transportate n MIME adugnd doar cteva antete suplimentare. Subtipul text/richtext permite includerea n text a unui limbaj simplu de marcare. Acest limbaj furnizeaz o modalitate independent de sistem pentru a exprima scrierea cu caractere aldine sau cursive, dimensiunile, alinierea, distanele dintre rnduri, folosirea de indici superiori sau inferiori i paginarea simpl. Limbajul de marcare se bazeaz pe SGML, Standard Generalized Markup Language (limbajul standard generalizat de marcare), folosit de asemenea ca baz pentru HTML, utilizat n World Wide Web. De exemplu mesajul The <bold> time </bold> has come the <italic> walrus </italic> said ... ar fi afiat sub forma: The time has come the wahns said... Depinde de sistemul receptor s aleag inteipretarea potrivit. Dac sunt disponibile caractere aldine i cursive, acestea vor putea fi folosite; altfel, pentru a scoate n eviden se pot utiliza culori, scriere cu clipire sau video-invers etc. Sisteme diferite pot face alegeri diferite. Urmtorul tip MIME este image, utilizat pentru trimiterea de imagini fixe. n zilele noastre sunt utilizate multe formate, att cu, ct i fr compresie, pentru a pstra i transmite imagini. Dou dintre acestea, GIF i JPEG, sunt subtipuri oficiale, dar cu siguran c ulterior vor fi adugate i altele. Tipurile video i audio sunt pentru imagini n micare i respectiv pentru imagini crora li se asociaz i sunet. Trebuie notat c video include doar informaia video, nu i coloana sonor. Dac trebuie transmis un film cu sunet, s-ar putea ca poriunile audio i video s trebuiasc s fie transmise separat, depinznd de sistemul de codificare utilizat. Singurul format video definit pn n prezent este cel inventat de cei ce se intituleaz modest Moving Picture Experts Group (MPEG Grupul de experi n imagini n micare). Tipul application este utilizat pentru formatele care necesit prelucrare extern, neacoperit de nici unul dintre celelalte tipuri. Un flux de octei este chiar o secven de octei neinterpretai. La primirea unui asemenea flux, un agent-utilizator ar trebui probabil s-1 afieze, sugerndu-i utilizatorului s-1 copieze ntr-un fiier i cerndu-i un nume pentru acesta. Procesarea ulterioar este apoi la latitudinea utilizatorului. Cellalt subtip definit este postscript, care se refer la limbajul PostScript, produs de Adobe Systems i larg utilizat pentru descrierea paginilor imprimate. Multe imprimante au nglobate interpretoare PostScript. Dei un agent-utilizator poate pur i simplu s apeleze un interpretor PostScript extern pentru a interpreta fiierele PostScript primite, acest lucru nu este lipsit de pericole. PostScript este un ntreg limbaj de programare. Dndu-i-se destul timp, o persoan

SEC. 7.4

POTA ELECTRONICA

609

suficient de masochist ar putea scrie n PostScript un compilator de C, sau un sistem de management de baze de date. Afiarea unui mesaj primit n format PostScript se face executnd programul PostScrip coninut de acesta. Pe lng afiarea unui text, acest program poate citi, modifica, sau terge fiierele utilizatorului i poate avea i alte efecte laterale. Tipul message permite ncapsularea n ntregime a unui mesaj n altul. Aceast schem este util, de exemplu pentru trimiterea mai departe a e-mailului, cafonvard. Cnd un mesaj RFC 822 complet este ncapsulat ntr-un mesaj exterior, ar trebui utilizat subtipul rfc822. Subtipul parial face posibil mprirea unui mesaj ncapsulat n buci de mesaj i trimiterea separat a acestora (de exemplu, dac mesajul ncapsulat este prea lung). Parametrii fac posibil reasamblarea n ordinea corect a tuturor prilor, la destinaie. a i n sfrit, subtipul extemal-body pate fi utilizat pentru mesaje foarte lungi (de exemplu, filme video). n loc de a include fiierul MPEG n mesaj, se d o adres FTP i agentul utilizator al receptorului o poate aduce din reea n momentul n care este necesar. Aceast facilitate este n special util cnd se trimite un film la o ntreag list de pot i se presupune c doar civa dintre membrii acesteia l vor vedea (gndii-v la e-mailurile inutile, coninnd reclame video). Ultimul tip este multipart, care permite unui mesaj s conin mai multe pri, nceputul i sfritul fiecrei pri fiind clar delimitat. Subtipul mbced permite fiecrei pri s fie diferit de celelalte, fr a avea o structur adiional impus. n contrast, la subtipul alternative, fiecare parte trebuie s conin acelai mesaj, dar exprimat ntr-un alt mediu sau ntr-o codificare diferit. De exemplu, un mesaj ar putea fi trimis n ASCII simplu, n richtext i n PostScript. Un agent-utilizator proiectat corespunztor, la primirea unui asemenea mesaj, l va afia, dac va fi posibil, n PostScript. A doua alegere va fi richtext. Dac nici una dintre aceste alternative nu ar fi posibil, s-ar afia text ASCII obinuit. Prile ar trebui ordonate de la cea mai simpl, la cea mai complex, pentru a ajuta receptorii care folosesc ageni-utilizator pre-MIME s neleag mesajul (chiar i un utilizator preMIME poate citi text ASCII simplu). Subtipul alternative poate fi folosit de asemenea pentru limbaje multiple. n acest context, Rosetta Stone poate fi privit ca precursor al mesajului de tip multipart/altemative. Un exemplu multimedia este prezentat n Fig. 7-46. Aici, o felicitare este transmis att sub form de text ct i sub form de cntec. Dac receptorul are faciliti audio, agentul utilizator va aduce fiierul de sunet, birthday.snd i l va interpreta. Dac nu, versurile vor fi afiate pe ecran ntr-o linite de mormnt. Prile sunt delimitate de dou cratime urmate de irul (definit de utilizator) specificat n parametrul boundary. Observai c antetul Content-Type apare n trei poziii n acest exemplu. La primul nivel indic faptul c mesajul are mai multe pri. n cadrul fiecrei pri specific tipul i subtipul acesteia. n sfrit, n corpul celei de-a doua pri, este necesar pentru a indica agentului utilizator ce fel de fiier extern trebuie s aduc. Pentru a exprima uoara diferen de utilizare, s-au folosit litere mici, dei toate antetele sunt case insensitive (nu fac diferen ntre literele mari i cele mici). Antetul contenttransfer-encoding este n mod similar necesar pentru orice corp extern care nu este codificat ca ASCII pe 7 bii. ntorcndu-ne la subtipurile corespunztoare mesajelor multipart, vom spune c mai exist dou posibiliti. Subtipul parallel este utilizat cnd toate prile trebuie s fie interpretate simultan. De exemplu, adesea filmele au un canal audio i unul video. Ele sunt mai de efect dac aceste dou canale sunt interpretate n paralel i nu consecutiv.

610

NIVELUL APLICAIE

CAP. 7

n sfrit, subtipul diges este utilizat cnd multe mesaje sunt mpachetate mpreun, ntr-unui compus. De exemplu, nite grupuri de dialog de pe Internet pot aduna mesaje de la abonaii lor i apoi s le trimit n afar ca un singur mesaj de tip nwlpart/digest. 7.4.4 Transfer de mesaje

Sistemul de transfer de mesaje se ocup cu transmiterea mesajelor de ia iniiator la receptor. Cea mai simpl cale de a realiza acest lucru const n stabilirea unei conexiuni de transport de ia maina surs la cea de destinaie i apoi, pur i simplu n trimiterea mesajului. Dup ce examinm cum se face acest lucru n mod normal, vom studia cteva situaii n care metoda nu funcioneaz i vom vedea ce trebuie fcut n aceste cazuri.
From: elinor@abc.com To: caroiyn@xyz.com MIME-Version: 1.0 Message-!d: <0704760941 .AA00747@abc.com> Content-Type: muiipart/aHtemaive; boyrsdary=qwertyuiQpasdfghjkzxcvbnri Subjec: Pmntul nconjoar soarele de un numr ntreg de ori Acesta ese preambulul Agentul utilizatorii ignor. O zi bun.

--qwereyuiopasdghjkizxcvbRrr! Conten-Type: text/richtext Happy birthday to you Happy birthday to you Happy birthday dear <boid> Carolyn </boid> Happy birthday o you Content-1 ype: message/extemal-body; access-type=anon-fp'""; site=bicyc!e. abc.com"; direcory= f ,pub"; name= birthday.snd; conten-type: audio/basic content-transfer-encoding: base64 --qweryuiopasdfghjklzxcvbnm

Fig. 7-46o Un mesaj multipart coninnd alternative de tip richtext i audio. SMTP-Smple Mai! Transfer Protocol (protocol simple de transfer de pota) In cadrul Internetului pota electronic este livrat prin stabilirea de ctre maina surs a unei conexiuni TCP la portul 25 al mainii de destinaie. La acest port se afl un demon de ernail care tie SMTP (Simple Mail Transfer Protocol). Acest demon accept conexiunile i copiaz mesajele de la ele n cutiile potale corespunztoare. Dac mesajul nu poate fi livrat, se returneaz transmitoruiui un raport de eroare coninnd prima parte a mesajului nelivrat.

SEC. 7.4

POTA ELECTRONIC

611

SMTP este un protocol simplu de tip ASCII. Dup stabilirea conexiunii TCP la portul 25, maina transmitoare, opernd n calitate de client, ateapt ca maina receptoare, opernd ca server, s vorbeasc prima. Serverul ncepe prin a trimite o linie de text, declarndu-i identitatea i spunnd dac este pregtit sau nu s primeasc mesaje. Dac nu este, clienii elibereaz conexiunea i ncearc din nou mai trziu. Dac serverul este dispus s primeasc e-mail, clientul anun de la cine vine scrisoarea i cui i este adresat. Dac un asemenea receptor exist la destinaie, serverul i acord clientului permisiunea s trimit mesajul. Apoi clientul trimite mesajul i serverul l confirm. n general nu este necesar ataarea unei sume de control deoarece TCP furnizeaz un flux sigur de octei. Dac mai exist i alte mesaje, acestea sunt trimise tot acum. Cnd schimbul de mesaje, n ambele direcii, s-a ncheiat, conexiunea este eliberat. n Fig.7-47 este prezentat o mostr de dialog referitoare la trimiterea mesajului din Fig.7-46, incluznd codurile numerice utilizate de SMTP. Liniile trimise de client sunt marcate cu C:, iar cele trimise de server cu S.\ Cteva comentarii n legtur cu Fig.7.47 ar putea fi utile. Prima comand a clientului este ntradevr HELO. Din cele dou posibile abrevieri de patru caractere ale cuvntului HELLO, aceasta are numeroase avantaje fa de concurenta sa. Motivul pentru care toate comenzile trebuia s aib patru caractere s-a pierdut n negura vremii. n Fig.7.47, mesajul este trimis la un singur receptor i de aceea este utilizat o singur comand RCPT. Mai multe asemenea comenzi sunt permise pentru a trimite un singur mesaj mai multor receptori. Fiecare dintre ele este confirmat sau rejectat individual Chiar dac unii dintre receptori sunt rejectai (deoarece ei nu exist ia destinaie), mesajul poate fi trimis celor rmai. n sfrit, dei sintaxa comenzilor de patru caractere de la client este rigid specificat, sintaxa replicilor este mai puin rigid. Doar codul numeric conteaz cu adevrat. Fiecare implementare poate pune dup cod ce iruri de caractere vrea. Chiar dac protocolul SMTP este bine definit (de RFC 821), mai pot aprea cteva probleme. O problem este legat de lungimea mesajelor. Unele implementri mai vechi nu pot s lucreze cu mesaje mai mari de 64KB. O alt problem se refer la expirri de timp (timeout). Dac acestea difer pentru server i client, unul din ei poate renuna n timp ce cellalt este nc ocupat, ntrerupnd conexiunea n mod neateptat. n sfrit, n rare situaii, pot fi lansate schimburi infinite de mesaje. De exemplu, dac maina 1 pstreaz lista de pot A i maina 2 lista de pot B i fiecare list conine o intrare pentru cealalt, atunci orice mesaj trimis oricreia dintre cele dou liste va genera o cantitate nesfrit de trafic de e-mail. Pentru a atinge cteva dintre aceste probleme, n RFC 1425 s-a definit protocolul SMTP extins (ESMTP). Clienii care doresc s-1 utilizeze trebuie s trimit iniial un mesaj EHLO n loc de HELO. Dac acesta este rejectat, atunci serverul este unul standard de tip SMTP i clientul va trebui s procedeze n modul obinuit. Dac EHLO este acceptat, nseamn ca sunt permise noile comenzi i noii parametri. Standardizarea acestor comenzi i parametri este un proces n desfurare. Pori de e-mail Pota electronic utiliznd SMTP lucreaz cel mai bine cnd att transmitorul ct i receptorul se gsesc n Internet i pot accepta conexiuni TCP ntre transmitor i receptor. Cu toate acestea, multe maini care nu sunt n Internet doresc s trimit i s primeasc mesaje de la situri Internet.

NIVELUL APLICAIE

CAP. 7

De exemplu, multe companii, din motive de securitate, nu doresc s fie conectate la Internet. Unele se elimin chiar de pe Internet, ridicnd ziduri de netrecut fa de acesta. S: 220 xyz.com SMTP service ready C: HELO abc.com S: 250 xyz.com says hello to abc.com: C: MAIL FROM: <elinor@abc.com> S: 250 sender ok C: RCPTTO: <carolyn@xyz.com> S: 250 recipient ok C: DATA S: Trimite maii; terminat cu ." pe anie nou C: From: ellnor@abc.com C: To: caroiyn@xyz.com C: MIME-Version: 1.0 C: P.essage-fd: <0704760941.AA00747@abc.com> C: Content-Type: rnulspar/aiternative; boLtidary=qwertyuiopasdfghjkJ2xcvbnnn C:Subject Pmntul nconioar soarele de un nmrnr ntreg de ori r^. C:cess este preambiHuL AgenuJ ironizator i ignor. C zi bun, \*. C:-qweryuiopasdfghikzxcvbRm C:Conent-Type: text/richtex C: C:Happy birhday to you C:Happy bsrthday to you C:Happy birthday to yom C:-qvs/erty!Jopasdfghjklzxcvbnm CiConemt-Type: message/exteria-body; C: access-ype=,.anon-ftp"; C: site=bicyeie. abc.com"; C: directory=pub"; C: name=birthday.snd; C:content-type: audio/basic Cicontent-transfer-encoding: base-84 C:-qwertyuIopasdfghjk!zxcvbnm C:. S: 250 message accepted C:QUIT S: 221 xyz.com cbsing connection Fig.7,47. Transferul unui mesaj de la eiinor@abc.corn ia carolyn@zxy.corn. O alt problem apare cnd transmitorui nelege doar RFC 822 i receptorul doar X. sau un protocol de e-rnail corespunznd unui standard de proprietar. Atta timp ct oat

SEC. 7.4

POSTA ELECTRONICA

613

aceste medii difer n ceea ce privete formatele mesajelor i protocoalele utilizate, comunicaia direct este imposibil. Amndou aceste probleme sunt rezolvate prin utilizarea porilor de e-mail de la nivelul aplicaie. n Fig. 7-48 gazda 1 nelege doar TCP/IP i RFC 822, n timp ce gazda 2 tie doar OSITP4 i X.400. Cu toate acestea ele pot schimba mesaje utiliznd o poart de e-mail. Procedura este ca gazda 1 s stabileasc o conexiune de TCP cu poarta i apoi s transfere acolo un mesaj (1) utiliznd SMTP. Demonul porii pune apoi mesajul ntr-un tampon de mesaje destinate gazdei 2. Ulterior se stabilete o conexiune de TP4 (echivalentul OSI pentru TCP) cu gazda 2 i se transfer mesajul (2), folosind echivalentul OSI pentru SMTP. Tot ce are de fcut procesul de tip poart este s extrag mesajele sosite dintr-o coad i s le pun n alta.
Bufer de mesaje

Gazd

Gazd 2

Reea

Fig. 7-48. Transferul de mesaje utiliznd o poart de e-mail de nivel aplicaie. Pare uor, dar nu este. Prima problem este c adresele de Internet i ceie de tip X.400 sunt total diferite. ntre ele este necesar un mecanism complicat de punere n coresponden. A doua problem este c plicul sau cmpurile antetului care se folosesc ntr-un sistem pot s nu existe n cellalt. De exemplu, dac un sistem necesit clase de prioritate i cellalt nu folosete deloc acest concept, ntr-o direcie se pot pierde informaii de valoare, iar n cealalt acestea trebuie generate din nimic. O problem i mai grea este cea referitoare la cum procedm dac pri ale corpului mesajului sunt incompatibile. Ce ar trebui s fac poarta cu un mesaj din Internet al crui corp pstreaz o referin la un fiier audio care s fie obinut prin FTP, dac sistemul destinaie nu accept acest concept? Ce ar trebui s fac atunci cnd un sistem X.400 i spune s livreze un mesaj la o anumit adres, dar n cazul n care eueaz, s trimit coninutul prin fax? Utilizarea faxului nu face parte din modelul RFC 822. n mod clar, aici nu exist soluii simple. Pentru mesaje simple, de tip text ASCII, nestructurate, utilizarea de pori este o soluie rezonabil, dar pentru orice altceva mai complicat, ideea tinde s cad. Livrarea final Pn acum am presupus c toi utilizatorii lucreaz pe maini capabile s trimit i s primeasc e-mail. Adesea acest lucru este fals. De exemplu, n multe companii utilizatorii lucreaz cu PC-uri,

614

NIVELUL APUCATE

CAP.iR

necoriectate la Internet i incapabile s trimit sau s primeasc pot din afara companiei. schimb firma are unul sau mai multe servere de e-mail, care potprimi i trimite e-mail. Pentru a primi sau a trimite un mesaj, un PC trebuie s comunice cu un server de e-mail folosind un fel de protocol de livrare. Un protocol simplu, utilizat pentru aducerea mesajelor dintr-o cutie potal aflat la distan, este POP3 (Post Office Protocol - protocol de pot) i este definit n RFC 1225. Posed comenzi pentru conectarea i deconectarea utilizatorilor, aducerea i tergerea mesajelor. Scopul lui POP3 este s aduc e-mail de la distan i s-1 depoziteze pe maina local a utilizatorului, spre a fi citit mai trziu. IMAP (Interactive Mail Access Protocol - protocol interactiv de acces la pot) este un protocol de livrare mai sofisticat, definit n RFC 1064. A fost proiectat pentru a ajuta utilizatorii care folosesc mai multe calculatoare, ca de exemplu o staie de lucru la birou, un PC acas i un calculator portabil pe drum. Ideea de baz aflat n spatele IMAP este ca serverul de e-mail s pstreze un depozit central de mesaje la care accesul s poat fi realizat de pe oricare main. Astfel, spre deosebire de POP3, IMAP nu copiaz e-mailul pe maina personal a utilizatorului, deoarece acesta poate avea mai multe. IMAP are multe trsturi, cum ar fi capacitatea de a adresa un mesaj nu prin numrul de sosire, cum se face n Fig. 7-40, ci utiliznd atribute (de exemplu: d-mi primul mesaj de la Sam). n aceast abordare, o cutie potal este mai mult ca un sistem de baze de date relaionale dect ca o secven liniar de mesaje. Un al treilea protocol de livrare este DMSP (Distributed Mail System Protocol - protocol distribuit pentru sistemul de pot), parte a sistemului PCMAIL, descris n RFC 1056. Acesta nu presupune c tot e-mailul se afl la nivelul unui singur server, ca la POP i IMAP. n schimb, permite utilizatorilor s descarce e-mailul de la server la o staie de lucru, PC sau portabil, i apoi s se deconecteze. Utilizatorul poate citi mesajele i scrie rspunsurile ct timp este deconectat de la server. Ulterior, cnd se reconecteaz, pota este retransferat i sistemul este resincronizat. Independent de faptul c e-mailul este livrat direct la staia de lucru a utilizatorului sau la un server aflat la distan, multe sisteme furnizeaz faciliti pentru procesarea suplimentar a mesajelor primite. Un instrument deosebit de valoros pentru muli utilizatori de e-mail este reprezentat de capacitatea de a construi filtre. Acestea sunt reguli care se verific la sosirea mesajelor sau la pornirea agentului utilizator. Fiecare regul specific o condiie i o aciune. De exemplu, o regul ar putea spune c orice mesaj de la Andrew S. Tanenbaum trebuie afiat cu fonturi ngroate, de culoare rou strlucitor (sau, alternativ, s fie aruncat imediat fr comentarii). O alt caracteristic a livrrii, pus la dispoziie adesea, este posibilitatea de a retrimite (temporar) pota la o adres diferit. Aceast adres poate fi i un calculator utilizat de un serviciu comercial de comunicaii, care va contacta utilizatorul prin radio sau satelit, afird Subject: linie pe pagerul su. O alt trstur comun a livrrii finale este abilitatea de a instala un demon de vacan. Acesta este un program care examineaz fiecare mesaj sosit i trimite o replic insipid cum ar fi:
Salut. Sunt n vacan. M ntorc pe 24 august. O zi bun.

SEC. 7.4

POTA ELECTRONIC

615

Asemenea rspunsuri pot s specifice, de asemenea, cum s fie tratate problemele urgente, alte persoane care pot fi contactate pentru probleme specifice etc. Majoritatea demonilor de vacan pstreaz urma celor crora le-au trimis replici i se abin de la a trimite unei aceleiai persoane o a doua asemenea replic. Demonii buni verific i dac mesajul sosit a fost trimis de la o list de mail i n acest caz, nu mai rspund deloc. (Cei care trimit mesaje n timpul verii la liste mari de e-mail, probabil c nu doresc s primeasc sute de replici n care s le fie detaliate planurile de vacan ale fiecruia.) Autorul s-a lovit recent de o form extrem de prelucrare a livrrii cnd a trimis o scrisoare unei persoane care pretinde c primete 600 de mesaje pe zi. Identitatea sa nu va fi deconspirat aici, ca nu cumva jumtate dintre cititorii acestei cri s-i trimit i ei scrisori. S-1 numim n continuare John. John i-a instalat un robot de e-mail care verific fiecare mesaj sosit, ca s vad dac este de ia un nou corespondent. Dac este aa, trimite napoi o replic standard n care explic faptul c nu mai poate s citeasc personal toate mesajele. In schimb a produs un document FAQ (Frequently Asked Questions) personal, unde rspunde la multe ntrebri care i se pun de obicei. n mod normal, grupurile de tiri i nu persoanele au documente FAQ. Documentul FAQ al lui John d adresa acestuia, numrul de fax i numerele de telefon i spune cum poate fi contactat firma sa. Arat cum poate fi chemat ca vorbitor i explic cum pot fi obinute lucrrile sale i alte documente. Furnizeaz de asemenea referine la programele scrise de el, o conferin pe care o organizeaz, un standard al crui editor este i aa mai departe. E posibil ca aceast abordare s fie necesar, dar poate c un FAQ personal reprezint simbolul final al statutului. 7.4.5 Confidenialitatea potei electronice Cnd un mesaj de e-mail este trimis ntre dou locaii situate la distan, acesta va trece n drumul su pe la un numr mare de maini. Oricare dintre acestea poate s citeasc i s nregistreze mesajul pentru utilizare ulterioar. Confidenialitatea este inexistent, n ciuda a ceea ce muli oameni cred (Weisband and Reining, 1995). Cu toate acestea, multora le-ar plcea s poat trimite mesaje care s fie citite doar de cei crora le sunt adresate i de nimeni altcineva: nu de eful lor, nu de hackeri i nici chiar de guvern. Aceast dorin a stimulat mai multe persoane i grupuri s aplice principiile criptografiei, studiate de noi anterior, la pota electronic, pentru a produce un sistem de e-mail sigur. n seciunile urmtoare vom studia dou sisteme de e-mail sigur, larg utilizate, PGP i PEM. Pentru informaii suplimentare a se vedea (Kaufman et al, 1995; Schneier, 1995; Stallings, 1995b; i Stallings, 1995c). PGP-Pretiy Good Privacy (confidenialitate destui de bun) Primul nostru exemplu, PGP (Pretty Good Privacy) este n cea mai mare parte rodul gndirii unei singure persoane, Phil Zimmerman (Zimmerman, 1995a, 1995b). Este un pachet complet de securitate a e-mailului, care furnizeaz confidenialitate, autentificare, semnturi digitale i compresie, toate ntr-o form uor de utilizat. Pe deasupra, pachetul complet, incluznd toate" sursele, este distribuit gratuit prin Internet, sisteme de informare n reea i reele comerciale. Datorit calitii sale, preului (zero) i simplei disponibiliti pe platformele MS-DOS/Windows,

NIVELUL APLICAIE

CAP. 7

UNIX i Macintosh, acesta este larg utilizat astzi. Pentru acele companii care necesit sprijin, este disponibil i o variant comercial. PGP a fost implicat i n diferite controverse (Levy, 1993). Deoarece este distribuit liber pe Internet, guvernul Statelor Unite a pretins c posibilitatea strinilor de a-i obine constituie o violare a legilor privind exportul de muniie. Versiunile ulterioare au fost produse n afara Statelor Unite pentru a ocoli aceast restricie. O alt problem a inclus o pretins nclcare a patentului RSA, dar aceasta a fost rezolvat odat cu apariia versiunilor ncepnd cu 2.6. Totui, nu toi agreeaz ideea c oamenii pot s-i pstreze secretele fa de ei, astfel c dumanii PGP pndesc din umbr, ateptnd s atace. In conformitate cu toate acestea, moto-u lui Zlmmerman este: Dac dreptul la confidenialitate este n afara legii, atunci doar cei aflai n afara legii vor avea confidenialitate." In mod intenionat PGP utilizeaz algoritmi de criptare existeni, n loc s inventeze unii noi. Se bazeaz n principal pe RSA, IDEA i MD5, algoritmi care au fost supui unor numeroase analize amnunite i nu au fost proiectai sau influenai de vreo agenie guvernamental pentru a-i slbi. Pentru cei care au tendina s nu aib ncredere n guvern, aceast proprietate este un mare avantaj. PGP permite compresie de text, asigurarea secretului mesajelor i semnturi digitale i furnizeaz de asemenea faciliti de management extensiv al cheilor. Pentru a vedea cum lucreaz PGP, s considerm exemplul din Fig. 7-49. Aici, Alice vrea s-i trimit lui Bob, ntr-o manier sigur, un mesaj text simplu, semnat, P. Alice i Bob au cheile private (Dx) RSA publice (Ex). S presupunem c trziu de administrarea cheilor.
KM : Chsie unic de mesaj, pentru IDEA Cheia \

ea

: Concatenare Cheia RS privat, z iui !ice ;heie RSA, D,

A EV1D5 [ A RSA i

n text clar, de la Alice

Concatenarea Iul P i a 'islui de dispersie coptat

Concatenarea !ii P1.Z cripto! eu IDEA i KM cripta! cu Es

FES. 7-49. PGP n aciunea de trimitere a unui mesai. Alice ncepe prin a invoca prc 1 PGP pe calculatorul su. Mai nti PGP codific prin dispersie (hash) mesajul P utiliznd MD5, apoi cripteaz codul de dispersie rezultat utiliznd cheia sa RSA privat, DA. Cnd, eventual, Bob primete mesajul, el poate decripta mesajul cu cheia public cunoscut a lui Alice i poate testa corectitudinea mesajului codificat prin dispersie. Chiar dac altcineva (de ex. Trudy) poate obine codul n acest stadiu i S poate decripta cu cheia public a

SEC. 7.4

POTA ELECTRONIC

617

lui Alice, puterea lui MD5 garanteaz c este nerealizabil computaional producerea unui alt mesaj care s aib acelai cod MD5. Codul de dispersie criptat i mesajul original sunt acum concatenate ntr-un singur mesaj PI i comprimate apoi cu programul ZIP, care utilizeaz algoritmul Ziv-Lempel (Ziv i Lempel, 1977). Numim ieirea obinut la acest pas Pl.Z. Apoi, PGP i cere lui Alice introducerea unui ir de caractere oarecare. Att coninutul acestuia ct i viteza de tastare sunt utilizate pentru a genera o cheie de mesaj de tip IDEA, de 128 de bii, KM (numit cheie de sesiune n literatura PGP, dar numele este cu adevrat nepotrivit atta timp ct nu exist nici o sesiune). KM este acum utilizat pentru a cripta Pl.Z cu IDEA, prin metoda de tip reacie cifrat. n plus, KM este criptat cu cheia public a lui Bob, EB- Aceste dou componente sunt apoi concatenate i convertite n baz 64, aa cum s-a discutat n seciunea despre MIME. Mesajul rezultat conine numai litere, cifre i simbolurile +, / i =, ceea ce nseamn c poate fi pus ntr-un corp de RFC 822 i c ne putem atepta s ajung nemodificat la destinaie. Cnd Bob primete mesajul, l reconvertete din baz 64 i decripteaz cheia IDEA utiliznd cheia sa RSA privat. Utiliznd aceast cheie, decripteaz mesajul pentru a obine Pl.Z. Dup decompresia acestuia, Bob separ textul simplu de codul cifrat i decripteaz codul de dispersie utiliznd cheia public a lui Alice. Dac codul textului clar cade de acord cu calculul fcut de ei utiliznd MD5, el tie c P este mesajul corect i c vine de la Alice. Merit observat c RSA este utilizat doar n dou locuri aici: pentru a cifra codul de dispersie de 128 de bii generat de MD5 i pentru a cifra cheia IDEA de 128 de bii. Dei RSA este lent, are de criptat doar 256 de bii i nu un volum mare de date. Mai mult, toi cei 256 de bii de text simplu sunt generai extrem de aleatoriu, astfel nct numai pentru a determina dac o cheie ghicit este corect, Trudy ar trebui s depun o cantitate nsemnat de munc. Criptarea de mare putere este realizat de IDEA, care este cu cteva ordine de mrime mai rapid dect RSA. Astfel, PGP asigur securitate, compresie i o semntur digital i face acest lucru ntr-o manier chiar mult mai eficient dect schema ilustrat n Fig. 7-23. PGP accept trei lungimi de chei RSA. Rmne la latitudinea utilizatorului s o aleag pe cea mai potrivit. Lungimile disponibile sunt: 1. 2. 3. Obinuit (384 bii): poate fi spart n ziua de azi de ctre cei cu bugete mari. Comercial (512 bii): ar putea fi spart de organizaii cu nume din trei litere (care se ocup cu securitatea statului). Militar (1024): Nici un pmntean nu o poate sparge.

Au existat unele discuii referitoare ia o a patra lungime: extraterestr (2048 bii), care s nu poat fi spart de nimeni i de nimic din univers, dar aceasta nu a fost nc adoptat. Din moment ce RSA este folosit doar pentru dou calcule mici, probabil c toat lumea ar trebui s foloseasc ntotdeauna chei de lungime militar, excepie fcnd poate doar PC-XT-urile nvechite. Formatul unui mesaj PGP este prezentat n Fig. 7-50. Mesajul are trei pri, coninnd cheia IDEA, semntura i respectiv mesajul. Partea care conine cheia mai include, de asemenea, un identificator de cheie, deoarece utilizatorilor li se permite s aib mai multe chei publice. Partea cu semntura conine un antet, de care nu ne vom ocupa aici. Antetul este urmat de o amprent de timp, identificatorul pentru cheia public a emitorului, care este folosit

618

NIVELUL APLICAIE

CAP. 7

pentru a decripta codul semnturii, unele informaii care identific algoritmul folosit (pentru a permite folosirea algoritmilor MD6 i RSA2 atunci cnd acetia vor fi inventai) precum si codul de dispersie criptat. Partea de mesaj conine de asemenea un antet, numele implicit care va fi folosit pentru fiier n cazul n care utilizatorul dorete s-1 salveze pe disc, o amprent de timp pus la crearea mesajului i, n sfrit, mesajul n sine.
Baz 64 Compresat, ncripta cu IDEA Messaju!

Cheia de mesaj

Semntura

in din ER Incriptat cu

KM

Antet

T i m P

Nume T ID T Codif. Antet i i de lui MD5 msg. m fiier EA P P DA

Mesaj r

Fig. 7-50. Un mesaj PGP Administrarea cheilor a primit o foarte mare atenie n PGP, deoarece acesta este clciul lui Ahile pentru sistemele de securitate. Fiecare utilizator menine dou structuri de date locale: un inel cu chei private i unul cu chei publice. Inelul cheilor private conine una sau mai multe chei perechi personale private-publice. Motivul pentru care se accept mai multe chei pentru un utilizator este pentru a permite acestora s-i schimbe cheile publice periodic sau cnd se consider c acestea au fost compromise, fr a invalida mesajele aflate n pregtire sau n tranzit. Fiecare pereche are un identificator asociat, astfel nct un emitor de mesaj poate spune destinatarului ce cheie public a fost folosit pentru ncriptarea acestuia. Identificatorii de mesaj constau din ultimii 64 de bii ai cheii publice. Cheile private de pe disc sunt criptate folosind o parol special (arbitrar de lung) pentru a le proteja mpotriva unor atacuri. Inelui cheilor publice conine cheile publice ale corespondenilor utilizatorului. Acestea sunt necesare pentru criptarea cheilor de mesaj asociate cu fiecare mesaj. Fiecare intrare n inelul cheilor publice conine nu doar cheia public, ci i identificatorul su pe 64 de bii i o indicaie asupra ncrederii pe care o are utilizatorul n cheie. Problema care trebuie rezolvat aici este urmtoarea. S presupunem c cheile publice sunt meninute n grupurile de tiri. O metod pentru Trudy de a citi e-mailul secret al lui Bob este de a ataca grupul de tiri i de a nlocui cheia public a lui Bob cu una la alegerea sa. Cnd Alice va lua mai trziu aa-zisa cheie a lui Bob, Trudy poate monta o mulime de atacuri la adresa lui Bob. Pentru a preveni astfel de atacuri, sau cel puin pentru a minimiza consecinele lor, Alice trebuie s tie ct de mult se poate ncrede n obiectul numit cheia lui Bob" din inelul su de chei publice. Dac ea tie c Bob personal i-a dat o dischet coninnd cheia, atunci poate acorda valoarea maxim de ncredere. Totui, n practic, oamenii primesc cheile publice ntrebnd un server de chei sigur, din multele aflate n funciune pe Internet. Cnd un server de chei primete o cerere pentru cheia public a unei

SEC. 7.4

POTA ELECTRONIC

619

persoane, el genereaz un rspuns coninnd cheia public, o tampil de timp i data de expirare a cheii. E! amestec apoi acest rspuns cu MD5 i semneaz rspunsul cu cneia sa privat, astfel nct cel care a fcut cererea s poat verifica proveniena rspunsului. Rmne ia latitudinea utilizatorului s asocieze un nivel de ncredere cheilor meninute de administratorul loca! de sistem. de compania de telefoane, de ACM, de Asociaia Bar, de guvern sau de oricine altcineva: s intre in afacerea meninerii de chei publice. PSM-PdYaey Eatiaacedi Mai (pest oi cideffitalttafe sporit) Spre deosebire de PGP, care a fost iniial opera unui singur om, cel de-al doilea exemplu ai nostru, PEM {Privacy Esfeaaeed'Mal!), este un standard oficia! Internet i este descris n patru RFC-uri: RFC 1421 pn la RFC 1424. Foarte pe scurt, PEM acoper acelai teritoriu ca i PGP: secretul i autentificarea sistemelor de e-mail bazate pe RFC 822. Cu toate acestea, ei prezint i unele diferene fa de abordarea i tehnologia PGP. IR continuare vom descrie PEM i apoi i vom compara i pune n contrast cu PGP. Pentru mai multe informaii despre Mesajele trimise folosind PEM sunt mai nti convertite ntr-o form canonic, astfel nct ele au aceleai convenii referitoare la spaii albe (de exemplu tab-uri, spaiile de ia sfrit de text) i folosirea caracterelor line feed i carriage return. Aceast transformare este fcut pentru a elimina efectele agenilor de transfer de mesaje, care modific mesajele care nu sunt pe placul lor. Fr aducere n form canonic, astfel de modificri ar putea afecta codurile de dispersie construite din mesaje la destinaiile lor. Apoi este calculat un cod ai mesajului, folosind MD2 sau MD5. Acest pas nu este opional ca n PGP. Dup aceasta, concatenarea codului de dispersie i a mesajului este cripta folosind DES. I~ lumina cunoscutei slbiciuni a unei chei de 56 de bii, aceast alegere este n mod sigur suspect. Mesajul cripta poate fi apoi codificat utiliznd o codificare n baza 64 i transmis destinatarului, listele de pot sunt acceptate n mod explicit. Ca i n PGP, fiecare mesaj este criptat cu o cheie unic, indus i ea n mesaj. Cheia poate fi protejat fie cu RSA, fie cu DES triplu folosind EDE. In practic toat lumea folosete RSA, aa c ne vom concentra asupra acestuia. De fapt, suntem obligai: PEM nu spune cum se face administrarea cheilor cu DES. n PEM administrarea cheilor este mult mai structurat dect n PGP. Cheile sunt certificate oe o aaforitate de cerfiicare sub forma unui certificat care conine numele utilizatorului, cheia public i data de expirare a cheii. Fiecare certificat are un numr de serie unic, necesar pentru identificarea lui. Certificatele includ o codificare prin dispersie de tip MD5, semnat cu cheia privat a autoritii de certificare. Ele se conformeaz recomandrilor ITU X.509 pentru certificarea de chei publice i, prin urmare, folosesc nume X.400 ca exemplu! cu Tom Srnith dat mai nainte. PGP are o schem similar (fr a folosi X.509), dar are o problem: Trebuie utilizatorul s se ncread n autoritatea de certificare? PEM rezolv aceast problem confirmnd autoritile de certificare prin aa-numitele PCA-uri (Policy Cerificatioii Aathorities autoriti de certificare a politicii). Acestea, la rndul lor sunt certificate de IPRA (Inferaeti pstratioE Autlaority - autoritatea de nregistrare a politicii din internet), arbitrul )rem, care decide cine este bun i cine este ru.

620

NIVELUL APLICAUE

CAP. 7

Fiecare PCA trebuie s defineasc o politic oficial fa de nregistrare, pe care s o pun de acord cu IPRA. Aceste reguli sunt apoi semnate de IPRA i fcute publice. De exemplu, un PCA poate insista n a fora utilizatorii aflai sub jurisdicie s se prezinte n persoan cu certificatul de natere, permisul de conducere, paaportul, dou cri de credit de la firme mari, un martor n via i o cheie public pe dischet. Alt PCA poate accepta nregistrri prin e-mail, pentru strini. Fcnd publice politicile, utilizatorii au unele baze n a decide n ce autoriti s se ncread. Nu se fac nici un fel de verificri pentru a vedea dac aceste reguli sunt ntr-adevr aplicate. Sunt planificate trei tipuri diferite de autoriti de certificare. Un tip organizaional poate emite certificate pentru angajaii si. Majoritatea companiilor vor utiliza propria autoritate de certificare. Tipul rezidenial va opera pentru cetenii particulari, cam la fel cum ofertanii de servicii Internet ofer servicii tuturor celor care sunt dispui s plteasc. n cele din urm, o schem este planificat pentru nregistrri anonime. Cu attea autoriti de certificare, necesitatea de grupare a PCA-urilor este mai mult dect clar.
Articol

Suport criptare? Suport autentificare? Suport nerepudiere? Suport compresie? Suport trecerea n form canonic? Suport lista de pot? Folosete codificarea base64? Algoritm de criptare a datelor curente Lungimea cheilor pentru criptarea datelor Algoritm curent pentru gestiunea cheilor Lungimea cheilor pentru gestiunea cheilor Spaiul numelui utilizatorului Conform cu X.509? Trebuie s avei ncredere n cineva? Certificarea cheilor Revocarea cheilor Pot cei care ascult s citeasc mesajele? Pot cei care ascult s citeasc semnturile? Standard Internet? Realizat de

PGP Da Da Da Da Nu Nu Da IDEA 128 RSA 384/512/1024 Definit de utilizator Nu Nu Adhoc hazard Nu Nu Nu Mici echipe

PEM Da Da Da Nu Da Da Da DES 56 RSA sau DES Variabil X.400 Da Da (IPRA) Ierarhia IPRA/PCA/CA Mai bun Nu Da Da Comitete de standard

Fig. 7-51. Comparaie ntre PGP i PEM. Dei rigid ierarhic i birocratic, aceast schem are un avantaj fa de PGP prin faptul c face potenial practic revocarea certificrii. Revocarea este necesar dac un utilizator dorete s-i schimbe cheia sa public, de exemplu pentru c ea a fost compromis, sau pentru c autoritatea sa de certificare a fost spart (sau furat). Revocarea este realizat de ctre utilizator spunnd autoritii de certificare c a fost compromis cheia sa public (sau posibil vice-versa). Autoritatea de certificare adaug apoi numrul de serie al certificatului nevalid la o list a certificatelor revocate, l semneaz i rspndete lista ct mai mult i ct mai departe. Oricine dorete s trimit un mesaj PEM unui utilizator trebuie s verifice mai nti cea mai recent list de revocri, pentru a vedea dac cheia public pe care o deine mai este valid. Acest

SEC. 7.5

SURI USENET

proces este analog celui n care un vnztor verific lista crilor de credit furate, nainte de a fi acceptat. Criticii PEM-ului susin c verificarea aceasta fcut tot timpul nseamn prea mult munc i c nimeni nu se va obosi s o fac. Suporterii susin c nite calculatoare nu obosesc niciodat; dac sunt programate s verifice ntotdeauna, ele o vor face. Unele dintre similitudinile i diferenele dintre PGP i PEM sunt prezentate n Fig. 7-51. Majoritatea acestor subiecte au fost discutate, dar asupra ctorva merit s facem unele comentarii. Autentificarea pare mai important n PEM dect n PGP, deoarece este obligatorie ia primul i opional Ia al doilea. PEM poart de asemenea informaia de autentificare n afara plicului cripat, ceea ce nseamn c reeaua poate verifica originea fiecrui mesaj. Ca o consecin, indiscreii pot conoriza cine trimite cui, chiar dac nu pot citi mesajele. Lsnd toate aceste diferene tehnice ia o parte, exist de asemenea o diferen cultural surprinztoare. PGP, care nu este un standard Internet oficial, are cultura Internetului. PEM, care este oficial standard Internet, nu o are. PGP se bazeaz pe ceea ce Dave Clark a numit consens generai i cod care ruleaz". Cineva (Zimmermann) s-a gndit la o soluie a unei probleme bine cunoscute, a implementat-o bine i a distribuit-o tuturor sub form de cod surs. PEM a nceput ca o ptrime de standard oficial, folosind ASN. pentru a defini structuri, X.400 pentru a defini nume i X.5G9 pentru definirea certificatelor. El folosete o structur organizaionai rigid, aezat pe trei niveluri, pentru tipuri multiple de autoriti de certificare, completat cu nite reglementri oficiale de oolltlc a certificrii si necesitatea ca toi s se ncread n IPRA. Implementrile au aprut mai
L T 7

ii.

jl

trziu i erau cu mult n urma PGP din punct de vedere al calitii, cantitii i disponibilitii pe diferite platforme. Pe scurt, PGP arat ca un pachet tipic Internet, pe cnd PEM prezint majoritatea caracteristicilor unui standard OSI, pe care oamenii din Internet i ursc, iar PTT-urile l iubesc. V putei nchipui.

io5 TIM USENET 75


i0
k.

Cfirsi "CO t i "


i.

planetar de grupuri de tiri numit ns aews (reea de tiri). Deseori, ne referim ia reeaua de tiri drept USENET, care duce cu gndul la o reea fizic UNIX-ia-UNIX, care pe vremuri gestiona traficul folosind un program numit Eeqp. n zilele noastre, o mare parte din trafic este transmis prin Internet, dar USENET i Internet nu sunt aceiai lucru. Unele situri Internet nu primesc tiri, iar altele primesc tiri fr a fi n Internet. In seciunile urmtoare, vom descrie USENET. nti S vom trata din punctul de vedere ai utilizatorului. Apoi, vom descrie cum este implementat. 75 USENET din punctul de vedere si atilIzatoraSel Un grup de tiri este un forum universal de discuii pe teme specifice. Oamenii interesai de acest subiect pot subscrie" ia un grup de tiri. Cei care au subscris ia un grup pot folosi un tip special de agent utilizator, un program de citire de tiri (news reader - cititor de tiri), pentru a citi toate articolele (mesajele) trimise ntr-un grup de tiri. De asemenea, oamenii pot s trimit articole unui grup de tiri. Fiecare articol trimis unui grup de tiri este transmis automat tuturor celor care aparin grupului respectiv, oriunde ar fi ei n lume. Transmiterea poate dura de la cteva secunde ia cteva ore, depinznd de ct de departe se afl de calea obinuit transmiorui i receptorul. De fapt, un

CAP. 7

enu? de tiri este ase~"~ or cu o ^s de post, dar interi:.. irnp-enienta~ea este


Ti?rr '^"pi rlp trr*rnr

i grupurilor ce tiri este aa OC mare ^probabil peste iuVJuuj5 meat EU rost aranjate ntr-o Ierarhie pentru a putea gestionate. Figura 7-52 ara nivelele din vrful ierarhilor oficiale". Exist i alte Ierarhii, dar acestea sunt sau centru utilizri regionale, sau n alte limbi, diferite de englez.
010,01 c

^^6

ri i oir

ti.dL

-"w undite

c:'.

L / , W ^ w i V t Llii.jlw^i'vw' ^ii-li1*. '^ w'\w" _^j^_i>w i'-^O';i>'L-

vW'v

iii.iiJL

-*; ! r ' I

i . ; .

.. ' i

. ' I i 1

^-

'i

^.

. ' .

Sci Humanities News Rec Mise Soc "al!:

tiinele fizice jjnginereti [ Literatur ijtiiote umaniste 1 Discuii despre USENET [ Activiti recreative, inciusiv sport i muzic '' Orice care ~u se zotr -este altundeva s~ecte sozle s "ezba:er'r ca: ele. so.ernici i argumentri

calculatorul, riecare om Qiscuii.e renrnee sunt legate ce riaroware-ui sau soit\are-ui caicuaomiui.

lCi^s 'Jl^'

t'bt/J'Cii VJ^ii L>!!s

^ iil

C^'-I^!'. '; :': ,!..'! L C--,~ v v l i i t (

re este ^esat ce acrvitatL recreative si iiiooov-'jn.

coace acestea, muiti Qintre cei os se nscriu aici


f^5. 0orsTfr

QiixiQ uii/eise oUitLii Si

i i e . ciiaccicoui.a suuiccic CGnuiOvOiSaL

& es^e
^ i <=>'* p

care Eincicneaz aup propriile lui reguli. Fiecare din categoriile menionate n Fig. 7-52 este mprit recursiv n subeategorii De exemplu, recsuor este legat de sporturi, mc.spoitJjasketbsM este despre baschet i

SEC. 7.5

IR USENE

programare c. dar .c poate ii nlocui: cu orice ai iimoaj de programare pentru a genera numele IuI de tiri corespunztor.
i hume \ Comp.ai 1 Comp.daabases \ Comp.iang.c \ Comp.os.minix i Comp.os.ms-windows.yideo \ Sci.bio.entomoiogyJepidoptera ' Sci.geo.earthquakes ; Sci.med.arthopedics \ HumanitiesJitauthors.shakespeare News.groups [ News.iists i Recarts.poems ! Recfood.chocoiate Rec.hunoriunny Rec.rrusic.foSk Misc.iobs.offered Misc.he3ith.diabets3 Soc.cuture.estonia ! Soc.singles , Soc.coupie ; Ta'k.abortion Taik.rurnors Altaiieri.visiors : A!.bermuda.trianals Ai.sex.voyeurisrr it.ty.sifHPSons i Subiecte acoperite j inteligen artificial \ Proiectare i impiementare a sistemelor de baze de date Limbajul de programare C Sistemul de operare didactic MEMIX al iui Tanersbaum | Hardware i software video pentru Windows i Cercetri asupra fluturilor i muteior l Geologie, seismologie i cutremure 1 Chirurgia ortopedic | Piesee_j poeziile iui Shakespeare l Grupuri de discuii poteniai noi l Liste relative ia USENET i Poezie liber | Yurnyitm Ai auzit gluma despre fermierui care ... l Discisii despre muzica popular ! Anunuri despre posturi disponibile Sfaturi pentru diabetic; \ Via i cultur n Estonia \ interesele celibatarilor i bsotveni ai Soasingie J Muit zgomot pentru nimic |_De aici virs zvonurile l Loc pentru raportarea raiduriSor farfuriilor zburtoare l Dac citeti vei disprea !n mister Dac eti curios vezi i singur ! Bart si ceiiati

1 i ; ! ; : ; \ [ ; ;

FIg. 7-53c O mic selecie ce grupuri de tiri.


7"
ori1'!"^

i.'^i'^

:Lci^

afieaz un rezumat cu o linie Dentru fiecare articol din primul grup de tiri care nu a fost nc citit i ateapt ca utilizatorul s selecteze un articol sau mai multe pentru citire. Articolele selectate sunt
iiiwl^a. CiatOiii sje u i i fjwillin UuiiAalOiii^i bc SdOSCiiC i S < iCliuxiS ia au

entru anumite grupuri de tiri. Schimbarea unei subscrieri nseamn editarea fiierului local P n care apar grupurile de tiri Ia care utilizatorul a subscris. Pentru a face o analogie,
un giup oe s^iii v
i , W v iZjiLiiiW iii iivv

i ia iGi
rff-r; ^ i i l i Li

ti Ci Ci iiJ.iAii;LV leX

; t

_7P
O

selecteaz o imagine pentru a-I trimite pe calea aleas. Peste o zi, mesajul va ajunge ia aproape toi cei care fceau parte din grupul de tiri spre care fusese transmis. Este posibil ca s

624

NIVELUL APLICAIE

CAP. 7

ncruciat (crosspost) un mesaj, adic s-1 trimitem mai multor grupuri de tiri cu o singur comand. De asemenea este posibil s se restricioneze distribuia geografic a potei. Anunarea colocviului din ziua de joi la Stanford s-ar putea s nu-i intereseze prea mult, s zicem, pe cei din Hong Kong, aa c pota poate fi restricionat la California. Sociologia USENET-ului este unic i uor de neles. Niciodat nainte nu a fost posibil ca mii de oameni care nu se cunosc personal, s poarte discuii pe o vast varietate de teme. De exemplu, acum i se poate oferi posibilitatea cuiva care are o problem, s o transmit pe reea. Ziua urmtoare, transmitorul s-ar putea s aib 18 soluii pentru acea problem i, cu puin noroc, doar 17 dintre ele s fie greite. Din nefericire, unii folosesc noua putere descoperit pentru a comunica cu un grup larg de oameni n mod iresponsabil. Cnd cineva trimite prin pot un mesaj spunnd: Oamenii ca tine ar trebui mpucai", spiritele se nfierbnt i urmeaz un torent de mesaje abuzive, numit rzboi de foc (flamewar). Aceast situaie poate fi atacat n 2 moduri, unul individual i altul colectiv. In mod individual, utilizatorii pot instala un fiier de ucidere (killfile), care specific ce articole cu un subiect anume sau de la o anumit persoan vor fi eliminate dup sosire, nainte de a fi afiate. Majoritatea cititorilor de tiri permit ca un fir individual de discuie s fie omort. Aceast trstur este util cnd o discuie tinde s intre ntr-o bucl infinit. Dac destui dintre cei care au subscris la un grup devin plictisii de poluarea datorat tirilor din grup, ei pot propune ca grupul de tiri s fie moderat. Un grup de tiri moderat (moderated newsgroup) este un grup n care o singur persoan, moderatorul, poate trimite prin pot articolele grupului de tiri. Toate mesajele ctre un grup de tiri moderat sunt trimise automat moderatorului, care le transmite pe cele bune i le elimin pe cele rele. Unele subiecte au att un grup de tiri moderat ct i unul nemoderat. Deoarece n fiecare zi, mii de oameni subscriu la USENET pentru prima dat, aceleai ntrebri sunt puse iar i iar, de toi nceptorii. Pentru a reduce acest trafic, multe grupuri de tiri i-au construit un document FAQ (Frequently Asked Questions - ntrebri puse frecvent) care ncearc s rspund tuturor ntrebrilor pe care le pun nceptorii. Unele dintre ele sunt foarte detaliate i se ntind pe mai mult de 100 de pagini. Cel ce le gestioneaz e trimite prin pot o dat sau de dou ori pe lun.
Smiley Semnificaie Sunt fericit Sunt trist, suprat Sunt apatic Fac cu ochiul Smiley Semnificaie Abe Lincoln Unchiul Sam Santa Claus Dunce Australian Om cu botine Smiley
:+)

:-) :-( :-| ;-)


:-(0) :-(*)

=h-)

Semnificaie Nas mare Gu Musta

Tip

Vomit

*<:-) <:-( (-:


:-)X

Pr 8-)
C:-) Poart ochelari Cap mare

Fig. 7-54. Cteva smileys. USENET este plin de jargoane precum BTW (By The Way - adic), ROFL (Rolling on the floor laughing - a se tvli pe jos de rs) i IMHO (In My Humble Opinion - dup umila mea prere). Muli oameni folosesc simboluri ASCII numite smileys sau emoticons (faa zmbitoare i faa trist). Cteva din cele mai interesante sunt reproduse n Fig. 7-54. Pentru cei mai muli, rotirea crii cu 90

SEC. 7.5

TIRI USENET

625

de grade, n sensul acelor de ceasornic, le face mai clare. Pentru o minicarte care furnizeaz peste 650 de smileys, vedei (Sanderson i Dougherty, 1993). Dei majoritatea oamenilor folosesc numele real la transmiterea potei, unii doresc s rmn anonimi, n special cnd trimit pota unor grupuri de tiri controversate sau cnd trimit prin pot grupurilor de tiri anunuri personale, pentru gsirea de parteneri. Aceast dorin a condus la crearea retransmitorilor (remailers) anonimi, care sunt servere ce au acces la mesajele de pot electronic i care schimb cmpurile From:, Sender., i Reply-To:, pentru a le face s includ referine ctre retransmittor n loc de transmittor. Civa dintre retransmittori asociaz un numr fiecrui utilizator i transmit mai departe pota adresat acestor numere, aa c oamenii pot rspunde scrisorilor primite de la transmitorii anonimi precum SWF 25 caut SWM/DWM 20-30 ...". Nu este sigur dac aceti retransmittori pot pstra secretul despre identitatea anumiilor utilizatori cnd poliia local devine interesat (Bariow, 1995). Deoarece din ce n ce mai muli oameni subscriu la USENET, exist o cerere constant pentru noi i ot mai specializate grupuri de tiri. Ca urmare, a fost stabilit o procedur de creare a unor noi grupuri de tiri. S presupunem c cineva prefer gndacii de buctrie i dorete s vorbeasc cu un alt fan al acestora. El trimite un mesaj la news.givups, numind grupul propus, s zicem, rec.anirnals.wildlife.cockroaches i descriind de ce este aa de important (gndacii de buctrie sunt fascinani, sunt 3500 de specii; au culorile rou, galben, verde, maro i negru; au aprut pe pmnt cu mult naintea primilor dinozauri; au fost probabil primele animale zburtoare .a.rn.d.). De asemenea, el specific dac grupul trebuie sau nu s fie moderat. Urmeaz apoi discuia. Momentul desfiinrii se stabilete prin vot, prin pot. Voturile sunt trimise, identificnd cine a votat i cum (pentru prevenirea fraudelor). Dac da-urile depesc nuurile mai mult de 2:1 i dac sunt cu cel puin 100 mai multe da-uri dect nu-uri, moderatorul unui news.givups trimite un mesaj, acceptnd noul grup de tiri. Acest mesaj este un semnai pentru administratorii de sistem din lume c noul grup de tiri a primit binecuvntarea i acum este oficial. Crearea noului grup este mai puin formal n ierarhia alt, acesta fiind motivul pentru care exist alt. Unele din grupurile de tiri care sunt aproape de limita legal i moral tolerabil nu vor fi acceptate ntr-un vot public. Adic, oamenii care-i populeaz, trec peste procedura normal i i creeaz o ierarhie proprie. Cu toate acestea, o mare parte din ierarhia alt este convenional. 7.5=2 Cum este implementat USENET Cteva dintre micile grupuri de tiri sunt implementate ca liste de pot. Pentru a trimite prin pot un mesaj unei astfel de liste, cineva l trimite la adresa listei de pot, care realizeaz copii trimise la fiecare adres din lista de pot. Cu toate acestea, dac jumtate din studenii unei mari universiti se nscriu la altsex, serverele se prbuesc sub numrul imens de mesaje sosite. n consecin, n general USENET nu este implementat folosind liste de pot. n schimb, fiecare sit (campus universitar, companie, sau furnizor de servicii Internet) memoreaz scrisorile venite ntr-un singur catalog, s-i zicem news, cu subcataloage pentru comp, sci etc. Acestea, la rndul lor, conin subcataloage precum news/cornp/os/minbc. Toate tirile primite sunt depozitate n catalogul corespunztor. Cititorii de tiri i iau articolele de acolo, cnd au nevoie de ele. Acest aranjament face ca fiecare sit s nu necesite dect o singur copie a fiecrui articol tire, necontnd numrul celor care au subscris la un anumit grup de tiri. Dup cteva zile, articolelor le expir timpul i sunt eliminate de pe disc.

626

NIVELUL APLICAIE

CAP. 7

Pentru acces la USENET, un sit trebuie s aib un newsfeed (surs de tiri) de la un alt sit din USENET. Se poate considera c toate siturile care primesc tiri sunt ca nite noduri ale unui graf orientat. Liniile de transmitere care conecteaz perechile de noduri formeaz arcele grafului. Graful ese USENET. Remarcai c a fi n internet nu este nici necesar, nici suficient pentru a fi n USENET. Periodic, fiecare sit care vrea tiri poate testa propria surs (sau propriile surse), ntrebnd dac au venit tiri noi de ia conectarea precedent. Dac da, tirile sunt coiectate i depozitate n catalogul adecvat din news. n acest fel, tirile se difuzeaz peste tot n reea. Este ia fel de posibil ca sursa, mai degrab dect receptorul, s preia iniiativa i s stabileasc contactele cnd sunt tiri noi. Iniial, cele mai multe situri i trimiteau prin pot sursele, dar acum se folosete rnai mult cealalt variant. Acum fiecare sit are toate grupurile de tiri. Exist rnai multe motive pentru care se ntmpl aa. nti, totalul de surse depete 500 MB pe zi i crete rapid. Pentru memorarea tuturor acestora este necesar un spaiu mare pe disc. n a! doilea rnd, timpul de transmitere i costul sunt importante. La 28,8 Kbps, dureaz 39 de ore i o linie telefonic dedicat pentru transmiterea tirilor importante din ultimele 24 de ore. Chiar ia 56 Kbps, obinerea tuturor tirilor necesit aproape 20 ore avnd o linie dedicat. De fap, volumul total a crescut aa de mult c au fost create surse prin satelit. In al treilea rnd, nu fiecare sit este interesat de fiecare subiect. De exemplu, este puin probabil ca majoritatea oamenilor de ia companiile din Finlanda s vrea s citeasc rec.arts.manga (despre crile cu glume japoneze). Ie sfrit, cteva grupuri de tiri nu sunt pe gustul administratorilor de sistem, care ie interzic, n duda interesului considerabil local In decembrie 995, reeaua CompuServe a oprit (temporar) toate grupurile de tiri care aveau n nume cuvntul sex", deoarece un mrunt oficial german a crezut c n acest mod s-ar putea combate pornografia. A urmat o zarv instantanee, imens i atotcuprinztoare. Articolele de tiri au aceiai format ca mesajele de pot electronic RFC 822, dar cu adugarea unor noi antete. Aceast proprietate ie face uor de transportat i compatibile cu marea majoritate a software-uiui de pot existent. Anteteie de tiri sunt definite n RFC 1036. Un exemplu de articol este redat n Fig. 7-55.
From: yogeS@nyo.edu [Vi8SS3ge-id:<54731@nyii.edi:> Subject: Bird Sighing ! Path: cs.vu.n!sun4nnEU,netinews.spnri!!nk.net!r2.UL .netipcH4.nysj:.ecSu!nsws Newsgroups: rec.birds FoSiowup-To: rec.birds Distrbiition: wor!d Mntp-Posting-host: nuthaeh.bio.nyia.edu References: Qrganization: New York Unsveraly Lines: 4 Summary: Guess what! saw? s just saw an osrich on 52nd St and Fifth Ave. n S M e w York. s his their migration season? Did snybody else see it? Jan Vogel

Fig, 7-55 Un exemplu de articol de stiri.

SEC. 7.5

TIRI USENET

627

Cteva cuvinte despre anteteie de tiri sunt, poate, necesare n continuare. Antetul Path: este o list de noduri pe care mesajele le traverseaz pentru a ajunge de la surs la destinaie. La fiecare nod, maina care-1 transmite mai departe i pune numele n list la nceput. Aceast list furnizeaz calea napoi spre transmitor. Folosirea semnelor de exclamaie (pronunat: bang) se leag de adresa USENET, care precede DNS-ul. Antetul NewsGroup: arat cror grupuri de tiri le aparine mesajul. El poate conine chiar mai mult de un singur nume de grup de tiri. Orice mesaj transmis unor grupuri de tiri multiple conine toate numele acestora. Deoarece numele multiple sunt permise aici, antetul Followup-To: este necesar pentru a anuna oamenii unde s trimit comentariile i reaciile, pentru a pune toate discuiile ulterioare ntr-un singur grup de tiri. Antetul Distribution: spune ct de departe s difuzeze pota. Poate conine unul sau mai multe state sau coduri de ri, numele unui sit sau al unei reele, sau world". Antetul Nntp-Posting-Host: este analog antetului Sender. din RFC 822. Acesta spune care main a transmis de fapt mesajul, chiar dac el a fost compus pe o main diferit (protocolul NNTP este protocolul de tiri, descris mai jos). Antetul References: arat c acesta este rspunsul unui mesaj anterior i furnizeaz ID-ul acelui articol. Acesta este cerat n toate mesajele care urmeaz i interzis cnd ncepe o nou discuie. Antetul Organization: poate fi folosit pentru a spune la ce companie, universitate sau agenie se afl afiliat transmitorul. Articolele care completeaz acest cmp au adesea la sfrit un anun c dac mesajul este neserios, nu este vina organizaiei. Antetul Lines: d lungimea corpului mesajului. Liniile din antete i cele albe care separ mesajul de antete nu se numr. Liniile Subject: leag subprocesele de discuii mpreun. Muli cititori de tiri au o comand care permite utilizatorului s vad urmtorul articol pe acelai subiect, mai degrab dect urmtorul mesaj care sosete. De asemenea, fiierele de ucidere i comenzile kill folosesc acest antet pentru a ti ce s rejecteze. In sfrit, antetul Summary: este folosit n mod normal s rezume mesajul care urmeaz. In mesajele care urmeaz, antetul Subiect, conine Re:" urmat de subiectul original. NNTP-ProtocoI de transfer al tirilor pria reea S ne uitm acum la modul n care mesajele sunt difuzate n lume. Algoritmui iniial transmitea mesajele pe fiecare linie folosit de USENET. Dup ce acesta a fost folosit o perioad, volumul traficului a fcut aceast schem nepractic, aa nct a trebuit s se realizeze ceva mai bun. Aceast schimbare a fost reprezentat de protocolul NNTP (Network News Transfer Protocol - protocol de transfer ai tirilor), care a fost definit n RFC 977. NNTP seamn cu SMTP; cu un client care transmite comenzi n ASC i un server care transmite rspunsuri ca numere zecimale codificate n ASCII. Majoritatea mainilor USENET folosesc acum NNTP. NNTP a fost proiectat n dou scopuri. Primul scop a fost s permit mesajelor de tiri s se propage de la o main la alta peste o conexiune fiabil (de exemplu, TCP). Al doilea scop a fost s permit utilizatorilor al cror calculator nu poate primi tiri, s le citeasc la distan. Ambele sunt larg folosite, dar noi ne vom concentra asupra modului n care mesajele de tiri sunt transmise prin reea folosind NNTP.

628

NIVELUL APLICAIE

CAP. 7

Aa cum am menionat anterior, sunt posibile dou abordri generale. n prima, extragere de tiri, clientul cheam una dintre sursele sale i cere noi veti. n a doua variant, introducere de tiri, sursa cheam clientul i-1 anun c are veti. Comenzile NNTP suport la fel de bine ambele modaliti, ca si citirea la distant a tirilor. Pentru achiziionarea unor noi mesaje, un client trebuie nti s stabileasc o conexiune TCP cu portul 119 pe una din surse. n spatele acestui port se afl un demon NNTP, care fie este acolo tot timpul ateptnd clienii, fie este creat n momentul n care este necesar. Dup ce conexiunea a fost stabilit, clientul i serverul comunic folosind o secven de comenzi i rspunsuri. Aceste comenzi i rspunsuri sunt folosite pentru a asigura clientul c va primi toate articolele pe care le solicit, dar nu duplicate, indiferent ct de multe surse sunt folosite. Principalele comenzi folosite pentru mutarea articolelor ntre demonii de tiri sunt prezentate n Fig. 7-56.
Comand LIST NEWSGROUPS data ora GROUP grp NEWNEWS grps data timp ARTICLE id POST IHAVE id QUIT Semnificaie D-mi o list a tuturor grupurilor de tiri i a tuturor articolelor pe care le ai D-mi lista grupurilor de tiri create dup data/ora D-mi o list a tuturor articolelor din grupul grp D-mi o list a noilor articolelor din grupurile specificate D-mi articolul specificat Am pentru tine un articol care a fost expediat aici Am articolul id. II vrei? Termin sesiunea

Fig. 7-56. Principalele comenzi NNTP pentru difuzia tirilor. Comenzile LIST i NEWGROUPS permit unui client s afle grupurile pe care le are un server. Primul furnizeaz o list complet. Al doilea d doar acele grupuri create dup data i timpul specificat. Dac clientul tie c lista este mare, este mai eficient pentru client s in evidena a ceea ce deine fiecare dintre sursele proprii i s ntrebe care sunt actualizrile. Rspunsurile la fiecare dintre aceste comenzi formeaz o list, n ASCII, cu un grup de tiri pentru fiecare linie, dnd numele grupului de tiri, numrul pe care serverul l are pentru ultimul mesaj, numrul primului mesaj pe care-1 are serverul i un indicator spunnd dac trimiterea potei ctre acest grup de tiri este permis.
S: 200 feeder.com NNTP server at your service (rspuns la o nou conexiune) C: NEWNEWS soc.couples 960901 030000 (sunt tiri noi n soc.couples?) S: 230 List of 2 articles follows S: <13281@psyc.berkeley.edu> (art. 1 din cele dou articole din soc.couples este de la Berkeley) S: <162721@aol.com> (articolul 2 din cele dou articole aflate n soc.couples este de la AOL) S:. (sfritul listei) C: ARTICLE <13281@psyc.berkeley.edu> (te rog d-mi articolul Berkeley) S: 220<13281@psync.berkeley.edu> follows S: (ntregul articol <13281@ psync.berkeley.edu> este transmis aici) S:. (sfritul articolului) C: ARTICLE <162721@aol.com> (te rog d-mi articolul AOL) S: 220<162721@aol.com> follows S: (ntregul articol <162721@aol.com> este transmis aici) S:. (sfritul articolului) C:NEWNEWS misc.kids 960901 030000 (exist vreun articol nou n misc.kids) S: 230 List of 1 article folows

SEC. 7.5
S: <43222@bio.rlce.edu> S:. C: ARTiCLE <43222@bio.rice.edu> S: 220<43222@bio.rice.edu> folows S: S:. C:NEWNEWS 960901 030000 S: 231 2 new group follow S: rec.pets S: rec.nude S:. C:NEWNEWS rec.pets 0 0 S: 230 List of 1 article folows S: <124@fido.net> S:. C: ARTICLE <]24@fido.ne> S: 220 <124@fido.net> follows S: S:. C: POST S:340 C: S:240 C: IHAVE <5321@foo.com> S:435 C: QUIT

SURI USENET

629
(un artico! de la Rice) (sfritul listei) (te rog d-mi articolul Rice)

(ntregul articol <43222@bio.rice.edu> este transmis aici) (sfritul articolului)

(listeaz oce ai! {1 articol de la fido.net) (sfritul listei) (te rog d-mi articolul fido.net) (ntregul articoS este transmis aici)

(te rog trimite-i pota) (se trimite aici articolul expediat de wholesome.com) (artico! primit) (Ii am deja, nu mi-l mai trimite) (O zi bun)

S:205

Fig. 7-57. Modul n care wholesome.com poate achiziiona articole de la sursele de tiri proprii. Odat ce clientul cunoate ce grupuri de tiri deine pentru un server, el poate ncepe s ntrebe ce mesaje are serverul (de exemplu, pentru vechile grupuri de tiri, cnd este folosit NEWGROUPS). Comenzile GROUP i NEWNEWS sunt folosite n acest scop. Prima furnizeaz lista complet, iar a doua d doar actualizrile aprute dup data i timpul indicat, n mod normai timpul ultimei conectri la surs. Primul parametru poate conine asteriscuri, nsemnnd totul De exemplu, comp.os. * nseamn toate grupurile de tiri care ncep cu irul comp.os. Dup ce clientul a asamblat o list complet cu ce articole exist i n ce grupuri (sau chiar nainte de a avea o list complet), poate ncepe s cear mesajele necesare folosind comanda ARTICLE. Odat ce toate articolele cerute sunt gsite, clientul poate oferi articolele pe care le-a achiziionat de la celelalte surse folosind comanda IHAVE i articolele care au fost transmise prin pot folosind comanda POST. Serverul le poate accepta sau refuza, aa cum dorete. Cnd clientul a terminat, poate ncheia sesiunea folosind QUIT. In acest fel, fiecare main are controlul complet asupra articolelor primite de la surse, eliminnd toate mesajele duplicate. Ca un exemplu al funcionrii NNTP-ului, considerm un furnizor de informaii, wholesome.net care evit controversele cu orice pre, aa c singurele grupuri de tiri oferite sunt socxouples i misc.kids. Oricum, el este deschis i doritor s aduc alte grupuri de tiri, dac nu conin material potenial ofensator pentru nimeni. De aceea, el vrea s fie informat despre noile grupuri create, ca s poat lua o decizie bun pentru clienii si. Un scenariu posibil ntre wholesome.com, acionnd ca un client i sursa proprie, feeder. corn, acionnd ca un server, este artat n Fig. 7-57. Acest scenariu

NIVELUL APLICAIE

CAP. 7

folosete abordarea extragerii de tiri (clientul iniiaz conexiunea pentru a cere tirile). Remarcile dintre paranteze sunt comentarii care nu fac parte din protocolul NNTP. n aceast sesiune, wholesorne.com ntreab nti dac acolo este vreo tire pentru soc.couples. Cnd i se spune c are dou articole, el le adaug pe amndou i le memoreaz n news/soc/couples ca fiiere separate. Fiecare fiier este numit prin numrul de articol. Apoi, wkolesome.com ntreab despre miscMds i i se spune dac acolo este un articol. El l adaug i pe aceia i i pune n news/misc/Mds. Avnd toate tirile despre grupurile pe care ie are, acum verific noile grupuri i i se spune c au aprut dou noi grupuri care au fost create de ia ultima sesiune. Unul dintre ele arat promitor, aa c articolele sale sunt adugate. Cellalt pare nfiortor, aa c nu este luat n considerare (Wholesonie.com a fcut o mare investiie n software-ul AI pentru a face posibil s hotrasc ce s transmit uitndu-se la nume). Dup ce a achiziionat toate mesajele dorite, wholesome.com ofer feeder.com-uM un nou articol trimis prin pot de altcineva la situl su. Oferta este acceptat i mesajul este transferat. Acum whoiesome.com ofer alt mesaj, unui care vine de la cealalt surs a sa. Deoavecefeeder.com l are deja, l refuz. n sfrit, whoiesome.com termin sesiunea i elibereaz conexiunea TCP. Metoda de introducere a tirilor este similar. Ea ncepe cu apelul sursei ctre o main ce trebuie s recepioneze tiri. Sursa pstreaz n mod normal listele grupurilor de tiri ale clienilor si i ncepe prin anunarea primului mesaj n primul dintre aceste grupuri de tiri, folosind comanda HAVE. Recipientul potenial verific apoi tabelele proprii pentru a vedea dac deja conine articolul i i poate accepta sau rejeca. Dac articolul este acceptat, ei este transmis, urmat de o linie coninnd un punct. Apoi sursa anun ai doilea mesaj i aa mai departe, pn cnd toate tirile au fost transferate. O problem legat de ambele metode, de punere, respectiv scoatere de tiri, este c ele folosesc metoda oprete-te i atept. n mod tipic, 100 msec sunt pierdute ateptnd un rspuns la o ntrebare. Cu 100.000 sau mai multe mesaje de tiri pe zi, acest timp pierdut se adun, ajungnd ia valori substaniale.

Web-ul este un context arhitectural pentru accesul la documente, rspndite pe mii de maini din Internet, ntre care exist legturi. In 5 ani a evoluat de la o aplicaie pentru transmiterea de date utile pentru fizica energiilor nalte la o aplicaie despre care milioane de oameni cred c este Internetul. Popularitatea sa enorm se datoreaz faptului c are o interfa grafic plin de culoare, uor de utilizat de ctre nceptori i n acelai timp ofer o cantitate imens de informaie - de ia aborigieni la zoologie pe aproape orice subiect posibil. Web-ul (cunoscut i ca WWW) a aprut n 1989 la CERN, Centrul European de Cercetri Nucleare. CERN are cteva acceleratoare utilizate de echipe mari de cercettori din rile europene pentru cercetri n fizica particulelor. Deseori aceste echipe au membri din peste zece ri. Majoritatea experienelor sunt foarte complicate i necesit ani de pregtire i construire de echipamente. Web-ul a aprut din necesitatea de a permite cercettorilor rspndii n lume s colaboreze utiliznd colecii de rapoarte, planuri, desene, fotografii i alte tipuri de documente aflate ntr-o continu modificare.

SEC. 7.6

WORLD WIDE WEB

631

Propunerea iniial pentru crearea unei colecii de documente avnd legturi ntre ele (web) a fost fcut de fizicianul Tim Berners-Lee, fizician la CERN, n martie 1989. Primul prototip (bazat pe text) era operaional 18 luni mai trziu. n decembrie 1991, s-a fcut o demonstraie public la conferina Hypertex'91 n San Antonio, Texas. Aciunea a continuat n anul urmtor, fiind ncununat cu realizarea primei interfee grafice, Mosaic, n februarie 1993 (Vetter .a, 1994). Mosaic a fost att de popular nct un an mai trziu, autorul su, Marc Andreessen, a prsit NCSA (Centrul naional pentru aplicaiile supercalculatoareor), unde Mosaic-ul a fost dezvoltat, pentru a forma o nou companie, Netscape Communications Corp., care se ocupa cu dezvoltarea de software pentru Web. Cnd Netscape a devenit o companie public n 1995, investitorii, care probabil c au crezut c este vorba de un fenomen de tip Microsoft, au pltit 1,5 miliarde de dolari pentru aciunile companiei. Acest record a fost cu att mai neateptat cu ct compania avea un singur produs, opera n deficit i anunase probabilii investitori c nu se ateapt la beneficii n viitorul apropiat. n 1994, CERN i M.I.T. au semnat o nelegere pentru a forma Consoriul World Wide Web, o organizaie care are ca obiectiv dezvoltarea Web-ului, standardizarea protocoalelor, i ncurajarea interoperabilitii ntre situri. Berners-Lee a devenit director. De atunci, sute de universiti i companii au intrat n consoriu. M.I.T. coordoneaz partea american a consoriului n timp ce centrul de cercetri francez, INRIA, coordoneaz partea european. Dei exist foarte multe cri despre Web, cel mai bun loc pentru gsirea unor informaii la zi despre el este (n mod natural) chiar Web-ul. Pagina consoriului are adresa http:llwww.w3.org. Cititorii interesai vor gsi acolo legturi la pagini care acoper toate documentele i activitile consoriului. n urmtoarele seciuni, vom descrie cum se prezint Web-ul utilizatorilor, dar mai ales modul de funcionare intern. Deoarece Web-ul este un sistem client-server, vom discuta att aspectele referitoare la client (adic utilizator) ct i cele referitoare la server. n continuare vom examina limbajele n care sunt scrise paginile de Web (HTML i Java). n final, se prezint cum se poate gsi o informaie pe Web. 7.6.1 Aspectele privind clientul Din punctul de vedere al utilizatorului, Web-ul const dintr-o colecie imens de documente rspndite n toat lumea, numite pagini. Fiecare pagin poate s conin legturi (indicatori) ia alte pagini, aflate oriunde n lume. Utilizatorii pot s aleag o legtur (de exemplu prin execuia unui clic) care i va aduce la pagina indicat de legtur. Acest proces se poate repeta la nesfrit, fiind posibil s se traverseze n acest mod sute de pagini legate ntre ele. Despre paginile care indic spre alte pagini se spune c utilizeaz hipertext. Paginile pot s fie vzute cu ajutorul unui program de navigare (browser). Mosaic i Netscape sunt cele mai cunoscute programe de navigare. Programul de navigare aduce pagina cerut, interpreteaz textul i comenzile de formatare coninute n text i afieaz pagina, formatat corespunztor, pe ecran. Un exemplu este prezentat n figura 7-58(a). Ca majoritatea paginilor de Web, ncepe cu un titlu, conine informaii i se termin cu adresa de pot electronic a celui care menine pagina. irurile de caractere care reprezint legturi la alte pagini, se numesc hiperlegturi, sunt afiate n mod diferit, fiind subliniate i/sau colorate cu o culoare special. Pentru a selecta o legtur, utilizatorul va plasa cursorul pe zona respectiv (utiliznd mausul sau sgeile de

632

NIVELUL APLICA1IE

CAP. 7

pe tastatur) i comand selecia (cu ajutorul mausului sau apsnd tasta ENTER). Dei exist programe de navigare fr interfa grafic, ca de exemplu Lynx, ele nu sunt att de utilizate ca programele de navigare grafice, astfel nct n continuare ne vom referi numai la ultimele. Au fost dezvoltate i programe de navigare bazate pe voce.
WELLCOME TO THE UNIVERSTY OF EAST PODUNK'S WWW HOME PAGE Campus Information
D D a n

Admissions information Campus map Directions to campus The UEP student body

Academic Departments D Department of Animal Psychology


n D n D

Department of Alternative Studies Department Microbiotic Cooking Department Nontraditional Studies Department of Tradiional Studies

! Webmaser @ eastpodunk. edu {a}

THE DEPARTMENT OF ANIMAL PSYCHOLOGY sinformation for prospective majors Personnel D Faculty rnembers
Q n

Graduate students Nonacademic staff

QResearch Projects Positions available Our most popular courses


D n

Deaiing with herbivores Horse management Negotiating with your pet User-friendly dog riouse constructori

Q Organice rat contro


n n

Full list of courses Webmaster @ amimaSpsyc.sastpodunk.edu (b)

Fig. 7-58. (a) O pagin de Web. (b) pagina ia care se ajunge dac se selecteaz
Department of Animal Psychology

Utilizatorii care sunt interesai s afle mai multe despre Department of Animai Psichoiogy" vor selecta numele respectiv (apare subliniat). Programul de navigare va aduce pagina la care este legat numele respectiv i o va afia, aa cum se vede n Fig. 7-58(b). irurile subliniate aici pot s fie selectate la rndul lor pentru a aduce alte pagini i aa mai departe. Noua pagin se poate afla pe aceeai main ca i prima sau pe o main aflat undeva pe glob la polul opus. Utilizatorul nu va ti. Aducerea paginilor este realizat de ctre programul de navigare, fr nici un ajutor din partea

SEC. 7.6

WORLD WIDE WEB

633

utilizatorului. Dac utilizatorul se va ntoarce la prima pagin, legturile care au fost deja utilizate vor fi afiate altfel dect celelalte (subliniate cu linie punctat sau utiliznd o alt culoare) pentru a fi deosebite de cele care nu au fost nc selectate. De notat c selecia liniei Campus Infotmation din prima pagin nu are nici un efect. Nu este subliniat, ceea ce nseamn c este pur i simplu un text care nu este legat de o alt pagin. Majoritatea programelor de navigare au numeroase butoane i opiuni care ajut navigarea prin Web. Multe au un buton pentru revenirea la pagina anterioar, un buton pentru a merge la pagina urmtoare (acest buton este operaional numai dup ce utilizatorul s-a ntors napoi dintr-o pagin) i un buton pentru selecia paginii personale (home page). Majoritatea programelor de navigare au un buton sau un meniu pentru nregistrarea unei adrese de pagin (bookmark) i un altul care permite afiarea unor adrese nregistrate, fcnd astfel posibil revenirea la o pagin cu ajutorul unei simple selecii realizate cu mausul. Paginile pot s fie salvate pe disc sau tiprite. Sunt disponibile numeroase opiuni pentru controlul ecranului i configurarea programului de navigare conform dorinelor utilizatorului. O comparaie a nou programe de navigare este prezentat n (Berghel, 1996). n afar de text obinuit (nesubliniat) i hipertext (subliniat), paginile de Web pot s conin iconie, desene, hri, fotografii. Fiecare dintre acestea poate s fie, n mod opional, legat la alt pagin. Dac se selecteaz unul dintre aceste elemente, programul de navigare va aduce pagina respectiv i o va afia, aa cum se ntmpl n cazul selectrii unui text. Pentru imaginile care sunt fotografii sau hri, alegerea paginii care se aduce poate s depind de regiunea din imagine pe care se face selecia. Nu toate paginile sunt afiabile. De exemplu, pot s existe pagini care conin nregistrri audio, clip-uri video sau ambele. Dac paginile de hipertext sunt combinate cu alte tipuri de pagini, rezultatul se numete hiper-media. Numai o parte din programele de navigare pot s afieze orice tip de hiper-media. Cele care nu pot verific un fiier de configurare ca s afle cum s trateze datele primite. n mod normal, fiierul de configurare conine numele unui program de vizualizare extern sau al unui program auxiliar pentru aplicaie, care va fi utilizat pentru a interpreta coninutul paginii aduse. Dac un astfel de program nu este specificat, atunci programul de navigare poate s cear utilizatorului s specifice un program de vizualizare. Dac nu exist un astfel de program, utilizatorul poate s indice programului de navigare s salveze pagina adus ntr-un fiier pe disc sau s o abandoneze. Utilizarea unui generator de voce ca program auxiliar permite chiar i utilizatorilor orbi s acceseze Web-ul. Alte programe auxiliare conin interpretoare pentru limbaje speciale pentru Web, permind aducerea i execuia programelor din paginile de Web. Acest mecanism permite extinderea funcionalitii Web-ului. Multe pagini de Web conin imagini de dimensiuni mari, pentru care ncrcarea dureaz mult. De exemplu, aducerea unei imagini necompresate de 640 x 480 (VGA) cu 24 de bii pe pixel (922 KB) dureaz cam 4 minute, dac se utilizeaz o linie de modem de 28.8 Kbps. Unele programe de navigare trateaz problema ncrcrii lente ncrcnd i afind mai nti textul i apoi imaginile. Aceast strategie ofer utilizatorului ceva de citit ct timp ateapt, i n acelai timp i permite s renune la pagina respectiv dac nu este destul de interesant ca s merite ateptarea. O alt strategie este de a oferi opiunea de a dezactiva aducerea i afiarea automat de imagini. Unii creatori de pagini de Web ncearc s trateze altfel problema utilizatorilor plictisii, afind imaginile ntr-un mod special. Mai nti apare rapid o imagine ntr-o rezoluie foarte sczut. Apoi se mbuntete calitatea imaginii. Pentru utilizator apariia imaginii dup cteva secunde, chiar i

634

NIVELUL APLICAIE

CAP. 7

ia o rezoluie sczut, este de multe ori de preferat fa de situaia n care acesta urmrete modul n care se deseneaz imaginea linie cu linie. Unele pagini de Web conin formulare care cer utilizatorului s introduc informaii. Aplicaiile tipice pentru formulare sunt cutri ntr-o baz de date pentru o intrare specificat de utilizator, comandarea unui produs sau participarea la un sondaj de opinie. Alte pagini de Web conin hri care permit utilizatorilor s selecteze poriuni pentru a obine informaii despre anumite zone geografice sau pentru a realiza o mrire sau o micorare a imaginii afiate. Utilizarea formularelor i a imaginilor cu zone seiectabile necesit prelucrri mai sofisticate dect pur i simplu aducerea unei pagini. O s descriem mai trziu cum sunt implementate aceste faciliti. Unele programe de navigare utilizeaz discul local pentru a memora temporar paginile pe care Ie aduc. nainte ca o pagin s fie adus, se verific dac ea nu se gsete deja n memoria temporar. Dac da, se verific numai dac pagina este nc actual. In caz afirmativ, nu mai este necesar readucerea paginii. Ca rezultat, selecia butonului BACK pentru a vedea pagina precedent are un efect foarte rapid. Pentru a permite utilizarea unui program de navigare n Internet, un calculator trebuie s fie legat direct n Internet sau cel puin s aib o conexiune SLIP sau PPP la un ruter sau la un alt calculator care este legat direct n Intemet. Aceast cerin apare deoarece aducerea unei pagini de ctre un program de navigare presupune stabilirea unei conexiuni TCP cu calculatorul pe care este memorat pagina, i apoi transmiterea unui mesaj, utiliznd conexiunea, pentru a cere pagina. Corespunztor, programul de navigare nu poate s lucreze dac nu se poate stabili o conexiune TCP spre un calculator din Internet. Eforturile pe care ie fac unii utilizatori pentru a avea acces la Web sunt uneori surprinztoare. Exist cel puin o companie care ofer servicii de tip Web-Fax. Un client fr acces la Intemet poate s se conecteze ia serverul de Web-Fax prin intermediul unui telefon cu tastatur digital. Indicnd prin intermediul tastaturii digitale codul unei pagini de Web o va primi prin Fax.

Pentru orice server de Web un proces ascult portul 80 TCP pentru conexiuni iniiate de ctre clieni (n mod normai programe de navigare). Dup ce s-a stabilit o legtur, clientul trimite o cerere i serverul trimite un rspuns. Apoi conexiunea este eliberat. Protocolul care descrie cererile i rspunsurile permise se numete HTTP. Vom studia acest protocol n detaliu n continuare, dar un exemplu simplu poate s ofere o idee referitoare ia modul n care funcioneaz servereie de Web. Figura 7-59 prezint modul n care diferitele componente ale modelului Web lucreaz mpreun. Pentru acest exemplu putem s considerm c utilizatorul tocmai a selectat un text sau o iconi care indic spre pagina ai crei nume (URL - Uniform Resource Locator - adresa uniform pentru localizarea resurselor) estehttp://www.w3.or%/h)pertext/WWW/TlwProject. html. Vom explica ce nseamn URL mai trziu, n cadrul capitolului curent. Deocamdat, este suficient s tim c un URL are trei pri: numele protocoiului (htp), numele calculatorului pe care se gsete pagina (www.w3.org) i numele fiierului care conine pagina hypertextJWWW/ theProjecthtml).

SEC. 7.6

WORLD WIDE WEB


Server abc.com Pagin curent afiat de programul de navigare Hiper-legtur spre abc.com Programul de navigare Server xyz.com

635

Client

Pe aceast conexiune este utilizat HTTP

Fig. 7-59. Componentele modelului Web. Etapele care se parcurg ntre momentul n care se face selecia i afiarea paginii aduse sunt urmtoarele: 1. Programul de navigare determin URL (pe baza seleciei). 2. Programul de navigare ntreab DNS care este adresa IP pentru www.w3.org. 3. DNS rspunde cu 18.23.0.23. 4. Programul de navigare realizeaz conexiunea TCP cu portul 80 al 18.23.0.23. 5. Trimite o comand GET hypertext/WWW/TheProject.html. 6. Serverul www. w3. org transmite fiierul TheProjecLhtml. 7. Conexiunea TCP este eliberat. 8. Programul de navigare afieaz textul din TheProjecLhtml. 9. Programul de navigare aduce i afieaz toate imaginile din TheProjecLhtml. Multe programe de navigare afieaz care este etapa care se execut ntr-o fereastr de stare, n partea de jos a paginii. n acest mod, dac performanele sunt slabe, utilizatorul poate s tie dac este vorba de faptul c DNS nu rspunde, c serverul nu rspunde, sau pur i simplu de congestia reelei n timpul transmisiei paginii. Trebuie s menionm faptul c pentru fiecare imagine dintr-o pagin (iconi, desen, fotografie etc.) programul de navigare stabilete o nou conexiune TCP cu serverul
A

corespunztor pentru a aduce imaginea respectiv. In mod corespunztor, dac o pagin conine multe iconie, toate pe acelai server, stabilirea, utilizarea i eliberarea unei conexiuni noi pentru fiecare dintre ele nu reprezint o soluie foarte eficient, dar menine implementarea foarte simpl. Urmtoarele versiuni ale protocolului vor avea n vedere aspectele de eficien. O propunere este prezentat n (Mogul, 1995).

636

NIVELUL APLICAIE

CAP. 7

C: tenet www.w3.org 80 T:Trying 18.23.0.23 ... T: Connected o www.w3.org C: GET/hypertext/WWW/TheProjec.hml HTTP/1.0 C: S: HTTP/1.0 200 Document follows S:M!ME-Version:1.0 S: Server: CERN/3.0 S:Conent-Type: text/html S:Conten Lengh: 8247 S: S:<HEADxTITLE> The World Wide Web Consorium (W3C) </TITLEx/HEAD>

S:<BODY>
S:<H1xlMG ALIGN=MIDDLE> ALT="W3C" SRC="lcons/WWW/w3c_96x67.gif"> S:The World Wide Web Consortium </H1/> <P>

S:
S:The World Wide Web is the universe of network-accessible informaticii. S:The <A HREF="Consortium/"> World Wide Web Consortium </A> S:exist to realize he full potenial of he Web. <P>

S:

S:W3C works with the global comunity to produce S: <A HREF="#Specifications"> specifications </A> and S: <A HREF="#Reference"> reference.software </A> . S:W3C is funded by industrial S: <A HREF="Consortium/Member/List.htm!"> members </A> S:bu its products are freely availabie to aii. <P> S: S:lnthis document: S:<menu> S:<Ll> <A HREF="#Specifications"> Web Specifications and Deveopment Areas </A> S:<L!> <A HREF="#Reference"> Web Software </A> S:<!_!> <A HREF="#Community"> The World Wide Web and the Web Communiy </A> S:<Li> <A HREF="#Joining"> Getting involved with he W2C </A> S:</menu> S:<PxHR> S:<P> W3C is hosed by the S: <A HREF="http://www.!cs.rnit.edu/"> Laboratory for Computer Science </A> at S: <A HREF="http://web.mit.edu/"> MIT </A> , and S:n Europe by <A HREF="http://www.inria.fr/"> SNRIA </A> .

S:<BODY> Fig. 7-60. O sesiune simpl de obinere a unei pagini de Web. Deoarece HTTP este un protocol ASCII ca i SMTP, este foarte simplu pentru o persoan aflat la un terminal (deci nu program de navigare) s discute direct cu un server Web. Este nevoie numai de o conectare TCP pe portul 80 al serverului. Cel mai simplu mod de a obine o astfel de conexiune este utilizarea programului Telnet. Figura 7-60 prezint o sesiune n care se realizeaz o astfel de discuie. In acest exemplu, liniile marcate cu C: sunt introduse de ctre utilizator (client), liniile

SEC. 7.6

WORLD WIDE WEB

637

marcate cu T: sunt afiate de ctre programul Telnet, iar liniile marcate cu S: sunt produse de ctre serverul de la M.I.T. Cititorii sunt ncurajai s ncerce aceast sesiune (de preferat dintr-un sistem UNIX, deoarece n alte sisteme nu se obine starea conectrii). n linia GET trebuie respectate spaiile i numrul de versiune a protocolului, de asemenea este necesar o linie goal dup comanda GET. Ca rezultat, textul care se obine va diferi de cel prezentat n Fig. 7-60 din trei motive. Primul motiv - exemplul a fost scurtat ca s ncap ntr-o singur pagin. Al doilea motiv - textul a fost curat puin pentru ca s nu l pun ntr-o situaie dificil pe autorul fiierului HTML, care, dei se ateapt ca zeci de mii de oameni s viziteze i s examineze pagina afiat, nu se ateapt ca cineva s se uite i la textul HTML care o creeaz. Al treilea motiv - coninutul paginii este foarte des actualizat. n orice caz, exemplul ofer o imagine rezonabil asupra modului n care funcioneaz HTTP. Exemplul indic urmtoarele. Clientul, n cazul nostru o persoan, dar n mod normal un program de navigare, se conecteaz nti la un server i apoi transmite o comand cernd o anumit pagin i specificnd protocolul i versiunea care se vor utiliza (HTTP/1.0). n linia 7 serverul rspunde cu o linie de stare care descrie ce protocol va utiliza (acelai cu al clientului) i codul 200, care arat c operaia decurge corect. Pe linia urmtoare se transmite un mesaj conform RFC 822 MIME, din care sunt prezentate numai primele cinci linii de antet (urmtoarele au fost omise pentru a face economie de spaiu). Urmeaz o linie goal i corpul mesajului. Pentru a transmite o poz, cmpul Content-Type poate s conin:
Content-Type:lmage/GIF

n acest mod, tipurile MIME permit transmiterea unor obiecte arbitrare n modul standard. Cmpul MIME Content-Transfer-Encoding nu este necesar, deoarece TCP permite irurilor de octei s fie transmise, chiar i poze, fr modificri. Semnificaia comenzilor cuprinse ntre paranteze unghiulare utilizate n pagina de exemplu o s fie precizat mai trziu n cadrul capitolul curent. Nu orice server tie HTTP. n particular, multe servere vechi utilizeaz FTP, Gopher sau alte protocoale. Deoarece multe informaii utile sunt disponibile pe servere FTP sau Gopher, unul dintre obiectivele proiectrii Web-ului este s fac aceste informaii disponibile i pentru utilizatorii acestuia. O soluie este ca programul de navigare s utilizeze protocoalele respective atunci cnd discut cu servere de FTP sau Gopher. Unele dintre ele, utilizeaz de fapt aceast soluie, dar a face programele de navigare s neleag orice protocol posibil nseamn ca acestea s devin mult prea mari n mod nejustificat. Se utilizeaz o alt soluie: servere intermediare (proxy) (Luotonen and Altis, 1994). Un server intermediar este un fel de poart (gateway) care utilizeaz protocolul HTTP pentru comunicaia cu programul de navigare i FTP, Gopher sau alte protocoale cu serverul. El accept cereri HTTP i le traduce n, de exemplu, cereri FTP, astfel c programul de navigare nu trebuie s tie dect HTTP. Un server intermediar poate s fie un program care ruleaz pe aceeai main ca i programul de navigare sau poate s fie executat pe o alt main din reea, care deservete mai multe programe de navigare. Figura 7-61 prezint diferena ntre un program de navigare care tie FTP i unul care utilizeaz un intermediar.

638

NIVELUL APLICAIE

CAP. 7

HTTP Program de navigare

Cerere FTP Rspuns FTP

Server FTP

HTTP Program de navigare

Cerere HTTP Rspuns HTTP

Intermediar FTP

Rspuns FTP

Server FTP

Fig. 7.61. (a) Un program de navigare care tie FTP. (b) Un program de navigare care nu tie. De multe ori utilizatorii i configureaz programele de navigare pentru a utiliza servere intermediare pentru protocoalele pe care programul de navigare nu ie cunoate. n acest mod crete domeniul de informaii accesibile. Serverele intermediare sunt utilizate att pentru conversia de protocoale ct i pentru alte funcii importante, de exemplu folosirea memoriei ascunse (caching). Un server intermediar care utilizeaz memorie ascuns memoreaz toate paginile care trec prin el. Cnd un utilizator cere o pagin, serverul intermediar verific dac are pagina. Dac o are, va testa dac pagina este actual. Dac este actual, o va transmite utilizatorului, iar dac nu va aduce o nou copie. O organizaie poate s pun un server intermediar n interiorul zidului de protecie (firewall); astfel utilizatorii au acces la Web, fr s aib acces complet'la Internet. n aceast configuraie, utilizatorii pot s discute cu serverul intermediar care va discuta cu serverele aflate la distan i va aduce pagini n numele clienilor. Acest mecanism se poate utiliza de exemplu n licee pentru a bloca accesul la servere care conin informaii pe care directorul ie consider nepotrivite pentru mintea fraged a tinerilor. Pentru informaii referitoare ia unul dintre cele mai populare servere Web (demonul HTTP NCSA) i performanele sale vezi (Katz .a., 1994 i Kwan .a., 1995). HTTP - HyperText Transfer Protocol Protocolul de transfer standard utilizat de Web este HTTP (HTTP-HyperText Transfer Protocol - protocol de transfer pentru hipertext). Fiecare interaciune const dintr-o cerere ASCII, urmat de un rspuns MIME conform RFC 822. Cu toate c utilizarea TCP pentru conexiuni de transport este foarte obinuit, el nu este impus oficial de ctre standard. Dac reelele ATM vor deveni destul de sigure, cererile HTTP i rspunsurile ar putea s apar i ca mesaje AAL 5. HTTP este n continu evoluie. Cteva versiuni sunt n utilizare i altele noi sunt n curs de implementare. Ceea ce prezentm n continuare sunt noiunile de baz care probabil c nu se vor schimba, dar anumite detalii pot s fie diferite n versiunile urmtoare. Protocolul HTTP const din dou tipuri de elemente: mulimea cererilor de la programele de navigare ctre servere i o mulime de rspunsuri care merg n sens invers. S ie tratm pe rnd.

SEC. 7.6

WORLD WIDE WEB

639

Toate versiunile noi de HTTP suport dou tipuri de cereri: simple i complete. O cerere simpl este doar o linie GET n care se indic pagina dorit, fr specificarea versiunii de protocol. Rspunsul este format numai din pagin, fr antete, fr MIME, fr nici o codificare. Pentru a vedea cum funcioneaz, se poate ncerca o conexiune la portul 80 pentru www.w3.org (aa cum se indic n prima linie din figura Fig. 7-60) dup care se scrie:
GET hypertext/WWW/TheProject.html

dar fr HTTP/1.0. Pagina va fi transmis fr nici o indicaie referitoare la coninut. Acest mecansim este necesar pentru compatibilitatea cu versiuni vechi. Utilizarea sa va disprea pe msur ce programele de navigare i serverele bazate pe cereri complete vor deveni standard. Cererile complete sunt indicate de prezena versiunii de protocol n linia GET, ca n Fig. 7-60. Cererile pot s fie formate din mai multe linii, urmate de o linie alb, care indic sfritul cererii, acesta fiind motivul prezenei unei linii albe n figura 7-60. Prima linie a unei cereri complete conine comanda (GET este numai una dintre posibiliti), pagina dorit i protocolul/versiunea. Liniile urmtoare formeaz antetul conform RFC 822. Dei HTTP a fost proiectat pentru utilizarea pentru Web, el este mult mai general dect este necesar, avnd o deschidere pentru viitoare aplicaii orientate-obiect. Din acest motiv, primul cuvnt dintr-o cerere complet este numele metodei care se va executa asupra paginii Web (sau a unui obiect n general). Metodele sunt listate n Fig. 7-62. Cnd se vor accesa obiecte generale, este posibil s devin disponibile i metode suplimentare, specifice obiectelor. Pentru numele comenzilor este semnificativ utilizarea literelor mari/mici, de exemplu GET este un nume corect, n timp ce get nu.
Metoda GET HEAD PUT
POST
DELETE

Descriere

LINK
UNL1NK

0 cerere de citire a unei pagini Web 0 cerere de citire a antet-ului unei pagini de Web 0 cerere de memorare a unei pagini de Web Adugarea la o resurs cu nume (de exemplu o pagin de Web) tergerea unei pagini de Web Conectarea a dou resurse existente ntreruperea unei conexiuni dintre dou resurse

Fig. 7-62. Metode de cerere standard pentru HTTP. Metoda GET cere serverului s aduc pagina (prin asta nelegem obiect, n general), codificat n mod corespunztor n MIME. Dac cererea GET este urmat de un antet fModified-Since, serverul transmite datele numai dac ele au fost modificate de cnd s-a fcut aducerea lor. Utiliznd acest mecanism, un program de navigare care trebuie s afieze o pagin memorat poate s cear condiionat aducerea, indicnd timpul de modificare asociat paginii. Dac pagina memorat este nc valid, serverul rspunde indicnd numai faptul c pagina este nc valid, eliminnd astfel consumul de timp presupus de readucere a paginii. Metoda HEAD cere numai antetul mesajului, fr s cear i pagina propriu-zis. Aceast metod poate s fie utilizat pentru a afla cnd s-a fcut ultima modificare, pentru a culege

640

NIVELUL APLICAIE

CAP. 7

informaii pentru indexare, sau numai pentru a verifica corectitudinea unui URL. Nu exist comenzi HEAD condiionate. Metoda PUT este inversa metodei GET: n loc s se citeasc o pagin, scrie pagina. Aceast metod permite s se construiasc o colecie de pagini de Web pe un server la distan. Corpul cererii conine pagina. Pagina poate s fie codificat utiliznd MIME, caz n care liniile care formeaz comanda PUT pot s includ Content-Type i anete de autentificare, pentru a demonstra c ntr-adevr cel care face cererea are dreptul s o fac. Metoda POST este similar cu metoda PUT. i ea conine un URL, dar n loc s nlocuiasc date existente, noile date se vor aduga ntr-un mod general. De exemplu, se poate transmite un mesaj la un grup de tiri sau aduga un fiier la un sistem de informare n reea (BBS). Este clar c n acest mod se dorete ca Web-ul s preia i funcionalitatea sistemului de tiri USENET. DELETE realizeaz ceea ce indic numele su: tergerea unei pagini. Ca i la PUT, autentificarea i drepturile de acces joac aici un rol important. Nu exist nici o garanie c operaia reuete, deoarece chiar dac serverul dorete s execute tergerea, fiierul poate s aib atribute care s interzic serverului HTTP s l modifice sau s l tearg. Metodele LINK i UNLINK permit conectarea pentru stabilirea unor conexiuni ntre pagini i alte resurse. Fiecare cerere primete un rspuns constnd din linia de stare i informaii suplimentare (de exemplu, o parte sau toat pagina Web). Linia de stare poate s conin codul 200 (operaie terminat' corect), sau un cod de eroare, de exemplu 304 (nemodifica), 400 (cerere eronat) sau 403 (interzis). Standardele HTTP descriu n detaliu anteteie i corpul mesajelor. Sunt foarte asemntoare cu mesjale MIME conforme cu RFC 822, aa c nu le vom mai discuta aici.

Paginile de Web sunt scrise ntr-un limbaj numit HTML (Hypertext Markup Langaage - limbaj de marcare hipertext). HTML permite utilizatorilor s produc pagini care includ texte, grafic i indicatori la alte pagini de Web. Vom ncepe s studiem HTML cu aceti indicatori, pentru c ei reprezint tocmai mecanismul care ine Web-ul conectat.

Am spus de mai multe ori c o pagin de Web poate s conin referine ia alte pagini. S explicm cum sunt implementate aceste referine. nc de la crearea Web-ului, a fost clar c pentru a avea o pagin care s indice spre alt pagin este necesar un mecanism care s permit numirea i regsirea paginilor. n particular, sunt trei ntrebri la care trebuie s se rspund nainte de a se putea afia o pagin: 1. Cum se numete pagina ? 2. Cum este localizat pagina ? 3. Cum se face accesul la pagin ? Dac fiecare pagin ar avea un nume unic, atunci nu ar exista nici o ambiguitate n identificarea paginilor. Totui, problema nu este nc rezolvat. S considerm de exemplu o paralel ntre

SEC. 7.6

WORLD WIDE WEB

641

oameni i pagini. n SUA aproape fiecare persoan are un numr de asigurare social, care este un identificator unic, astfel nct nu exist dou persoane cu acelai numr. Totui, cunoscnd numai numrul respectiv, nu exist nici o posibilitate de a gsi adresa persoanei respective i sigur nu se poate afla dac persoanei respective trebuie s i se scrie n Englez, Spaniol sau Chinez. Web-ul are practic acelai fel de probleme. Soluia aleas identific paginile ntr-un mod care rezolv toate trei problemele n acelai timp. Fiecare pagin are un URL (Uniform Resource Locater - adresa uniform pentru localizarea resurselor) care funcioneaz ca nume al paginii general valabil. Un URL are trei componente: protocolul, numele DNS al mainii pe care este memorat fiierul i un nume local, care indic n mod unic pagina (de obicei numele fiierului care conine pagina). De exemplu, URL-ul departamentului din care face parte autorul este: http://www.cs.vu.nl/welcome.html Acest URL este format din trei componente: protocolul (htp), numele DNS al serverului (www.cs.vu.nl) i numele fiierului (welcome.html), cu semnele de punctuaie corespunztoare. Se utilizeaz notaii care reprezint prescurtri standard. De exemplu ~user/ poate s fie pus n coresponden cu directorul WWW al utilizatorului user, folosind convenia c o referin la directorul respectiv implic un anumit fiier, de exemplu indexMml. De exemplu, pagina autorului poate s fie referit ca: http://www.cs.vu.nl/~ast/ chiar dac de fapt numele fiierului este diferit. Pe multe servere un nume de fiier nul indic implicit pagina organizaiei creia i aparine serverul. Acum ar trebui s fie clar cum funcioneaz hipertextul. Pentru a face o poriune de text selectabil, cel care scrie pagina trebuie s furnizeze dou elemente: textul prin care se face selecia i URL-ul paginii care trebuie adus, dac textul este selectat. Cnd se face selecia, programul de navigare caut numele serverului utiliznd DNS-ul. Pe baza adresei IP a serverului, programul de navigare stabilete o conexiune TCP spre server. Utiliznd aceast conexiune, se transmite numele fiierului utiliznd protocolul specificat. Bingo. Acum sosete pagina. Este exact ce s-a vzut n Fig. 7-60.
Nume http ftp file news news gopher mailto telnet Utilizat pentru Hipertext (HTML) FTP Fiier local Grup de tiri Articol de tiri Gopher Trimitere de pota electronic Conectare la distan . Exemple http://Www.cs.vu.nl/~ast ftp://ftp.cs.vu.nl/pub/minix/README /usr/suzanne/prog.c news:AA0134223112@cs.utah.edu news:AA0134223112@cs.utah.edu gopher://gopher.tc.umn.edu/11/libraries mailto:kim@acm.org telnet://www.w3.org:80

Fig. 7-63. Cteva URL-uri obinuite.

642

NIVELUL APLICAIE

CAP. 7

Aceast schem URL este deschis n sensul c este simplu s se utilizeze alte protocoale. De fapt au fost definite URL-uri pentru protocoalele obinuite, i multe programe de navigare neleg aceste protocoale. Forme simplificate ale celor mai obinuite sunt prezentate n Fig. 7-63. S parcurgem lista rapid. Protocolul http este protocolul nativ pentru Web, el este utilizat de ctre serverele de HTTP. Suport metodele prezentate n Fig. 7-62, ca i orice alte metode care vor deveni necesare pentru obiecte. Protocolul ftp este utilizat pentru accesul la fiiere prin FTP (File Transfer Protocol prooco pentru transferai de fiiere), protocolul Internet de transfer de fiiere. FTP este utilizat de peste douzeci de ani i este foarte rspndit. Numeroase servere de FTP din toat lumea permit ca de oriunde din Internet s se fac o conectare i s se aduc orice fiier plasat pe un server FTP. Web-ul nu aduce schimbri aici. face doar ca obinerea fiierelor s se fac mai uor, pentru c FTP are o interfa mai puin prietenoas. In viitor, probabil c FTP-ul va disprea, deoarece nu exist nici un avantaj pentru o organizaie s aib un server de FTP n ioc de un server de HTTP, care poate s fac tot ce face un server de FTP, i chiar mai mult (desigur mai exist nite argumente legate de eficien). Este posibil s se fac acces la un fiier local ca la o pagin de Web, fie utiliznd protocolul file (fiier), fie pur i simplu utiliznd numele fiierului. Aceast abordare este similar utilizrii protocolului FTP, dar ne implic existena unui server. Desigur funcioneaz numai pentru fiiere locale. Protocolul nevv's permite unui utilizator de Web s citeasc un articol din tiri ca i curn ar fi o pagin de Web. Aceasta nseamn c un program de navigare este n aceiai imp i un cititor de tiri. De fapt, multe programe de navigare au butoane sau elemente de meniu care permit citirea tirilor USENET rnai uor dect dac se utilizeaz cititoare de tiri obinuite. Protocolul news admite dou formate. Primul format specific un grup de tiri i poate s fie utilizat pentru a obine o list de articole de la un server de tiri preconfigurat. Al doilea format cere identificatorul unui articol, de QxempluAA0134223112@cs.utah.edu. Programul de navigare aduce articolul de ia serverul corespunztor utiliznd protocolul NNTP. Protocolul gopher este utilizat de sistemul Gopher, care a fost proiectat la universitatea Minnesota. Numele este cel ai echipei atletice a universitii, the Goiden Gopher (de asemenea acest nume este utilizat n argou pentru go for, adic o comand de aducere). Gopher-ul a precedat Web-ul cu civa ani. Este o metod de regsire a informaiei, similar conceptual cu cea utilizat de Web, dar acceptnd numai text i imagini. Cnd un utilizator se conecteaz la un server de Gopher, va avea la dispoziie un meniu de fiiere i directoare, fiecare intrare putnd s fie conectat ia orice meniu de Gopher oriunde n lume. Marele avantaj ai Gopher-ului n raport cu Web-ui este c funcioneaz foarte bine cu terminale ASCII care afieaz 25 x 80 caractere i din care exist nc foarte multe n lume. Pentru c este bazat pe text, Gopher este foarte rapid. De aceea n lume exist mii de servere de Gopher. Utilizatorii de Web pot s acceseze un server de Gopher i s vad fiecare meniu Gopher ca o pagin Web cu intrri seectabile. Dac nu ai lucrat cu Gopher-ul, ncercai exemplul din Fig. 7-63 sau utilizai maina favorit de cutare n Web pentru a cuta cuvntul gopher". Dei exemplele considerate nu utilizeaz aceast facilitate, este posibil s se trimit o cerere de cutare complet unui server de Gopher utiliznd un protocol gopher+. Ce se va afia este rezultatul cererii transmise serverului de Gooher.

SEC. 7.6

WORLD WIDE WEB

643

Ultimele dou protocoale nu sunt de fapt protocoale pentru aducerea unor pagini de Web i nu sunt suportate de orice program de navigare, dar sunt utile. Protocolul mailto permite transmiterea de pot dintr-un program de navigare. Pentru a face aceast operaie, se selecteaz butonul OPEM i se specific un URL constnd din mailto: urmat de adresa destinatarului. Majoritatea programelor de navigare vor rspunde cu un formular care are intrri corespunztoare subiectului i altor informaii din antet i spaiu pentru mesaj. Protocolul telnet este utilizat pentru stabilirea unei conexiuni pe o main aflat Ia distan. Se utilizeaz n acelai fel ca i programul Telnet, ceea ce nu constituie o surpriz, deoarece majoritatea programelor de navigare utilizeaz programul Telnet. Ca exerciiu, ncercai din nou sesiunea din Fig. 7-60, dar utiliznd un program de navigare. Pe scurt URL-urile au fost proiectate nu numai pentru a permite utilizatorilor s navigheze prin Web, dar i pentru a utiliza FTP, news, Gopher, e-mail i telnet, ceea ce face inutile interfeele specializate pentru aceste protocoale integrnd astfel ntr-un singur program, navigatorul n Web, aproape toate tipurile de acces n Internet. Dac metoda nu ar fi fost proiectat de un fizician, ar fi putut s par produsul departamentului de publicitate ai unei companii de software. n ciuda tuturor acestor proprieti, creterea Web-ului scoate n eviden i o slbiciune a metodei utilizrii URL-urilor. Pentru o pagin care este foarte des referit, ar fi de preferai s existe mai multe copii pe servere diferite, pentru a reduce traficul n reea. Problema este c URL-riie nu ofer nici o posibilitate de indicare a unei pagini fr s se specifice unde este localizat pagina respectiv. Nu exist nici o metod pentru a spune ceva de genul: Vreau pagina xyz, dar nu m intereseaz de unde o aduci". Pentru a rezolva aceast problem i a permite multiplicarea Daginilor IETF lucreaz la un sistem de URI (Universal Resource Identifiers - identificatori universali de resurse). Un URI poate s fie privit ca un URL generalizat. Acest subiect este n curs de cercetare. Dei am discutat numai despre URL-uri absolute, exist i URL-uri relative. Diferena es:e similar cu diferena dintre un nume de fiier absolut /usr/ast/foobar i pur i simplu foobar, aiunci cnd contextul este definit n mod neambiguu. HTML-HyperText Markup Language Acum, dac tim cum funcioneaz URL-urile, putem s examinm limbajul HTML, Acest limbaj este o aplicaie a standardului ISO 8879, SGML (Standard Generaiized Markup Language ~ limbajul standard generalizat de marcare), specializat pentru hipertext i adaptat la Web. Dup cum s-a mai menionat, HTML este un limbaj de marcare, un limbaj care descrie cum trebuie s fie formatate textele. Termenul de marcare" provine din timpurile vechi, cnd editorii fceau marcaje pe documente pentru a indica tipografului - n acele timpuri un om - ce font-uri s foloseasc .a.m.d. Limbajele de marcare conin comenzi explicite pentru formatare. De exemplu,, n HTML, <B> nseamn nceput de mod aldin, i </B> nseamn terminarea utilizrii modului aldin. Avantajul utilizrii unui limbaj de marcare fa de unul n care nu se utilizeaz marcarea explicit const din faptul c este simplu de scris un program de navigare care s interpreteze comenzile de marcare. TeX i troff sunt dou exemple foarte cunoscute de limbaje de marcare. Documentele scrise ntr-un limbaj de marcare pot s fie comparate cu cele obinute utiliznd procesoare de text de tip WYSIWYG (What You See s What You Get - Ce vezi este ceea ce obii), cum sunt MS-Word sau Word-Perfect. Acest tip de sisteme pot s memoreze fiierele utiliznd marcaje ascunse pentru ca formatarea s se poat reface ulterior. Nu toate

644

NIVELUL APLICAIE

CAP.?

procesoarele de texte funcioneaz aa. Procesoarele de text pentru Macintosh, de exemplu, pstreaz informaia n structuri de date separate. Prin standardizarea i includerea comenzilor de marcaj n fiecare fiier HTML, devine posibil ca orice program de navigare s poat s citeasc i s formateze orice pagin Web. Posibilitatea forraatrii paginii recepionate este foarte important, deoarece o pagin poate s fie construit pe un ecran cu 1024 x 768 pixeli utiliznd culori codificate cu 24 de bii, dar s-ar putea s fie necesar afiarea ntr-o mic fereastr de pe un ecran cu 640 x 480 pixeli i utiliznd culori codificate pe 8 bii. Procesoarele de text de tip WYSIWYG comerciale nu pot s fie utilizate pentru Web, deoarece limbajul lor intern de marcare (dac exist) nu este standardizat ntre furnizori, calculatoare i sisteme de operare. De asemenea, ele nu pot s realizeze reformatarea pentru diferite dimensiuni de ferestre sau rezoluii. Pe de alt parte, o serie de procesoare de texte permit salvarea documentelor n format HTML n loc de formatul propriu. Ca i HTTP, HTML este ntr-o evoluie continu. Cnd programul Mosaic era singurul program de navigare, limbajul utilizat de el, HTML 1.0, reprezenta standardul de facto. Cnd au aprut programe de navigare noi, a fost necesar un standard oficial Internet i aa a aprut HTML 2.0. HTML 3.0 a fost creat iniial ca efort de cercetare pentru a aduga noi faciliti la HTML 2.0, incluznd tabele, instrumente, formule matematice, forme avansate de descriere a stilului (pentru descrierea organizrii paginilor i definirea semnificaiilor simbolurilor) etc. Standardizarea oficial a limbajului HTML este fcut de Consoriul WWW, dar diferii furnizori de programe de navigare au adugat o serie de extinderi proprii. Aceti furnizori sper ca cei care construiesc pagini de Web s utilizeze aceste extensii, astfel nct cei care vor s citeasc aceste pagini s aib nevoie de programe de navigare care tiu s interpreteze extensiile respective. Astfel de abordri ngreuneaz sarcina standardizrii limbajului HTML. In cele ce urmeaz se face o scurt introducere n limbajul HTML, doar pentru a oferi o idee despre subiect. Cu toate c este posibil s se construiasc documente HTML utiliznd orice editor, i muli fac asta, este posibil i s se utilizeze editoare HTML speciale care pot s fac toat munca (desigur, n mod corespunztor utilizatorul are mai puin control asupra detaliilor produsului final). O pagin Web corect format conine o zon de cap i o zon de corp, cuprinse ntre marcajele (tae-uri) <HTML> si </HTML>. dar majoritatea oroerameor de navigare ignor absena acestor marcaje. Aa cum se vede n Fig. 7-64(a), capui este cuprins ntre marcajele < H E A D > i </HEAD>, iar corpul ntre marcajele <BODY> i </BODY>. Comenzile cuprinse ntre aceste marcaje se numesc directive. Majoritatea marcajelor HTML au acest format, adic, <CEVA> pentru a indica nceputul a ceva i </CEVA> pentru a marca sfritul. Numeroase exemple de fiiere HTML sunt disponibile. Majoritatea programelor de navigare au o opiune VIEW SOURCE (afiarea sursei) sau ceva similar. Selectarea acestei opiuni afieaz pagina curent n format HTML n loc de forma interpretat. Marcajele pot s fie scrise cu litere mici sau mari. Adic <HEAD> i <head> nseamn acelai lucru, dar prima form este de preferat pentru cititorii umani. Cum este dispus textul n documentul HTML este nesemnificativ. Programele de navigare ignor spaiile i trecerile ia rnd nou, deoarece textul trebuie s fie formatat pentru a corespunde zonei de afiare curente. Corespunztor, se pot utiliza spaii pentru a face documentele HTML mai uor de citit, ceva ce ar fi necesar pentru majoritatea documentelor. Liniile albe nu pot s fie utilizate pentru separarea paragrafelor, deoarece sunt pur i simplu ignorate. Este necesar utilizarea unor marcaje explicite.

SEC. 7.6

WORLD WIDE WEB

645

<HTML> <HEAD> <TITLE> AMALGAMATED WIDGET, INC. </TITLEx/HEAD> BODY> <H1> Welcome to AWI's Home Page </H1> <IMG SRC="http://www.widget.com/images/logo.gif" ALT="AWi Logo"> <BR> We are so happy that you have chosen to visit <B> Amalgamated Widg</B> efs home page. We hope <i> you </l> will find al! the information you need here. <P> Below we have links to information about our many fine products. You can order electronically (by WWW), by telephone, or by FAX. <HR> <H2> Product Information </H2> <UL> <LI> <A REF="http://widget.com/products/big" > Big widgets </A> <LI> <A REF="http://widget.com/products/little" > Littie widgets </A> </UL> <H2> Telephone Numbers </H2> < U L x L I > By telephone: 1-800-WIDGETS, <LI>Byfax: 1-415-765-4321 </UL> </BODYx/HTML>
(a)

Welcome t AWI's Home Page

We are so happy that you have chosen to visit Amalgamated Widget's home page. We hope you wiil find all the information you need here. Below we have links to info.rmation about our many fine products. You can order electronically (by WWW), by telephone, or by FAX. Product Information Big widgets Littie widgets Telephone numbers 1-800-WIDGETS 1-415-765^321 (b)

Fig.7-64. (a) Un exemplu simplu de pagin de Web. (b) Pagina formatat. Unele marcaje au parametri (care"au nume). De exemplu: <IMG SRC="abc" ALT="foobar >
I!

NIVELUL APLICAIE

CAP. 7

este un marcaj, <IMG>, avnd parametrul SRC cu valoarea abc i parametrul ALT cu valoarea foohar. Pentru fiecare marcaj, standardul HTML ofer o list a parametrilor care pot s fie utilizai, dac este cazul i care este semnificaia lor. Deoarece parametrii au nume, ordinea n care se dau valorile parametrilor nu este semnificativ. Din punct de vedere tehnic, documentele HTML sunt scrise utiliznd setul de caractere ISO 8859-1 Latin-1, dar pentru utilizatorii ale cror tastaturi suport numai codul ASCI, se pot utiliza secvene de caractere pentru reprezentarea caracterelor speciale cum ar fi e. Lista caracterelor speciale este precizat n standard. Toate ncep cu caracterul &" i se termin cu ;". De exemplu &egrave; produce e iar &eacute; produce e. Deoarece <, > i & au semnificaii speciale, pot s fie reprezentate numai utiliznd secvenele speciale de caractere corespunztoare, &lt; &gt; i &amp;. Principalul element din zona de cap este titlul care este cuprins ntre <TITLE> i </TTLE>, dar pici pot s apar i alte tipuri de informaii. Titlul nu este afiat pe pagin. Unele programe de navigare l utilizeaz pentru a eticheta fereastra n care se afieaz pagina respectiv. S analizm si alte particulariti prezente n exemplul din Fig. 7-64. Toate marcajele utilizate n Fig. 7-64 i nc alte cteva sunt prezentate n Fig. 7-65.
Descriere Marcaj Delimiteaz textul scris n HTML <HTML>... </HTML> <READ>... </HED> j Delimiteaz zona de cap <T!TLE>... </TITLE> | Definete titlul (nu este afiat de programul de navigare) Delimiteaz zona de corp <BODY>... </BODY> Delimiteaz un titlu de nivel n <Hn>... </Hn> <B>... </B> Textul... o s fie afiat cu aldine Textul... o s fie afiat cu cursive <!> ...</i> Delimiteaz o list neordonat <UL>... </UL> <OL>... </OL> Delimiteaz o iist ordonat (numerotat) Delimiteaz un meniu cu elemente marcate cu <LJ> <MENU>... ^?MENU> <L!> inceput de element de list (nu exist </L!> <BR> Trecere la linie nou <P> inceput de paragraf Linie orizontal <PRE>... </PRE> Text preformata; nu se formateaz Se ncarc o imagine <!MG SRC=..."> <AHREF=...">,..</A> Ss definete o hiper-legtur

Fig. 7-65. O selecie de marcaje uzuale. Unele mai au i ali parametri. Titlurile de capitole sunt generate de marcajul <H/?>, unde n este o cifr ntre 1 i 6. <H1> este titlul cel mai important; <H6> este cel mai puin important. Depinde de programul de navigare s prezinte aceste titluri n mod diferit pe ecran. De obicei, titlurile cu numr mai mic vor fi afiate utiliznd caractere mai mari. Programul de navigare poate s utilizeze culori diferite pentru fiecare nivel de titlu. De obicei, pentru titlurile marcate cu <H1> se utilizeaz litere mari scrise cu aldine cu cel puin o linie liber nainte i dup. Corespunztor, pentru titlurile marcate cu <H2>, se utilizeaz caractere mai mici cu mai puin spaiu lsat nainte i dup. Marcajele <B> i <I> sunt utilizate pentru a indica modurile aldin i respectiv cursiv. Dac 11 r ] p programul de navigare nu poate s afieze aceste tipuri de caractere, va utiliza un alt mod de a le

SEC. 7.6

WORLD WIDE WEB

647

reprezenta, de exemplu utiliznd diferite culori sau video-invers. In loc de a utiliza stiluri fizice, autorii pot s utilizeze stiluri logice, cum sunt <DN> (definiie), <EM> (evideniere), <STRONG> (evideniere accentuat) i <VAR> (variabile de program). Stilurile logice sunt definite ntr-un document numit pagin de stil. Avantajul utilizrii unei pagini de stil const n faptul c la schimbarea unei definiii, se vor schimba toate variabilele, nlocuind de exemplu cursivele printr-un font cu dimensiuni constante. Limbajul HTML ofer diferite mecanisme pentru construirea de liste, inclusiv liste coninute n alte liste. Marcajul <UL> indic nceputul unei liste neordonate. Elementele individuale, care sunt marcate n surs cu <LI>, sunt reprezentate precedate de buline (). O variant a acestui mecanism este <OL>, care descrie o list ordonat. Cnd se utilizeaz acest marcaj, textele precedate de <LI> sunt numerotate de ctre programul de navigare. O a treia opiune este <MENU>, care n mod normal produce o reprezentare mai compact pe ecran, fr buline i fr numere. Marcajele <UL>, <OL> i <MENU> au aceeai sintax i efecte asemntoare. Mai exist alte dou mecanisme pentru descrierea listelor, care merit s fie prezentate n afara celor din Fig. 7-65. <DIR> este utilizat pentru construirea de tabele scurte. De asemenea <DL> i </DL> creeaz liste de definiii (glosare) cu elemente formate din dou componente, definite respectiv de <DT> i <DD>. Primul marcaj este utilizat pentru nume, al doilea pentru semnificaia asociat. Aceleai construcii se pot realiza ns utiliznd mecanismul de descriere a tabelelor, care este mult mai general i pe care l vom descrie ulterior. Marcajele <BR>, <P> i <HR> indic o separare ntre diferitele pri ale textului. Formatul precis este descris n pagina de stil. Marcajul <BR> foreaz trecerea la linie nou. De obicei programele de navigare nu insereaz o linie liber dup <BR>. Marcajul <P> reprezint un nceput de paragraf, pentru care se va insera o linie nou i eventual se va face o indentare. (n mod teoretic, exist i </P> pentru a indica sfritul de paragraf, dar este foarte rar utilizat; majoritatea celor care scriu n HTML nici nu tiu c acest marcaj exist). Ultimul marcaj, <HR>, foreaz trecerea la linie nou i deseneaz o linie orizontal. HTML 1.0 nu are nici o facilitate pentru descrierea tabelelor sau a altor informaii formatate. Mai ru chiar, dac cineva care scrie n HTML descrie o tabel utiliznd spaii i caractere de trecere la linie nou, programele de navigare vor ignora aceast formatare. Pentru a mpiedica programele de navigare s modifice o astfel de formatare, au fost prevzute marcajele <PRE> i </PRE>. Ele reprezint indicaii pentru programele de navigare, care trebuie s afieze textul cuprins ntre cele dou marcaje aa cum este, caracter cu caracter, fr s schimbe nimic. Pe msur ce sunt prevzute tabele i alte faciliti elegante de formatare, necesitatea marcajului <PRE> o s scad, cu excepia textelor programelor, pentru care majoritatea programatorilor nu vor accepta o formatare diferit de cea proprie. HTML permite includerea de imagini n paginile de Web. Marcajul <IMG> arat c pe poziia curent din pagin se va include o imagine. Marcajul poate s aib o serie de parametri. Parametrul SRC indic URL-ul (sau URI-ul) imaginii. n practic, toate programele de navigare accept fiiere n format GIF, multe pot lucra i cu fiiere n format JPEG. Programele de navigare pot s lucreze i cu alte formate, dar o astfel de extensie este o sabie cu dou tiuri. Dac, de exemplu un utilizator este obinuit cu un program de navigare care suport fiiere n format BMP, este posibil ca el s includ astfel de fiiere n pagina sa de Web i s fie uimit c alte programe de navigare ignor imaginile sale minunate.

648

NIVELUL APLICAIE

CAP. 7

Ali parametri pentru <IMG> sunt ALLIGN, care controleaz modul n care se aliniaz imaginea fa de limita de jos a textului (TOP, MIDDLE, BO1TOM), ALT, care furnizeaz textul afiat n locul imaginii dac utilizatorul dezactiveaz opiunea de afiare a imaginilor i ISMAP, un indicator care anun c imaginea este o hart selectabil. In sfrit, s considerm hiper-legturile, care utilizeaz marcajele < A > (anehor) i </A>. Ca i < I M G > , < A > are diveri parametrii, printre care HREF (URL-ul), NAME (numele hiperlegturii) i METHODS (metodele de acces). Textul cuprins ntre < A > i </A> este afiat. Dac este selectat, atunci se utilizeaz hiper-legtura pentru a se aduce o nou pagin. In locul textului se poate pune i un marcaj < I M G > , caz n care, cu un clic pe imagine, se va activa legtura. De exemplu, s considerm urmtorul fragment HTML: <A HREF=http://www.nasa.gov">NASA's home page </A> Cnd se afieaz acest fragment, pe ecran apare: NASA's home page Dac utilizatorul execut un clic pe acest text, programul de navigare aduce i afieaz pagina al crei URL este http://www.nasa.gov . Ca al doilea exemplu, s considerm <AHREF=http://www.nasa.gov"><IMG SRC=shuttle.gif"ALT=NASA"x/A> Cnd se afieaz pagina va aprea o imagine (o navet spaial). Executnd un clic pe imagine, se va aduce pagina NASA, la fel ca i n cazul n care n exemplul anterior a fost selectat textul. Dac utilizatorul a dezactivat opiunea de afiare a imaginilor, atunci n loc de imagine va fi afiat textul NASA. Pentru marcajul < A> se poate utiliza parametrul NAME pentru a fixa o hiper-lcgtur, care s fie referit din pagin. De exemplu, unele pagini de Web ncep cu o tabel de coninut selectabil. Prin execuia unui clic pe o intrare n tabela de coninut, se va trece direct la seciunea corespunztoare din pagin. Una dintre facilitiilc care lipsesc din HTML 2.0, pe care muli autori de pagini HTML o doreau, era posibilitatea de a construi tabele ale cror intrri s fie legturi selectabile. Corespunztor, o cantitate mare de munc a fost depus pentru a aduga tabelele la HTML 3.0. n continuare, o s prezentm o scurt introducere n tabele, doar ca s prezentm caracteristicile generale. O tabel HTML este format din una sau mai multe linii, fiecare fiind format din una sau mai multe celule. Celulele pot s conin diferite tipuri de informaii, inclusiv text, figuri i chiar tabele. Celulele pot s fie alipite, de exemplu un titlu poate s se ntind peste mai multe coloane. Autorii paginilor au control asupra modului n care se face afiarea, inclusiv alinierea, stilul bordurii, marginile celulelor, dar programul de navigare este cel care hotrte de fapt cum se face afiarea. O descriere n HTML a unei tabele este prezentat n Fig. 7-66(a), iar efectul posibil este prezentat n Fig. 7-66(b). Acest exemplu prezint cteva din facilitile de descriere a tabelelor n HTML. Tabelele ncep cu marcajul <TABLE>. Se pot specifica informaii suplimentare pentru a descrie proprietile generale ale tabelei.

SEC. 7.6

WORLD WIDE WEB

649

<HTMLxHEADxTITLE> A sample page with a table </TITLEx/HEAD> <BODY> <TABLE BORDER=ALL RULES=ALL> <CAPTION> Some differences between HTML Versions </CAPTION> <COL AUGN=LEFT> <COLALIGN=CENTER> <COLAUGN=CENTER> <COLALIGN=CENTER> <TR> <TH>ltem <TH>HTML 1.0 <TH>HTML 2.0 <TH>HTML 3.0 <TR> <TH> Active Maps and Images <TD> <TD>x <TD>x <TR> <TH> Equations <TD> <TD> <TD>x <TR> <TH> Forms <TD> <TD>x <TD>x <TR> <TH> Hyperiinks <TD> x <TD>x <TD>x <TR> <TH> Images <TD> x <TD>x <TD>x <TR> <TH> Lists <TD> x <TD>x <TD>x < T R x T H > Toolbars < T D x T D x T D > x <TR> <TH> Tables <TD> <TD> <TD>x </TABLEx/BODYx/HTML>
(a)

Active Maps and Images Equations Forms Hyperiinks Images Lists Toolbars Tables

Item

Some diferences between HTML Versions HTML 1.0 HTML 2.0 HTML 3.0
X X X X X X X X X X X X X X X X

(b)

Fig. 7-66. (a) O tabel HTML, (b) Un rezultat posibil. Marcajul <CAPTION> poate s fie utilizat pentru a furniza un titlu tabelei. Fiecare linie ncepe cu marcajul <TR> (Table Row - linie n tabel). Celulele individuale sunt marcate cu <TH> (Table Header - titlu de coloan), <TD> (Table Data - date n tabel). Diferenierea este necesar pentru a permite programului de navigare s le afieze diferit, aa cum se vede i din exemplul considerat. n tabele se pot utiliza alte marcaje. Acestea includ posibilitatea de a specifica alinieri orizontale sau verticale ale celulelor, alinierea n cadrul celulei, margini, gruparea de celule, uniti si multe altele.

650 Formulare

NIVELUL APLICAIE

CAP. 7

HTML 1.0 funciona ntr-o singur direcie. Utilizatorii puteau s aduc o pagin de la furnizorii de informaie, dar era foarte dificil s se transmit informaie n sens invers. Pe msur ce tot mai multe organizaii comerciale au nceput s utilizeze Web-ul, a aprut o puternic cerere pentru comunicaia n dublu sens. De exemplu, multe companii vor s poat prelua comenzi pentru produse utiliznd paginile lor de Web, furnizorii de software vor s distribuie programe prin intermediul Web-ului, clienii s i completeze fiele de nregistrare prin acelai mijloc, iar companiile care ofer servicii de cutare n Web au nevoie ca utilizatorii de servicii s poat s introduc cuvintele pe baza crora se face cutarea. Acest gen de cereri a dus la includerea formularelor ncepnd cu HTML 2.0. Formularele conin casete i butoane care permit utilizatorilor s completeze informaii sau s fac selecii i apoi s transmit informaiile la proprietarul paginii. n acest scop se utilizeaz marcajul <INPUT>. Acesta are o varietate de parametri care determin mrimea, tipul, i modul de afiare a casetei utilizate. Cele mai obinuite sunt cmpuri n care utilizatorul poate s introduc text, casete care pot s fie selectate, hri active, butoane SUBMIT. Exemplul din Fig. 7-67 prezint cteva dintre aceste posibiliti. S ncepem discuia parcurgnd exemplul Ca orice formular, i acesta este cuprins ntre marcajele <FORM> i </FGRM>. Textele care nu sunt incluse ntre marcaje sunt afiate, ntrun formular poate s fie utilizat orice marcaj obinuit (de exemplu <B>) In acest formular sunt utilizate trei tipuri de casete. Prima caset din formular apare dup textul Name". Caseta are limea de 46 de caractere i utilizatorul va introduce un ir care va fi memorat n variabila customer pentru prelucrri ulterioare. Marcajul <P> indic programului de navigare s afieze ceea ce urmeaz pe o linie nou, chiar dac mai este loc pe linia curent. Utiliznd <P> i alte marcaje care controleaz dispunerea textului, creatorul paginii poate s controleze cum arat formularul pe ecran. Pe linia urmtoare se solicit adresa utilizatorului, avnd cel mult 40 de caractere, pe o linie separat. Urmeaz o linie pe care se solicit oraul, statul i ara. Aici nu se utilizeaz marcajul <P>, deci programul de navigare o s ie afieze pe toate pe aceeai linie, dac nCap. Din punctul de vedere al programului de navigare, paragraful curent conine ase elemente: trei iruri alternnd cu trei casete. El ie afieaz pe aceeai linie de la stnga la dreapta, trecnd la o linie nou ori de cte ori pe linia curent nu mai ncape urmtorul element. Astfel, este posibil ca pe un ecran 1024 x 768 s ncap toate cele trei iruri i casetele corespunztoare, n timp ce pe un ecran 640 x 480 ele pot s fie distribuite n dou linii. n cazul cel mai defavorabil cuvntul Country este ia captul liniei, iar caseta asociat este la nceputul liniei urmtoare. Nu exist nici o posibilitate de a fora programul de navigare s afieze caseta lng text. Urmtoarea linie solicit numrul crii de credit i data sa de expirare. Transmiterea numerelor crilor de credit prin Internet trebuie s se fac numai dac s-au luat msurile de securitate adecvate. De exemplu, unele programe de navigare, dar nu toate, pot s cifreze informaiile transmise de ctre utilizatori. Chiar i atunci, comunicaia sigur i gestionarea cheilor sunt subiecte complicate i sunt deschise atacurilor de multe feluri, aa cum am vzut mai nainte.

SEC. 7.6

WORLD WEDE WEB

651

<HTMLxHEADxTITLE> AWI CUSTOMER ORDERING FORM </TITLEx/HEAD> <BODY> <H1> Widget Order Form </H1> <FORM ACTION="http://widget.com/cgi-bin/widgetorder" METHOD=POST> Name <INPUT NAME="customer" SIZE=46> <P> Street Address <INPUT NAME="address" SIZE=40> <P> City <INPUT NAME="city" SIZE=20> State <INPUT NAME="state" SIZE=4> Country <INPUT NAME="country" SIZE=10> <P> Credit crd # <INPUT NAME="cardno" SIZE=10> Expires <INPUT NAME="expires" SIZE=4> M/C <INPUT NAME="cc" TYPE=RADIO VALUE="mastercard"> Visa <INPUT NAME="cc" TYPE=RADIO VALUE="visacard"> <P> Widget size Big <INPUT NAME="product" TYPE=RADIO VALUE="expensive"> Little <INPUT NAME="product" TYPE=RADIO VALUE="cheap"> Ship by express courier <INPUT NAME="express" TYPE=CHECKBOX> <P> <INPUT TYPE=SUBMIT VALUE="Submit order"> <P> Thank you for ordering an AWI widget, the best widget money can buy! </ FORM > </BODY> </HTML>
(a)

Widget Order Form


Name Street address City Credit crd # Widget size Big Submit order Thank you for ordering an AWI widget, the best widget money can buy! (b) Expires State Country

M / C O Visa O

Little Q Ship by express courier

Fig. 7-67. (a) Un formular de comand HTML. (b) Pagina formatat. Dup data de expirare, ntlnim un element nou: butoane radio. Acestea sunt utilizate atunci cnd trebuie s se fac o alegere ntre mai multe alternative. Modelul care se utilizeaz aici este cel al unui aparat de radio care are butoane pentru selecia scalelor. Programul de navigare afieaz aceste casete ntr-o form care permite utilizatorului s le selecteze sau s le deselecteze prin execuia unui clic (sau utiliznd tastatura). Selecia unuia dintre ele le deselecteaz pe toate celelalte care fac parte din acelai grup. Modul de afiare depinde de interfaa grafic pe care o utilizeaz.

652

NIVELUL APLICAIE

CAP. 7

Depinde de programul de navigare s aleag modul de afiare care corespunde sistemului de ferestre utilizat - Windows, Motif, OS/2 Warp etc. Formatul widget-ului utilizeaz dou butoane. Cele dou grupuri sunt difereniate prin cmpul NAME i nu printr-un domeniu static de genul <RADIOBUTTON> i </RADIOBUTTON>. Parametrii VALUE sunt utilizai pentru a arta care buton a fost apsat. n funcie de opiunea aleas pentru cartea de credit, variabila ce va avea ca valoare irul mastercard" sau visacard". Dup cele dou seturi de butoane, urmeaz opiunea referitoare la modul de transport, reprezentat de o caset de tip CHECKBOX. Aceasta poate s fie pe poziia selectat sau nu. Spre deosebire de cazul butoanelor radio, unde poate s fie seiectat un singur buton dintr-un set, fiecare caset de tip CHECKBOX poate s fie selectat sau nu, independent de celelalte. De exemplu, cnd se comand o pita utiliznd pagina de Web Electropizza, utilizatorul poate s aleag sardele i ceap i ananas (dac le suport), dar nu poate s aleag mic i medie i mare pentru aceeai pit. Coninutul corespunztor pitei va fi reprezentat de trei butoane diferite de tip CHECKBOX, n timp ce dimensiunea va fi reprezentat de un set de butoane radio. Pe de alt parte, n cazul n care lista din care se face alegerea este foarte lung, butoanele radio devin dificil de utilizat. Din acest motiv, marcajele <SELECT> i </SELECT> sunt utilizate pentru a prezenta o list de alternative, utiliznd semantica corespunztoare unor butoane radio (dac nu se utilizeaz parametrul MULTIPLE, caz n care semantica este cea de ia casetele de tip CHECKBOX). Unele programe de navigare afieaz opiunile cuprinse ntre <SELECT> i </SELECT > ca un meniu derulant. Am vzut jumtate din tipurile standard pentru marcajul <NPUT>: RADIO i CHECKBOX. De fapt, am vzut i un al treilea: TEXT. Deoarece acesta este tipul implicit, nu am mai utilizat parametrul TYPE = TEXT, dar puteam s o facem. Alte dou tipuri sunt PASSWORD i TEXTAREA. O caset PASSWORD funcioneaz la fel ca o caset TEXT, numai c nu se face afiarea caracterelor introduse. O caset TEXTAREA este similar unei casete TEXT, numai c va conine mai multe linii. ntorcndu-ne la exemplul din Fig. 7-67, urmeaz butonul SUBMIT. Cnd este selectat acest buton, informaia introdus de ctre utilizator este transmis la calculatorul de pe care provine formularul. Similar altor tipuri, SUBMIT este un cuvnt cheie pe care i nelege programul de navigare. irul VALUE reprezint n acest caz eticheta butonului i se afieaz. Toate casetele pot s aib valori, dar am avut nevoie de aceast facilitate numai aici. Pentru casetele TEXT, coninutul cmpului VALUE este afiat o dat cu formularul, dar utilizatorul poate s l modifice sau s l tearg. Casetele CHECKBOX i RADIO pot s fie iniializate, utiliznd ns un parametru numit CHECKED (deoarece parametrul VALUE ofer un text, dar nu indic o selecie). Programul de navigare interpreteaz i butonul RESET. Dac este seiectat, aduce formularul la coninutul iniial. Mai exist dou tipuri care merit s fie prezentate. Primul este tipul HIDDEN. Este utilizat numai ca rezultat. Nu poate s fie selectat sau modificat. De exemplu, atunci cnd se parcurg o serie de pagini, pentru care s-au fcut selecii, seleciile anterioare pot s fie de tip HIDDEN, pentru a mpiedica modificarea lor. Ultimul tip este IMAGE, utilizat pentru hri active (sau alte imagini selectabile). Dac un utilizator execut un clic pe o astfel de imagine, coordonatele (x, y) ale punctului seiectat (adic poziia curent a indicatorului mausului) sunt memorate n variabile i formularul este n mod automat transmis posesorului pentru prelucrri ulterioare.

SEC. 7.6

WORLD WIDE WEB

653

Formularele pot s fie transmise n trei moduri: utiliznd butonul SUBMIT, executnd un clic pe o hart activ sau utiliznd tasta ENTER pentru un formular care conine numai un singur cmp de tip TEXT. Cnd se transmite un formular, trebuie s se execute o aciune. Aciunea corespunztoare este specificat n parametrii marcajului <FORM>. Parametrul ACTION precizeaz URL-ul (sau URI-ul) pentru a indica unde se face transmiterea, iar METHOD specific ce metod se utilizeaz. Ordinea acestor parametri (ca i a celorlali) nu conteaz. Modul n care variabilele din formular sunt transmise napoi la posesorul paginii depinde de valoarea parametrului METHOD. Pentru GET, se utilizeaz un truc. i anume se adaug la URL, separndu-le prin semne de ntrebare. Aceast abordare poate conduce la URL-uri formate din mii de caractere. Totui, pentru c este simpl, aceast soluie este frecvent utilizat. Dac se utilizeaz metoda POST (vezi Fig. 7-62), corpul mesajului va conine variabilele din formular i valorile lor. Pentru a separa cmpurile se utilizeaz caracterul &; caracterul + reprezint spaiu. De exemplu, rspunsul la formular poate s fie:
customer=John+Doe&address=100+Main+St.&ciy=White+Pain& state=NY&country=USA&cardno=1234567890&expires6/98&cc=mastercard& product=cheap&express=on

irul va fi transmis la server ca o singur linie, nu ca trei. Dac un CHECKBOX nu este selectat, el este omis din ir. Este problema serverului s interpreteze irul respectiv. Din fericire exist un standard pentru tratarea datelor din formulare. Se numete CGI (Common Gateway Interface - interfa comun de conversie). S considerm un exemplu simplu de utilizare a sa. S presupunem c cineva are o baz de date interesant (de exemplu un index de pagini de Web organizat pe cuvinte cheie i subiecte) i vrea s o fac disponibil pentru utilizatorii Web. Se va scrie un program sau un script (un fiier de comenzi) care realizeaz interfaarea ntre baza de date i Web. Scriptului i se atribuie un URL, n mod obinuit n subdirectorul cgi-bin. Serverele HTl'P tiu (sau li se poate spune) c dac trebuie s invoce o metod dintr-o pagin coninut n cgi-bin, nseamn c trebuie s considere c numele de fiier este numele unui script executabil sau al unui program i l vor lansa n execuie. S presupunem c un utilizator i aduce formularul din exemplul considerat i l afieaz. Dup ce completeaz formularul, va executa un clic pe butonul SUBMT. In urma acestei aciuni, programul de navigare stabilete o conexiune TCP cu URL-ul care este indicat n parametrul ACTION - scriptul din directorul cgi-bin. Apoi programul de navigare execut operaia indicat de parametrul METHOD, care este de obicei POST. Ca rezultat al acestei operaii, scriptul este pornit i primete ca argument (prin intermediul conexiunii TCP, pe intrarea standard) irul prezentat anterior. De asemenea sunt actualizate cteva variabile de context. De exemplu variabila CONTENT_LENGTH indic lungimea irului de intrare. In aceast faz, majoritatea script-urilor trebuie s analizeze irul de intrare i s l transforme ntr-o form mai convenabil. Aceast transformare se realizeaz utiliznd una dintre numeroasele proceduri de bibliotec sau de script existente. Acum scriptul poate s interacioneze cu baza sa de date n orice mod dorete. De exemplu, hrile active utilizeaz scripturi CGI pentru a executa aciuni diferite n funcie de zona pe care a indicat-o utilizatorul. Scripturile CGI pot s produc ieiri i s execute multe alte lucruri n afar de prelucrarea formularelor. Dac o hiper-legtur indic spre un script CGI, atunci cnd legtura este

654

NIVELUL APOCAE

CAP. 7

selectat se iniiaz execuia scriptului, avnd o serie de variabile de context fixate pentru a oferi informaii despre utilizator. Scriptul va produce apoi un fiier (de exemplu un fiier HTML) pe ieirea standard, care este apoi transmis programului de navigare care l va interpreta. Acest mecanism permite unui script s genereze practic instantaneu pagini Web corespunztoare dorinei utilizatorului. La bine i la ru, anumite servere de Web care pot s rspund la cereri au n baza de date reclame, care pot s fie incluse n pagini de Web care se construiesc, n funcie de ce caut utilizatorul. Astfel, dac utilizatorul face o cutare utiliznd cuvntul car" (main), atunci poate s apar o reclam de la General Motors, n timp ce o cutare dup cuvntul vacation" (vacan) poate s produc un anun de la compania United Airlines. Aceste reclame conin texte i poze pe care se pot face selecii. 7.6.4 Java Utiliznd HTML se pot afia pagini de Web statice, care includ tabele i poze. Utiliznd mecanismul de script-uri CGI, exist i o posibilitate limitat de a avea interaciune n dublu sens (formulare, etc). Nu este posibil ns interaciunea rapid cu pagini scrise n HTML. Un altfel de mecanism este necesar pentru a face posibile pagini Web puternic interactive. n seciunea curent, vom descrie un astfel de mecanism, limbajul i interpretorul Java. Java a aprut atunci cnd civa programatori de la Sun Microsystems au ncercat s dezvolte un limbaj nou de programare destinat aparaturii electronice. Ulterior a fost reorientat spre WWW. Dei Java a utilizat multe idei i sintaxa de la C i C + + , el este un limbaj nou, orientat pe obiecte, incompatibil cu ambele. Se spune c n general Java este ca limbajul Smalltalk, iar n particular ca limbajul C sau C + + . Principala idee de a utiliza Java pentru pagini Web interactive este c o pagin Web poate s indice spre un mic program scris n Java, numit applet. Dac este ntlnit de un program de navigare, applet-ul este adus pe maina client i se face execuia sa ntr-o manier sigur. Trebuie s fie imposibil pentru applet s scrie i s citeasc fiiere la care nu are drept de acces. Trebuie s fie imposibil pentru applet s introduc virui sau s produc alte stricciuni. Din aceste motive, dar i pentru a realiza portabilitatea pe diferite calculatoare, applet-urile sunt compilate dup ce sunt scrise i depanate, producndu-se un cod intermediar. Paginile Web vor indica ctre astfel de programe ntr-o manier similar n care se indic imaginile. Cnd este adus un applet, el este executat interactiv ntr-un mediu sigur. nainte de a ajunge la detaliile limbajului Java, merit s spunem cteva cuvinte despre utilitatea ntregulursistem Java i de ce se dorete includerea applet-urilor Java n pagini de Web. Un motiv ar fi faptul c Java permite ca paginile Web s fie interactive. De exemplu, o pagin Web care conine o tabl pentru tic-tac-toe sau ah poate s joace un joc cu utilizatorul. Programul de joc (scris n Java) este adus mpreun cu pagina de Web. Un alt exemplu, formulare complicate (de exemplu de tip formular de calcul) pot s fie afiate, utilizatorul completnd intrri i programul calculnd alte intrri practic instantaneu. Este posibil ca n timp, modelul n care utilizatorul cumpr un program, l instaleaz i l execut local s fie nlocuit de un model n care utilizatorul execut un clic ntr-o pagin Web, aduce un applet care execut prelucrarea eventual n legtur cu o baz de date sau un server aflat la distan. n locs se completeze declaraia de venituri cu mna sau utiliznd un program special, oamenii vor

SEC. 7.6

WORLD WIDE WEB

655

putea s selecteze pagina RS pentru a aduce un applet pentru impozite. Acest appet poate s pun cteva ntrebri, apoi s ia legtura cu patronul persoanei respective, cu banca i agentul de burs pentru a afla salariul, dobnda i dividendele, s completeze intrrile din formularul de impozitare i s l afieze pentru verificare i expediere. Un alt motiv pentru execuia unui applet pe maina clientului este posibilitatea de a aduga animaie i sunete la paginile de Web fr a utiliza programe de vizualizare externe. Sunete pot s fie produse atunci cnd se aduce o pagin, ca muzic de fundai, sau cnd apar anumite evenimente (de exemplu, cnd se execut un clic pe pisic, aceasta miaun). Acelai lucru este valabil pentru animaie. Deoarece applet-ul se execut local, chiar dac este interpretat, ei poate s scrie peste tot ecranul (sau numai peste o parte a ecranului) n orice mod, cu o vitez foarte mare (comparat cu un script de tip cgi-bin de la distan). Sistemul Java este format din trei pri: 1. Un compilator Java-cod main virtual (bj'tecod) 2. Un program de navigare care nelege applet-uri 3. Un interpretor de cod main virtual Programatorul scrie applet-ul n Java i l compileaz. Pentru a include produsul compilrii ntr-o pagin Web, se utilizeaz un nou marcaj, <APPLET>. Utilizarea tipic este:
<APPLET CODE=game.class WiDTH=100 HESGHT=200> </APPLET>

Cnd programul de navigare ntlnete marcajul <APPLET>, aduce applet-ul compilat game.chess de pe serverul de pe care a fost adus pagina (sau, dac un alt parametru CODEBASE a fost utilizat, de la URL-ul specificat). Programul de navigare transmite apoi applet-ul interpretorului local de cod pentru execuie (sau I interpreteaz dac are un interpretor intern). Parametrii WIDTH i HEIGHT dau dimensiunea n pixeli a ferestrei implicite pentru applet.
i

udi

!
i

SMTP NNTP Gophe Tel net PostS(

JPEG

o. X

Interpretei-1-iTML Sistem de operare (a}

GIF

LU

applet applet applet applet applet


nterpretor Java
" "

i t

(5

(Nu exist nici un interpretor implicit ! pentru protocoale sau imagini)

_i LL

C D

<

9=

interpretor Java Sistem de operare

Sistem de operare

(b)

(O

Fig. 7-68. (a) Prima generaie de programe de navigare. (b) Un program de navigare bazat pe Java la nceput, (c) Programul de navigare dup ce s-a executat pentru o perioad de timp.

656

NIVELUL APLICAIE

CAP. 7

ntr-un fel, marcajul <APPLET> este analog cu marcajul <IMG>. n ambele cazuri, programul de navigare se duce i preia un fiier pe care l transmite unui interpretor loca pentru a-1 afia ntr-o zon limitat de pe ecran. Dup aceea continu prelucrarea paginii de Web. Pentru aplicaiile care necesit performane deosebite, unele interpretoare Java pot s compileze codul mainii virtuale la codul obiect al mainii respective. Ca o consecin a acestui model, programele de navigare bazate pe Java sunt extensibile ntr-un mod diferit de cel al primei generaii de programe de navigare. Prima generaie de programe de navigare sunt interpretoare HTML, care conin module care tiu diferite protocoale ca de exemplu: HTi'P 1.0, FTP etc, ca i decodificatoare pentru diferite formate de fiiere care conin imagini. Un exemplu este prezentat n Fig. 7-68(a). Dac cineva inventeaz sau popularizeaz un nou format, ca de exemplu audio sau MPEG-2, aceste programe de navigare vechi nu sunt n stare s citeasc paginile care ie utilizeaz. Cel mult, utilizatorul poate s gseasc, s aduc i s instaleze un program de vizualizare extern corespunztor. Cu un program de navigare bazat pe Java, situaia este diferit. La pornire, programul de navigare este doar o main virtual Java, goal aa cum se vede n Fig. 7-68(b). Prin aducerea de applet-uri HTML sau HTTP, el devine capabil s citeasc pagini Web standard. Desigur, pe msur ce noi protocoale i decodificatoare sunt necesare, clasele respective sunt ncrcate dinamic, eventual prin reea, de pe servere specificate n paginile de Web. Dup o vreme, programul de navigare va arta ca n Fig. 7-68(c). Astfel, dac cineva inventeaz un format nou, tot ce trebuie s fac aceast persoan este s includ URL-ul unui applet care tie s lucreze cu el ntr-o pagin de Web, i programul de navigare va aduce i va ncrca applet-ul. Nici un program de navigare din prima generaie nu este capabil s aduc i s instaleze automat programe externe de vizualizare noi. Posibilitatea de a aduce applet-uri n mod dinamic nseamn c se pot face experimente cu formate noi, fr s aib loc ntlniri de standardizare fr sfrit pentru a se ajunge ia un consens. Acest gen de standardizare se aplic i la protocoale. Pentru unele aplicaii, sunt necesare protocoale speciale, de exemplu sunt necesare protocoale sigure pentru bnci sau comer. Cu Java, astfel de protocoale sunt ncrcate dinamic cnd sunt necesare, i nu este necesar o standardizare universal. Pentru a comunica cu compania X, trebuie s se aduc applet-ul corespunztor. Pentru a se comunica cu compania Y, trebuie s se aduc protocolul corespunztor. Nu este nevoie ca X i Y s fie de acord cu un protocol standard. iniiere n limbaje! Java Obiectivele considerate anterior au condus la un limbaj cu tipuri sigure, orientat pe obiecte, utiliznd fire de execuie i care nu are dependene de sistem sau faciliti nedefinite. Ceea ce urmeaz este o descriere foarte simplificat a limbajului Java, doar pentru a oferi o idee. Numeroase faciliti, detalii, opinii i cazuri speciale au fost omise pentru a menine prezentarea ct mai scurt. Specificaiile complete i multe alte informaii despre Java sunt disponibile pe Web (normal) la http://Java.sun.com. Pentru manuale de Java vezi (Camione i Wairatn, 1996; i Van der Linden, 1996). Pentru a afla ntreaga poveste, vezi (Arnold i Gosling, 1996; i Gosling .a., 1996). Pentru o scurt comparaie ntre Java i reacia Microsoft la el (Blackbird), vezi (Singleton, 1996). Aa cum am menionat deja, n esen Java este similar cu C i C + + . Regulile de formare a atomilor lexicali sunt practic aceleai (de exemplu atomii lexicali sunt delimitai de spaii albe, ntre

SEC. 7.6

WORLD WIDE WEB

657

doi atomi lexicali se pot intercala oricte linii albe). Comentariile se pot introduce utiliznd fie sintaxa C (/*... 7), fie sintaxa C+ + (//...). Java are opt tipuri primitive de date, aa cum se vede n Fig. 7-69. Fiecare tip are o dimensiune specific, independent de implementarea local. n acest mod, spre deosebire de C, unde un ntreg poate s fie reprezentat pe 16,32 sau pe 64 de bii, n funcie de arhitectura mainii, n Java un ntreg (int) are ntodeauna 32 bii, nici mai muli nici mai puini, indiferent de maina pe care se execut interpretorul. Aceast regul este esenial, pentru c acelai applet trebuie s se execute" pe o main cu 16 bii, 32 de bii si 64 bii si s produc aceleai rezultate.
Type Byte Short Int Long Float Double Boolean Char Size 1 octet 2 octei 4 octei 8 octei 4 octei 8 octei 1 bit 2 octei
Description

Un numr ntreg cu semn ntre -128 i 127 Un numr intreg cu semn reprezentat pe doi octei Un numr intreg cu semn reprezentat pe patru octei Un numr intreg cu semn reprezentat pe opt octei Un numr n virgul mobil reprezentat conform standardului IEEE pe 4 octei Un numr n virgul mobil reprezentat conform standardului IEEE pe 8 octei Singurele valori admise -true i false Un caracter reprezentat n Unicode

Fig. 7-69. Tipurile Java de baz. Variabilele aritmetice (primele 6 tipuri) pot s fie combinate utiliznd operatorii aritmetici uzuali (inclusiv + + i --) i pot s fie comparate utiliznd operatorii relaionali obinuii (de exemplu < , < = , = = , ! = ) . Acolo unde are sens sunt permise conversiile ntre tipuri. Pentru caractere, Java utilizeaz n loc de ASCII codurile pe 16 bii conform standardului Unicode, astfel nct variabilele de tip caracter sunt reprezentate pe doi octei. Primele 127 caractere Unicode sunt aceleai ca i n ASCII, pentru compatibilitate. n continuare sunt semne grafice i apoi caracterele necesare pentru Rus, Arab, Ebraic, Japonez (kanji, katakana i hiragana) i aproape orice alt limb. Caracterele care nu exist n ASCII pot s fie reprezentate sub forma \u urmat de patru cifre n baza 16. De exemplu, \u0ae6 este Gujarati zero. Java permite declararea vectorilor unidimensionali. De exemplu: int[] table; declar un vector table, dar nu aloc spaiu pentru el. Alocarea se poate face mai trziu, ca i n C+ +, de exemplu sub forma:
table = new int [1024];

pentru a aloca un vector cu 1024 elemente. Nu este necesar (i de fapt nici posibil) s se fac eliberarea vectorilor care nu mai sunt necesari; mecanismul de colectare a spaiului disponibil (garbage colection) se ocup de ei. n acest mod funciile de bibliotec malloc ifree, care pot s fie destul de uor utilizate incorect, nu mai sunt utilizate petru gestiunea memoriei. Vectorii pot s fie iniializai i, ca i n C, se pot utiliza vectori de vectori pentru a obine matrice cu mai multe dimensiuni. irurile de caractere sunt obiecte n loc de vectori de caractere, care se termin cu un octet cu valoarea zero.

658

NIVELUL APLICAIE

CAP. 7

Instruciunile de control din Java sunt prezentate n Fig. 7-70. Primele nou instruciuni au practic aceeai sintax i semantic ca i n C, numai c acolo unde este necesar o expresie de tip Boolean nu se poate utiliza alt tip. De asemenea instruciunile break i continue pot s utilizeze etichete pentru a preciza care dintre ciclurile etichetate este abandonat sau reluat.
instruciune Atribuire Descriere Atribuie o valoare Alegere booleana Selecie Iteraie Ciclu Ciclu ieire din ciclu Ieire din subprogram Urmtoarea iteraie Produce o excepie Domeniu de valabilitate pentru o excepie Excludere mutual Exemplu n=i+j ; if (k < 0) k = 0; elsc k = 2* k; Switch (b) {case 1: n + + ; casc 2: n-;} for (i = 0; i < n; i + + ) a[ij = b[i]; while (n < k) n + = i; do {n = n + n} while (n < rn); break eticheta; return n; continue eticheta; throw new IllegalArgurnentExccption(); try{...} catch(Exception e){return -1}; synchronized void update(int s) {...} | j

ff
Switch

For
Whife

Do
Break Retum Continue Throw )Try Synchronized

Fig. 7-70. Instruciuni Java. Notaia {...} indic un bloc de cod. Urmtoarele dou instruciuni apar n C+ + dar nu i n C. Instruciunile throw i tiy se ocup de tratarea excepiilor. Java definete o varietate de excepii standard, ca de exemplu mprirea cu zero, i permite programatorilor s defineasc i s produc propriile lor excepii. Programatorii pot s scrie secvene care trateaz excepiile, n acest mod nu mai este necesar s se verifice mereu dac a aprut o eroare (de exemplu n timpul citirii unui fiier). Instruciunea throw produce o excepie, iar instruciunea iy definete domeniul de valabilitate format din instruciunile n care poate s apar excepia. ciass Factorial{ public static void main(String args[]}{ long 1, f, "iowwer = 1, upper = 20; for(i = lower; i <= upper; i++){ f = factorial(i); System.out.printlnfi + "" + f); } static long factonai (long k) { if (k == 0) return 1; else return k * factorial (k - I); /* Programul conine o clasa i doua metode */ // programul principal // dec]ararea.a patru ntregi // ciclu intre lower i upper / / f = ii // tiprire i i f // funcia recuri v factorial // 0! = 1 // k! = k * (k -1)!

Fig. 7-71, Un program Java pentru caicului i tiprirea valorilor ntre 0! i 20!

SEC. 7.6

WORLD WIDE WEB

659

Instruciunea synchronized este nou i este necesar pentru c n Java pot s existe mai multe fire de execuie. Pentru a evita apariia curselor, aceast instruciune este utilizat pentru a delimita o secven de cod (sau o procedur ntreag) care nu trebuie s fie executat dect de un singur fir de execuie activ la un moment dat. Astfel de secvene de cod se numesc regiuni critice. Firul de execuie care execut instruciunea synchronized, trebuie s ocupe zvorul asociat regiunii critice, iar dup execuia regiunii critice, s elibereze zvorul. Dac zvorul nu este disponibil, firul de execuie ateapt pn la eliberarea zvorului. Oricnd procednd n acest mod i utiliznd variabile de condiie, programatorii au la dispoziie ntreaga putere a monitoarelor (Hoare, 1974). Programele Java pot s fie apelate cu argumente. Preluarea liniei de comand este similar C-ului, cu excepia faptului c vectorul de argumente se numete args n loc de argv i args[0] este primul argument i nu numele programului. Figura 7-71 prezint un program Java care calculeaz o tabel de factoriali. Dei att Java ct i C+ + sunt limbaje orientate pe obiecte bazate pe C, Java i C+ + difer n cteva privine. O serie de faciliti au fost eliminate din Java pentru a asigura sigurana tipurilor sau pentru a face programele mai uor de citit. n lista eliminrilor apar: #define, typedef, enums, unions, struct, ncrcarea operatorilor, pointeri explicii, variabilele globale, funcii n afara claselor sau funciile prieten (friend functions). Este de Ia sine neles c instruciunea goto a fost eliminat. Alte faciliti au fost adugate pentru a oferi Imbajului mai mult putere. Facilitile adugate includ colectarea spaiului disponibil (garbage collection), fire de execuie multiple (multithreading), interfee pentru obiecte i biblioteci (packages). Orientare obiect n Java n limbajele procedurale clasice cum sunt Pascal-ul sau C-ul, un program const dintr-o colecie de variabile i proceduri, fr un principiu general de organizare. Prin contrast, ntr-un limbaj orientat pe obiecte (aproape) orice este un obiect. Un obiect conine n mod normal variabile de stare interne (ascunse) mpreun cu proceduri publice numite metode, care permit accesul la acestea. Programele care utilizeaz obiectul au acces la variabile numai prin intermediul metodelor. n acest mod, cel care a descris obiectul controleaz modul n care programele utilizeaz informaia coninut n obiect. Acest principiu se numete ncapsulare i reprezint suportul programrii orientate pe obiecte. Java ncearc s utilizeze tot ce este mai bun n cele dou lumi. Poate s fie utilizat ca limbaj procedural tradiional sau ca limbaj orientat pe obiecte. Exemplul scris n Java din Fig. 7-71, poate s fie scris n C, i practic va arat la fel. n acest mod, un subset de Java poate s fie considerat ca fiind o versiune C curat. n acelai timp, pentru a scrie pagini pentru Web, Java poate s fie privit ca un limbaj orientat pe obiecte, astfel nct n seciunea curent, vom studia acest aspect. Un program Java const din una sau mai multe biblioteci (packages), fiecare din ele coninnd cteva definiii de clase. Bibliotecile pot s fie accesate de la distan prin reea, de aceea cele care urmeaz s fie utilizate pe o scar larg trebuie s aib nume unice. De obicei se utilizeaz ierarhii de nume prefixate cu inversul numelui DNS al mainii, de exemplu:

660

NIVELUL APLICAIE

CAP. 7

EDU.univ.cs.catie.games.chess O clas definete un ablon pentru producerea de instane de obiecte, fiecare coninnd aceleai variabile de stare i aceleai metode ca i orice alt instan de obiect din aceeai clas. Valorile variabilelor de stare din diferite obiecte sunt independente. Clasele sunt similare formelor pentru prjituri: ele nu sunt prjituri, dar pot fi utilizate pentru a produce prjituri cu structur identic. O dat ce prjiturile au fost produse, ele sunt independente. Obiectele Java sunt produse dinamic n timpul execuiei, de exemplu: object = new ClassnameO; Aceste obiecte sunt memorate n heap i sunt eliminate de mecanismul de colectare a memoriei disponibile atunci cnd nu mai sunt necesare. In acest mod, gestiunea memoriei n Java este realizat de ctre sistem, fr s se mai utilizeze procedurile malloc smifree, sau pointeri explicii. Fiecare clas se bazeaz pe o alta. O clas nou definit se numete subclasa celei pe care se bazeaz i care este superclas. O clas motenete ntotdeauna metodele superclasei. Ea poate avea sau nu acces direct la variabilele interne ale superclasei, n funcie de modul n care a fost definit superclas. De exemplu, dac o superclas, A, are metodele Ml, M2 i M3, iar o subclas, B, definete o nou metod, M4, atunci obiectele create din B, vor avea metodele Ml, M2, M3 i M4. Proprietatea prin care o clas preia n mod automat toate metodele superclasei sale se numete motenire i reprezint o proprietate important a limbajului Java. Adugarea de noi metode la cele ale superclasei se numete extinderea superclasei. Unele limbaje orientate pe obiect permit unei clase s moteneasc metode de la dou sau mai multe superclase (motenire multipl), dar proiectanii limbajului Java au considerat c aceast proprietate este prea complex i au eliminat-o n mod deliberat. Deoarece fiecare clas Java are o singur superclas imediat, mulimea claselor dintr-un program Java formeaz un arbore. Clasa rdcin este numit Object. Toate clasele motenesc metodele clasei Object. Orice clas pentru care nu se declar explicit superclas este o subclas a clasei Object. S considerm un exemplu care s ilustreze conceptele prezentate pn acum. n Fig. 7-72 este prezentat o bibliotec ce definete dou clase, ComplexNumber, pentru definirea i utilizarea numerelor complexe (numere care au o component real i una imaginar), i test, care indic cum se poate utiliza clasa ComplexNumber. Similar cu clasa ComplexNumber, clasa Factorial se bazeaz pe clasa Objeci, deoarece n definiia sa nu este specificat alt superclas. Fiecare obiect din clasa CompkxNumber reprezint un numr complex. Fiecare obiect din aceast clas conine dou variabile ascunse, re i im, ambele numere n virgul mobil reprezentate pe 64 de bii, reprezentnd partea real i partea imaginar a numrului. Ele nu pot s fie accesate din afara clasei sau a subclaselor acesteia pentru c au fost declarate cu atributul protected. Dac ar fi fost declarate cu atributul pri vate, atunci ar fi fost accesibile numai din metodele clasei ComplexNumber i inaccesibile din orice subclas. Deocamdat atributul private ar fi putut fi utilizat, dar urmeaz s definim o subclas pentru ComplexNumber. Dac variabilele ar fi fost declarate cu atribut pubi ic ar fi fost accesibile de oriunde din bibliotec, ceea ce ar fi distras orientarea pe obiecte. Totui, exist situaii n care este necesar s se poat face acces la starea intern a obiectului.

SEC. 7.6 class ComplexNumber{ // date ascunse protected double re, im;

WORLD WIDE WEB

661 // Definirea unei subclase a clasei Object // partea reala i cea imaginara

// cinci metode care lucreaz cu cmpurile ascunse public void Complex (double x, double y){re = x; im = y;} public double Real(){return re;} public double Imaginary () {return im;} public double magnitude() {return Math.sqrt(re*re + im* im);} public double Angle(){return Math.atan(im/re);}

class test{ // Alta clasa pentru testarea clasei ComplexNumber public static void main(String args[]){ ComplexNumber c; // referin spre un obiect din clasa ComplexNumber c = new ComplexNumber(); // crearea obiectului c.Complex(3.0,4.0); // utilizare metoda Complex pentru iniializare System.out.println(Modulul numrului c este + c.Magnitude());

Fig. 7-72. O bibliotec care definete dou clase. Pentru obiectele instaniate din clasa ComplexNumber sunt definite cinci metode. Utilizatorii clasei sunt forai s utilizeze numai aceste metode i nu au acces direct la starea intern a obiectului. n test este dat un exemplu de creare, iniializare i utilizare a obiectelor din clasa ComplexNumber. n urma compilrii se produc dou fiiere binare (bytecode), cte unul pentru fiecare clas, numite conform numelui clasei. Comanda:
Java test

produce invocarea interpretorului pentru limbajul Java utiliznd clasa test ca parametru. Interpretorul caut n aceast clas o metod main, i, dup ce o gsete, o execut. Rezultatul execuiei apare tiprit sub forma liniei:
Modulul numrului c este 5

Acum putem s definim o subclas a clasei ComplexNumber, numai pentru a vedea cum funcioneaz. Se ncepe prin importul clasei iniiale, pentru a afla ce face i care sunt metodele sale. Se definete apoi o extensie a clasei ComplexNumber, pe care o vom numi HairyNumber. Noua clas motenete cele cinci metode ale superclasei. Pentru a face lucrurile mai interesante n subclas, vom defini a asea metod, AddTo, care adun un numr complex la obiectul curent, crescnd partea real i cea imaginar. Definiia clasei este prezentat n Fig. 7-73, mpreun cu un alt program de test, care arat cum se poate utiliza un obiect care aparine clasei HairyNumber. Cnd se va executa noul program se va obine: h = (-0.5, 6)

NIVELUL APLICAIE

CAP. 7

S ne amintim c cele ase metode pot s fie aplicate asupra obiectelor aih, indiferent de locul unde este definit fiecare dintre metode. Dac definim acum o subclas bazat pe HaiiyNumber, creia i adugm s zicem trei noi metode, atunci obiectele instaniate din ea vor avea nou metode valide. n afar de adugarea de noi metode la ceie ale superclasei, o subclas poate nlocui metode existente redefinindu-le. n acest mod, este posibil ca pentru o subclas s se redefineasc toate metodele motenite de la supercias, astfel nct obiectele care aparin celor dou clase nu mai au nimic n comun. Aa ceva nu este o tehnic corect de programare i trebuie evitat. O clas Java poate s defineasc mai multe metode cu acelai nume, dar avnd parametri diferii i definiii diferite. Atunci cnd compilatorul ntlnete o invocare de metod cu numele respectiv, va utiliza tipurile parametrilor pentru a identifica pe care dintre definiii trebuie s o utilizeze. Aceast proprietate se numete suprancrcare (overloading) sau polimorfism (polymorphism). Spre deosebire de C++, unde pot s fie suprancrcai i operatorii, n Java pot s fie suprancrcate numai metodele pentru a face programele mai simplu de neles.
import ComplexNumber; ciass HairyNiiinber extends ComplexNumberl public void AddTo(ComplexNumber z){ re = re s - z.Reai {); z.ImaginaryQ; // se importa biblioteca ComplexNumber // se definete o noua clasa // cu o metoda

dasstest2{ public s t a t i c void main(String args[]){ HairyNumber as h; a = new H y h = new HairyNumberQ; a.Complex(1.0, 2,0); h.Complex(-1.5, 4); h.AddTo(a);

// program de t e s t pentru HairyMumber // se declara doua numere // alocare de memorie pentru a // alocare de memorie pentru // atribuirea unei valori lui // atribuirea unei valori lui // invocarea metodei AddTo pentru h.ImaginaryO + J 1 1 } ; h a h h

System.out.pnnt!n(h

+ h.ReaiQ

Fig. 7-73. O subclas a clasei ComplexNumber pentru care se definete o nou metod. In afar de limbajul de baz, proiectanii limbajului Java au definit i implementat aproximativ 200 de clase pentru distribuia iniial. Metodele coninute n aceste clase formeaz un fel de mediu standard pentru cei care dezvolt programe Java. Clasele sunt scrise n Java, astfel nct sunt portabile pe orice platform i sistem de operare. Dac o discuie referitoare ia toate aceste clase i metode depete cadrul acestei cri, totui o scurt prezentare poate s fie de interes. Ceie 200 de clase sunt grupate n apte biblioteci de mrimi diferite, fiecare focalizat pe un anumit subiect. Applet-urile care au nevoie de o anumit bibliotec pot s o includ utiliznd instruciunea import. Metodele coninute pot s fie utilizate conform

SEC. 7.6

WORLD WIDE WEB

663

necesitilor. Acest mecanism nlocuiete fiierele de antet din C. De asemenea sunt nlocuite bibliotecile statice, deoarece bibliotecile (package) sunt ncrcate dinamic pe parcursul execuiei, atunci cnd sunt referite.
Bibliotec java.lang java.io jaya.net java.util java.appiet java.awt java.awtimage java.awt.peer
Exemple de funcionalitate

Clase, fire de execuie, excepii, matematic, iruri de caractere Stream-uri, fiiere cu acces direct, tiprire Socluri, adrese IP, URL-uri, datagrame Stive, tabele de dispersie, vectori, timp, date calendaristice Aducere i afiare de pagini de Web, audio, clasa Object Evenimente, dialog, meniuri, fonturi, grafic, gestiune ferestre Culori, filtrare i conversie de imagini Accesul la sistemul de ferestre suport

Fig. 7-74. Bibliotecile incluse n API (Application Programming Interface - interfaa de aplicaii program). n Fig. 7-74 se face rezumatul celor apte biblioteci. Biblioteca java.lang conine clase care pot s fie considerate ca fcnd parte din limbaj, dar nu i din punct de vedere tehnic. Exist clase pentru gestiunea claselor, a firelor de execuie, tratarea excepiilor. Biblioteca standard matematic i cea pentru tratarea irurilor de caractere sunt de asemenea coninute njava.lang. Ca i n C, nu exist instruciuni de intrare/ieire. Operaiile de citire sau scriere se realizeaz utiliznd biblioteca java.io. Este asemntoare cu biblioteca standard de intrare/ieire din C. Exist metode pentru citirea i scrierea din/n fluxuri (stream-uri), n fiiere cu acces direct i pentru realizarea formatrii necesare pentru tiprire. n Fig. 7-71 s-a utilizat una dintre aceste metode, piintln, care realizeaz tiprirea formatat. Cu semnificaie apropiat de operaiile de intrare/ieire este comunicaia n reea. Bibliotecajava.net conine metode care tiu s lucreze cu adrese IP. Aceeai bibliotec conine i metode pentru accesul la socluri i pentru pregtirea datagramelor. Transmisia efectiv este controlat de ctre ja.va.io. Urmtoarea bibliotec este java.util. Conine clase i metode pentru structuri tipice de date cum sunt stivele sau tabelele de dispersie, astfel c programatorii nu trebuie s reinventeze roata. Aici sunt i metodele pentru gestiunea timpului i a datelor. Biblioteca java.appiet conine mecanismele de baz pentru applet-uri, inclusiv metode pentru aducerea paginilor de Web pornind de la URL-urile lor. Conine i metode pentru afiarea paginilor de Web i controlul sunetelor (de exemplu muzica de fundal). Biblioteca java.appkt conine i clasa Object. Toate obiectele motenesc metodele sale, dac acestea nu sunt nlocuite. Aceste metode includ copierea (donarea) unui obiect, compararea a dou obiecte pentru egalitate, convertirea unui obiect la un sir de caractere si multe altele. n final ajungem la java.awt i subpachetele sale. AWT nseamn Abstract Window Toolkit (instrumente pentru interfaa abstract) i este proiectat pentru a permite applet-urilor s poat fi executate pe diferite sisteme de ferestre. De exemplu, cum trebuie un applet s deseneze un dreptunghi pe ecran, astfel nct aceeai versiune binar de applet (formatul bytecode) s se poat executa pe UNIX, Windows sau pe Macintosh, chiar dac acestea au propriile lor sisteme de ferestre? O parte a bibliotecii se ocup cu desenarea pe ecran, deci exist metode pentru afiarea de

664

NIVELUL APLICAIE

CAP. 7

linii, figuri geometrice, texte, meniuri, butoane, bare de defilare i multe altele. Programatorii Java apeleaz aceste metode pentru a realiza afiarea pe ecran. Depinde apoi de biblioteca java. awt s fac apelurile corespunztoare la sistemul de operare local pentru a obine efectul dorit. Aceast strategie presupune c&java.awi trebuie s fie rescris pentru fiecare platform nou, dar applet-urile sunt independente de platform, ceea ce este mai important. O alt aciune important pentru aceast bibliotec este tratarea evenimentelor. Majoritatea sistemelor de ferestre sunt controlate prin evenimente. Aceasta nseamn c sistemul de operare detecteaz apsarea tastelor, micarea mausului, apsarea i eliberarea butoanelor, ca i alte evenimente pe care le convertete n apeluri de proceduri utilizator. n cazul Java, rn.java.awt exist o colecie bogat de metode pentru tratarea unor astfel de evenimente. Utilizndu-le, este mai simplu s se scrie programe care interacioneaz cu sistemul local de ferestre i n aceiai timp se obine o portabilitate complet ntre maini cu sisteme de ferestre sau sisteme de operare diferite. O parte din aceste aciuni sunt coninute mjava.awiimage, ca de exemplu gestiunea ferestrelor, i mjava.awt.peei; care permite accesul la sistemul de ferestre local. Securitate Proprietile legate de securitate constituie unul dintre cele mai importante aspecte legate de Java. Cnd se aduce o pagin de Web care conine un applet, se face execuia automat a applet-ului pe calculatorul clientului. Ar fi de preferat ca execuia acestuia s nu produc o defectare a mainii pe care se execut. Mai mult, nu este nevoie de prea mult imaginaie pentru a prevedea cum un student ntreprinztor produce o pagin de Web coninnd un joc nou foarte drgu, dup care i face public pe scar larg adresa (URL-ul) (de exemplu publicnd-o pe fiecare grup de tiri). Ceea ce nu se menioneaz n anun este faptul c pagina conine i un applet care dup lansare ncepe imediat s ncripteze toate fiierele de pe disc. Cnd termin, appiet-ul anun ce a fcut i n mod politicos menioneaz utilizatorilor care vor s cumpere cheia cu care se poate face decriptarea c preul este de 1000$ n bancnote cu valori mici, nemarcate, ce trebuie trimise la o csu potal din Panama. n afar de astfel de scheme de tip cum-s-ne-mbogim-rapid, exist i alte pericole n cazul n care se permite execuia de cod strin" pe maina proprie. Un applet poate s caute informaii interesante" (mesaje salvate, fiierul cu parole, iruri de caractere din mediul local etc.) i s le transmit prin reea. De asemenea poate s consume resurse (s umple discul), s afieze imagini pornografice sau mesaje politice pe ecran sau s produc sunete neplcute utiliznd placa de sunet. Desigur, proiectanii limbajului au fost contieni de aceste probleme i au ridicat o serie de bariere mpotriva lor. Prima linie de aprare este faptul c limbajul are tipuri sigure. Java este strong typed, se face verificarea limitelor vectorilor i nu exist pointeri. Aceste restricii nu permit ca ntr-un program Java s se construiasc un pointer pentru a citi sau scrie la o adres arbitrar n memorie. Totui, Trudy, care tocmai a renunat s mai ncerce s sparg protocoale ncriptate i a trecut la o tem mai interesant, scrierea de applet-uri Java ruvoitoare, poate s scrie sau s modifice un compilator de C pentru a produce cod pentru maina virtual Java (bytecode), trecnd astfel peste toate precauiile prevzute n limbaj i n compilatorul pentru Java. A doua linie de aprare const din verificarea applet-urilor aduse utiliznd un verificator de cod de main virtual. Verificatorul se uit dac exist ncercri de construire de pointeri, de execuie

SEC. 7.6

WORLD WIDE WEB

665

de instruciuni sau apeluri de metode cu parametri incoreci, de utilizare de variabile nainte de a fi iniializate etc. Se presupune c aceste verificri garanteaz c se execut numai applet-uri corecte, dar Trudy se va strdui s gseasc noi trucuri, pe care verificatorul nu le testeaz. A treia linie de aprare este ncrctorul claselor. Deoarece clasele pot s fie ncrcate dinamic, exist pericolul ca un applet s i ncarce propria sa clas pentru a evita o clas sistem critic, ocolind n acest fel mecanismele de securitate legate de clase. Acest atac de tip cal Troian a fost fcut imposibil dnd fiecrei clase spaiu propriu de nume (un fel de catalog abstract) i cutnd nti ntre clasele sistem i apoi ntre clasele utilizatorului. Cu alte cuvinte, dac utilizatorul ncarc o versiune ruvoitoare pentru ptintln, ea nu va fi niciodat utilizat, deoarece ntotdeauna prima versiune gsit va fi versiunea oficial. A patra linie de aprare const din faptul c unele dintre clasele standard conin propriile lor msuri de securitate. De exemplu, clasa care se ocup de accesul la fiiere menine o list de fiiere, care pot s fie accesate de applet-uri, i afieaz o fereastr de dialog ori de cte ori un applet ncearc s fac ceva care violeaz regulile de protecie. In ciuda acestor msuri, este de ateptat s apar probleme legate de securitate. In primul rnd este posibil s existe greeli n programele legate de Java pe care programatori pricepui s poat s le exploateze pentru a ocoli msurile de securitate. Cunoscutul virus Internet worm", care a aprut n 1988, a utilizat o greeal din demonul de Finger din sistemul UNIX pentru a bloca mii de maini legate la Internet (Hafner i Markoff, 1991; i Spafford, 1989). n al doilea rnd, dei este posibil s se interzic unui applet s fac orice altceva dect scrieri pe ecran, multe applet-uri au nevoie de mai mult putere, deci atunci cnd solicit drepturi suplimentare, utilizatorul poate (eventual din naivitate) s i le acorde. De exemplu, un applet poate s aib nevoie s scrie n directorul /tmp, considernd c nimic important nu poate s se gseasc acolo. Din pcate, majoritatea editoarelor pstreaz versiuni temporare de documente sau mesaje pentru pota electronic pe parcursul editrii, deci applet-uri ruvoitoare pot s le copieze i s ncerce s le transmit prin reea. Desigur, este posibil s se blocheze accesul applet-urilor la reea, dar multe applet-uri au nevoie de acest acces, deci trebuie s li se asigure i acest drept. Chiar i n cazul n care applet-urilor nu li se permite s fac acces la reea, ele pot s transmit informaii utiliznd canale acoperite (Lamson, 1973). De exemplu, dup ce obine o anumit informaie, un applet poate s formeze un flux de un bit utiliznd ceasul local. Pentru a transmite un 1, el execut ceva pentru At; pentru a transmite un 0, se ateapt pentru At. Pentru a recepiona informaia, proprietarul applet-ului va stabili o legtur cu maina clientului pentru a citi paginile sale de Web publice sau pentru a prelua prin FTP fiiere publice. Monitoriznd cu mare atenie viteza de recepie a datelor, proprietarul applet-ului poate s afle dac se execut un calcul (i de aceea se ncetinete fluxul de sosire al datelor) sau dac acesta este n starea de ateptare. Desigur, canalul are zgomot, dar poate s fie prelucrat cu tehnici standard. Fluxul poate s fie mprit n cadre delimitate de octei indicatori. Coninutul cadrelor individuale pot s utilizeze coduri corectoare de eroare puternice i toate cadrele pot s fie transmise de mai multe ori. Exist multe alte exemple de canale acoperite i este foarte dificil s le descoperi i s le blochezi. Pentru mai multe informaii referitoare la problemele de securitate n Java, vezi (Dean i Wallach, 1995). n rezumat, Java introduce numeroase posibiliti i faciliti noi n WWW. Limbajul permite paginilor de Web s fie interactive i s conin animaie i sunete. De asemenea permite programelor de navigare s fie extensibile n mod nelimitat. Prin introducerea applet-urilor care se aduc din reea se introduc ns noi probleme de securitate, care nu au fost nc rezolvate complet.

NIVELUL APLICAIE

CAP. 7

Cu toate c pe Web se gsete o cantitate foarte mare de informaii, gsirea unei anumite informaii nu este foarte simpl. Pentru a facilita gsirea paginilor care pot s fie utile, o serie de cercettori au scris programe pentru a realiza indexarea Web-ului n diferite moduri. Unele dintre soluii au devenit att de populare, nct s-au transformat n soluii comerciale. Programele care realizeaz cutarea pe Web se numesc maini de cutare (searcfe eagines, spiders, crawlers, worms, koowhots (knowledge robots)). n seciunea curent, oferim o introducere scurt la acest subiect. Pentru mai multe informaii, vezi (Pinkerton, 1994 i McBryan, 1994). Dei Web-ul este imens, dac l reducem la esen, este un grai imens avnd pagini n noduri i hiper-legturi ca arce. Algoritmii pentru vizitarea tuturor nodurilor unui graf sunt foarte bine cunoscui. Ceea ce face dificil indexarea Web-ului este cantitatea imens de informaie care trebuie gestionat i faptul c aceast informaie este n continu schimbare. S ncepem discuia cu un singur obiectiv: indexarea tuturor cuvintelor cheie n toate titlurile paginilor de Web. Pentru algoritmul nostru avem nevoie de trei structuri de date. nti, un vector liniar, udjable, care conine milioane de intrri, de fapt cte una pentru fiecare pagin de Web. Trebuie pstrat n memoria virtual, astfel nct prile care sunt mai puin utilizate s fie scrise automat pe disc. Fiecare intrare conine doi pointeri, unul ia URL-ul paginii i un altui ctre titlul paginii. Ambele elemente sunt iruri de caractere cu lungimi variabile i pot s fie pstrate ntr-un heap (o poriune nestructurat de memorie virtual la care se adaug iruri de caractere). Heap-ul reprezint a doua structur de date pe care o utilizm. A treia structur de date este o tabel de dispersie avnd n intrri. Este utilizat n modul urmtor. Orice URL poate s fie trecut printr-o funcie de dispersie pentru a produce un numr pozitiv mai mic dect n. Toate URL-urile care dau valoarea de dispersie k sunt legate intr-o list nlnuit ncepnd din intrarea k a tabelei de dispersie. Ori de cte ori un URL este introdus n tabela udjable, este introdus i n tabela de dispersie. Principalul scop al tabelei de dispersie este s permit regsirea rapid a unui URL n udjable. Structurile de date respective sunt prezentate n Fig. 7-75.
Pointeri Pointeri spre spre URL-uri titluri

memone iruri

oispersi
-+-*! A

Lanun ae deplrs

H19I-- 8 H 21

Ur! table

Heap

tabel de dispersie

FIg 7-75. Structurile de date utilizate de o main de cutare simpl.

SEC. 7.6

WORLD WIDE WEB

667

Construirea index-ului necesit dou faze: cutarea i indexarea. S considerm iniial o main simpl de cutare. Nucleul mainii de cutare este o procedur recmsiv processjirl, care primete un ir URL ca intrare. El opereaz n modul urmtor. nti aplic funcia de dispersie URL-ului, pentru a verifica dac este deja prezent n urljable. Dac da, a terminat i se ntoarce imediat. Fiecare URL este prelucrat o singur dat. Dac URL-ul nu este deja cunoscut, i se aduce pagina. URL-ul i titlul sunt apoi copiate n heap i pointerii la aceste dou iruri de caractere sunt introdui n urljable. URL-ul este de asemenea introdus n tabela de dispersie. n sfrit, process_ud extrage toate hiper-legturile din pagin i apeleaz processjirl pentru fiecare legtur, transmind URL-ul hiper-legturii ca parametru. Execuia mainii de cutare nseamn execuia processjui ncepnd cu un URL de plecare. Cnd se termin cutarea, toate paginile care pot s fie accesate din URL-ul respectiv au fost introduse n ud table si faza de cutare s-a terminat. Dei proiectarea este simpl i corect din punct de vedere teoretic, totui are o deficien serioas pentru un sistem att de mare cum este Web-ul. i anume algoritmul execut o cutare de tip n adncime", ceea ce nseamn c va intra n recursivitate de un numr de ori egal cu lungimea celei mai lungi ci neciclice din Web. Nimeni nu tie ct de lung este aceast cale, dar probabil c este format din mii de hiper-legturi. Ca o consecin, orice main de cutare care utilizeaz o astfel de abordare o s depeasc dimensiunea stivei nainte de a termina cutarea. n practic, mainile de cutare actuale colecteaz mai nti toate hiper-legturile din fiecare pagin citit, le terge pe cele deja prelucrate i le salveaz pe cele rmase. Se face apoi o cutare n lime"; adic, este urmat fiecare legtur ctre o pagin, sunt colectate toate hiper-legturile din toate paginile indicate, dar ele nu sunt tratate n ordinea n care au fost obinute. A doua faz realizeaz indexarea pe cuvinte cheie. Procedura de indexare trece liniar prin urljable, prelucrnd pe rnd fiecare intrare. Pentru fiecare intrare, examineaz titlul i selecteaz toate cuvintele care nu sunt coninute ntr-o list special (stop list) care conine prepoziii, conjuncii, articole i alte cuvinte care apar des, dar nu au valoare. Pentru fiecare cuvnt selectat, scrie ntr-un fiier o linie constnd din cuvntul respectiv urmat de numrul intrrii n urljable. Indexul trebuie s fie memorat pe disc i poate s fie utilizat n modul urmtor. Utilizatorul completeaz un formular indicnd unul sau mai multe cuvinte cheie, dup care apas pe butonul SUBMIT. Aceast aciune produce trimiterea unei cereri POST pentru un script CGI pe maina pe care este localizat indexul. Acest script (sau mai curnd un program) caut cuvintele cheie n index, pentru a afla mulimea de indici n urljable pentru fiecare dintre ele. Dac utilizatorul cere I-ul logic (BOOLEAN AND) al cuvintelor cheie atunci se calculeaz mulimea intersecie a mulimilor construite. Dac se dorete SAU-ul logic (BOOLEAN OR), se calculeaz reuniunea mulimilor respective. Scriptul caut n urljable pentru a afla toate titlurile i toate URL-urile. Acestea sunt apoi combinate pentru a produce o pagin de Web care este transmis utilizatorului ca rspuns la cererea POST. Programul de navigare o s afieze pagina, permind utilizatorului selecia oricrui element care pare interesant. Pare uor? Nu este. n orice sistem practic trebuie s fie rezolvate urmtoarele probleme: 1. 2. Unele URL-uri nu mai sunt valabile (indic spre pagini care nu mai exist). Unele calculatoare pot s devin temporar inaccesibile.

668

NIVELUL APLICAIE

CAP. 7

3. 4. 5. 6. 7. 8.

Nu toate paginile sunt accesibile pornind din URL-uI de pornire. Unele pagini sunt accesibile numai din hri active. Unele documente nu pot s fie indexate (clip-uri audio). Nu toate documentele au titluri utile. Maina de cutare poate s nu aib spaiu suficient n memorie sau pe disc. ntreg procesul poale s dureze prea mult.

URL-urile care nu mai sunt valabile deranjeaz, dar serverul pe care ar fi trebuii s se gseasc rspunde imediat cu un cod de eroare. Mult mai neplcute sunt situaiile n care serverul este inaccesibil, deoarece tot ce se observ este un interval de timp foarte lung pentru stabilirea conexiunii TCP. Pentru a preveni situaia n care se ateapt la nesfrit trebuie s se utilizeze un interval de limit de timp. Dac intervalul este ales prea scurt, se pot rata URL-uri corecte. Dac este prea lung, procesul de cutare devine prea lent. Alegerea URL-ului iniial este o problem major. Dac maina de cutare pornete cu URL-ul paginii unui astrofizician, s-ar putea s gseasc tot ce se poate despre astronomie, fizic, chimie, tiina spaiului, dar va pierde complet paginile legate de medicin veterinar i rock'n roii. Aceste mulimi pot s fie pur i simplu disjuncte. O soluie este s se plece de la un set mare de URL-uri care s fie utilizate fiecare ca pagin de start. Paginile de start pot s fie obinute din articole de tiri USENET i din versiunea de sptmna trecut a udjable, deoarece unele din aceste pagini pot s se fi schimbat recent (de exemplu un astrofizician s-a cstorit cu un veterinar i au hotrt s i modifice paginile personale pentru a indica una spre cealalt). Indexarea funcioneaz bine pe texte, dar tot mai multe pagini conin alte elemente dect texte, inclusiv grafic sau audio sau video. O abordare posibil este s se ncerce pentru fiecare URL nou metoda HEAD, pentru a obine antetul MIME. Orice nu este de tipul text nu este parcurs. Peste 20% din paginile de Web nu au titluri i multe au titluri practic nesemnificative (..Pagina lui Joe"). O mbuntire important a indexului se obine dac n loc de titlu se consider tot hipertextul. n acest caz, cnd se parcurge o pagin sunt nregistrate i toate legturile, mpreun cu pagina din care provin i cu pagina spre care indic. Dup faza de cutare, toate hiper-cuvintele pot s fie i ele indexate. i mai ambiios este s indexezi toate cuvintele importante din fiecare pagin. Pentru a aia care sunt cuvintele importante, se calculeaz frecvena cuvintelor care nu fac parte din lista de cuvinte care se ignor (stop list) pentru fiecare pagin de Web. Probabil c primele 10 sau 20 de cuvinte merit s fie indexate. n fond, dac ficat" este cel mai utilizat cuvnt ntr-o pagin, exist o ans ca pagina respectiv s fie interesant pentru un chirurg (sau pentru un buctar). Unele maini de cutare (de exemplu Lycos) utilizeaz aceast strategie. n fine, maina de cutare poate s epuizeze spaiul de memorie sau timpul afectat. O posibilitate este s se reproiecteze algoritmii utilizai cu mai mare atenie. O abordare complet diferit este cea a lui Harvest, care permite mprirea muncii (Bowman .a., 1994, 1996). n particular, Harvest ofer un program care se execut pe servere care coopereaz. Acest program face cutarea local i transmite napoi fiierul index local. Pe serverul central se face mixarea indecilor, obinndu-se indexul global. Aceast abordare reduce cu cteva ordine de mrime dimensiunea memoriei, timpul de unitate central i banda de reea necesar, dar prezint dezavantajul major de a cere serverelor Web s coopereze, executnd software strin. Considernd posibilitatea problemelor legate de virui

SEC. 7.7

MULTIMEDIA

669

sau viermi, atunci cnd unui administrator de sistem i se adreseaz cererea: Vrei s execui acest program pe maina ta pentru mine?" probabil c va refuza. Este necesar acum o simpl precizare. Dac scrierea unei maini de cutare pare o sarcin simpl, o main care funcioneaz prost poate s blocheze reeaua, genernd un numr mare de cereri inutile, pentru care nu numai c se consum n mod inutil din banda reelei, dar se pot bloca serverele datorit suprancrcrii. Dac nu v putei abine s scriei propria main de cutare, o simpl cerin de politee n reea presupune limitarea la domeniul DNS local pn cnd este total pus la punc.

7.7 MULTIMEDIA
Multimedia reprezint sarea i piperul reelelor de calculatoare. Minile ascuite vd imense provocri tehnice n furnizarea de video (interactiv) la cerere n fiecare cas. Gulerele albe vd un profit imens n acestea. Nici o carte despre reele nu va fi complet fr cel puin o introducere n subiect. Dat fiind lungimea de pn acum a acestei cri, introducerea noastr va fi scurt. Pentru informaii adiionale despre acest subiect fascinant i potenial profitabil, vezi (Buford, 1994; Deloddere .a., 1994; Dixit i Skelly, 1995; Fluckiger, 1995; Minoli, 1995; i Steimetz i Nahrstedt, 1995). Literal, multimedia nseamn dou sau mai multe media. Dac editorul acestei cri voia s se alture interesului ia mod despre multimedia, el putea anuna c lucrarea folosete tehnologia multimedia. n fond, aceasta conine dou media: textul i grafica (desenele). Cu toate acestea, atunci cnd majoritatea oamenilor se refer la multimedia, de fapt ei se refer la combinarea ntre dou sau mai multe media continue (continuous media), adic media care trebuie s se desfoare ntr-un interval bine definit, de obicei folosind interaciunea cu utilizatorul. n practic, cele dou media sunt audio i video, adic sunete plus filme. Din acest motiv, vom ncepe studiul cu o introducere n tehnologia audio i video. Apoi, le vom combina i vom trece la sisteme adevrate multimedia, incluznd video la cerere i sistemul multimedia al Internetului, MBone. 7.71 Audio

O und (sunet) audio este o und cu o dimensiune acustic (presiune). Atunci cnd o und acustic intr n ureche, pavilionul vibreaz, fcnd ca oasele urechii interne s vibreze o dat cu el, transmind vibraii nervoase creierului. Aceste vibraii sunt percepute drept sunete de ctre asculttor. ntr-un mod similar, atunci cnd o und acustic lovete un microfon, acesta genereaz un semnal electric, reprezentnd amplitudinea sunetului ca funcie de timp. Reprezentarea, procesarea, memorarea, i transmisia acestor semnale audio constituie prile majore ale studiului sistemelor multimedia. Intervalul de frecven pentru urechea uman este cuprins ntre 20 Hz i 20.000 Hz, dei unele animale, n special cinii, pot percepe frecvene mai nalte. Urechea percepe sunetele n mod logaritmic, aa nct raportul a dou semnale cu amplitudinile A i B este exprimat convenional n dB (decibeli) n concordan cu formula: dB = 201ogio(4/B)

670

NIVELUL APUCATE
2

CAP. 7

Dac definim limita inferioar de audibilitate (o presiune de circa 0,0003 dyne/cm ) pentru o und sinusoidal de 1 KHz ca 0 dB, o conversaie obinuit este n jur de 50 dB i pragul de durere este n jur de 120 dB, un interval dinamic cu un factor de 1 milion. Pentru a evita orice confuzie, A i B de mai sus sunt numite amplitudini. Dac trebuie s folosim nivelul puterii, care este proporional cu ptratul amplitudinii, coeficientul logaritmului va fi 10, nu 20. Urechea este surprinztor de sensibil la variaii ale sunetului care dureaz doar cteva milisecunde. Ochiul, n schimb, nu poate observa schimbrile de nivel "ridicat care dureaz doar cteva milisecunde. Rezultatul acestei observaii const n faptul c o variaie de numai cteva milisecunde din timpul unei transmisii multimedia afecteaz calitatea sunetului perceput mai mult dect afecteaz calitatea imaginii percepute.

(b)

(O

Fig. 7-76. (a) O und sinusoidal, (b) Eantionarea undei sinusoidale. (c) Cuantificarea eantioanelor pe 3 bii. Undele audio pot fi convertite n form numeric de un ADC (Analog Digital Convertor convertor analog numeric). Un ADC primete o tensiune electric la intrare i genereaz un numr binar la ieire. n Fig. 7-76(a) se prezint un exemplu al unei unde sinusoidale. Pentru reprezentarea acestui semnal n form digitizat, putem s-1 eantionm la fiecare AI secunde, aa cum putei observa prin nlimea barelor n Fig. 7-76(b). Dac o und sonic nu este o und pur sinusoidal, ci o superpoziie liniar de unde sinusoidale, unde cea mai mare component a frecvenei prezente este/, atunci teorema lui Nyquist (vezi Cap. 2) spune c este suficient s se eantioneze la frecvena 2f. Eantionnd mai des, nu se obine nimic n plus, deoarece frecvenele mai nalte pe care discretizarea le poate detecta nu sunt prezente. Eantioanele digitale nu sunt niciodat exacte. Eantioanele pe 3-bii din Fig. 7-76(c) permit doar opt valori, de la -1,00 la +1,00 n pai de 0,25. Un eantion pe 8-bii permite 256 valori distincte. Un eantion pe 16-bii admite 65.536 valori distincte. Eroarea introdus de numrul finit de bii de eantionare se numete zgomot de cuantizare (quantization noise). Dac este foarte mare, urechea l detecteaz. Dou exemple bine cunoscute de sunete eantionate sunt telefonul i compact discurile audio. Modularea impulsului n cod, folosit n sistemul telefonic, utilizeaz eantioane pe 7 bii (America de Nord i Japonia) sau 8 bii (Europa) de 8000 de ori pe secund. Acest sistem furnizeaz o vitez a datelor de 56.000 bps sau 64.000 bps. Cu doar 8000 de eantioane/sec, frecvenele peste 4 KHz sunt pierdute.

SEC. 7.7

MULTIMEDIA

671

CD-urile audio sunt digitale, cu o rat de eantionare de 44.100 eantioane/sec, suficient pentru a putea capta frecvenele pn la 22.050 Hz, care sunt bune pentru oameni, dar rele pentru cini. Eantioanele au fiecare 16 bii i sunt liniare n domeniul amplitudinii. Observai c eantioanele pe 16-bii permit doar 65.536 valori distincte, chiar dac limita dinamic a urechii este de 1 milion atunci cnd se msoar n uniti de cel mai mic sunet audibil. Astfel, folosind doar 16 bii pe eantion, se introduce un zgomot de cuantizare (dei ntreaga rat dinamic nu este acoperit - CDurile se presupune c nu rnesc). Cu 44.100 eantioane/sec pe 16 bii fiecare, un CD audio are nevoie de o lrgime de band de 705,6 Kbps pentru mono i de 1,411 Mbps pentru stereo. Dei acesta este mai sczut dect necesit video-ul (vezi mai jos), poate acapara aproape un canal ntreg TI pentru transmiterea necomprimat a sunetului stereo de calitate pentru CD. Sunetele digitizate pot fi procesate uor de calculatoare, prin programe. Exist zeci de programe pentru calculatoarele personale care permit utilizatorilor s nregistreze, s afieze, s editeze, s amestece i s memoreze undele sonore de la surse multiple. Practic, toate nregistrrile, editrile de sunete profesioniste sunt n prezent digitale. Multe instrumente muzicale au acum o interfa digital. Atunci cnd instrumentele digitale au aprut pentru prima dat, fiecare a avut o interfa proprie, dar dup un timp, s-a ales un standard, MIDI (Music Instrument Digital Interface - interfa digital pentru instrumente muzicale), care a fost dezvoltat i adoptat de aproape ntreaga industrie muzical. Acest standard specific conectorul, cablul i formatul mesajului. Fiecare mesaj MID const dintr-un bit de stare urmat de zero sau mai muli bii de date. Un mesaj MDI transmite un singur eveniment muzical semnificativ. Evenimente tipice sunt apsarea unei taste, mutarea unui poteniometru, eliberarea unei pedale pentru picior. Bitul de stare indic evenimentul i biii de date dau parametrii, cum ar fi tasta eliberat i cu ce vitez s-a micat. Fiecare eveniment are un cod MIDI asociat. De exemplu, un pian cu coad are asociat 0, un marimbophon 12 i o vioar 40. Aceasta este necesar pentru a evita ca un concert de flaut s fie reprodus ca un concert de tub. Numrul de instrumente" definite este 127. Cu toate acestea, unele nu sunt instrumente, ci efecte speciale ca psri ciripitoare, elicoptere sau aplauze, care nsoesc multe programe de televiziune. Inima fiecrui sistem MIDI este un sintetizator (deseori un calculator) care accept mesajele i genereaz muzica pentru ele. Sintetizatorul nelege toate cele 127 de instrumente i genereaz un spectru diferit de putere pentru un do central la o trompet fa de un xilofon. Avantajul transmiterii muzicii folosind MIDI, comparat cu transmiterea unei forme de und digitizat, este reducerea enorm n lrgime de band, deseori cu un factor de 1000. Dezavantajul lui MIDI este c receptorul necesit un sintetizator MIDI pentru a reconstrui muzica i diferite sintetizatoare pot furniza diferite interpretri. Muzica este desigur un caz special de audio, dar unul important. Alt caz important este discursul. Discursul uman tinde s fie ntre limitele de 600 Hz i 6000 Hz. Discursul este format din vocale i consoane, care au proprieti diferite. Vocalele sunt produse atunci cnd coardele vocale sunt neobstrucionate, producnd, rezonane ale cror frecvene fundamentale depind de dimensiunea i forma sistemului vocal i de poziia limbii vorbitorului i a gurii. Aceste sunete sunt aproape periodice pentru intervale n jur de 30 msec. Consoanele sunt produse atunci cnd coarda vocal este parial blocat. Aceste sunete sunt mai puin regulate dect vocalele.

672

NIVELUL APUCATE

CAP. 7

Cteva sisteme de generare i transmisie de voce pot folosi modelele de sisteme vocale pentru a reduce vocea la civa parametri (de exemplu, mrimile i formele diferitelor caviti), mai degrab dect de a eantiona forma de und pentru voce. 7.7.2 Video Ochiul uman are proprietatea c atunci cnd o imagine este adus pe retin, este reinut un numr de milisecunde nainte de dispariie. Dac o secven este afiat la 50 sau mai multe imagini/sec, ochiul nu sesizeaz c se uit la imagini discrete. Toate sistemele video (de exemplu, televiziunea) exploateaz acest principiu pentru producerea filmelor. Sisteme analogice Pentru a nelege sistemele video, este bine s pornim cu vechea televiziune simpl, alb-negru. Pentru a reprezenta imaginile bidimensionale din faa ei ca o tensiune unidimensional funcie de timp, camera (de luat vederi) scaneaz imaginea cu o raz electronic, rapid de-a latul i lent n josul ei, nregistrnd intensitatea luminoas aa cum vine. La sfritul scanrii, numit cadru (frame), raza reia traseul. Aceast intensitate este difuzat ca funcie de timp, iar receptorii repet procesul de scanare pentru reconstrucia imaginii. Modelul de scanare folosit de amndoi, att de camer ct i de receptor, este prezentat n Fig. 7-77. (Camerele CCD integreaz mai degrab dect scaneaz, dar unele camere i toate monitoarele scaneaz.)
Urmtorul cmp Linie de scanare. 'ncepe aici 1 3 5 7 9 11 13 15 Linie de scanare ' desenat pe ecran

E P

o.

483

Revenire orizontal

Revenire/*' vertical

Fig. 7-77. Modelul de scanare folosit pentru video i televiziunea NTSC.

SEC. 7.7

MULTIMEDIA

673

Parametrii exaci de scanare variaz de la ar la ar. Sistemul folosit n America de Nord i de Sud i Japonia are 525 de linii de scanare, o rat de aspect orizontal/vertical de 4:3 i 30 de cadre/sec. Sistemul European are 625 de linii de scanare, aceeai rat de aspect de 4:3 i 25 de cadre/sec. n ambele sisteme, cteva linii din vrf i cteva din partea de jos nu sunt afiate (pentru a aproxima o imagine dreptunghiular pe un tub catodic rotund original). Doar 483 din cele 525 de linii de scanare NTSC (i 576 din cele 625 de linii de scanare PAL/SECAM) sunt afiate. Raza este stins n timpul revenirii verticale, aa c multe staii (n special n Europa) folosesc acest interval pentru difuzare de TeleText (pagini de text coninnd tiri, vreme, sporturi, preuri la burs etc). In timp ce 25 de cadre/sec sunt suficiente pentru a capta o micare lin, la aceast vitez a cadrelor multe persoane, n special cei btrni, vor percepe imaginea tremurat (deoarece imaginile vechi au fost terse de pe retin naintea apariiei celor noi). n loc s se mreasc viteza cadrelor, care va cere s se foloseasc mai puin lrgime de band, este aleas o alt cale. n locul afirii liniilor de scanare n ordine, nti sunt afiate toate liniile de scanare cu numere impare, apoi cele cu numere pare. Fiecare din aceste jumti de cadre este numit cmp (field). Experimentele arat c dei oamenii remarc un tremur la 25 de cadre/sec, ei nu l remarc la 50 de cadre/sec. Aceast tehnic este numit ntreesere (interlacing). O televiziune sau video nentreesut este numit progresiv (progressive). Video-ul color folosete acelai model de scanare ca monocromul (alb i negru), cu excepia faptului c n locul afirii unei imagini cu o singur raz mictoare, sunt folosite trei raze care se mic la unison. Este folosit cte o raz pentru fiecare din cele trei culori aditive primare: rou, verde i albastru (RGB). Aceast tehnic funcioneaz pentru c orice culoare poate fi construit din superpoziia liniar a roului, verdelui i albstruiul cu intensitile corespunztoare. Cu toate acestea, pentru transmiterea pe un singur canal, cele trei semnale de culori trebuie combinate ntrun singur semnal compus (composite). Atunci cnd a aprut televiziunea color, diverse metode de afiare color erau tehnic posibile, i diverse ri au fcut alegeri diferite, conducnd la sisteme care sunt nc incompatibile. (Observai c aceste alegeri nu au nimic n comun cu VHS, fa de Betamax i fa de P2000, care sunt tehnici de nregistrare.) n toate rile, o cerere politic a fost ca programele color s fie recepionate de televizoarele existente alb-negru. n consecin, cea mai simpl schem, care codific separat semnalele RGB, nu a fost acceptat. De asemenea RGB nu este cea mai eficient schem. Primul sistem color a fost standardizat n Statele Unite de Comitetul Naional de Standarde de Televiziune (National Television Standards Committee), care a mprumutat acronimul su standardului NTSC. Televiziunea color a fost introdus n Europa civa ani mai trziu, n momentul n care tehnologia a fost mbuntit substanial, conducnd la sisteme cu mare imunitate la zgomote i culori mai bune. Acestea sunt numite SECAM (SEquentiel Couleur Avec Memoire culoare secvenial cu memorie), care este folosit n Frana i n rile din estul Europei, i PAL (Phase Alternating Line - linie cu faz alternat) folosit n restul Europei. Diferena n calitatea culorii ntre NTSC i PAL/SECAM a condus la gluma c NTSC nseamn de fapt c aceeai culoare nu apare de dou ori (Never Twice Same Color). Pentru a permite ca transmisiunile color s fie vzute de receptoarele alb-negru, toate cele trei sisteme combin liniar semnalele RGB ntr-un semnal de luminan (luminance), i dou semnale de crominan (chrominance), dei toate folosesc ali coeficieni pentru construcia acestor semnale din semnale RGB. Interesant, ochiul este mai sensibil la semnalele de luminan dect la cele de crominan, asa nct ultimele nu trebuie transmise cu mare

674

NIVELUL APLICAIIE

CAP. 7

.seinalele. Ca rezultat, semnalul luminos poate fi difuzat la aceeai frecven ca i vechiul semna! alb-negru. aa nct poale fi recepionat pe televizoarele existente alb-ncgru. Cele dou semnale de erominan sunt difuzate n benzi nguste la frecvene nalte. Unele televizoare au baloane pentru controlul strlucirii, nuanei i saturrii (sau strlucirii, tentei i culorii) pentru controlul separat al celor trei semnale. nelegerea crominanei i luminanei este vital pentru nelegerea modului n care funcioneaz compresia video. n ultimii ani. a existat un interes considerabil pentru HDTV (High Definition TeleVision televiziunea de nalt definiie), care produce imagini mai bune dublnd numrul liniilor de scanare. Statele Unite, Europa i Japonia au dezvoltat sisteme HDTV', toate diferite i toate mutual incompatibile. Principiile de baz ale HDTV-ului in tcirneni de scanare, luminan, erominan i altele, sunt similare sistemelor existente. Cu toate acestea, toate cele trei formate au o aceeai rat a aspectului de 16:9 n loc de 4:3 pentru a le potrivi mai bine formatului folosit pentru filme (care sunt nregistrate pe 35 mm). Pentru o introducere n tehnologia televiziunii, vezi (Buford, 1994). Sisteme digitale Cea mai simpl reprezentare a video-ului digital este o secven de cadre, fiecare constnd Jinti-o gril dreptunghiular de elemente de imagine, adic pixeli. Fiecare pixel poate fi un singur bit. pentru a reprezenta fie albul, fie negrul. Calitatea unui astfel de sistem este similar cu cea obinut la transmiterea prin fax a unei fotografii color - adic groaznic. (ncercai dac putei; sau altfel fotocopiai o fotografie color la o main de copiat care nu rasterizeaz.) Urmtorul pas este de a folosi 8 bii per pixel pentru reprezentarea celor 256 nivele de gri. Aeeasl schem d o calitate ridicat video-ului alb-negru. Pentru video color, sistemele bune lolosese 8 bii pentru fiecare din culorile RGB, dei aproape toate sistemele le amestec pentru transmitere ntr-un \ideo compus. In timp ce folosind 24 de bii per pixel se limiteaz numrul de culori la 16 milioane, ochiul uman nu poate deosebi attea culori, deci nici vorb de mai multe. imaginile digitale color sunt produse folosind trei raze de scanare, una pentru fiecare culoare. Geometria este aceeai cu cea pentru sislemul analogic din Fig. 7-77, exceptnd faptul c liniile de scanare continue sunt nlocuite acum de linii formate din pixeli discrei. Pentru a produce micri line, video-ul digital, la fel ca video-ul analog, trebuie s afieze cel puin 25 de cadre/sec. Oricum, deoarece monitoarele de bun calitate ale calculatoarelor rescaneaz deseori ecranul din imagini memorate de 75 de ori pe secund sau mai des, ntreeserea nu este necesar i, n consecin, nu este folosit n mod obinuit. Reafiarea (adic redesenarea) aceluiai cadru de trei ori la rnd este suficient pentru eliminarea plpirii. Cu alte cuvinte, continuitatea unei micri este determinat de numrul de imagini diferite pe secund, avnd n vedere c plpirea este determinat de numrul de ori pe secund n care este desenat ecranul. Aceti doi parametri sunt diferii. O imagine afiat la 20 de cadre/sec nu va arta distorsionat, dar va plpi, deoarece un cadru va disprea de pe retin nainte ca urmtorul cadru s apar. Un film cu 20 de cadre diferite pe secund, fiecare dintre acestea fiind desenat de patru ori la rnd, nu va plpi, dar va prea distorsionat. Semnificaia acestor doi parametri devine mai clar atunci cnd considerm lrgimea de band pentru transmisia video digital printr-o reea. Monitoarele folosesc rata de aspect de 4:3, aa nct pol folosi tuburile ieftine din producia destinat pieei televizoarelor. Configuraiile obinuite sunt

SEC. 7.7

MULTIMEDIA

675

640x480 (VGA), 800x600 (SVGA), 1024x768 (XGA). Un afiaj XGA cu 24 de bii pe pixel i 25 de cadre/sec necesit s fie alimentat la 472 Mbps. Chiar OC-9 nu este destul de bun i de altfel rularea unui purttor OC-9 SONET n casa fiecruia nu este exact la ordinea zilei. Dublarea acestei rate pentru evitarea plpirii este cu att mai puin atractiv. O soluie mai bun este de a transmite 25 de cadre/sec i calculatorul s le memoreze i s le afieze de dou ori. Televiziunea obinuit nu folosete aceast strategie, deoarece televizoarele nu au memorie i, n orice caz, semnalele analogice nu pot fi memorate n RAM fr o conversie prealabil n form digital, care necesit hardware n plus. Ca o consecin, ntreeserea este necesar pentru televiziunea obinuit, dar nu i pentru video digital. 7.7.3 Compresia datelor Ar trebui s fie evident acum c transmisia materialului multimedia n form necomprimat nu intr n discuie. Singura speran este ntr-o compresie puternic. Din fericire, numeroase cercetri de cteva decenii au ajuns la mai multe tehnici de compresie i algoritmi care fac posibil transmisia de multimedia. n aceast seciune vom studia cteva metode pentru compresia datelor multimedia, n special imagini. Pentru mai multe detalii, vezi (Fluckiger, 1995; i Steinmetz i Nahrstedt, 1995). Toate sistemele de compresie necesit doi algoritmi: unul pentru comprimarea datelor la surs i altul pentru decomprimarea lor la destinaie. n literatur, aceti algoritmi sunt numii algoritmi de codificare i decodificare. Vom folosi i aici aceast terminologie. Aceti algoritmi au cteva asimetrii a cror nelegere este important. Mai nti, pentru multe aplicaii, un document multimedia, s zicem un film, va fi codificat o dat (atunci cnd este memorat pe un server multimedia), dar va fi decodificat de milioane de ori (atunci cnd este vizualizat de clieni). Aceast asimetrie nseamn c este acceptabil ca algoritmul de codificare s fie lent i s necesite un hardware suplimentar scump, cu condiia ca algoritmul de decodificare s fie rapid i s nu cear un hardware costisitor. Mai mult, operatorul unui server multimedia ar putea dori s nchirieze un supercalculator paralel pentru cteva sptmni, pentru a-i codifica ntreaga videotec, dar a cere clienilor s nchirieze un supercalculator pentru 2 ore, pentru a vedea un video nu va avea mare succes. Multe sisteme de compresie fac eforturi pentru ca decodificarea s fie rapid i simpl, chiar cu preul ncetinirii i complicrii codificrii. Pe de alt parte, pentru multimedia n timp-real, precum conferine video, codificarea lent este inacceptabil. Codificarea trebuie fcut din mers, n timp-real. n consecin, multimedia de timpreal folosete algoritmi sau parametri diferii fa de cei utilizai pentru memorarea video-urilor pe disc, deseori cu mult mai puin compresie. A doua asimetrie este c procesul de codificare/decodificare nu trebuie sa fie inversabil. Adic, atunci cnd se comprim un fiier, acesta se transmite i apoi este decomprimat, utilizatorul ateptnd s-1 obin pe cel original, exact pn la ultimul bit. Cu multimedia, aceast cerin nu exist. De obicei, este acceptabil s avem un semnal video dup codificare i apoi decodificarea s fie un pic diferit de original. Atunci cnd ieirea decodificat nu este egal exact cu intrarea original, sistemul se spune c este cu pierderi (lossy). Dac intrarea i ieirea sunt identice, sistemul este fr pierderi (lossless). Sistemele cu pierderi sunt importante, deoarece acceptarea unui numr mic de informaii pierdute poate oferi un avantaj imens n termenii de rat de compresie posibil.

676 Codificarea entropic

NIVELUL APLICAIE

CAP. 7

Schemele de compresie pot fi mprite n dou categorii generale: codificarea entropic i codificarea sursei. Le vom discuta pe fiecare n parte. Codificarea entropic (entropy encoding) trateaz irurile de bii fr a se uita la ce nseamn biii respectivi. Este o tehnic general, fr pierderi i complet reversibil, aplicabil tuturor datelor. O vom ilustra prin trei exemple. Primul nostru exemplu de codificare entropic este codificarea n funcie de lungimea succesiunilor (run-length encoding). n multe tipuri de date, irurile de simboluri repetate (bii, numere etc.) sunt frecvente. Acestea pot fi nlocuite de un marcaj special care nu este permis n date, urmat de simbolul care se repet i de numrul apariiilor. Dac marcajul nsui apare n date, el este duplicat (ca n inserarea caracterelor). De exemplu, considerm urmtorul ir de cifre zecimale:
3150000000000008458711111111111116354674000000000000000000000065

Dac acum introducem A ca marcaj i folosim numere de dou cifre pentru numrarea repetrii, putem codifica irul de bii de mai sus ca
315A01284587A1131635467 4A02265

Aici codificarea n funcie de lungimea succesiunilor a redus irul de date la jumtate. Succesiunile sunt frecvente n multimedia. n audio, tcerea este reprezentat deseori de o succesiune de zerouri. n video, succesiunile de aceeai culoare apar n imagini ale cerului, pereilor i multor suprafee plane. Toate aceste secvene pot fi comprimate destul de mult. Al doilea exemplu de codificare entropic este codificarea statistic (statistical encoding). Prin aceasta nelegem c folosim un cod scurt pentru reprezentarea simbolurilor frecvente i un cod lung pentru reprezentarea celor puin frecvente. Codul Morse folosete acest principiu, cu E fiind . i Q fiind --. i aa mai departe. Codul Huffman i algoritmul Ziv-Lempel folosit de programul compress din Unix folosete de asemenea codificarea statistic. Cel de-al treilea exemplu de codificare entropic este codificarea CLUT (Color Look Up Table tabela de cutare a culorilor). Considerm o imagine folosind codificarea RGB cu 3 bii/pixel. Teoretic, imaginea poate conine 2 valori diferite de culori. In practic, va conine n mod normal mai puine valori, n special dac imaginea este un desen animat sau un desen generat de calculator i nu o fotografie. Presupunei c sunt folosite doar 256 de valori de culori. Un factor de aproape trei compresii poate fi obinut prin crearea unei tabele de 768 de octei, care conine valorile RGB ale celor 256 de culori folosite efectiv, i prin reprezentarea fiecrui pixel prin indexul valorii RGB n tabel. Acesta este un exemplu clar unde codificarea este mai lent dect decodificarea, deoarece codificarea necesit cutarea n tabel, n timp ce decodificarea poate fi fcut cu o singur operaie de indexare. Codificarea sursei Acum ajungem la codificarea sursei (source encoding), care profit de avantajele proprietilor datelor pentru a produce o compresie mai mare (de obicei, cu pierderi). Aici, de asemenea, vom ilustra ideea prin trei exemple. Primul nostru exemplu este codificarea diferenial (differential

SEC. 7.7

MULTIMEDIA

677

encoding), n care o secven de valori (de exemplu, discretizri audio) sunt codificate prin reprezentarea fiecrei valori ca diferen fa de valoarea precedent. Modularea diferenial a impulsurilor n cod, pe care am vzut-o n Cap. 2, este un exemplu al acestei tehnici. Este cu pierderi, deoarece semnalul poate varia att de mult ntre dou valori consecutive, nct diferena s nu poat fi reprezevtat n cmpul furnizat pentru exprimarea diferenelor i ca urmare se va nregisra cel puin o valoare incorect, iar o parte din informaie se va pierde. Codificarea diferenial este un fel de codificare a sursei, deoarece profit de faptul c nu sunt probabile salturi mari ntre puncte consecutive de date. Nu toate secvenele de numere au aceste proprieti. Un exemplu fr aceast proprietate este o list generat de calculator cu numere aleatorii de telefon, care s fie folosit de specialitii n marketing din televiziune pentru a deranja oamenii de la cin. Diferenele ntre numerele consecutive de telefon din list vor lua tot atia bii pentru reprezentare ca numerele nsele. Al doilea exemplu de codificare a sursei const n transformri (transformations). Prin transformarea semnalelor de la un domeniu la altul, compresia poate deveni mult mai uoar. S considerm, de exemplu, transformata Fourier din Fig. 2-l(e). Aici o funcie de timp este reprezentat ca o list de amplitudini. Date fiind valorile exacte ale tuturor amplitudinilor, funcia original poate fi reconstruit perfect. Cu toate acestea, fiind date doar valorile pentru primele, s zicem, opt amplitudini rotunjite la dou zecimale, va putea fi posibil s reconstruim semnalul iniial astfel, nct asculttorul s nu sesizeze c o parte a informaiei a fost pierdut. Ctigul const n faptul c transmiterea a opt amplitudini cere mai puini bii dect transmisia unei forme de und eantionat. Transformrile sunt, de asemenea, aplicabile datelor pentru imagini bidimensionale. S presupunem c matricea de 4x4 din Fig. 7-78(a) reprezint valorile din scara de gri dintr-o imagine monocrom. Putem transforma aceste date scznd valoarea din colul stnga-sus din toate elementele, exceptndu-1 pe el nsui, aa cum se arat n Fig. 7-78(b). Aceast transformare poate fi util dac se folosete codificarea de lungime variabil. De exemplu, valorile ntre -7 i +7 pot fi codificate cu numere de 4 bii i valorile ntre 0 i 255 pot fi codificate ca un cod special de 4 bii (-8) urmat de un numr de 8 bii.
Valoare pixel

4 pixeli

160 160 I 161 | 160

160
1 0

0
5 7 0
(b)

1
6 5 1

161 165 166 158 160 167 165 161 159 160 160 160
(a)

2
1 0

Fig, 7-78. (a) Valorile pixelilor pentru o parte a unei imagini, (b) O transformare n care elementul din colul stnga-sus este sczut din toate elementele, cu excepia lui nsui.

678

NIVELUL APLICAIE

CAP. 7

Dei aceast transformare simpl este fr pierderi, altele, mai utile dect ea, nu sunt fr pierderi. O important transformare spaial bidimensional ese DCT (Discrete Cosine Transformat!!! - transformarea cosinusoidal discret) (Feig i Winograd, 1992). Aceast transformare are proprietatea c pentru imagini fr discontinuiti brute, majoritatea puterii spectrului este n primii civa termeni, permind ca ceilali s fie ignorai fr o pierdere mare de informaie. Vom reveni la DCT n curnd. Al treilea exemplu de codificare a sursei este cuantificarea vectorului (vector quantization), care este direct aplicabil imaginilor. n acest caz, imaginea este mprit n dreptunghiuri de dimensiune fix. In plus fa de imagine, avem nevoie de o tabel de dreptunghiuri, de aceeai dimensiune cu dreptunghiurile imaginii (posibil construite din imagine). Aceast tabel se numete cartea codurilor (code book). Fiecare dreptunghi este transmis cutnd n cartea codurilor i transmind doar indexul n iocul ntregului dreptunghi. Atunci cnd cartea codurilor este construit dinamic (adic, pentru fiecare imagine), trebuie transmis i ea. Evident, dac un numr mic de dreptunghiuri domin imaginea, sunt posibile mari economii n lrgime de band. Un exemplu de cuantificare a vectorului este artat n Fig. 7-79. n Fig. 7-79(a), avem o gril de dreptunghiuri de dimensiune nespecificat. n Fig. 7-79(b). avem cartea codurilor. irul de ieire este exact lista ntregilor 0G1G22G322G04G0 artat n Fig. 7-79(c). Fiecare reprezint o intrare n cartea codurilor. ntr-un sens, cuantificarea vectorului ese o generalizare bidimensional a CLUT-uM. Diferena real const n ceea ce se ntmpl dac nu este gsit o potrivire. Sunt posibile trei strategii. Prima strategie este folosit pentru gsirea celei mai bune potriviri. A doua strategie este pentru cea mai bun potrivire i adugarea informaiilor despre cum s se mbunteasc potrivirea (de exemplu, adugarea valorii medii adevrate). A treia strategie este folosirea celei mai bune potriviri i adugarea a ceea ce este necesar pentru ca decodificatorui s reconstruiasc daeie exact. Primele dou strategii sunt cu pierderi, dar permit comprimri mari. A treia strategie este fr pierderi, dar este mai puin eficient ca un algoritm de comprimare. Din nou, vedem c a codificare (potrivirea abloanelor) se consum mai mult timp dect la decodificare (indexare ntr-o tabel).
Ptrat cu muti olxss Cartea

0
2 3 0
d.

0 0 0 0 i 2 3

2
? 0

2
4

(ci

7-79, Un exemplu de cuantificare a vectorului, (a) O imagine divizat n ptrate, (b) O carte de coduri pentru imagine, (c) Imaginea codificat.

SEC. 7.7

MULTIMEDIA

679

Standardul JPEG
Standardul JPEG (Joint Photographic Experts Group - grupul comun al experilor fotografi) pentru comprimarea imaginilor cu tonuri continue (de exemplu, fotografii), a fost dezvoltat de experii n fotografii lucrnd sub auspiciile ITU, ISO i IEC, un alt organism de standarde. Este important pentru multimedia deoarece la o prim aproximare, standardul multimedia pentru filme. MPEG, este codificarea JPEG a fiecrui cadru separat, plus cteva caracteristici pentru comprimarea ntre cadre i detectarea micrii. JPEG este definit n Standardul International 10918. JPEG are patru moduri i multe opiuni. Standardul este mai asemntor cu o list de cumprturi dect cu un algoritm simplu. Pentru scopurile noastre, doar modul secvenial cu pierderi este relevant, iar acesta este ilustrat n Fig. 7-80. Cu toate acestea, ne vom concentra asupra modului n care JPEG este folosit n mod normal pentru codificarea imaginilor video de 24-bii RGB i vom lsa la o parte detalii minore pentru simplitate.
Intrare Transformarea j |i i cosinusoidal rH Cuantificarea ( I discret j | | Codificarea I -l funcie de j ] lungime | Codificarea statistic a ieirii Ieire

Pregtirea blocului

Cuantificarea diferenial

Fig. 7-80. Operaia JPEG n modul secvenial cu pierderi. Pasul 1 de codificare a imaginii cu JPEG este pregtirea blocului. Pentru simplitate, s presupunem c intrarea JPEG este o imagine RGB de 640x480 cu 24 bii/pixel, aa cum se arat n Fig. 7-81(a). Deoarece folosirea, luminanei i crominanei d o mai bun compresie, vom calcula mai nti luminanta, Y, i cele dou crominante, /i Q (pentru NTSC), n concordan cu urmtoarele formule:
! = 0,60R - 0,28G - 0,32B Q = O,2!R-G,52G + O,31B

Pentru PAL, crominanele sunt notate cu U i V i coeficienii difer, dar ideea este aceeai. SECAM difer att de NTSC ct si de PAL.
RGB -640

9*! > > > e e ! I ! ! 8J|fl

Y 840

32C

. Pixe! de 8 bii 1 Bloc

00 e
9Ofteo

/
Pixel de 24 bii Bioc 4799 (b)

Fig. 7-81, (a) Date de intrare RGB. (b) Dup pregtirea blocului.

680

NIVELUL APLICAIE

CAP. 7

Pentru YJ i Q sunt construite matrici separate, fiecare cu elemente ntre 0 i 255. Apoi, blocuri ptrate de patru pixei sunt aranjate n matricele I i Q pentru a le reduce la 320x240. Aceast reducere este cu pierderi, dar ochiul abia dac observ, deoarece el rspunde la luminan mai mult dect la crominan. Cu toate acestea, datele sunt comprimate cu un factor de doi. Acum se scade 128 din fiecare element al celor trei matrice pentru a aduce zero la mijlocul intervalului. n fine, fiecare matrice este divizat n blocuri de 8x8. Matricea Y are 4800 blocuri; celelalte dou au 1200 de blocuri fiecare, aa cum se arat n Fig. 7-81(b).

. / / / / /X V I I

/ / / / / |7T// 7 7/
O Q

[IIIIIJIILJZTZLJ

7 / / /
Fx

Fig. 7-82. (a) Un bloc a matricei Y. (b) Coeficienii DCT. Pasul 2 al lui JPEG const n a aplica separat o transformare cosinusoidal discret pentru fiecare din cele 7200 de blocuri. Ieirea fiecrui DCT este o matrice de 8x8 cu coeficienii DCT. Elementul DCT (0,0) este valoarea medie a blocului. Celelalte elemente spun ct putere spectral este prezent la fiecare frecven spaial. Teoretic, DCT este fr pierderi, dar n practic folosirea numerelor n virgul mobil i a funciilor transcedente introduce ntotdeauna erori de rotunjire care conduc la o pierdere de informaii. n mod normal, aceste elemente se micoreaz rapid cu distana de la origine, (0,0), aa cum este sugerat n Fig. 7-82. Odat ce DCT-ul este complet, JPEG trece la pasul 3, numit cuantificare (quantization), n care coeficienii DCT cei mai puini importani sunt eliminai. Aceast transformare (cu pierderi) este fcut prin mprirea fiecrui coeficient din matricea DCT de 8*8 ia o pondere luat dintr-o tabel. Dac toate ponderile sunt 1, transformarea nu face nimic. Totui, atunci cnd ponderile cresc rapid de la origine, frecvenele spaiale nalte sunt eliminate imediat. Un exemplu al acestui pas este artat n Fig. 7-83. Aici vedem matricea iniial DCT, tabela de cuantificare i rezultatul obinut prin mprirea fiecrui element DCT prin elementul corespunztor din tabela de cuantificare. Valorile din tabela de cuantificare nu fac parte din standardul JPEG. Fiecare aplicaie trebuie s i le furnizeze, permind s se controleze raportul compresie/pierderi. Pasul 4 reduce valoarea (0,0) a fiecrui bloc (cea din colul stnga sus), nlocuind-o cu diferena fa de elementul corespunztor din blocul precedent. Deoarece aceste elemente sunt mediile respectivelor blocuri, ele trebuie s se modifice lent, aa nct considerarea valorilor difereniale ar trebui s reduc majoritatea dintre ele la valori mici. Diferenele nu sunt calculate din celelalte valori. Valorile (0,0) sunt numite componente DC; celelalte valori sunt componente AC.

SEC. 7.7

MULTIMEDIA
Coeficieni DCT
150 80 40 14 92 75 36 10 52 38 26 8 12 8 6 4

681

Coeficieni cuantificai
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
150 80 20 4 92 75 18 3

4 6 7 2 0 0 0

2 1 4 1 0 0 0 0

1 1 1 0 0 0 0 0

0 0

0 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0

26 19 13 2 3 2 2 1
1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0
0 0 0 0 0

2
1 0 0

0
0 0

2 2 1 1 0 0

1 0

Tabela de cuantificare
1 1 1 1 2 4 8 2 2 2 4 8 4 4 4 4 8 8 16 32 64 8 16 32 64 8 16 32 64

2
4 8

8 16 32 64 8 16 32 64 16 16 16 16 16 16 32 64 32 32 32 32 32 32 32 64
64 64 64 64 64 64 64 64

Fig. 7-83. Calculul coeficienilor DCT cuantificai. Pasul 5 liniarizeaz cele 64 de elemente i aplic listei codificarea dup lungimea succesiunilor. Scanarea blocului de la stnga la dreapta i apoi de sus n jos nu va concentra zerourile mpreun, aa nct se folosete un model de cutare n zigzag, aa cum este artat n Fig. 7-84. n acest exemplu, modelul n zigzag produce 38 de zerouri consecutive la sfritul matricei. Acest ir poate fi redus la un singur numr spunnd c sunt 38 de zerouri.
4
18 ,3 13 .2

150- :>80

-0

92

75
y

x'
V
r

0"

:0

0
s

2e
3 1

2
!

,0

O"''

of'
0
0 '*

X y X X
o"
0

,0 0'

X
y
fi

,0
0

o'-

A'
0

0
0

Fig. 7-84. Ordinea de transmitere a valorilor cuantificate. Acum avem o list de numere care reprezint imaginea (n spaiu transformat). Pasul 6, Huffman, codific numerele pentru memorare sau transmitere.

682

NIVELUL APLICAIE

CAP. 7

JPEG poate prea complicat, pentru c el este cu adevrat complicat. Cu toate acestea, deoarece produce o compresie de 20:1 sau mai bun, este larg folosit. Decodificarea unei imagini JPEG cere execuia algoritmului invers. Spre deosebire de ceilali algoritmi de compresie pe care i-am studiat, JPEG este simetric: decodificarea ia acelai timp ca i codificarea. Destul de interesant, datorit proprietilor matematice ale DCT-ului, este posibil s se execute anumite transformri geometrice (de exemplu, rotaia imaginii) direct asupra matricei transformate, fr regenerarea imaginii iniiale. Aceste transformri sunt discutate n (Shen i Sethi, 1995). Proprieti similare se aplic de asemenea ia MPEG audio comprimat (Broadhead i Owen, 1995). Standardul MPEG In fine, ajungem la miezul lucrurilor: standardele MPEG (Motion Picture Experts Group grupul experilor n filme). Acetia sunt algoritmii principali folosii pentru compresia video i sunt standarde internaionale din 1993. Deoarece filmele conin att imagini ct i sunete, MPEG le poate comprima pe amndou, dar deoarece video ia mai mult lrgime de band i de asemenea conine mai mult redundan dect audio, ne vom concentra nti asupra compresiei video MPEG. Primul standard finalizat a fost MPEG-1 (Standard International 11172). Scopul lui a fost de a produce ieire video de calitatea video recorder-elor (352x240 pentru NTSC) folosind o rat de bii de 1,2 Mbps. Deoarece am vzut anterior c video necomprimat poate ajunge la 472 Mbps, reducerea lui la 1,2 Mbps nu este n ntregime nensemnat, chiar i la aceast rezoluie sczut. MPEG-1 poate fi transmis pe linii torsadate la distane modeste. MPEG-1 este de asemenea folosit pentru memorarea filmelor pe CD-ROM-uri n formate CD-I i CD-Video. Urmtorul standard din familia MPEG a fost MPEG-2 (Standard International 13818), care a fost proiectat iniial pentru comprimarea video de calitate de difuzare ntre 4 i 6 Mbps, ca s se potriveasc ntr-un canai de difuzare NTSC sau PAL. Mai trziu, MPEG-2 a fost extins pentru a suporta rezoluii nalte, incluznd HDTV. MPEG-4 este pentru video conferine de rezoluie medie cu cadre de vitez sczut (10 cadre/sec) i la lrgimi sczute de band (64 Kbps). Aceasta permite ca video-conferinele s fie inute pe un singur canal N-ISDN B. Dat fiind aceast numerotare, cineva poate crede c urmtorul standard este MPEG-8. De fapt, ISO le numeroteaz liniar, nu exponenial. Original, MPEG-3 exist de fapt. A fost creat pentru HDTV, dar proiectul a fost anulat mai trziu i HDTV a fost adugat la MPEG-2. Principiile de baz ale lui MPEG-1 i MPEG-2 sunt similare, dar detaliile sunt diferite. La o prim aproximare, MPEG-2 este un superset al lui MPEG-1, cu posibiliti, formate de cadre i opiuni de codificare suplimentare. Se pare c MPEG-1 va domina filmele de pe CD-ROM-uri i MPEG-2 va domina transmisia video pe distane mari. Vom discuta MPEG-1 nti i apoi MPEG-2. MPEG-1 are trei pri: audio, video i sistem, care le integreaz pe celelalte dou, aa cum este artat n Fig. 7-85. Codificatoarele audio i video lucreaz independent, ceea ce ridic ntrebarea cum se sincronizeaz cele dou fluxuri la receptor. Aceast problem se rezolv avnd un ceas sistem de 90-kHz, care afieaz timpul curent pentru ambele codificatoare. Aceste valori sunt pe 33 de bii, pentru a permite filmelor s ruleze 24 de ore fr depirea valorii maxime. Aceste amprente de timp sunt incluse n ieirea codificat i propagate spre receptor, care le poate folosi pentru sincronizare ntre irurile video si audio.

SEC. 7.7

MULTIMEDIA

683

Semnal audio Codificator audio Multiplexorul Ieirea MPEG-1 de sistem

Ceas

<

Semnal video Codificator video

Fig. 7-85. Sincronizarea fluxurilor audio i video n MPEG-1. Compresia audio MPEG este fcut prin eantionarea formei de und la 32 KHz, 44,1 kHz sau 48 kHz. Ea poate s gestioneze mono, stereo disjunct (fiecare canal comprimat separat) sau stereo reunit (este exploatat redundana inter-canale). Este organizat pe trei nivele, fiecare dintre ele aplicnd optimizri suplimentare pentru a obine o compresie mai mare (i un cost mai mare). Nivelul 1 este schema de baz. Acest nivel este folosit, de exemplu, n sistemul cu band digital DCC. Nivelul 2 adaug schemei de baz alocarea avansat de bii. Este folosit pentru CD-ROM-uri audio i de pistele sonore ale filmelor. Nivelul 3 adaug filtre hibride, cuantificare neunifonn, codificare Huffman i alte tehnici avansate. Audio MPEG poate comprima un CD cu muzic rock 'n roii pn la 96 Kbps fr o pierdere perceptibil a calitii, chiar i pentru fanii rock 'n roll-ului fr pierderi de auz. Pentru un concert de pian, sunt necesari cel puin 128 Kbps. Numrul difer, pentru c rata semnal-zgomot pentru rock 'n roii este mai mare dect pentru concertul de pian (n sens ingineresc, n orice caz). Comprimarea audio este realizat prin transformarea Fourier rapid a semnalului audio pentru a-1 converti din domeniul timpului n cel al frecvenei. Spectrul rezultat este divizat n 32 de benzi de frecven, fiecare procesat separat. Atunci cnd exist dou canale stereo, redundana inerent n a avea dou surse audio suprapuse este de asemenea exploatat. Fluxul audio MPEG-1 rezultat este ajustabil de la 32 Kbps la 448 Kbps. O introducere n acest proces este dat n (Pan, 1995). Acum s considerm compresia video MPEG-1. Exist dou feluri de redundan n filme: spaial i temporal. MPEG-1 le folosete pe amndou. Redundana spaial este folosit prin simpla codificare separat a fiecrui cadru cu JPEG. Aceast abordare este cteodat folosit, n special atunci cnd se folosesc accese aleatorii la acelai cadru, ca n editarea produciilor video. n acest mod, este obinut o lrgime de band comprimat n intervalul 8 Mbps -10 Mbps. O comprimare suplimentar poate fi obinut profitnd de faptul c, adesea, cadre consecutive sunt aproape identice. Acest efect este mai mic dect poate aprea la prima vedere, deoarece muli fabricani de filme taie scenele la fiecare 3 sau 4 secunde (cronometrai filmul i numrai scenele). Cu toate acestea, chiar o serie de 75 de cadre similare ofer potenialul unei reduceri mari fa de simpla codificare separat a fiecrui cadru cu JPEG. Pentru scene n care aparatul de filmat i fundalul sunt staionare i unul sau mai muli actori se plimb ncet, aproape toi pixelii vor fi identici de la un cadru la altul. n acest caz, scznd fiecare cadru din cel precedent i aplicnd JPEG pe diferena lor, se obine un rezultat bun. Cu toate acestea, pentru scenele n care aparatul de filmat micoreaz sau mrete, aceast tehnic d gre.

684

NIVELUL APLICAIE

CAP. 7

Este nevoie de ceva care s compenseze micarea. Aceasta este exact ceea ce face MPEG; este principala diferen ntre MPEG i JPEG. Ieirea MPEG-1 const din patru tipuri de cadre: 1. 2. 3. 4. Cadre I (Intracoded): Fotografii codificate JPEG auto-coninute. Cadre P (Predictive): Diferena bloc cu bloc fa de ultimul cadru. Cadre B (Bidirecional): Diferenele fa de ultimul i de urmtorul cadru. Cadre D (DC-coded): Medii ale blocurilor folosite pentru avans rapid.

Cadrele I sunt imagini codificate folosind JPEG, folosind de asemenea luminana cu rezoluie complet i crominana cu jumtate de rezoluie de-a lungul fiecrei axe. Este necesar s facem ca aceste cadre I s apar periodic n irul de ieire din trei motive. nti, MPEG-1 poate fi folosit pentru o transmisie cu trimitere multipl, cu vizualizatori care le acordeaz dup dorin. Dac toate cadrele depind de predecesoarele lor pn la primul cadru, cineva care a pierdut primul cadru nu va putea decodifica cadrele succesive. n al doilea rnd, dac un cadru a fost recepionat eronat, nu este posibil decodificarea n continuare. n al treilea rnd, fr cadre I, atunci cnd se face un avans sau o revenire rapid, decodificatorul ar trebui s calculeze fiecare cadru peste care trece, aa nct s tie valoarea complet a cadrului pe care este oprit. Din aceste motive, cadrele I sunt inserate la ieire o dat sau de dou ori pe secund. Cadrele P, n contrast, codific diferenele ntre cadre. Ele se bazeaz pe ideea de macroblocuri (macroblocks), care acoper 16x16 pixeli n spaiul luminanei i 8x8 pixeli n spaiul crominanei. Un macrobloc este codificat prin cutarea cadrului precedent sau ceva care difer foarte puin de el. Un exemplu unde se folosesc cadrele P este redat n Fig. 7-86. Aici vedem trei cadre consecutive care au acelai fundal, dar difer prin poziia unei singure persoane. Macroblocurile care conin scena fundalului se vor potrivi exact, dar macroblocurile coninnd persoana vor fi afiate la o poziie cu o deplasare de valoare necunoscut i va trebui s fie nregistrate.
\

te

/
JU

SS

ia r

\
rf

11 JU

I)s 1

ii

i
i

K \

A n
HM

J-

M-

Fig. 7-86. Trei cadre consecutive. Standardul MPEG-1 nu specific cum s se fac cutarea, ct de departe s se caute sau ct de bun trebuie s fie o potrivire pentru a conta. Aceasta depinde de fiecare implementare. De exemplu, o implementare poate cuta un macrobloc la poziia curent din cadrul precedent i toate celelalte deplasri ale poziiilor Ax pe direcia x i Ay pe direcia y. Pentru fiecare poziie, poate fi calculat numrul de potriviri n matricea de luminana. Poziia cu cel mai mare scor va fi declarat ctigtoare, cu condiia s fi fost peste un prag predefinit. Altfel, macroblocul se spune c lipsete. Sunt desigur posibili i ali algoritmi mai complicai.

SEC. 7.7

MULTIMEDIA

685

Dac este gsit un macrobloc, acesta este codificat lund diferena fa de valoarea sa din cadrul anterior (pentru luminan i pentru cele dou crominane). Aceste matrice diferene sunt apoi subiectul unei transformri cosinusoidale discrete, sunt cuantificate, codificate cu lungimea succesiunilor i codificate Huffman, la fel ca i cu JPEG. Valoarea pentru macrobloc n fluxul de ieire este vectorul de micare (ct de departe s-a micat macroblocul din poziia lui precedent pe fiecare direcie), urmat de lista codificat Huffman a numerelor. Dac macroblocul nu este localizat n cadrul precedent, valoarea curent este codificat cu JPEG, la fel ca n cadrul I. Evident, algoritmul este puternic asimetric. O implementare este liber s ncerce fiecare poziie plauzibil din cadrul precedent, dac vrea s-o fac, ntr-o ncercare disperat de a localiza fiecare ultim macrobloc. Aceast tratare va minimiza fluxul MPEG-1 codificat, cu preul unei codificri foarte lente. Aceast abordare poate fi bun pentru o singur codificare a unei filmoteci, dar va fi groaznic pentru o video conferin n timp-real. Similar, fiecare implementare este liber s decid ce nseamn un macrobloc gsit". Aceast libertate permite implementatorilor s concureze prin calitatea i viteza algoritmilor proprii, dar ntotdeauna produce MPEG-1. Indiferent de ce algoritm de cutare este folosit, ieirea final este ori codificarea JPEG a macroblocului curent, ori codificarea JPEG a diferenei ntre macroblocul curent i unul din cadrul precedent la o deplasare specificat fa de cel curent. Pn acum, decodificarea MPEG-1 este direct. Decodificarea cadrelor I este la fel ca decodificarea imaginilor JPEG. Decodificarea cadrelor P cere decodificatorului s memoreze cadrul precedent i apoi s construiasc noul cadru ntr-un nou tampon bazat pe macroblocuri codificate complet i macroblocuri care conin diferene fa de cadrul precedent. Noul cadru este asamblat macrobloc cu macrobloc. Cadrele B sunt similare cadrelor P, cu excepia faptului c ele permit ca macroblocul de referin s fie sau ntr-un cadru precedent sau n cel urmtor. Aceast libertate suplimentar permite o compensare mbuntit a micrii i este de asemenea util atunci cnd obiectele trec naintea sau n spatele altor obiecte. Pentru a codifica cadrele B, codificatorul trebuie s in n memorie simultan trei cadre decodificate: cel vechi, actualul i viitorul. Dei cadrele B furnizeaz cea mai bun compresie, nu toate implementrile le suport. Cadrele D sunt folosite doar pentru a face posibil afiarea imaginilor de rezoluie mic atunci cnd se face o revenire sau o naintare rapid. Realizarea decodificrii MPEG-1 normal n timp-real este destul de dificil. Cernd ca decodificatorul s-o fac atunci cnd se mic prin video de zece ori mai repede dect normal, este prea mult. n schimb, cadrele D sunt folosite pentru a produce imagini de joas rezoluie. Fiecare intrare a cadrului D este valoarea medie a unui bloc, fr codificare ulterioar, fcnd posibil afiarea n timp-real. Aceast facilitate este important pentru a permite oamenilor s caute prin video, la vitez mare o anumit scen. Terminnd tratarea lui MPEG-1, s trecem la MPEG-2. Codificarea MPEG-2 este fundamental similar cu codificarea MPEG-1 cu cadre I, P, i B. Cadrele D nu sunt suportate. De asemenea, transformarea cosinusoidal discret este de 10x10 n loc de 8x8, pentru a avea cu 50% mai muli coeficieni i implicit o calitate mai bun. Deoarece este folosit n televiziune i n aplicaiile CDROM, MPEG-2 suport att imagini progresive ct i ntreesute, n timp ce MPEG-1 suport doar imagini progresive. Sunt i alte detalii minore care difer n cele dou standarde.

686

NIVELUL APLICAIE

CAP. 7

n loc de a suporta doar un singur nivel de rezoluie, MPEG-2 suport patru: sczut (352x240), principal (720x480), nait-1440 (1440x1152) i nalt (1920x1080). Rezoluia sczut este pentru VCRuri i compatibilitate cu MPEG-1. Principalul nivel este cel normal pentru difuzarea NTSC. Celelalte dou sunt pentru HDTV. n afar de faptul c are patru niveluri de rezoluie, MPEG-2 mai suport cinci profite (profiles). Fiecare profil marcheaz anumite zone ale aplicaiei. Profilul principal este de uz general i probabil c majoritatea cipurilor vor fi optimizate pentru profilul principal i nivelul de rezoluie principal. Profilul simplu este similar celui principal, cu excepia excluderii folosirii cadrelor B, pentru a face codificarea i decodificarea software mai uoar. Celelalte profile folosesc scalabiliatea i HDTV-ul. Profilele difer n termenii prezenei sau absenei cadrelor B, rezoluiei crominanei i scalabilitii fluxului de bii codificat la alte formate. Rata de compresie a datelor pentru fiecare combinaie de rezoluie i profile este diferit. Acestea variaz ntre 3 Mbps i 100 Mbps pentru HDTV. Cazul normal este de la 3 la 4 Mbps. Date despre performanele MPEG sunt date n (Pancha i El Zarki, 1994). MPEG-2 are un mod mai general de multiplexare audio i video dect modelul MPEG-1 din Fig. 7-85. El definete un numr nelimitat de fluxuri elementare, incluznd video i audio, dar incluznd de asemenea fluxurile de date care trebuie sincronizate cu audio i video, de exemplu, subtitlurile n mai multe limbi. Fiecare flux este mpachetat cu amprente de timp. Un exemplu simplu de dou fluxuri este artat n Fig. 7-87.
elementar mpachetat Video Codificator video mpachetator

Flux

*- (Pachete de lungime variabil, baz de timp comun}

Ceas

Audio

Codificator audio Flux

(Pachete de lungime fix, fr baz de timp comun)

mpachetat

elementar

Fig. 7-87. Multiplexarea celor dou fluxuri n MPEG-2. Ieirea fiecrui mpachetator este un PES (Packetized Elementary Stream - flux elementar mpachetat). Fiecare pachet PES are n jur de 30 de cmpuri i indicatori de antet, incluznd lungimile, identificatorii de flux, controlul criptrii, statutul dreptului de autor, amprente de timp i CRC. Fluxurile PES pentru audio, video i posibil date sunt apoi multiplexate mpreun ntr-un singur flux de ieire pentru transmitere. Sunt definite dou tipuri de fluxuri. Fluxul de program (program

SEC. 7.7

MULTIMEDIA

687

stream) al lui MPEG-2 este similar cu fluxul sistem al lui MPEG-1 din Fig. 7-85. Este folosit pentru multiplexarea ansamblului fluxurilor elementare care au o baz de timp comun i care trebuie afiate ntr-un mod sincronizat. Fluxul de program folosete pachete cu lungime variabil. Cellalt flux MPEG-2 este fluxul de transport (transport stream). Este folosit pentru multiplexarea fluxurilor (incluznd fluxurile de program) care nu folosesc o baz de timp comun. Pachetele fluxului de transport au lungime fix (188 de bii), pentru a face mai uoar limitarea efectelor pachetelor eronate sau pierdute n timpul transmisiei. Este bine de observat c toate schemele de codificare despre care am discutat se bazeaz pe modelul de codificare cu pierderi, urmat de o transmisie fr pierderi. Nici JPEG, nici MPEG, de exemplu, nu pot recupera, ntr-un mod convenabil, pachetele pierdute sau eronate. O abordare diferit pentru transmisia imaginilor este de a transforma imaginile ntr-un mod n care se separ informaia important de cea mai puin important (cum face DCT, de exemplu). Apoi se adug o cantitate de redundan (chiar pachete duplicate) la informaia important i niciuna celei mai puin importante. Dac unele pachete sunt pierdute sau deformate, este posibil s afim imagini rezonabile fr retransmisie. Aceste idei sunt descrise n detaliu n (Danskin .a., 1995). Ele sunt n special aplicabile la transmisiile cu trimitere multipl, unde reacia invers de la fiecare receptor este imposibil. 7.7.4 Video Ia Cerere Video la cerere este cteodat comparat cu un magazin de nchiriere a casetelor video. Utilizatorul (clientul) selecteaz unul dintr-un numr mare.de video-uri pe care le are la dispoziie i l ia acas pentru a-1 viziona. Doar c pentru video la cerere, selecia este fcut acas folosind telecomanda televizorului i caseta video ncepe imediat. Nu este necesar o excursie la magazin. Este inutil s spunem c implementarea video-uui la cerere este un pic mai complicat dect descrierea lui. n aceast seciune vom face o prezentare a ideilor de baz i a implementrii lor. O descriere a unei implementri reale poate fi gsit n (Nelson i Linton, 1995). O tratare mai general a televiziunii interactive poate fi gsit n (Hodge, 1995). Alte referine interesante sunt (Chang .a., 1994; Hodge .a., 1993; i Little i Venkatesh, 1994). Este video la cerere ntr-adevr precum nchirierea unei casete video sau mai degrab precum alegerea unui film pentru vizionare la sisteme de televiziune prin cablu cu 500 sau 5000 de canale? Rspunsul are importante implicaii tehnice. n particular, utilizatorii de casete video nchiriate sunt obinuii cu ideea s opreasc un film, s se duc la buctrie sau ia baie i apoi s continue din locul n care caseta video a fost oprit. Telespectatorii nu se ateapt s opreasc un program. Pentru a concura cu succes cu magazinele de nchiriere, video-ul la cerere ar trebui s poat opri, porni i relua casetele video la dorin. Asigurarea acestei posibiliti oblig furnizorul de video s transmit o copie separat fiecrui utilizator. Pe de alt parte, dac video-ul la cerere este vzut mai mult ca o televiziune avansat, atunci este suficient ca furnizorul de casete video s porneasc fiecare video popular la fiecare 10 minute i s ruleze non-stop. Un utilizator care dorete s vad un astfel de film trebuie s atepte cel mult 10 minute pentru ca el s nceap. Dei oprirea i repornirea nu este posibil aici, o persoan care se ntoarce n camer dup o scurt pauz, poate comuta pe un alt canal, care prezint aceeai caset video, dar cu o ntrziere de 10 minute. Ceva se va repeta dar nu va fi pierdut nimic. Aceast schem

688

NIVELUL APLICAIE

CAP. 7

este numit video aproape la cerere (near video on demand). El ofer posibilitatea unui cost mult mai sczut, deoarece acelai semnal de la furnizorul de casete video poate ajunge la mai muli utilizatori odat. Diferena ntre video la cerere i video aproape la cerere este similar cu diferena ntre a circula cu maina proprie i a lua autobuzul. Privitul filmelor aproape la cerere este numai unul dintr-o gam larg de noi servicii posibile de cnd este disponibil reeaua n band larg. Modelul general pe care muli l folosesc este ilustrat n Fig. 7-88. n centrul sistemului se afl o reea cu coloan vertebral de arie larg (naional sau internaional) cu lrgime de band mare. La ea sunt conectate mii de reele de distribuie local, cum ar fi cabluri TV sau sisteme distribuite ale companiei de telefoane. Sistemele de distribuie local ajung n casele oamenilor, unde se opresc n cutii de conectare (set-top boxes), care sunt, de fapt, calculatoare personale specializate. Mii de furnizori de informaie sunt ataai la coloana vertebral prin fibre optice de lrgime de band mare. Unii dintre acetia vor oferi video plat-pe-vizualizare sau CD audio plat-peascultare. Altele vor oferi servicii specializate, precum cumprturi de la domiciliu (cu posibilitatea de a roti o cutie de sup i a mri lista de ingrediente sau de a vedea un video-clip despre cum s conduc o main de cosit). Fr ndoial c n curnd vor deveni disponibile sporturile, tirile, relurile I Love Lucy", accesul la WWW i nenumratele alte posibiliti.

Server video

Casa Reea de distribuie j clientului local

coloan vertebral de reea ATM sau SONET

Server local de virtualizare

Server audio

Reea de distribuie local

Fig. 7-88. Vedere general a unui sistem video la cerere. n sistem sunt incluse i servere locale (de virtualizare) care permit ca video-urile s fie amplasate mai aproape de utilizatori, pentru a economisi lrgimea de band n timpul orelor de vrf. Cum se vor potrivi aceste piese i cui vor aparine se va dezbate n industrie. n cele ce urmeaz, vom examina cum sunt create piesele principale din sistem: video-serverele, reeaua distribuit si cutiile de conectare.

SEC. 7.7 Video-Servere

MULTIMEDIA

689

Pentru a avea video (aproape) la cerere, avem nevoie de video-servere (video servers) capabile s memoreze si s transmit simultan un numr mare de filme. Numrul total de filme realizate este estimat la 65.000 (Minoli, 1995). Atunci cnd este comprimat n MPEG-2, un film normal ocup n jur de 4 GB, aa c 65.000 de filme ar necesita n jur de 260 terabii. Adugai la aceasta toate programele vechi de televiziune care au fost vreodat realizate, filmele de sport, jurnalele sonore, cataloagele vorbitoare pentru cumprturi etc. i este clar c ne confruntm cu o problem de nmagazinare foarte dificil. Cea mai ieftin soluie pentru memorarea unui volum mare de informaie este pe band magnetic. Acesta a fost mereu cazul i probabil va continua s fie. O band DAT poate memora 8 GB (dou filme) la un cost de circa 5 dolari/gigabii. Actualmente sunt comercializate servere mari, mecanice, de benzi care pstreaz mii de benzi i au un bra robotic pentru extragerea fiecrei benzi i inserarea ei ntr-o unitate de band. Problema cu aceste sisteme este timpul de acces (n special pentru al doilea film de pe band), viteza de transfer i numrul limitat de uniti de band (pentru a servi n filme deodat, unitatea necesit n uniti). Din fericire, experiena cu magazinele de nchiriat video, bibliotecile publice i alte astfel de organizaii arat c nu toate produsele sunt la fel de populare. Experimental, atunci cnd sunt disponibile N filme, fracia tuturor cererilor pentru filmul care ocup locul k n topul popularitii este de aproximativ C/k (Chervenak, 1994). Aici C este calculat pentru a normaliza suma la 1, cu formula: C=1/(1+1/2+1/3+1/4+1/5+...+1/N) Astfel, filmul de pe primul loc este de apte ori mai popular dect filmul de pe locul apte. Acest rezultat este cunoscut drept legea lui Zipf (Zipf, 1949). Faptul c unele filme sunt mai populare dect altele sugereaz o soluie posibil n forma ierarhiei de memorare, aa cum se arat n Fig. 7-89. Aici, performana crete cu ct se urc n ierarhie.
RAM
RAID Disc optic Arhiv pe band magnetic

Fig. 7-89. Ierarhia video-serverului de memorare. O alternativ pentru nregistrare este memoria optic. CD-ROM-urile actuale memoreaz doar 650 MB, dar urmtoarea generaie va pstra 4 GB, pentru a le face potrivite pentru distribuirea de filme MPEG-2. Dei timpii de cutare sunt mici n comparaie cu discurile magnetice (100 msec fa

690

NIVELUL APLICAIE

CAP. 7

de 10 msec), costul lor sczut i fiabilitatea ridicat fac din automatele optice care conin mii de CDROM-uri o alternativ bun fa de band n cazul filmelor cel mai mult folosite. Urmeaz discurile magnetice. Acestea au timp de acces mic (10 msec), viteza de transfer mare (10 MB/sec), i capaciti substaniale (10 GB), care le fac potrivite pentru memorarea filmelor care sunt transmise efectiv (spre deosebire de simpla memorare pentru cazul c cineva ar dori vreodat s le vad). Marele lor inconvenient este costul ridicat pentru memorarea filmelor care sunt rar accesate. n vrful piramidei din Fig. 7-89 este RAM. RAM-ul este cel mai rapid mediu de stocare, dar i cel mai scump. Este potrivit pentru filmele ale cror pri sunt transmise ctre destinaii diferite n acelai timp (de exemplu, adevratele video la cerere pentru 100 de utilizatori care au pornit la diferite momente de timp). Atunci cnd preurile la RAM ajung la 10 dolari/megaoctet, un film de 4-GB va ocupa RAM n valoare de 40.000 de dolari, aa c existena a 100 de filme n RAM va costa 4 milioane de dolari pentru 400 GB de memorie. n plus, pentru un video-server de 10 milioane de dolari, aceast cheltuial ar putea fi justificat dac fiecare film are suficieni clieni care pltesc simultan. Deoarece un video-server nu este dect un imens dispozitiv de I/O n timp-real, el necesit o alt arhitectur hardware i software dect un PC sau o staie de lucru UNIX. Arhitectura hardware a unui video-server tipic este prezentat n Fig. 7-90. Serverul are una sau mai multe uniti centrale RISC de nalt performan, fiecare cu memorie local, o memorie principal partajat, o memorie tampon RAM de mare capacitate pentru filmele populare, o varietate de echipamente de stocare pentru pstrarea filmelor i hardware de conectare n reea, n mod normal o interfa optic cu o reea ATM (sau SONET) la viteza unui OC-3 sau mai ridicat. Aceste subsisteme sunt conectate printr-o magistral de foarte mare vitez (cel puin de 1 GB/sec).
RAM local Memorie principal Magistral de vitez mare Controler de band magnetic Controler de disc optic Controler de disc magnetic Interfa de reea Memorie cache(RAM) pentru filme

CPU

Arhiv benzi

Tonomat optic

a R R R Q e e e e e e e e e e e
RAID

Ctre comutator ATM

Fig. 7-90. Arhitectura hardware a unui video-server tipic. Acum s inspectm programele pentru video-server. Unitile centrale sunt folosite pentru acceptarea cererilor utilizatorilor, localizarea filmelor, mutarea datelor ntre echipamente, taxarea

SEC. 7.7

MULTIMEDIA

691

clienilor, i multe alte funcii. Unele dintre acestea nu sunt critice n timp, dar multe altele sunt, aa c unele, dac nu toate unitile centrale, va trebui s ruleze un sistem de operare de timp-real, cum ar fi un micronucleu de timp-real. n mod normal aceste sisteme mpart munca n operaii mai simple, fiecare cu un termen final cunoscut. Atunci planificatorul poate rula un algoritm de tip alege termenul cel mai apropiat" sau un algoritm monoton al vitezelor (Liu i Layland, 1973). Software-ul unitii centrale definete i natura interfeei pe care serverul o prezint clienilor (servere de virtualizare i cutii de conectare). Exist dou tipuri populare. Primul este un sistem de fiiere tradiional, n care clienii pot deschide, citi, scrie i nchide fiiere. Spre deosebire de complicaiile introduse de ierarhia de memorii i consideraiile de timp-real, un astfel de server poate avea un sistem de fiiere modelat dup cel din UNIX. Al doilea tip de interfa este bazat pe modelul video-recorderului. Comenzile adresate serverului solicit deschiderea, rularea, oprirea, derularea rapid nainte i napoi a fiierelor. Diferena fa de modelul UNIX este c atunci cnd este dat o comand PLAY, serverul continu s transmit date la o vitez constant, fr a necesita comenzi noi. Inima software-ului video-serverului este sistemul de gestiune a discului. Acesta are dou misiuni principale: plasarea filmelor pe discul magnetic atunci cnd trebuie extrase de pe band sau din memoria optic i tratarea cererilor ctre disc pentru multiplele fluxuri de ieire. Plasarea filmelor este important, deoarece poate afecta foarte mult performanele. Dou modaliti de organizare a memorrii pe disc sunt ferma de discuri i irul de discuri. In cazul fermei de discuri (disk farm), fiecare unitate pstreaz doar cteva filme ntregi. Din motive de performan i fiabilitate, fiecare film trebuie s fie prezent pe cel puin dou uniti, poate chiar mai multe. Cealalt organizare de memorare este cea de tablou de discuri (disk array) sau RAID (Redundant Array of Inexpensive Disks - tablou redundant de discuri ieftine), n care fiecare film este mprit pe mai multe uniti, de exemplu blocul 0 pe unitatea 0, blocul 1 pe unitatea 1, i aa mai departe, cu blocul n -1 pe unitatea n-l. Dup aceasta, ciclul se repet, cu blocul n pe unitatea 0 i aa mai departe. Aceast organizare este numit repartizare (striping). Un ir de discuri repartizat are mai multe avantaje dect o ferm de discuri. Mai nti, toate cele n uniti pot rula n paralel, mrind performana cu factorul n. n al doilea rnd, poate fi fcut redundant prin adugarea unei uniti n plus la fiecare grup de n, unde unitatea redundant conine SAU EXCLUSIV bloc-cu-bloc ale celorlalte uniti, pentru a permite recuperarea complet a datelor n cazul n care o unitate se defecteaz. n sfrit, problema echilibrrii ncrcrii este rezolvat (nu este necesar plasarea manual pentru evitarea plasrii tuturor filmelor populare pe aceeai unitate). Pe de alt parte, organizarea de tip ir de discuri este mai complicat dect ferma de discuri i mai sensibil la defecte multiple. De asemenea este nepotrivit pentru operaii ale video-recorder-ului, cum ar fi derularea rapid a unui film nainte sau napoi. Un ctudiu de simulare care compar cele dou organizri este prezentat n (Chervenak .a., 1995). Strns legat de plasarea blocurilor este gsirea blocurilor de pe discuri. Schema UNIX cu un arbore neechilibrat de blocuri de disc referite de i-nod este de obicei inacceptabil, deoarece fiierele video sunt imense, aa c majoritatea blocurilor pot fi localizate printr-un bloc indirect triplu, care nseamn multe accese suplimentare la disc (Tanenbaum, 1992). n schimb, este obinuit legarea blocurilor ntr-o list simplu sau dublu nlnuit. Cteodat, pentru a permite accesul aleatoriu, se utilizeaz i un index stil UNIX (i-node). Cealalt misiune a software-ului de disc este de a servi toate fluxurile de ieire de timp-real i de a respecta constrngerile de timp ale acestora. Un flux video MPEG-2 la 25 cadre/sec trebuie s

692

NIVELUL APLICAIE

CAP. 7

preia i s transmit n jur de 14 KB la fiecare 40 msec, dar valoarea efectiv variaz considerabil, deoarece cadrele I, P i B au rate de compresie diferite. n consecin, pentru a menine o rat de ieire uniform, este necesar s se realizeze o memorare la ambele capete ale fluxului. n Fig. 7-91 se prezint o scar artnd scalabilitatea total de date aduse de pe disc pentru un flux de video dat (presupunnd c filmul este pe disc). Acesta se mic n salturi discrete, un salt pentru fiecare bloc citit. Cu toate acestea, transmisia trebuie s se realizeze la o rat uniform, astfel nct procesul de citire trebuie s devanseze procesul de transmitere. Aria umbrit din figur arat datele care au fost preluate de pe disc, dar nu au fost nc transmise. n mod normal, discurile sunt planificate folosind algoritmul liftului, care pornete braul i-1 mic spre interior i continu pn cnd ajunge la ultimul cilindru interior, prelucrnd toate cererile pe care le primete n ordinea cilindrilor. Atunci cnd ajunge ct de departe poate, braul i inverseaz micarea i ncepe s se mite spre exterior, prelucrnd toate cererile n ordinea dat. Dei minimizeaz timpul de cutare, acest algoritm nu garanteaz performane de timp-real, deci nu este folositor pentru un video-server.
Cantitatea de date citit de pe disc

u co

Ol CD

Date memorate n tampon

Fig. 7-91. Folosirea memoriei tampon pentru disc, la server. Un algoritm mai bun este cel care tine evidenta tuturor fluxurilor video si creeaz o list a blocului urmtor necesar fiecruia. Numerele blocurilor sunt apoi sortate i blocurile sunt citite n ordinea cilindrilor. Atunci cnd este citit ultimul bloc, ncepe runda urmtoare prin colectarea numrului blocului de la nceputul fiecrui flux. Acestea sunt de asemenea sortate i citite n ordinea cilindrilor i aa mai departe. Acest algoritm menine performanele de timp-real pentru toate fluxurile i, de asemenea, minimizeaz timpul de cutare n comparaie cu un simplu algoritm primul venit, primul servit. Un alt aspect software este controlul admiterii. Dac sosete o cerere pentru un nou flux, poate fi ea acceptat fr ruinarea performanelor de timp-real ale fluxurilor existente? Un algoritm care poate fi folosit pentru a lua o decizie examineaz cazul cel mai defavorabil pentru a vedea dac este garantat posibilitatea trecerii de la k la k + 1 fluxuri, pe baza proprietilor cunoscute ale unitilor centrale, RAM-urilor i discurilor. Un alt algoritm analizeaz doar proprietile statistice. Un alt aspect al software-ului serverului se refer la gestiunea afirii n timpul unui avans rapid sau al unei reveniri rapide (aa nct oamenii s poat cuta vizual). Cadrele D furnizeaz informaia necesar pentru MPEG-1, dar dac nu sunt marcate i memorate ntr-un mod special, serverul nu va

SEC. 7.7

MULTIMEDIA

693

fi capabil s le gseasc fr decodificarea ntregului flux, iar n mod normal serverele nu fac decodificare MPEG n timpul transmiterii. Pentru MPEG-2 este necesar un alt mecanism, cel puin pentru a simplifica gsirea i decodificarea cadrelor I. n sfrit, alt aspect este criptarea. Atunci cnd filmele sunt difuzate ctre destinaii multiple (de exemplu, dac reeaua de distribuie local este un sistem de TV prin cablu), criptarea este necesar pentru a asigura c filmele pot fi vzute doar de clieni care pltesc. Sunt posibile dou abordri: precriptarea i criptarea din mers. Dac filmele sunt memorate criptate, atunci oricine afl cheia filmului ar putea s priveasc filmul pe gratis pentru c de fiecare dat se utilizeaz aceeai cheie. Criptarea separat pentru fiecare flux este mai sigur, dar i mai costisitoare n ceea ce privete resursele de calcul. Gestiunea cheilor este de asemenea o problem. Abordarea uzual este de criptare din mers cu un algoritm simplu, dar cu schimbarea frecvent a cheii, aa nct dac un intrus poate sparge cheia n 10 min, aceasta va fi deja nvechit. Reeaua de distribuie Reeaua de distribuie este un set de comutatoare si linii ntre surs si destinaie. Asa cum vedem n Fig. 7-88, ea const dintr-o coloan vertebral SONET sau ATM (sau ATM peste SONET) conectat la o reea de distribuie local. n mod obinuit, coloana vertebral este comutat, dar reeaua local nu. Principalele cerine impuse coloanei vertebrale sunt lrgimea de band mare i fluctuaia sczut. Pentru o coloan vertebral pur SONET, acestea sunt simplu de atins - lrgimea de band este garantat i fluctuaia este zero deoarece reeaua este sincron. Pentru o coloan vertebral ATM, sau ATM peste SONET, calitatea serviciului este foarte important. Ea este gestionat de un algoritm al gleii gurite i de toate celelalte tehnici pe care le-am studiat n detaliu n Cap. 5, aa nct nu vom repeta discuia aici. Pentru informaii suplimentare despre MPEG de timp-real prin coloana vertebral ATM, vezi (Dixit i Skelly, 1995; i Morales .a., 1995). n cele ce urmeaz ne vom concentra asupra reelei de distribuie, un subiect pe care de abia l-am atins pn acum. Distribuia local este haotic, cu diferite companii ncercnd diferite reele n diferite regiuni. Companiile telefonice, companiile de TV prin cablu i noii intrai sunt convini cu toii c cel care ajunge primul va fi ctigtorul cel mare, aa nct asistm la o proliferare a tehnologiilor instalate. Cele patru scheme principale de distribuie local pentru video la cerere sunt identificate prin acronimele ADSL, FTTC, FTTH i HFC. Le vom explica pe fiecare pe rnd. ADSL (Asymmetric Digital Subscriber Line - linie de abonat digital asimetric) a fost primul reprezentant al industriei telefonice n domeniul distribuiei locale (Chen i Waring, 1994). Ideea este c fiecare cas din Statele Unite, Europa i Japonia are deja o pereche torsadat de cupru (pentru servicii telefonice analogice). Dac aceste fire pot fi folosite pentru video la cerere, companiile telefonice ar putea s elimine concurena. Problema, desigur, este c aceste fire nu pot suporta nici chiar MPEG-1 pe lungimea lor tipic de 10 km, ca s nu mai vorbim de MPEG-2. Soluia ADSL profit de avantajul progreselor n prelucrarea semnalului digital pentru eliminarea electronic a ecourilor i a altor zgomote. Aa cum se arat n Fig. 7-92, fiecare abonat la ADSL are o unitate de abonare ADSL la domiciliu coninnd un cip de prelucrare a semnalelor digitale. Telefonul i cutia de conectare se conecteaz la unitatea

694

NIVELUL APLICAIE

CAP. 7

ADSL. La cellalt capt al buclei locale este ataat o alt unitate ADSL. Aceasta poate s fie ntrun oficiu final al companiei telefonice sau, dac bucla local este prea lung, la captul unei fibre optice din cartierul casei.

I Unitate d e , ~
r e e a \-~-

ADSL

L.-

-1.536 Mbps 16Kbps 4 KHz analog

1 __J

Unitate de abonat ADSL

Conexiune de fibr optic spre oficiu final

Aceast conexiune folosete perechea torsadat existent

Fig. 7-92. ADSL ca o reea de distribuie local. ADSL-1 ofer un canal descendent de 1,536 Mbps (TI minus al 193-lea bit), dar doar un canal ascendent la 16-Kbps. In plus, vechiul canal telefonic analog la 4 KHz (sau n unele cazuri, dou canale digitale N-ISDN) este i el prezent. Ideea este c legtura ascendent are suficient lrgime de band pentru ca utilizatorul s comande filme, iar legtura descendent are o lrgime de band suficient pentru transmiterea lor codificat n MPEG-1. ADSL ar trebui vzut mai mult ca o modalitate rapid dect ca o soluie pe termen lung, dar a fost instalat n diferite orae. Versiuni mbuntite, numite ADSL-2 i ADSL-3, sunt n lucru. Ultimile permit MPEG-2 n bucle locale de pn la 2 km. Al doilea proiect al companiei telefonice este FTTC (Fiber To The Curb - fibr ctre vecintate). Acest proiect a fost prezentat n Fig. 2-23(a). n FTTC, compania telefonic instaleaz fibr optic de la oficiul final la fiecare cartier rezidenial, terminat ntr-un echipament numit ONU (Optical Network Unit - unitate optic de reea). In Fig. 2-23(a), ONU este etichetat cutie de jonciune". Cele 16 bucle locale de cupru se pot termina n ONU. Aceste bucle sunt acum att de scurte, nct este posibil rularea duplex integral TI sau T2 peste ele, permind filmele MPEG-1 i respectiv MPEG-2. n plus, deoarece FTTC este simetric, acum este posibil video conferina pentru cei care lucreaz acas i pentru ntreprinderile mici. A treia soluie a companiei telefonice este de a introduce fibra optic n casele tuturor. Se numete FTTH (Fiber To The Home - fibr la cas). n aceast schem, oricine poate avea OC-1, OC-3, sau chiar un purttor mai performant, dac este cerut. FTTH este foarte scump, dar va deschide o gam larg de posibiliti atunci cnd va fi introdus. ADSL, FTTC i FTTH sunt reele locale de distribuie punct-la-punct, ceea ce nu este surprinztor dat fiind organizarea actual a sistemului telefonic. O abordare complet diferit este HFC (Hybrid Fiber Coax - fibr coaxial hibrid), care este soluia preferat actualmente, fiind instalat n prezent de ctre TV prin cablu. Aceasta este prezentat n Fig. 2-23(b). Povestea este

SEC. 7.7

MULTIMEDIA

695

urmtoarea. Cablurile coaxiale actuale de la 300 la 450 MHz vor fi nlocuite prin cabluri coaxiale la 750 MHz, mbuntind capacitatea de la 50 la 75 canale de 6 MHz la 125 canale de 6-MHz. aptezeciicinci din cele 125 de canale vor fi folosite pentru transmiterea televiziunii analogice. Cele 50 de canale noi vor fi modulate folosind QAM-256, care furnizeaz n jur de 40 Mbps pe canal, dnd un total de 2 Gbps de lrgime de band nou. Capetele vor fi mutate n cartier, aa nct fiecare cablu este pentru 500 de case. Simpla mprire arat c fiecrei case i poate fi alocat un canal dedicat de 4 Mbps, care poate fi folosit pentru o combinaie de programe MPEG-1, programe MPEG-2, flux de date ascendente, telefonie digital i analogic i aa mai departe. Dei sun minunat, se cere furnizorilor de cabluri s le nlocuiasc pe cele existente cu cabluri coaxiale de 750 MHz, sa instaleze noile capete de distribuie i s elimine toate amplificatoarele unidirecionale - pe Scurt, s nlocuiasc ntregul sistem de TV prin cablu. n consecin, volumul de infrastructur nou este comparabil cu ceea ce este necesar companiilor telefonice pentru FTTC. n ambele cazuri, furnizorul reelei locale trebuie s instaleze fibra optic n cartierele rezideniale. Din nou, n ambele cazuri, fibra se termin la un convertor optic-electric. n FTTC, segmentul final este o bucl local punct-la-punct care folosete perechi torsadate. In HFC, segmentul final este un cablu coaxial partajat. Tehnic vorbind, aceste dou sisteme nu sunt chiar att de diferite pe ct vor s le prezinte creatorii lor. Cu toate acestea, exist o diferen real care merit s fie amintit. HFC folosete un mediu partajat fr comutare sau dirijare. Orice informaie transmis prin cablu poate fi preluat de orice abonat fr mult zarv. FTTC, care este complet comutat, nu are aceast proprietate. Ca rezultat, operatorii HFC vor ca video-serverele s trimit fluxuri criptate, aa nct clienii care nu au pltit pentru un film, s nu-1 poat vedea. Operatorii FTTC nu doresc criptarea deoarece mrete complexitatea, scade performana i nu furnizeaz securitate suplimentar n sistemul lor. Din punctul de vedere al unei companii care ruleaz un video-server, este o bun idee s se cripteze sau nu? Un server folosit de o companie telefonic sau unul din subsidiarii sau partenerii si poate s decid s nu cripteze video-urile, pretinznd eficiena ca motiv, dar de fapt pentru a cauza pierderi economice competitorilor HFC. Pentru toate reelele locale de distribuie, este clar c fiecare cartier va fi echipat cu unul sau mai multe servere de virtualizare. Acestea sunt, de fapt, doar versiuni mai mici ale video-serverelor despre care am discutat nainte. Marele avantaj al acestor servere locale este c, deoarece reelele locale distribuite sunt scurte i n general nu sunt comutate, ele nu introduc fluctuaie, aa cum face o reea cu coloan vertebral ATM. Ele pot fi prencrcate cu filme fie dinamic, fie prin rezervare. De exemplu, atunci cnd un utilizator selecteaz un film, primul minut ar putea fi transmis ctre un server local n mai puin de 2 secunde la OC-3. Dup 55 secunde, urmtorul minut ar fi expediat ctre serverul local n 2 secunde i aa mai departe. n acest fel, traficul prin coloana vertebral ATM nu mai trebuie s fie fr fluctuaii, fcnd posibil utilizarea serviciului ABR n loc de serviciul CBR, care este mai scump. Dac oamenii spun furnizorului n avans ce filme doresc, ele pot fi transferate pe serverul local n orele care nu sunt de vrf, rezultnd economii i mai mari. Aceast observaie orienteaz operatorii de reea spre atragerea personalului de la companiile aeriene pentru stabilirea, tarifelor. Se pot imagina tarife n care filmele cerute cu 24 pn la 72 de ore n avans pentru a fi vizionate marea sau joia nainte de 6 seara sau dup 11 seara, primesc o reducere de 27 la sut. Filmele comandate n

696

NIVELUL APLICAIE

CAP. 7

prima duminic a lunii nainte de 8 dimineaa pentru a fi vizionate miercuri dup-amiaza, ntr-o zi a crei dat este un numr prim, beneficiaz de o reducere de 43 la sut i aa mai departe. Alegerea stivei de protocoale utilizate pentru video la cerere este nc n lucru. ATM este clar tehnologia care trebuie aleas, dar ce protocol de adaptare ar trebui folosit? AAL 1 a fost proiectat pentru video, aa nct este un candidat puternic, dar el corespunde categoriei de servicii CBR. Dedicnd maximul posibil de lrgime de band este costisitor, n special de cnd MPEG este inerent pentru un trafic VBR, aa nct circuitul virtual trebuie s fie supradimensionat. AAL 2 nu este terminat (i probabil nu va fi niciodat) i AAL 3/4 este prea stngaci, aa nct AAL'5 este singurul concurent rmas. El nu este legat de serviciul CBR i trimiterea unui bloc mare de MPEG n fiecare mesaj ar fi extrem de eficient, ajungnd pn la 100% din lrgimea de band a utilizatorului pentru fluxul video. Pe de alt parte, AAL 5 face detectarea erorilor. Eliminarea unui ntreg bloc datorit unei erori de 1 bit nu este deloc atractiv, n special deoarece majoritatea erorilor sunt erori de un singur bit la mijlocul datelor. Ca o consecin, exist o micare pentru a modifica AAL 5 pentru a permite aplicaiilor s cear toate blocurile, mpreun cu un bit care s spun dac suma de control a fost sau nu corect. Stiva de protocoale a video-ului la cerere schiat anterior este ilustrat n Fig. 7-93. Deasupra nivelului AAL, exist programul MPEG i nivelul de flux de,transport. Apoi ajungem ia codificarea i decodificarea audio i video MPEG. n sfrit, pe nivelul cel mai de sus avem aplicaia.

Aplicaii audio MPEG MPEGvideo MPEG

PS
AAL1 Nivel ATM Jive fizic ATI\i1 >

TS
AAL 5

Fig. 7-93= Stiva de protocoale a video-ului la cerere. Caii de conectare Toate metodele de distribuie local de mai sus aduc n cele din urm n cas unui sau mai multe fluxuri MPEG. Pentru a le decodifica si a le vizualiza, sunt necesare o interfa de reea, un decodificator MPEG i alte componente electronice. Aici sunt posibile dou abordri. n prima abordare, oamenii folosesc calculatoarele personale pentru decodificarea i vizualizarea filmelor. Pentru aceasta trebuie cumprat o plac ataabil special, coninnd cteva cipuri speciale i un conector pentru interfaarea cu reeaua de distribuie local. Filmele apar pe monitorul calculatorului, posibil chiar ntr-o fereastr. Acestea ar putea fi numite cutii set-bottom, deoarece n cazul calculatoarelor, cutia este de obicei sub monitor n loc de a fi deasupra. Aceast abordare este mai ieftin (tot ceea ce este necesar este o plac ataabil i programele), folosete un

SEC. 7.7

MULTIMEDIA

697

monitor de mare rezoluie nentreesut, are o interfa utilizator sofisticat, orientat pe maus i poate fi integrat uor cu WWW i alte surse de informaii i de distracie orientate pe calculatoare. Pe de alt parte, PC-urile au de obicei ecrane mici, se afl n birouri n loc de camere de zi i sunt folosite n mod tradiional de o singur persoan la un moment dat. Ele emit i mult mai puin lumin dect televizoarele. n a doua abordare, operatorul de reea local nchiriaz sau vinde utilizatorului o cutie de conectare (set-top box) la care sunt conectate reeaua i televizorul. Aceast abordare are avantajul c oricine are un televizor, dar nu toi au un calculator, sau multe persoane au PC-uri vechi, speciale sau, cu alte cuvinte, nepotrivite pentru decodificarea MPEG. n afar de acestea, televizorul se afl deseori ntr-o camer destinat unui grup de privitori. Pe de alt parte, monitorul are un afiaj cu rezoluie redus ntreesut (fcndu-1 nepotrivit pentru material sub form de text, precum este WWW). n plus, are o interfa primitiv cu utilizatorul (telecomand), pentru utilizatori fiind imposibil s fac altceva dect s selecteze opiunile din meniuri. Chiar introducerea numelui unui film este chinuitoare, ca s nu mai vorbim despre angajarea unui dialog cernd serverului cutarea tuturor filmelor realizate de un anumit actor, regizor sau o companie de producie ntr-o anumit perioad de timp. n sfrit, cutiile de conectare cu performana cerut nu sunt uor de realizat la un pre acceptabil (gndit s fie de cteva sute de dolari). Odat considerai toi aceti factori, majoritatea sistemelor video la cerere au optat pentru modelul cu cutii de conectare, n primul rnd pentru c productorii de mas le displace s exclud orice cumprtor posibil (persoane fr PC). De asemenea, se pot ctiga bani prin nchirierea sau vnzarea cutiilor de conectare. Cu toate acestea, piaa de plci atasabile este suficient de mare, aa nct aceste plci vor fi de asemenea produse.

CPU

ROM

RAM

1/0 / \

MPEG

Reea

t
Ctre reea H: Telecomand

Televizor

Fig. 7-94. Arhitectura hardware a unei cutii de conectare simple. Funciile principale ale cutiei de conectare sunt interfaarea cu reeaua local de distribuie, decodificarea semnalului MPEG, sincronizarea fluxurilor audio i video, producerea unui semnal combinat NTSC, PAL sau SECAM pentru televizor, ascultnd telecomanda, i tratarea interfeei cu

698

NIVELUL APLICAIE

CAP. 7

utilizatorul. Funcii suplimentare pot include interfaarea cu stereo-mi, telefoane i alte aparate. O btlie important se d n industrie n legtur cu numrul de funcii ce trebuie ndeplinite de cutia de conectare i respectiv de reea. Rmne de vzut ce se va ntmpla. O arhitectur posibil pentru o cutie de conectare simpl este prezentat n Fig. 7-94. Aparatul const din CPU, ROM, RAM, controlor I/O, decodificator MPEG i interfaa de reea. Opional, poate fi adugat i un cip de securitate pentru decriptarea filmelor primite i criptarea mesajelor transmise (numerele crilor de credit pentru cumprturi etc). Un aspect important pentru video la cerere este sincronizarea audio/video i gestiunea fluctuaiilor. Adugarea a 500 KB suplimentari de RAM permite memorarea MPEG-2 pentru o secund, dar conduce la o cheltuial suplimentar pentru un aparat pe care productorii sper s-1 vnd pentru cel mult cteva sute de dolari. Deoarece cutia de conectare este doar un calculator, va necesita programe, probabil un sistem de operare de timp-real bazat pe un micronucleu pstrat n ROM. Pentru a furniza flexibilitate i adaptabilitate, probabil c este o idee bun s se dea posibilitatea ncrcrii altor programe din reea. Aceast posibilitate ridic problema despre ce se ntmpl atunci cnd proprietarul unei cutii de conectare bazat pe MIPS vrea s joace un joc scris pentru o cutie de conectare bazat pe SPARC? Utilizarea unui limbaj interpretat precum Java rezolv problema compatibilitii, dar reduce drastic performana n mediul de timp-real, unde performana nalt este crucial. Standarde Aspectele economice ale video-uiui la cerere nu pot fi ignorate. Un video-server mare poate costa mai mult dect un calculator, adic 10 milioane dolari. S presupunem c el servete 100.000 de case, fiecreia nchiriindu-i o cutie de conectare ia 300 dolari. Acum adugai echipament de reea n valoare de 10 milioane de dolari i o perioad de depreciere de 4 ani i rezult c sistemul trebuie s genereze 10 dolari pe lun pe cas. La 5 dolari/film fiecare trebuie s cumpere dou filme pe lun pentru ca operatorul s-i acopere cheltuielile (excluznd salariile, marketingul i alte costuri). Nu este evident dac acest lucru se ntmpl sau nu.
Ce tehnologie va fi foiosit pentru coloana vertebral (SONET, ATM, SONET + ATM)? La ce vitez va funciona coioana vertebral (OC-3, OC-12)? Cum se va face distribuia local (HFC, FTTQ? Ce iungime de band va exista pentru fluxul de intrare (16 Kbps, 1.5 Mbps)? Vor fi criptate filmele i dac da, cum? Se va face corectarea erorilor (obligatoriu, opional, va lipsi)? Cine va fi proprietarul cutiei de conectare (utilizator, operator de reea)? Telefonia va face parte din sistem (analog, N-ISDN)? Aplicaiile hipertext de rezoluie mare vor fi suportate (de exemple, WWW)?

Fig. 7-95. Cteva domenii n care sunt necesare standarde. Valorile date anterior pot fi rearanjate n mai multe moduri (de exemplu, se pune un pre de 6 dolari/lun pentru nchirierea unei cutii de conectare i 2 dolari pe film), iar costurile se schimb mereu, dar ar trebui s fie clar c fr o pia extins, nu exist nici o justificare economic pentru video la cerere. Pentru dezvoltarea unei piee de mas este esenial ca toate prile sistemului s fie standardizate. Dac fiecare furnizor de video, operator de reea, i productor de cutii de conectare

SEC. 7.7

MULTIMEDIA

699

realizeaz propria interfa, nimic nu va putea s conlucreze cu restul sistemului. Pn acum, singurul standard pe care-1 accept toi este folosirea lui MPEG-2 pentru codificarea video. Orice altceva este n disput. Cteva dintre ntrebrile la care trebuie s se rspund nainte ca s poat fi realizat un sistem naional sunt listate n Fig. 7-95. Dac toate aceste zone pot fi standardizate, putem imagina cu uurin muli furnizori oferind produse constnd dintr-o cutie cu o muf telefonic, monitor, tastatur i maus, care poate fi folosit pentru urmrirea video-urilor, pentru calcul sau poate pentru amndou odat. Atunci va deveni realitate mult discutata convergen a calculului, comunicrii i industriei de distracii. 7.7.5 MBone - Coloana vertebral pentru trimitere multipl n timp ce toate aceste industrii fac planuri mari - i ndelung mediatizate - pentru viitorul video la cerere (inter)naional, digital, comunitatea Internet i-a implementat propriul sistem multimedia digital, MBone (Multicast Backbone - coloana vertebral cu trimitere multipl). n aceast seciune vom face o scurt sintez a ceea ce este si cum fuctioneaz. Pentru o carte ntreag despre MBone, vezi (Kumar, 1996). Pentru articole despre MBone, vezi (Eriksson, 1994; i Macedonia i Brutzman, 1994). MBone poate fi gndit ca radio i televiziune Internet. Spre deosebire de video la cerere, unde accentul cade pe selectarea i vizualizarea filmelor precomprimate memorate pe un server, MBone este folosit pentru difuzare audio i video n form digital n "lumea ntreag prin Internet. Este operaional de la nceputul lui 1992. Multe conferine tiinifice, n special ntlniri IETF, au fost difuzate, la fel ca i evenimentele tiinifice notabile, cum ar fi lansarea navetelor spaiale. Prin MBone a fost difuzat i un concert Rolling Stones. Este discutabil dac acesta poate fi calificat drept un eveniment tiinific. Pentru persoanele care vor s nregistreze digital o emisiune MBone, exist i software-ul corespunztor (Holfelder, 1995). Majoritatea cercetrilor despre MBone au fost despre realizarea eficient a Internetului (orientat datagram). S-au fcut puine n domeniul codificrii audio i video. Sursele MBone sunt libere s experimenteze cu MPEG sau orice alt tehnologie de codificare doresc. Nu exist standarde Internet pentru coninut sau codificare. Din punct de vedere tehnic, MBone este o reea virtual situat deasupra Internet-ului. Ea const din insule cu posibiliti de trimitere multipl, conectate prin tuneluri, aa cum se arat n Fig. 7-96. n aceast figur, MBone const din ase insule, de la A ia F, conectate prin apte tuneluri. Fiecare insul (tipic un LAN sau un grup de LAN-uri interconectate) suport trimitere multipl hardware ctre calculatoarele gazd. Tunelurile propag pachetele MBone ntre insule. Cndva, n viitor, cnd toate ruterele vor fi capabile s gestioneze direct traficul cu trimitere multipl, aceast superstructur nu va mai fi necesar, dar pentru moment este funcional. Fiecare insul conine unul sau mai multe rutere specializate numite ra-ratere (mrouters - rutere cu trimitere multipl). Cteva dintre acestea sunt rutere normale, dar majoritatea sunt numai staii UNIX care ruleaz software-ul special de nivel utilizator (dar ca supervizor). M-ruterele sunt conectate logic prin tuneluri. n trecut, pachetele MBone au trecut de la m-ruter la m-ruter (n mod obinuit prin unul sau mai multe rutere care nu tiau despre MBone), folosind dirijarea sursei cu pierderi. n prezent, pachetele MBone sunt ncapsulate n pachete IP i trimise ca pachete obinuite cu trimitere unic la adresa IP am-ruterului detinaie. Dac toate ruterele intermediare suport trimiterea multipl, atunci nu este necesar trimiterea prin tuneluri.

700

NIVELUL APLICAIE

CAP. 7

Tunelurile sunt configurate manual. n mod uzual, un tunel este o cale pentru care exist o conexiune fizic, dar aceasta nu este o cerin. Dac, accidental, calea fizic asociat unui tunel se defecteaz, m-mterele care folosesc tunelul nu vor obsei'va, deoarece Intemet-ul va redirija automat ntregul trafic IP dintre ele prin alte linii.
m-ruter

Staie de iucr A

nsula de trimitere multipl

7.1 6. MBone const din insule de trimitere multipl conectate prin tunek

Atunci cnd apare o nou insul i dorete s se ataeze la MBone, precum G din Fig. 7-96, administratorul su trimite un mesaj anunnd existena acesteia ctre lista de pot a MBoneului. Administratorii siturilor apropiate l contacteaz pentru a stabili tunelurile. Cteodat tunelurile existente sunt reconfigurate, astfel nct s profite de noua insul pentru a optimiza topologia. La urma urmelor, tunelurile nu au existen fizic. Ele sunt definite prin tabele n m-rutere i pot fi adugate, terse, sau mutate prin simpla schimbare a acestor tabele. Tipic, fiecare ar din MBone are o coloan vertebral cu insule regionale ataate acesteia. In mod normal, MBone este configurat cu unul sau dou tuneluri care traverseaz oceanele Atlantic i Pacific, aducnd MBone-ul la scar global. Astfel, n orice moment, MBone const dintr-o topologie specific constnd din insule i tuneluri, independent de numrul adreselor de trimitere multipl utilizate curent i de cine le ascult sau le urmrete. Aceast situaie este foarte asemntoare cu cea a unei subretele normale (fizice), aa nct i se aplic algoritmii normali de dirijare. n consecin, MBone a folosit iniial un algoritm de dirijare, DVMRP (Distance Vector Multicast Routing Protocol - dirijare multi-destinaie dup vectorul distanelor) bazat pe algoritmul vectorului distanelor al lui Bellman-Ford. De exemplu, n Fig. 7-96, insula C poate dirija ctre A prin B sau prin E (sau prin D). i alege varianta lund valorile pe care i le dau nodurile despre distanele de la ele pn la^4 i apoi adugnd distana proprie pn la ele. n acest mod, fiecare insul determin ruta optim ctre fiecare alt insul. Totui, rutele nu sunt de fapt folosite n acest mod, ci aa cum vom vedea n curnd. S considerm acum modul n care se realizeaz trimiterea multipl. Pentru a transmite la mai multe destinaii un program audio sau video, o surs trebuie s achiziioneze mai nti o adres de

SEC. 7.7

MULTIMEDIA

701

destinaie multipl de clas D, care acioneaz ca o frecven de staie sau un numr de canal. Adresele de clas D sunt rezervate prin folosirea unui program care caut ntr-o baz de date adrese de destinaie multipl libere. Multe trimiteri multiple pot s se desfoare n acelai timp, iar un calculator gazd poate s se acordeze" pe cea de care este interesat prin ascultarea adrese de destinaie multipl potrivite. Periodic, fiecare m-ruter trimite un pachet de difuzare IGMP limitat la insula lui, ntrebnd cine este interesat de ce canal. Calculatoarele gazd care doresc s (continue s) primeasc unul sau mai multe canale trimit alt pachet IGMP napoi drept rspuns. Aceste rspunsuri sunt dispersate n timp pentru a evita suprancrcarea LAN-ului local. Fiecare m-ruter pstreaz o tabel cu canalele care trebuie puse n LAN-ul propriu, pentru a evita pierderea de lrgime de band prin canale de transmitere multipl pe care nu le vrea nimeni. Trimiterile multiple se propag prin MBone dup cum urmeaz. Cnd o surs audio sau video genereaz un nou pachet, l difuzeaz ctre insula sa local folosind facilitile hardware de trimitere multipl. Acest pachet este preluat de un m-ruter local, care l copiaz pe toate tunelurile cu care este conectat. Fiecare m-ruter care primete un astfel de pachet printr-un tunel verific dac pachetul a venit pe cea mai bun rut, adic cea pe care tabela proprie i spune s o foloseasc pentru a ajunge la surs (ca i cum ar fi o destinaie). Dac pachetul a venit pe ruta cea mai bun, m-ruterul l copiaz la toate celelalte tuneluri. Dac pachetul a ajuns pe o cale care nu este cea optimal, el este eliminat. Astfel, de exemplu, n Fig. 7-96, dac tabela lui C spune s se foloseasc B pentru a ajunge la. A, atunci cnd un pachet cu trimitere multipl de la^4 ajunge la C prin B, el este copiat la D i E. Cu toate acestea, atunci cnd un pachet cu trimitere multipl de la A ajunge la C prin E (nu este calea cea bun), el este eliminat. Acest algoritm este algoritmul retransmiterii pe calea invers prezentat n Cap. 5. Dei nu este perfect, este destul de bun i foarte uor de implementat. n plus fa de folosirea algoritmului de cutare pe calea invers, pentru prevenirea inundrii Internet-ului, de asemenea, pentru a limita domeniul trimiterii multiple, este folosit cmpul IP Timejojive (timp de via). Fiecare pachet pleac cu o anumit valoare (determinat de surs). Fiecrui tunel i se asociaz o pondere. Un pachet este trecut printr-un tunel dac are o pondere suficient. Altfel este eliminat. De exemplu, tunelurile transoceanice sunt configurate n mod obinuit cu o pondere de 128, aa nct pachetele pot fi limitate la continentul de origine dndu-li-se un timp de via iniial mai mic sau egal cu 127. Dup trecerea printr-un tunel, cmpul Time to live este decrementat cu ponderea tunelului. De cnd funcioneaz algoritmul de dirijare MBone, s-au fcut multe cercetri pentru a-1 mbunti. O propunere pstreaz ideea dirijrii dup vectorul distanelor, dar face algoritmul ierarhic, prin gruparea siturilor MBone n regiuni i dirijarea n prima etap ctre acestea (Thyagarajan i Deering, 1995). O alt propunere este de a folosi o form modificat a dirijrii n funcie de starea legturilor, n loc de dirijare dup vectorul distanelor. n particular, un grup de lucru IETF se ocup de modificarea OSPF pentru a-1 face potrivit pentru trimitere multipl n cadrul unui singur sistem autonom. Trimiterea multipl OSPF rezultat este numit MOSPF (Moy, 1994). Modificrile se refer la crearea de ctre MOSPF a unei hri complete care, n plus fa de informaia vizual de dirijare, s in evidena insulelor de trimitere multipl i a tunelurilor. narmat cu aceast

702

NIVELUL APLICAIE

CAP. 7

topologie complet, este uor s calculm cea mai bun cale de la fiecare insul ctre fiecare alt insul folosind tunelurile. De exemplu, poate fi folosit algoritmul lui Dijkstra. A doua arie de cercetare este dirijarea inter-AS. Aici un alt grup de lucru ETF dezvolt un algoritm numit PIM (Protocol Independent Multicast - transmitere multipl independent de protocol) (Huitema, 1995). PIM are dou versiuni, dup cum insulele sunt dense (aproape oricine vrea s se uite) sau rare (aproape nimeni nu vrea s se uite). Ambele versiuni folosesc tabele de dirijare standard cu trimitere unic n loc de a crea o topologie suprapus, aa cum fac DVMRP sau MOSPF. n PIM-dens, ideea este de a tia cile inutile. Tierea funcioneaz n modul urmtor. Atunci cnd un pachet cu trimitere multipl ajunge printr-un tunel greit", un pachet de tiere este trimis napoi prin tunel, spunnd emitorului s nu-i mai transmit pachete prin sursa respectiv. Cnd un pachet ajunge prin tunelul bun", este copiat pe toate celelalte tuneluri care nu s-au auto-tiat anterior. Dac toate celelalte tuneluri s-au auto-tiat i canalul din insula local nu este interesat, m-ruterul trimite un mesaj de tiere napoi prin canalul bun". n acest fel, trimiterea multipl se adapteaz automat i merge doar unde este dorit. PIM-rar lucreaz diferit. Aici ideea este de a preveni saturarea Internetului, dac trei persoane din Berkeley vor s in o conferin peste o adres de clas D. PIM-rar funcioneaz prin fixarea unor puncte de ntlnire. Fiecare dintre sursele dintr-un grup cu trimitere multipl PIM-rar i trimite pachetele la punctele de ntlnire. Orice sit interesat n ataare, cere unui punct de ntlnire s-i seteze un tunel n acest mod, tot traficul PIM-rar este transportat pe direcie unic n Ioc de multipl. In concluzie, multimedia este un domeniu foarte interesant, care evolueaz rapid. Zilnic sunt anunate noi tehnologii i aplicaii, dar ntregul domeniu va rmne important i n deceniile urmtoare,

7.8

REZUMAT

Reelele de calculatoare sunt inerent nesigure. Pentru a pstra informaia secret, ea trebuie criptat. Protocoalele de criptare se mpart n dou clase generale: cu chei secrete (de exemplu, DES, IDEA) i cu chei publice (de exemplu RSA). Folosirea acestor protocoale este uoar; partea dificil este reprezentat de gestiunea cheilor. n afar de confidenialitate, protocoalele de criptare pot furniza i autentificarea, adic atunci cnd Alice crede c vorbete cu Bob, ea chiar vorbete cu el i nu cu Trady. n sfrit, criptografia poate fi folosit i pentru a permite semnarea mesajelor, astfel nct cel care le-a transmis s nu le poat repudia dup ce le-a transmis. Atribuirea numelor n Internet folosete un sistem de baze de date distribuite, DNS. DNS pstreaz nregistrri cu adresele IP, centre de mesagerie i alte informaii. Prin interogarea unui DNS, un proces poate stabili corespondena dintre un nume de domeniu Internet i o adres IP folosit pentru a comunica cu acel domeniu. Pe msur ce reelele devin tot mai mari, administrarea lor devine tot mai grea. Din acest motiv, au fost create protocoale i sisteme speciale de administrare a reelelor, cel mai popular fiind SNMP. Acest protocol permite administratorilor s comunice cu agenii din echipamente pentru a le citi starea si a le transmite comenzi.

SEC. 7.9

PROBLEME

703

Patru aplicaii majore de reea sunt pota electronic, tirile USENET, World Wide Web i multimedia (video la cerere i Mbone). Majoritatea sistemelor de pot folosesc sistemul de pot definit n RFC 821 i 822. Mesajele trimise n acest sistem folosesc antete ASCII de sistem pentru definirea proprietilor mesajului. Aceste mesaje sunt transmise folosind SMTP. Exist dou sisteme de pot sigur, PGM i PEM. tirile USENET constau din mii de grupuri de tiri referitoare la tot felul de subiecte. Oamenii se pot nscrie n grupuri de tiri locale i pot trimite mesaje peste tot n lume, folosind protocolul NNTP, care se aseamn cu SMTP. World Wide Web este un sistem pentru legarea documentelor hipertext. Fiecare document este o pagin scris n HTML, cu posibile hiper-legturi la alte documente. Un program de navigare poate afia un document prin stabilirea unei conexiuni TCP cu serverul propriu, cernd documentul i apoi nchiznd conexiunea. Atunci cnd utilizatorul selecteaz o hiper-legtur, documentul respectiv poate fi preluat n acelai mod. n acest fel, documentele din toat lumea sunt legate ntr-o gigantic plas de pianjen. Multimedia este ultima stea care apare pe firmamentul reelelor. Se permite ca semnalele video i audio s fie digitizate i transportate electronic pentru afiare. Majoritatea proiectelor multimedia folosesc standardele MPEG i transmit datele prin conexiuni ATM. Mbone este un serviciu experimental, din Internet, bazat pe televiziunea i radioul digital.

7.9
1.

PROBLEME
Spargei minatorul cifru monoalfabetic. Textul n clar, constnd numai din litere, este un fragment dintr-o poezie a lui Lewis Carroll.
kfd ktbd fzm eubd kd pzyiom mztx ku kzyg ur bzha kfthcm ur mfudm zhx mftnm zhx mdzythc pzq ur ezsszcdm zhx gthcm zhx pfa kfd mdz tm sutyhc fuk zhx pfdkfdi ntcm fzid pthcm sok pztk z stk kfd uamkdim eitdx sdruid pd fzid uoi efzk rui mubd ur om zid uok ur sidzkf zhx zyy ur om zid rzk hu foiia mztx kfd ezindhkdi kfda kfzhgdx ftb boef rui kfzk

2.

Spargei urmtorul cifru de transpoziie pe coloane. Textul este luat dintr-o carte despre calculatoare, astfel nct computer" este un cuvnt probabil. Textul const numai din litere (fr spaii). Pentru claritate, textul cifrat este mprit n blocuri de 5 caractere.
aauan cvlre rurnn dltme aeepb ytust iceat npmey iicgo gorch srsoc nntii imiha oofpa gsivttpsit IborI otoex

3. 4.

In Fig. 7-4, blocurile P i S alterneaz. Dei acest aranjament este plcut, este mai sigur s avem mai nti toate blocurile P i apoi toate blocurile S? S presupunem c un mesaj a fost criptat folosind DES n nlnuirea blocurilor cifrate. Un bit al textului cifrat n blocul C,- este tranformat accidental din 0 n 1 n timpul transmisiei. Ct de mult text va fi deformat ca urmare a acestui fapt?

704 5. 6.

NIVELUL APLICAIE

CAP. 7

S considerm din nou nlnuirea blocurilor cifrate. Un bit 0 este inserat n fluxul textului cifrat dup blocul Q, n loc de transformarea unui bit 0 n 1. Ct de mult text va fi deformat? Proiectai un atac la DES bazat pe faptul c textul const numai din litere mari ASCII, plus spaiu, virgul, punct i virgul, enter i linie nou. Nu se tie nimic despre biii de paritate ai textului. Comparai nlnuirea blocurilor cifrate cu modul cu reacie cifrat n funcie de numrul de operaii de criptare folosite pentru transmiterea unui fiier mare. Care este mai eficient i cu ct? Folosind sistemul de criptare cu chei publice RSA cu a = l , b=2 etc, dacp=7 i q=ll, listai 5 valori permise pentru d. DacjP=13, #=31 i d=l, ct este el Folosind p=5, q=ll i d=27, gsii valoarea lui e i criptai abcdefghij". Schimbarea de chei Diffie-Hellman este folosit pentru stabilirea unei chei secrete ntre Alice i Bob. Alice i trimite lui Bob (719, 3, 191). Bob rspunde cu (543). Numrul secret al lui Alice este x=16. Care este cheia secret?

7.

8=

9.

10. Schimbai puin un mesaj n protocolul din Fig. 7-14 ca s devin rezistent la atacurile de reflectare. Explicai de ce funcioneaz modificarea. 11. n protocolul broasca cu gur mare, de ce A este transmis n text mpreun cu cheia de sesiune criptat? 12. n protocolul broasca cu gur mare, am atras atenia c prezena a 32 bii de 0 la nceputul fiecrui mesaj implic un risc. S presupunem c fiecare mesaj ncepe cu un numr aleatoriu pentru fiecare utilizator, de fapt o a doua cheie secret cunoscut doar de utilizator i de KDC. Elimin aceasta binecunoscutul atac la text? 13. n protocolul Needharn-Schroeder, Alice genereaz 2 provocri, RA i RA2. Aceasta seamn cu o exagerare. Nu ar fi fost suficient una singur? 14 n protocolul de autentificare de chei publice din Fig. 7-21, n mesajul 3, RB este criptat cu Ks. Este aceast criptare necesar, sau ar fi fost potrivit s fie trimis ca text clar? 15. Protocolul de semntur din Fig. 7-22 are urmtoarele puncte slabe. Dac Bob se stric, el poate pierde coninutul RAM-ului propriu. Ce probleme pot aprea i cum pot fi prevenite? 16. Dup ce Ellen s-a confesat Iui Marilyn c a pclit-o n ceea ce-1 privete pe Torn, Marilyn a reuit s evite aceast problem dictnd mesajele viitoare unei maini de dictat, urmnd ca noua secretar s e introduc ulterior. Marilyn a plnuit s examineze mesajele de pe terminalul ei dup ce au fost editate pentru a fi sigur c acestea i conin propriile cuvinte. Poate noua secretar s foloseasc atacul zilei de natere, ca s falsifice un mesaj i dac da, cum? Indicaie: Poate.

SEC. 7.9

PROBLEME

705

17. Terminalele de puncte de vnzare care folosesc cartele cu band magnetic i coduri PIN au un defect fatal: un negustor ruvoitor poate modifica cititorul de coduri propriu pentru a captura i a memora toat informaia de pe cartel precum i codul PIN n scopul de a transmite n viitor tranzacii suplimentare (falsificate). Urmtoarea generaie de terminale de puncte vnzare va folosi cartele cu uniti centrale complete, tastatur i monitor pe cartel. Implementai un protocol pentru acest sistem, pe care negustorii ruvoitori s nu-1 poat sparge. 18. n conformitate cu informaiile din Fig. 7-27, little-sister.cs.vu.nl este ntr-o reea de clas A, B, sau C? 19. In Fig. 7-27, dup rowboat nu exist punct. De ce nu? 20. Ce este OBJECTIDENTIFIER pentru obiectul tcp? 21. Trebuie transmis un ntreg SNMP a crui valoare este 200. Artai reprezentarea binar a biilor transmii n sintaxa de transfer ASN. 1. 22. Care este reprezentarea irului binar de 11 bii, '11100001111' n sintaxa de transfer ASN.l? 23. S presupunem c suntei angajat de un furnizor de puni s scriei un cod n conformitate cu SNMP pentruuna dintre puni. Ai citit toate RFC-urile i tot avei ntrebri. Sugerai IAB-ului c undeva ar trebui s existe o gramatic formal complet a limbajului folosit pentru a descrie variantele SNMP. Reacia IAB-ului este de a accepta i a v desemna s rezolvai problema. Gramatica ar trebui adugat RFC-ului 1442 sau RFC-ului 1231? De ce? Indicaie: Nu trebuie s luai RFC-urile; este dat suficient informaie n text. 24. Unele sisteme de pot electronic suport n antet un cmp numit Content Retum:. Acesta specific dac corpul mesajului va fi returnat n cazul nelivrrii. Acest cmp aparine nveliului sau antetului? 25. Sistemele de pot electronic au nevoie de cataloage, astfel nct adresele de pot ale utilizatorilor s poat fi cutate. Pentru construcia unor astfel de cataloage, numele trebuie mprite n componente standard (de exemplu, nume i prenume), pentru a face cutarea posibil. Discutai cteva probleme care trebuie rezolvate pentru ca un standard universal s fie acceptat. 26. Un fiier binar are lungimea de 3072 de bii. Ct de lung va fi dac l codificm folosind base64, cu perechea CR+LF inserat dup fiecare 80 de bii transmii i la sfrit? 27. Considerai schema de codificare MIME afiabil marcat. Menionai o problem nediscutat n text i propunei o soluie. 28. Dai dou motive pentru care PGP comprim mesajele. 29. Presupunnd c cineva activeaz un demon de vacan i apoi transmite un mesaj chiar nainte de deconectare. (Din nefericire, adresantul a fost n vacan pentru o sptmn i a activat un demon de vacan), ce se va ntmpla? Vor circula replicile nainte i napoi pn cnd se ntoarce cineva?
A

706

NIVELUL APLICAIE

CAP. 7

30. Presupunnd c toi cei din Internet folosesc PGP, poate fi transmis un mesaj PGP la o adres arbitrar Internet i decodificat corect de cei interesai? Discutai rspunsul. 31. PGP nu suport canonizarea ca PEM-ul. De ce nu? 32. Ghicii ce nseamn smiley-ul :-X (scris cteodat :-#). 33. Ct de mult timp dureaz s distribui tirile dintr-o zi printr-un canal de satelit de 50-Mbps? 34. Care din comenzile din Fig. 7-56 sunt teoretic redundante? 35. O reea mare conine o gril de nxn maini. Toate nodurile interioare au patru vecini; cei din coluri au doar trei (doi) vecini. Dac un mesaj de m-bii este transmis la una din maini folosind NNTP-ul, ct de muli octei de lrgime de band sunt consumai pentru a-1 transmite la toate celelalte maini (ignornd timpul suplimentar de sistem al NNTPului i numrnd doar biii mesajelor). 36. Repetai problema anterioar, dar acum aflai lrgimea de band aproximativ necesar pentru distribuia mesajului folosind o list de pot. Cu ct este mai mare dect n problema anterioar? 37. Cnd sunt transmise pagini Web, ele sunt prefixate de antete MIME. De ce? 38. Cnd sunt necesare programe de vizualizare externe? Cum tie un program de navigare pe care s-1 foloseasc? 39. Imaginai-v c cineva de la Departamentul CS din Stanford a scris un nou program pe care vrea s-1 distribuie prin FTP. El pune programul n catalogul ftp/pub/fi-eebiesfnewprog.c. Care este URL-ul probabil pentru acest program? 40. n Fig. 7-60, n marcajul <IMG> apare parametrul ALT. n ce condiii este folosit de programul de navigare i cum? 41. Cum realizai o imagine selectabil n HTML? Dai un exemplu. 42. Artai ce marcaj <A> este necesar pentru a face ca irul ACM" s fie o hiper-legtur la http://www.acm.org. 43. Proiectai un formular pentru o nou companie, InterBurger, care permite comanda hamburgerilor prin Internet. Formularul trebuie s conin numele clientului, adresa, oraul, ca i o opiune asupra dimensiunii (ori gigant, ori imens) i o opiune pentru brnz. Burger-ii urmeaz a fi pltii la livrare cu bani ghea, aa c nu este necesar nici o informaie despre cartea de credit. 44. Java nu are structuri ca n C sau nregistrri ca n Pascal. Exist o alt cale pentru a obine acelai efect de unire a mai multor variabile diferite, ntr-un singur tip de date? Dac da, care este acesta?

SEC. 7.9

PROBLEME

707

45. S presupunem c n efortul de a deveni orientat pe pia, KGB devine comercial i angajeaz o agenie publicitar ca s-i proiecteze o pagin de Web. Compania dumneavoastr a fost angajat drept consultant extern pentru a o implementa. Scriei textul HTML ce este necesar pentru a produce pagina de Web de mai jos.
WELCOME TO THE KGB"S WWW HOME PAGE

As a consequence of its recent privatization, the KGB is pleased to announce trie commercial availability of many fine products and services previously available only to major gpvemments. Competitive prices! Discreet service ensured! Products a Nuclear weapons (small, medium, large, jumbo) Spy satellites (keep tabs on your neiahbors) Low-radar-profile supersonic aircraft (buzz your friends' houses unseen) Services Mole placement n the organization of vour choice Q Coups (corporate as well as aovernmental) Assistance n settinq up your very own qerm-warfare laboratorv Bargain basement specials a The collected works of Felix Dzerhinskv (limited edition) Aerial photoqraphs of Afahanistan (ca. 1984) Quality Bulgarian-made tanks (95 percent discoun) Webmaster@kgb.ru

46. Folosind structurile de date din Fig. 7-75, listai paii exaci care trebuie urmai pentru verificarea unui nou URL pentru a vedea dac el este deja ntr-o urljable. 47. n C i C++, dimensiunea unui ntreg nu este specificat n limbaj. n Java ea este. Dai un argument n favoarea C-ului i unul n favoarea Java-ei. 48. S presupunem c Web conine 10 milioane de pagini, fiecare n medie cu 10 hiper-legturi. Aducerea unei pagini ia 100 msec. Care este timpul minim pentru a indexa ntregul Web? 49. Un compact disc memoreaz 650 MB de date. Este folosit compresia pentru CD-uri audio? Explicai raionamentul. 50. Care este rata pe bii pentru transmiterea necomprimat a culorii VGA cu 8 bii/pixei ia 40 cadre/sec? 51. n Fig. 7-76(c) zgomotul de cuantificare apare datorit folosirii de eantioane pe 3 bii. Primul eantion, la 0, este exact, dar cteva dintre urmtoarele nu. Care este procentul de eroare la 1/32,2/32 i 3/32 din perioad? 52. Poate o eroare de l-bit ntr-un cadru MPEG s afecteze mai mult dect cadrul n care a aprut eroarea? Explicai rspunsul vostru.

708

NIVELUL APLICAIE

CAP. 7

53. S considerm exemplul video-serverului cu 100.000 de clieni. S presupunem c jumtate din filme se transmit ntre 8 i 10 seara. Cte filme trebuie s transmit serverul simultan n acest interval de timp? Dac fiecare film necesit 4 Mbps, cte conexiuni OC-12 necesit serverul pentru reea? 54. S presupunem c legea lui Zipf este ndeplinit pentru accese la un server video cu 10.000 de filme. Dac serverul memoreaz cele mai populare 1000 de filme pe disc magnetic, iar restul de 9000 pe disc optic, dai o expresie pentru fracia tuturor referinelor care se vor face la discul magnetic. Scriei un mic program pentru evaluarea acestei expresii numerice. 55. Pachetele MPEG PES conin un cmp care precizeaz statutul drepturilor de autor pentru transmisia curent. Pentru ce poate fi folosit conceptual acest cmp?

BIBLIOGRAFIE l RECOMANDRI DE LECTUR


Aici se ncheie studiul nostru despre reelele de calculatoare, dar aceast lucrare este doar un nceput. Multe subiecte interesante nu au fost tratate la nivelul de detaliu pe care l-ar fi meritat, iar altele au fost omise n totalitate, din lips de spaiu. Pentru cititorii care doresc s continue studiul reelelor de calculatoare furnizm n acest capitol cteva sugestii de lecturi posibile, precum i o list bibliografic.

8.1 SUGESTII PENTRU LECTURI VIITOARE


Exist o literatur vast despre toate aspectele reelelor de calculatoare i ale sistemelor distribuite. Patru reviste, care public frecvent articole n acest domeniu sunt IEEE Transactions on Communications, IEEE lournal on Selected Areas n Communications, Computer Communication Review i Computer Networks and ISDN Systems. De asemenea, multe alte reviste public ocazional articole cu acest subiect. IEEE public i el dou reviste ilustrate, IEEE Network Magazine i IEEE Communications Magazine, care conin studii, ndrumri practice, studii de caz despre reele. Prima revist se refer cu precdere la arhitectur, standarde i software, iar cea de a doua se orienteaz ctre tehnologia comunicaiilor (fibr optic, satelii i aa mai departe). n plus, exist mai multe conferine anuale sau bianuale care atrag adesea multe lucrri despre reele i sisteme distribuite, n particular SIGCOMM Vx, The International Conference on Distributed Computer Systems, The Symposium on Operating Systems Principles i The N-th Data Communications 709

710

BIBLIOGRAFIE i RECOMANDRI DE LECTUR

CAP. 8

Symposium. De asemenea IEEE a publicat mai multe colecii de articole despre reele, selectate i retiprite n form adecvat. Enumerm n continuare, n ordinea capitolelor crii, cteva sugestii de lecturi suplimentare. 8.1.1 Lucrri introductive i generale

Jabbari .a., Network Issues for Wireess Communication" Aceast introducere n sistemele radio celulare acoper controlul apelurilor, dirijarea, semnalizarea i alte aspecte ale sistemelor moderne de comunicaii mobile. Corner, The Internet Book Cine caut o introducere simpl n Internet ar trebui s citeasc aceast lucrare. Corner descrie istoria, dezvoltarea, tehnologia, protocoalele i serviciile Intemet-ului n termeni pe care novicii i pot nelege, dar datorit cantitii de material acoperite, cartea sa prezint interes i pentru cititorii mai avansai. Kwok, A Vision for Residential Broadband Services" Dac dorii s tii cum crede Microsoft c trebuie organizat serviciul de video la cerere, acest articol v este de mare folos. n ei, arhitectul ef ATM de la Microsoft explic viziunea companiei sale. Pe scurt, ideea Microsoft-ului este urmtoarea: ATM-ul este calea cea mai bun pentru serviciile la domiciliu. Uit toate soluiile realiste" (adic ad-faoc), precum ADSL i f ceea ce trebuie. Le Boudec, The Asynchronous Transfer Mode: A tutorial" ATM este o tehnologie n plin evoluie, pentru care acest articol furnizeaz o introducere ngrijit. Sunt acoperite nivelul fizic, nivelul ATM i nivelul AAL. n plus, seciunea final comenteaz controverselerelative la ATM. Pahlavan .a., Trends n Local Wireess Networks" Reelele locale fr fir vor cpta, fr ndoial, o importan crescnd n viitor. n acest articol, autorii discut stadiul actual i tendinele n utilizarea spectrului i tehnologiile reelelor locale fr fir. Siu i Jain, A Brief Overview of ATM" n acest articol introductiv, sunt acoperite multe caracteristici ale sistemelor ATM, dar accentul este pus pe emularea LAN-urilor i pe gestiunea traficului. Articolul joac rolul de introducere a unui numr special din Computer Communication Review dedicat tehnologiei ATM. Stallings, Data and Computer Communications, ediia a 4-a n loc s acopere doar modelele de referin OS i TCP/IP, pentru a pstra imparialitatea, Stallings se arunc ntr-un al treilea, SNA. Fiecare model este descris n capitolul 10.

SEC. 8.1

SUGESTII PENTRU LECTURI VIITOARE

711

8.1.2 Nivelul fizic Awdeh i Mouftah, Survey of ATM Switch Architectures" Oricine este interesat s afle mai mult despre proiectarea comutatorului ATM ar trebui s se uite n aceast lucrare. Dup o introducere general a comutatoarelor i a strategiilor de memorare intermediar, autorii discut multe tipuri de comutatoare matriciale, cu ci disjuncte i banyan. Articolul furnizeaz, de asemenea, peste 200 de referine la alte articole. Bellamy, Digital Telephony Aceast lucrare demn de ncredere conine tot ce ai dorit vreodat s tii despre sistemul telefonic i chiar mai mult. n particular, sunt interesante capitolele despre transmisie i multiplexare, comutare digital, fibr optic i ISDN. De Prycker, Asynchronous transfer Mode, ediia a 2-a Capitolul 4 include o abunden de informaii despre comutatoare ATM. Principiile sunt ilustrate prin numeroase exemple de comutatoare, inclusiv comutatoarele scoase din lupt" Roxanne, Coprin i Athena. Held, The Complete Modem Reference, ediia a 2-a Gsii aici tot ceea ce ai putea imagina c vrei s tii despre modemuri, de la regulile privind acordurile guvernamentale americane i canadiene, trecnd prin tehnicile i standardele relative la modulare i terminnd cu modul de depanare a unui modem stricat. IEEE Communications Mag., ianuarie 1995, Wireless Personal Communications" Acest numr special conine apte articole despre diferite aspecte ale comunicrii personale fr fir. mpreun, ele acoper propagarea, metodele de acces, principiile receptorului, aspecte de sistem i probleme de reea. Metcalfe, Computer/Network Interface Design Lessons from Arpanet & Ethernet" Dei inginerii au construit interfee de reea ncepnd n urm cu zeci de ani, unii se ntreab nc dac au nvat ceva din aceast experien. n acest articol, proiectantul Ethernet-ului spune cum se construiete o interfa de reea si ce se face cu ea odat ce a fost construit. El recunoate sincer ce a fcut greit i ce a fcut corect. Padgett .a., Overview of Wireless Personal Communications" Lucrarea prezint o introducere n sisteme de comunicaii celulare i fr fir i o comparaie ntre ele. Sunt acoperite att standardele americane ct i cele europene. Palais, Fiber Optic Communication, ediia a 3-a Dei crile despre tehnologia fibrei optice devin din ce n ce mai specializate, aceast lucrare este mai accesibil dact multe altele. Ea acoper ghidurile de und, sursele de lumin, detectoarele de lumin, cuploarele, modularea, zgomotul i multe alte subiecte. Pandya, Emerging Mobile and Personal Communications Systems"

712

BIBLIOGRAFIE I RECOMANDRI DE LECTUR

CAP. 8

Acest articol este foarte potrivit ca o introducere scurt i plcut n sistemele de comunicaie portabile personale. Una din cele nou pagini conine o list de 70 de acronime folosite n celelalte opt pagini. Partridge, Gigabit Networking In plus fa de descrierea mai multor feluri de comutatoare ATM, capitolul 5 compar memorarea temporar la intrare i la ieire i deduce formule pentru performanele fiecreia. Spragins .a., Telecommunications Protocol and Design Capitolul 2 conine o bun introducere n tehnologia transmisiei, incluznd cabluri de cupru, fibr optic, radio celular i satelii. De asemenea, el conine descrieri extinse despre limitele Nyquist i Shannon i despre implicaiile lor. 8.1.3 Nivelul legtur de date Black, Data Link Protocols Iat o carte ntreag despre nivelul legturii de date. Ea are accent practic, cu o cantitate mare de material despre HDLC, LLC, PPP i alte protocoale comerciale importante. Holzmann, Design and Validation of Computer Protocols Cititorii interesai n aspectele mai formale ale protocoalelor legturii de date (i similare) ar trebui s vad aceast carte. Sunt prezentate aici specificarea, modelarea, corectitudinea i testarea acestor protocoale. Spragins .a., Telecommunications Protocols and Design Cei interesai s afle mai multe despre codurile detectoare i corectoare de erori ar trebui s caute n capitolul 6 al crii lui Spragins. Ea acoper, de asemenea, principiile protocoalelor elementare pentru legtura de date la un nivel apropiat de cel al crii de fa. Capitolul 7 duce discuia mai departe i analizeaz n detaliu diferite protocoale pentru legtura de date. Walrand, Communication Networks: A First Course Capitolul 4 acoper protocoalele legturii de date, cu accent pe analiza performanei. Totodat, sunt tratate abordrile corectitudinii protocoalelor prin automate finite i reele Petri. 8.1.4 Subnivelul de control al accesului Ia mediu Abeysundara i Kamal, High-Speed Local Area Networks and Their Performance" Deoarece reelele locale rapide sunt interesante datorit vitezei lor mari, un articol care discut i analizeaz performana este binevenit. In acesta, accentul este pus pe diferite LAN-uri de tip magistral, inel, arbore i stea, precum i pe caracteristicile relative la ntrziere i utilizare. Jain, FDDI Handbook - High-Speed Networking Using Fiber and other Media Pentru o tratare atent a FDDI-ului (incluznd ndrumri practice agreabile despre fibra optic i SONET) aceast carte este o alegere bun. In plus fa de lungile seciuni despre echipamentele i programele FDDI, ea are o seciune despre performane i chiar sfaturi despre cumprarea cablurilor de fibr optic.

SEC. 8.1

SUGESTII PENTRU LECTURI VIITOARE

713

Perlman, Interconnections: Bridges and Routers Pentru o tratare competent dar antrenant a punilor (i ruterelor), trebuie vzut cartea lui Perlman. Autorul, care a proiectat algoritmii folosii n puntea de tip arbore de acoperire IEEE 802 ca i algoritmul de dirijare DECnet, este n mod clar un expert n domeniu. Stallings, Local and Metropolitan Area Networks, ediia a 4-a Esena acestei cri este reprezentat de cele trei LAN-uri IEEE 802, dar sunt prezentate si alte LAN-uri si MAN-uri. Walrand, Communication Networks: A First Course Ca i cartea lui Stallings menionat anterior, capitolul 5 al acestei cri acoper materialul de baz 802 plus FDDI i DQDB. Accentul este pus pe analiza performanelor protocoalelor. 8.1.5 Nivelul reea Corner, Inernetworking with TCP/IP, Voi. 1, ediia a 3-a Corner a scris cartea decisiv despre suita de protocoale TCP/IP. Capitolele de la 4 la 11 trateaz IP i protocoalele legate de el din nivelul reea. Celelalte capitole se refer n primul rnd la nivelele superioare i merit, de asemenea, s fie citite. Huitema, Routing n the Internet Dac vrei s tii tot ce este de tiut despre dirijarea n Internet, aceasta este cartea care v trebuie. Sunt tratai n mare detaliu att algoritmi care pot fi pronunai (ca RIP, CIDR i MBONE) ct i algoritmi care nu pot fi pronunai (ca OSPF, IGRP, EGP i BGP). Se gsesc aici caracteristici noi, cum ar fi trimiterea cu destinaie multipl (multicast), mobil, IP i rezervarea resurselor Perlman, Interconnections: Bridges and Routers n capitolul 9, Perlman descrie multe probleme de proiectare a algoritmilor de dirijare cu o singur destinaie i cu trimitere multipl, pentru reele WAN i LAN, precum i implementarea lor pe diferite echipamante. n mod evident, autorul este preocupat de subiect, el intitulnd seciunea 9.13.10 Opinia mea despre difuzarea multi-destinaie n nivelul reea de tip IP." Sterbenz .a., Report on the IEEE ComSoc Gigabit Networking Workshop" nainte ca reelele gigabit s fie utilizabile, trebuie rezolvate cteva probleme de baz. O problem cheie este dac aceste reele vor folosi ATM, TCP/IP sau ambele. Pentru a nelege mai bine aceste probleme, IEEE a organizat n aprilie 1995 un seminar, al crui rezumat este prezentat n aceast lucrare. Critica adus de Schulzrinne ATM-ului merit s fie citit de oricine crede c ATM-ul este soluia problemelor de comunicaii mondiale. Stevens, TCP/IP Illustrated, Voi. 1 Capitolele 3-10 furnizeaz o tratare cuprinztoare, ilustrat prin exemple, a IP-ului i a protocoalelor legate de el (ARP, RARP i ICMP). Yang i Reddy, A Taxonomy for Congestion Control Algorithms n Packet Switching Networks" Autorii au proiectat o taxonomie pentru algoritmii de control al congestiei. Principalele categorii sunt bucl deschis cu controlul sursei, bucl deschis cu controlul destinaiei, bucl nchis cu

714

BIBLIOGRAFIE I RECOMANDRI DE LECTUR

CAP. 8

reacie explicit i bucl nchis cu reacie implicit. Ei folosesc aceast taxonomie pentru a descrie i clasifica 23 de algoritmi existeni. 8.1.6 Nivelul transport Corner, Internetworking with TCP/1P, Voi. 1, ediia a 3-a Aa cum s-a mai menionat, Corner a scris lucrarea decisiv despre suita de protocoale TCP/IP. Capitolul 12 se refer la UDP, iar capitolul 13 la TCP. Mogul, IP Network Performance" n ciuda titlului acestui articol, el trateaz cel puin, dac nu ceva mai mult, performanele TCPului i ale reelelor n general, apoi performanele IP-ului n particular. Este plin de ndrumri utile i reguli de aur. Stallings, Data and Computer Communications, ediia a 4-a Capitolul 12 se refer la protocoalele de transport i descrie la un nivel abstract, serviciile i mecanismele de transport, iar n detaliu protocoalele de transport OSI i TCP. Stevens, TCP/IP Illustrated, Voi. 1 Capitolele 17-24 furnizeaz o tratare cuprinztoare a TCP-ului, ilustrat prin exemple. 8.1.7 Nivelul aplicaiei Anderson, R., Why Cryptosystems Fail" Dup Anderson, securitatea sistemelor bancare este firav, dar nu datorit intruilor inteligeni care sparg DES-ul pe PC-urile lor. Problemele reale sunt foarte variate, de la angajai necinstii (un angajat de banc schimbnd adresa de pot a unui client cu a sa, pentru a intercepta numrul crii de credit i numrul PIN) la erori de programare (acordarea aceluiai cod PIN tuturor clienilor). Este deosebit de interesant rspunsul dat de banc atunci cnd se confrunt cu o eroare: sistemul nostru este perfect i, ca urmare, toate greelile trebuie s se datoreze erorilor clienilor sau fraudelor. Berghel, The Client Side of the Web" O introducere comod n programele de navigare Web i n caracteristicile lor. Principalele subiecte sunt conformitatea ntre HTML i HTTP, performanele, reconfigurabilitatea, integrarea cu calculatoarele personale i programele de navigare. Sunt comparate, conform acestor aspecte, nou programe de navigare mai rspndite. Berners-Lee .a., The World Wide Web" O perspectiv asupra Web-ului i a direciei sale de evoluie prezentat de persoanele care l-au inventat. Articolul se concentreaz asupra arhitecturii Web, HTTP i HTML, ca i asupra direciilor de dezvoltare viitoare. Carl-Michell i Quarterman, Practicai Internetworking with TCP/IP and UNIX Capitolul 5 prezint o introducere drgu n atribuirea numelor i n DNS, inclusiv autoriti de numire, arhitectura operaional i baza de date DNS.

SEC. 8.1

SUGESTII PENTRU LECTURI VIITOARE

715

Choudbury .a., Copyright Protection for Electronic Publishing on Computer Networks" Dei numeroase cri i articole descriu algoritmi criptografici, puine descriu modul n care acetia pot fi folosii pentru a mpiedica utilizatorii s redistribuie documentele pe care au dreptul s le decripteze. Acest articol descrie o varietate de mecanisme care poate ajuta protecia drepturilor de autor n era elecrtronic. Furht .a., Desigh Issues for Interactive Televisioin Systems" Video la cerere ridic multe probleme tehnice complexe legate de arhitectura sistemului, topologia reelei, proiectarea serverului i proiectarea cutiilor de cuplare. n acest articol, autorii prezint cteva probleme cheie i cteva soluii n curs de investigare. Handley i Crowcroft, The World Wide Web - Beneath the Surf n timp ce 99% din crile despre WWW spun doar cum s utilizai un program de navigare sau listeaz URL-uri interesante, aceasta explic modul intern de lucru al Web-ului. Partea de client, partea de server i HTML sunt explicate pe ndelete. Kaufman .a., Network Security Aceast carte demn de ncredere i adesea spiritual este primul loc unde trebuie s cutai informaii despre securitatea reelelor. Se explic pe larg algoritmi i protocoale cu chei secrete i publice, criptarea mesajelor, autentificarea, Kerberos i pota. Cele mai bune pri sunt discuiile inter-autori (i chiar intra-autori), etichetate prin indici inferiori, ca n: I 2 nu m poate determina pe mine! s fiu foarte precis..." Kumar, Mbone: Interactive Multimedia on the Internet Coperta acestei cri spune: Descoperii cum putei difuza, anuna i afia produsele dumneavoastr prin Internet". Din fericire, acest subiect nu este menionat nicieri n alt parte a crii. Se acoper arhitectura i implementarea Mbone, incluznd o mulime de materiale despre cum lucreaz i cum pot fi utilizate. Nemeth .a., UNIX Systems Administration Handbook Capitolul 16 este o lung introducere n DNS. Autorii intr n toate detaliile nclcite ilustrnd diferite fiiere i nregistrri de resurse cu numeroase exemple. De asemenea, sunt acoperite n detaliu programe i alte instrumente folosite pentru a gestiona un server DNS. Rose, The Internet Message Dac dorii o prezentare picant i iconoclast pentru e-mail, aceast carte este o bun opiune. Autorul nu ezit s arate, din cnd n cnd, ce nu merge n aceast lume. i cnd descoperi astfel de lucruri, ncepe chiar s-i plac. $chnd&v,Applied Criptogmphy, ediia a 2-a Acest compendiu monumental este cel mai mare comar al NSA: o singur carte care descrie fiecare algoritm criptografic cunoscut. Pentru a face situaia i mai rea (sau mai bun, depinde de punctul dumneavoastr de vedere) cartea conine cei mai muli algoritmi ca programe ce pot fi executate (n C). Mai mult, sunt furnizate peste 1600 de referine la literatura criptografic. Dac vrei cu adevrat s pstrai secrete fiierele dumneavoastr, atunci citii aceast carte. Steinmetz i Nahrstedt, Multimedia: Computing, Communications and Applications

716

BIBLIOGRAFIE I RECOMANDRI DE LECTURA

CAP. 8

Dei oarecum haotic, cartea acoper o mare parte din multimedia. Subiectele tratate pe larg includ audio, fotografii i filme, compresia, memorarea optic, sisteme de operare multimedia, reele, hipertext, sincronizarea fluxurilor i aplicaii multimedia. Van der Linden, Just Java Atunci cnd capitolul 1 al unei cri este intitulat Vino n camera mea, a spus pianjenul mutei", mai mult ca sigur c ea este o poveste feeric pentru copii sau despre World Wide Web. Aceasta este despre Web, mai precis despre limbajul Java i mediul su. Pentru cei care doresc s se joace cu Java, cartea se livreaz cu tot sistemul Java pe CD-ROM.

8.2

BIBLIOGRAFIE N ORDINE ALFABETIC

ABEYSUNDARA, B.W. i KAMAL, A.E.: "High-Speed Local Area Networks and Their Performance" Computing Surveys, voi. 23, pag. 221-264, iunie 1991. ABRAMSON, N.: "Development of the ALOHANET," IEEE Trans. On Inforaiation Theory, voi. IT-31, pag. 119-123, martie 1985. ADAM, JA.: "Privacy and Computers," IEEE Spectrum, voi. 32, pag.46-52, dec. 1995. ADAMS, N., GOLD, R, SCHDLT, B.N., TSO, M.M i WANT, R: "An Infrared Network for Mobile Computers," Proc. USENIX Mobile and Location-Independent Computing Symposium, USENIX, pag. 41-51,1993. ANDERSON, R.J.: "Why Qyptosystems Fail," Commun. of the ACM, voi. 37, pag. 32 -40. nov. 1994. ARMBRUSTER, H.t "The Flexibility of ATM: Supporting Future Multimedia and Mobile Communications," IEEE Commun. Magazine, voi. 33, pag. 76-84, febr. 1995. ARMITAGE, G.J. i ADAMS, KM.: "How Efficient is IP over ATM Anyway?" IEEE Network Magazine, voi. 9, pag. 18-26, ian'./febr. 1995. ARNOLD, K. i GOSLING, J.: The Java Programming Language, Reading, MA: Addison-Wesley, 1996. AT&T i BELLCORE: "Observations of Error Characteristics of Fiber Optic Transmission Systems," CQTT SG XVIII, San Diego, ian. 1989. AWDEH, RY. i MOUFTAH, H.T.: "Survey of ATM Switch Architectures," Computer Networks and ISDN Systems, voi. 27, pag. 1567-1613, nov. 1995. BAKNE, A. i BADRINATH, B.R.: "I-TCP: Indirect TCP for Mobile Hosts," Proc. Fifteenth Intl. Conf. on Distr. Computer Systems, IEEE, pag. 136-143,1995. BALAKRISHNAN, H., SESHAN, S i KATZ, R.H.: "Improving Reliable Transport and Handoff Performance n Cellular Wireless Networks," Proc. ACM Mobile Computing and Networking Conf., ACM, pag. 2-11,1995.

SEC. 8.2

BIBLIOGRAFIE IN ORDINE ALFABETICA

717

BALLARDIE, T., FRANCIS, P. i CROWCROFR, J.: "Core Based Trees (CBT)," Proc. SIGCOMM '93 Conf., ACM, pag. 85-95,1993. BANTZ, D.F. i BAUCHOT, F.J.: "Wireless LAN Design Alteraatives," IEEE Network Magazine, voi. 8, pag. 43-53, martie/aprilie, 1994. BARANSEL, G, DOBOSIEWICZ, W. i GBURZYNSKI, R: "Routing n Multihop Packet Switching Networks: Gb/s Challenge," IEEE Network Magazine, voi. 9, pag. 38-61, mai/iunie, 1995. BARLOW, J.P.: "Property and Speech: Who Owns What You Say n Cyberspace," Commun. of the ACM, voi. 38, pag. 19-22, dec. 1995. BATCHER, KE.: "Sorting Networks and Their Applications," Proc. AFIPS Spring Joint Computer Conf., voi. 32, pag. 307-315,1968. BATES, RJ.: Wireless Networked Communications, New York: McGraw-Hill, 1994 BELLAMY, J.: Digital Telephony, New York: John Wiley, 1991. BELLMAN, R.E.: Dynamic Progiwnming, Princeton, NJ: Princeton University Press, 1957. BELSNES, D.: "Flow Control n the Packet Switching Networks," Communications Networks, Uxbridge, England: Online, pag. 349-361,1975. BERGHEL, H.L.: "The Client Side of the Web," Commun. of the ACM, voi. 39, pag. 33-40, ian. 1996. BERNERS-LEE, T, CAELLAU, A., LOUTONEN, A., NIELSEN, H.F. i SECRET, A.: "The World Wide Web," Commun. of the ACM, voi. 37, pag. 76-82, aug. 1994. BERTSEKAS, D. i GALLAGER, R.: Data Networks, ediia a doua, Englewood Cliffs, NJ: Prentice Hali/1992. BHARGHAVAN, V., DEMERS, A., SHENKER, S. i ZHANG, L: "MACAW: A Media Access Protocol for Wireless LANs," Proc. SIGCOMM '94 Conf. ACM, pag. 212-225,1994, BIHAM, E. i SHAMIR, A.: Differential Cryptanalysis of the Data Enayption Standard, New York: SpringerVerlag, 1993. BINDER, R.: "A Dynamic Packet Switching System for Satellite Broadcast Channels," Proc. Intl. Conf. on Commun., pag. 41 -l pn la 41-5a, 1975. BLACK, XJ.D.:Data LinkProtocob, Englewood Cliffs, NJ: Prentice Hali, 1993. BLACK, U.D.: Emerging Communications Technologies, Englewood Cliffs, NJ: Prentice Hali, 1994. BLACK, U.D.: TCP/IP and Related Protocob, New York: McGraw-Hill, 1995. BLAZE, M.: "Protocol Failure n the Escrowed Encryption Standard," Proc. Second ACM Conf. on Computer and Commun. Security, ACM, pag. 59-67,1994.

718

BIBLIOGRAFIE I RECOMANDRI DE LECTURA

CAP. 8

BOGINENI, K. i SIVALINGAM, K.M.: "Low-Complexity Multiple Access Protocols for Wavelength-Division Multiplexed Photonic Networks," IEEE Journal on Selected Areas n Commun. voi. 11, pag. 590-604, mai 1993. BONOMI, F. i FENDICK, K.W.: "The Rate-Based Flow Control Framework for the Available Bit-rate ATM Service," IEEE Network Magazine, voi. 9, pag. 25-39, martie/aprilie 1995. BOWMAN, CM., DANZIG, P.B., HARDY, D.R., MANBER, U. i SCHWARTZ, M.F.: "The Harvest Information Discovery and Access System," Computer Networks and ISDN Systems, voi. 28, pag. 119-125, dec. 1995. BOWMAN, CM., DANZIG, P.B., MANBER, U. i SCHWARTZ, M.F.: "Scalable Internet Resource Discovery: Research Problems and Approaches," Commun. of the ACM, voi. 37, pag. 98-107, aug. 1994. BRAKMO, L.S., O'MALLEY, S.W. i PETERSON, L.L.: 'TCP Vegas: New Techn. for Congestion Detection and Avoidance," Proc. SIGCOMM '94 Conf., ACM, pag. 24-35,1994. BROADHEAD, MA i OWEN, CB.: "Direct Manipuiation of MPEG Compressed Digital Audio," Proc. of ACM Multimedia '95, ACM, pag. 499-507,1995. BROWN, L.. KWAN, M., PIEPRZYK, J. i SEBERRY, J.: "Improving Resistance to Differentiai Cryptanalysis and the Redesign of LOKI," ASIACRYPT '91 Abstracts, pag. 25-30,1991. BUFORD, J.F.K. (Ed.): Multimedia Systems, Reading, MA: Addison-Wesley, 1994. BURROWS, M., ABADI, M i NEEDHAM, R.M.: "A Logic of Authentication," DEC System Research Center Report, febr. 1990. CAMPBELL, A., COULSON, G. i HUTCHISON, D.: "A Quality of Service Architecture," Computer Comm. Rev., voi. 24, pag. 6-27, aprilie 1994. CAMPIONE, M. i WALRATH, K.: The Java Language Tutoiial: Object-Oiiented Pivgramming for the Internet, Reading, MA: Addison-Wesley, 1996. CAPETANAKIS, J..: "Tree Algorithms for Packet Broadcast Channels," IEEE Trans. on Information Theory, voi. IT-25, pag. 505-515, sept. 1979. CARL-MITCHELL, S. i QUARTERMAN, J.S.: Pmctical Intemetworking with TCP/IP and UNIX, Reading, MA: Addison-Wesley, 1993. CATLETT, CE.: "n Search of Gigabit Applications," IEEE Commun. Magazine, voi. 30, pag. 42-51, aprilie 1992. CERF, V. i KAHN, R.: "A Protocol for Packet Network Interconnection," IEEE Trans. on Commun., voi. COM-22, pag. 637-648, mai 1974. CHANDRANMENON, G.P. i VARGHESE, G.: "Trading Packet Headers for Packet Processing, " Proc. SIGCOMM '95 Conf, ACM, pag. 162-173,1995.

SEC. 8.2

BIBLIOGRAFIE IN ORDINE ALFABETICA

719

CHANG, Y.-EL, COGGINS, D., POT, D., SKELLERN, D., THAPAR, M., i VENKATRAMAN, C: "An OpenSystem Approach to Video on Demand," IEEE Commun. Magazine, voi. 32, pag. 68-80, mai 1994. CHAO, JJ., GHOSAL, D., SAHA, D. i TTUPATHI, S.K.: "IP on ATM Local Area Networks," IEEE Commun. Magazine, voi. 32, pag. 52-59, aug. 1994. CHAPMAN, D.E. i ZWICKY, E.D.: Building Internet Firewalls, Sebastopol, CA: O'Reilly, 1995. CHEN, K.-G: "Medium Access Control of Wireless LANs for Mobile Computing," IEEE Network Magazine, voi. 8, pag. 50-63, sept./oct. 1994. CHEN, M. i YUM, T.-S.: "A Conflict-Free Protocol for Optical WDMA Networks," Proc. Globecom '91, pag. 1276-1281,1991. CHEN, W.Y. i WARING, D.L.: "Applicability of ADSL to Support Video Dial Tone n the Copper Loop," IEEE Commun. Magazine, voi. 32, pag. 102-106, mai 1994. CHERITON, D. i WILLAMSON, C: "VMTP as the Transport Layer for High-Performance Distributed Systems," IEEE Commun. Magazine, voi. 27, pag. 37-44, iunie 1989. CHERVENAK, A.L., PATTERSON, D.A. i KATZ, R.H.: "Choosing the Best Storage System for Video Service," Procof ACM Multimedia '95, ACM, pag. 109-119,1995. CHERVENAK, A.L.: Tertiary Storage: An Evaluation of New Applications, tez de doctorat, CSD, Univ. of California at Berkeley, 1994. CHESSON, G.L.: "XTP/PE Design Considerations," IFIP Workshop on Protocols for High-Speed Networks, IFIP, pag. 27-33,1989. CHESWICK, W.R. i BELLOVIN, S.M.: Firewalls and Inteiwalb-RepeUing the Wilfy Hacker, Reading, MA: Addison-Wesley, 1994. CHOUDBURY, A.K., MAXEMCHUK, N.F., PAUL, S. i SCHULZRINNE, H.G.: "Copyright Protection for Electronic Publishing on Computer Networks," IEEE Network Magazine, voi. 9, pag. 12-20, mai/iunie, 1995. CLARK, D.D., DAVIE, B.S., FARBER, D.J., GOPAL, I.S., KADABA, B.K., SINCOSKIE, W.D., SM1TH, J.M. i TENNENHOUSE, D.L.: "The Aurora Gigabit Testbed," Computer Networks and ISDN Systems, voi. 15, pag. 599-621, ian. 1993. CLARK, D.D., JACOBSON, V., ROMKEY, J. i SALWEN, H.: "An Analysis of TCP Processing Overhead," IEEE Commun. Magazine, voi. 27, pag. 23-29, iunie 1989. CLARK, D.D., LAMBERT, M. i ZHANG, L.: "NETBLT: A High Throughput Transport Protocol," Proc. SIGCOMM '87 Conf, ACM, pag. 353-359,1987. CLARK, D.D.: "NETBLT: A Bulk Data Transfer Protocol," RFC 998,1987. CLARK, D.D.: "The Design Philosophy of the DARPA Internet Protocols," Proc. SIGCOMM '88 Conf, ACM, pag. 106-114,1988.

720

BIBLIOGRAFIE I RECOMANDRI DE LECTUR

CAP. 8

CLARK, D.D.: "Window and Acknowledgement Strategy n TCP," RFC 813, iulie 1982. CLOS, C: "A Study of Non-Blocking Switching Networks," Bell System Tech. J, voi. 32, pag. 406-424, martie 1953. COMER, D.E.: Intemetworking with TCP/IP, voi. 1, ediia a treia, Englewood Cliffs, NJ: Prentice Hali, 1995. COMER, D.E.: The Internet Book, Englewood Cliffs, NJ: Prentice Hali, 1995. COOK, A. i STERN, J.: "Optical Fiber Access-Perspectives Toward the 21st Century," IEEE Commun. Magazine, voi. 32, pag. 78-86, febr. 1994. COOPER, E.: BroadbandNetwork Technology, Englewood Cliffs, NJ: Prentice Hali, 1986. COULOURIS, G.F., DOLLMORE, J i KINDBERG, T.: Distributed Systems Concepts and Design, ediia a doua, Reading, MA: Addison-Wesley, 1994. CRESPO, P.M., HONIG, M.L. i SALEHL J.A.: "Spread-Time Code-Division Multiple Access," IEEE Trans. on Commun., voi. 43, pag. 2139-2148, iunie 1995. CRONIN, W.J., HUTCHINSON, J.D, RAMAKRISHNAN, K.K. i YANG, H.: "A Comparison of High Speed LANs," Proc. Nineteenth Conf. on Local Computer Networks, IEEE, pag. 40-49,1994. CROWCROFT, J., WANG, Z., SMITH, A. i ADAMS, J.: "A Rough Comparison of the IETF and ATM Service Models," IEEE Network- Magazine voi. 9, pag. 12-16, nov./dec. 1995. CROWTHER, W., RETTBERG, R., WALDEN, D., ORNSTEIN, S. i HEART, F.: "A System for Broadcast Communication: Reservation-Aloha," Proc. Sixth Hawaii Int. Conf. System Sci., pag. 371-374,1973. CUSICK, T.W. i WOOD, M.C.: "The REDOC-II Cryptosystem," Advances n Cryptology-CRYPTO '90 Proceedings, NY: Springer-Verlag, pag. 545-563,1991. DAGDEVIREN, N, NEWELL, J.A., SPINDEL, LA. i STEFANICK, M.J.: "Global Networking with ISDN," IEEE Commun. Magazine, voi. 32, pag. 26-32, iunie 1994. DANSKIN, J.M., DAVIS, G.M. i SONG, X.: "Fast Lossy Internet Image Transmission," Proc. of ACM Multimedia '95, ACM, pag. 321-332,1995. DANTHINE, A.A.S.: "Protocol Representation with Finite-State Models," IEEE Trans. on Commun., voi. COM-28, pag. 632-643, aprilie 1980. DAVIS, P.T. i McGUFFIN, C.R.: Wireless LocalArea Networks New York: McGraw-Hill, 1995. DAY, J.D. i ZMMERMANN, H.: "The OSI Reference Model," Proc. of the IEEE, voi. 71, pag. 1334-1340, dec. 1983. DAY, J.D.: "The (Un)Revised OSI Reference Model," Computer Commun. Rev., voi. 25, pag. 39-55, oct. 1995. DE JONGE, W. i CHAUM, D.: "Some Variations on RSA Signatures and Their Security," n Advances n Cryptology-CRYPTO '86 Proceedings, Odlyzko, A.M. (Ed.), New York: Springer Verlag, 1987.

SEC. 8.2

BIBLIOGRAFIE N ORDINE ALFABETIC

721

DE PRYCKER, M:.Asynchrous Transfer Mode, ediia a doua, New York: Ellis Horwood, 1993. DEAN, D. i WALLACH, D.S.: "Security Flaws n the HotJava Web Browser," Technical Report 502, Dept. of Computer Science, Princeton Univ., 1995. DEERING, S.E. i CHERITON, D.R.: "Multicast Routing n Datagram Internetworks and Extended LANs," ACM Trans. On Computer Systems, voi. 8, pag. 85-110, mai 1990. DEERING, S.E., ESTRIN, D., FARINACCI, D., JACOBSON, V., LIU C.-G. i WEI, L: "An Architecture for Wide-Area Multicast Routing," Proc. SIGCOMM '94 Conf., ACM, pag. .126-135,1994. DEERING, S.E.: "SIP: Simple Internet Protocol," IEEE Network Magazine, voi. 7, pag. 16-28, mai/iunie 1993. DELODDERE, D., VERBIEST, W. i VERHILLE, H.: "Interactive Video on Demand," IEEE Commun. Magazine, voi. 32, pag. 82-88, mai 1994. DEMERS, A., KESHAV, S. i SHENKER, S.: "Analysis and Simulation of a Fair Queueing Algorithm," Internetwork: Research and Experience, voi. 1, pag. 3-26, sept. 1990. DENNING, D.E. i SACCO, G.M.: "Timestamps n Key Distribution Protocols," Commun. of the ACM, voi. 24, pag 533-536,'aug. 1981. DIFFIE, W. i HELLMAN M.E.: "New Directions n Cryprografy," IEEE Trans. on Information Theory, vol.IT22, pag 644-654, nov. 1976. DIFFIE, W. i HELLMAN, M.E.: "Exhaustive Qyptanalysis of the Data Encryption Standard," IEEE Computer Magazine, val. 10, pag 7-84, iunie 1997. DUKSTRA, E.W.: "A Note on Two Problems n Connexion with Graphs," Number. Math., voi. 1, pag. 269-271, oct. 1959. DIRVIN, R.A. i MILLER, A.R.: "The MC68824 Token Bus Controller: VLSI for the Factory LAN," IEEE Micro Magazine, voi. 6, pag. 15-25, iunie 1986. DIXIT, S. i SKELLY, P.: "MPEG-2 over ATM for Video Dia Tone Network," IEEE Network Magazine voi. 9, pag. 30-40, sept./oct. 1995. DIXON,R.C: "Lore of the Token Ring," IEEE Network Magazine voi. 1, pag. 11-18, ian./febr. 1987. DOERINGER, WA, DYKEMAN, D., KAISERSWERTH, M., MEISTER, B.W., RUDIN, H. i WILLIAMSON, R.: "A Survey of Light-Weight Transport Protocols for High-Speed Networks," IEEE Trans. On Commun, voi. 38, pag. 2025-2039, nov. 1990. DORFMAN, R.: "Detection of Defective Members of a Large Population," Annals Math. Statistic, voi. 14, pag. 436-440,1943. ECKBERG, A.E., DOSHI, B.T. i ZOCCOLILLO, R.: "Controlling Congestion n B-ISDN/ATM: Issues and Strategies," IEEE Commun. Magazine, voi. 29, pag. 64-70, sept. 1991.

722

BIBLIOGRAFIE I RECOMANDRI DE LECTURA

CAP. 8

ECKBERG, A.E.: "B-ISDN/ATM Traffic and Congestion Control," IEEE Network Magazine, voi. 6, pag. 28-37, sept./oct. 1992. EDWARDS, A. i MUIR, S.: "Experience Implementing a High-Performance TCP n User-Space," Proc. SIGCOMM''95 Conf., ACM, pag. 197-205,1995. EL GAMAL, T.: "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms" IEEE Trans. on Information Theory, voi. IT-31, pag. 469-472, iulie 1985. ERIKSSON, H.: "MBone: The Multicast Backbone," Commun. of the ACM, voi. 37, pag. 54-60, aug. 1994. ESTRIN, D., REKHNER, Y. i HOTZ, S.: "Scalable Inter-Domain Routing Architecture," Proc. SIGCOMM '92 Conf, ACM, pag. 40-52,'l992. FEIG, E i WINOGRAD, S.: "Fast Algorithms for Discrete Cosine Transformations," IEEE Trans. on Signal Processing, voi. 40, sept. 1992. FEIT, F.: SNMP-A Guide to Network Management, New York: McGraw-Hill, 1995. FIORINI, D., CHANI, M., TRALLI. V. i SALATX, C: "Problems with HDLC," Computer Commun. Rev., voi. 15, pag. 61-80, oct. 1995. FISCHER, W., WALLMEIER, E., WORSTER, T., DAVIS, S.P., HAYTER, A.: "Data Communications Using ATM: Architectures, Protocols, and Resource Management," IEEE Comniun. Magazine, voi. 32, pag. 24-33, aug. 1994. FLOYD, S. i JACOBSON, V.: "Random Early Detection for Congestion Avoidance," IEEE/ACM Trans. on Networking, voi. 1, pag. 397-413, aug. 1993. FLUCKIGER, F.: Understanding Networked Multimedia, Englewood Cliffs, NJ: Prentice Hali, 1995. FORD, L.R., Jr. i FULKERSON, D.R.: Flows n Networks, Princeton, NJ: Piinceton University Press, 1962. FORD, P.S., REKHTER, Y. i BRAUN, H.-W.: "Improving the Routing and Addressing of IP," IEEE Network Magazine, voi. 7, pag. 10-15, mai/iunie 1993. FORMAN, G.H. i ZAHORJAN, J.: "The Chaileges of Mobile Computing," IEEE Computer Magazine, voi. 27, pag. 38-47, aprilie 1994. FRANCIS, P.: "A Near-Term Architecture for Deployin Pip," IEEE Network Magazine, voi 7, pag. 30-37, mai/iunie 1993. FRASER, A.G.: "Early Experiments with Asynchronous Time Division Networks," IEEE Network Magazine voi. 7, pag. 12-27, ian./febr. 1993. FRASER, A.G.: "Towards a Universal Data Transport System," n Advances n Local Area Networks, Kummerle, K., Tobagi, F. i Limb, J.0. (Eds.), New York: IEEE Press, 1987. FURHT, B., KALRA, D., KITSON, F.L., RODRIGUEZ i WALL, W.E.: "Design Issues for Interactive Televisions Systems," IEEE Computer Magazine, voi 28, pag. 25-39, mai 1995.

SEC. 8.2

BIBLIOGRAFIE IN ORDINE ALFABETIC

723

GARCIA-HARO, J. i JAJSZCZYK, A.: "ATM Shared-Memory Switching Architectures," IEEE Network Magazine, voi. 8., pag. 18-26, iulie/aug. 1994. GARG, V. i WILKES, J.E.: Wireless and Personal Communication Systems, Englewood Cliffs, N I : Prentice Hali, 1996. GASMAN, L.: Broadband Networking, New York: Van Nostrand Reinhold, 1994. GIACOPELLI, J.N., HICKEY, J.J., MARCUS, W.S., SINCOSKIE, W.D. i LITTLEWOOD, M.: "Sunshine: A High-Performance Self-Routing Broadband Packet Switch Architecture," IEEE Journal on Selected Areas n Commun., voi. 9, pag. 1289-1298, oct. 1991. GOODMAN, D.J.: "Trends n Cellular and Cordless Communications," IEEE Commun. Magazine, voi. 29, pag. 31-40, iunie 1991. GORALSKI, W.J.: Introduction toATMNetworking, New York: McGraw-HilI, 1995. GOSLING, J., JOY, B. i STEELE, G.: TlieJava Language Spedfication, Reading, MA: Addison-Wesley, 1996. GREEN, P.E., Jr.: Fiber Optic Networks, Englewood Cliffs, NJ: Prentice Hali, 1993. HAC, ANNA: "Wireless and Cellular Architecture and Services," IEEE Commun. Magazine voi. 33, pag. 98-104, nov. 1995. HAFNER, K i MARKOFF, J.: Cybeipunk, New York: Simon ? i Schuster, 1991. HAMMING, R.W.: "Error Detecting and Error Correcting Codes," Bell System Tech. J., voi. 29, pag. 147-160, aprilie 1950. HANDEL, R., HUBER, M.N. i SCHRODER, S.: ATM Concepts, Protocok and Applications, ediia a doua, Reading, MA: Addison-Wesley, 1994. HANDLEY, M. i CROWCROFT, J.: Tlie World Wide Web-Beneath the Surf, London: UCL Press, 1994. HAWLEY, G.T.: "Historical Perspectives on the U.S. Telephone System," IEEE Commun. Magazine, voi. 29, pag. 24-28, martie 1991. HEIN, M. i GRIFFITHS, D.: SNMP, London: Thompson, 1995. HELD, G.: The Complete Modem Reference, ediia a doua, New York: John Wiley, 1994. HELLMAN, M.E.: "A Cryptanalytic Time-Memory Tradeoff," IEEE Trans. on Information Theory, Voi. IT-26, pag. 401-406, iulie 1980. HENDERSON, T.R.: "Design Principles and Performance Analysis of SSCOP: A New ATM Adaptation Layer Protocol," Computer Commun. Review, voi. 15, pag. 47-59, aprilie 1995. HOARE, CAR.: "Monitors, An Operating System Structuring Concept," Commun. of the ACM, voi. 17, pag. 549-557, oct. 1974; Erratum n Commun. of the ACM, Voi. 18, pag. 95, febr.1975.

724

BIBLIOGRAFIE I RECOMANDRI DE LECTURA

CAP. 8

HODGE, W.W., Martin, S., POWERS, J.T., Jr.: "Video on Demand: Architectures, Systems, and Applications," Society of Motion Picture and Television Engineers Journal, voi. 102, pag. 791-803, sept. 1993. HODGE, W.W.: Interactive Television, New York: McGraw-Hill, 1995. HOFFMAN, LJ. (ed.): Building n Big Brother: Tlie Cryptogmphic Policy Debate, New York: Springer-Verlag, 1995. HOLFELDER, W.: "MBone VCR-Video Conference Recording on the MBone," Proc. of ACM Multimedia '95, ACM, pag. 237-238,1995. HOLZMANN, G.J.: Design and Validation of Computer Pivtocols, Englewood Cliffs, NJ: Prentice Hali, 1991. HONG, D. i SUDA, T.: "Congestion Control and Prevention n ATM Networks," IEEE Network Magazine, Voi. 5, pag. 10-16, iulie/aug. 1991. HUANG, A. i KNAUER, S.: "Starlite: A Wideband Digital Switch," Proc. Globecom '84, pag. 121-125,1984. HUGHES, J.P. i FRANA, W.R.: "Geographic Extension of HIPPI Channels," IEEE Network Magazine, voi. 8, pag. 42-53, mai/iunie 1994. HUI, J.: "A Broadband Packet Switch for Multi-rate Services," Proc. Intl. Conf. on Communications IEEE, pag. 782-788,1987. HUITEMA, C: IPv: Tlie New Internet Pivtocol, Englewood Cliffs, NJ: Prentice Hali, 1996. HUITEMA, G: Routing n the Internet, Englewood Cliffs, NJ: Prentice Hali, 1995. HUMBLET, P A , RAMASWAMI, R. i SIVARAJAN, K.N.: "An Efficient Communication Protocol for HighSpeed Packet-Switched Multichannel Networks," Proc. SIGCOMM '92 Conf, ACM, pag. 2-13,1992. IEEE- 802.5: Token Ring Access Method, New York: IEEE, 1985c. :

IEEE: 8023: CanierSense Multiple Access with Collision Detection,NtwYork: IEEE, 1985a. IEEE: 802.4: Token-Passing Bus Access Method, New York: IEEE, 1985b. IEEE: Communications Magazine, voi 33, ian. 1995. IOANNIDIS, J. i MAQUIRE, G.Q., Jr.: "The Design and Implementation of a Mobile Internetworking Architecture," Proc. Winter USENIX Conf., USENX, pag. 491-502, ian. 1993. IRMER, T.: "Shaping Future Telecommunications: The Challenge of Global Standardization," IEEE Commun. Magazine, voi. 32, pag. 20-28, ian. 1994. IVANCIC, W.D., SHALKHAUSER, M.J. i QUINTANA, J.A.: "A Network Architecture for a Geostationary Communication Satellite," IEEE Commun. Magazine, voi. 32, pag. 72-84, iulie 1994. JABBARI, B., COLOMBO, G., NAKAJEVIA, A. i KULKARNI, J.: "Network Issues for Wireless Communications," IEEE Commun. Magazine, voi. 33, pag. 88-98, ian. 1995.

SEC. 8.2

BIBLIOGRAFIE N ORDINE ALFABETIC

725

JACOBSON, V.: "Congestion Avoidance and Control," Proc. SIGCOMM '88 Conf., ACM, pag. 314-329,1988.. JAIN, R.: "Congestion Control and Traffic Management n ATM Networks: Recent Advances and a Survey," Computer Networks and ISDN Systems, voi. 27, nov. 1995. JAIN, R.: "Congestion Control n Computer Networks: Issues and Trends," IEEE Network Magazine, voi 4, pag. 24-30, mai/iunie 1990. JAIN, R: FDD Handbook-High-Speed Networking Using Fiber and other Media, Reading, MA: Addison-Wesley, 1994. JAIN, R.: TleAit of Computer Systems PerfonnanceAnafysis, New York: John Wiley, 1991. JIA, F. i MUKHERJEE, B.: "The Receiver Collision Avoidance (RCA) Protocol for a Singe-Hop WDM' Lightwave Network," Journal of Lightwave Technology, voi. 11, pag. 1053-1065, mai/iunie 1993. JOHNSON, D.B.: "Scalable Support for Transparent Mobile Host Internetworkmg," Wireless Networks, voi. 1, pag. 311-321, oct. 1995. JOHNSON, H.W.: Fast Ethemet-Dawn of a New Network, Englewood Cliffe, NJ: Prentice H I , 1996. KHN, D.: "Cryptoogy Goes Public," IEEE Commun. Magazine, voi. 18, pag. 19-28, martie 1980. KAHN. D.: Vie Codebreakers, New York: Macmillan, 1967. KALISKI, B.S. i ROBSHAW, M.J.B.: "Fast Block Cipher Proposa," Proc. Cambridge Security Workshop, Springer-Verlag, pag. 26-39,1994. KAMOUN, F. i KLEINROCK, L: "Stochastic Performance Evaluation of Hierarchical Routing for Large Networks," Computer Networks, voi. 3, pag. 337-353, nov. 1979. KARN, P.: "MACA-A New Channel Access Protocol for Packet Radio," ARRL/CRRL Amateur Radio Ninth Computer Networking Conf., pag. 134-140,1990. KAROL, M.l, HLUCHYJ, M.G. i MORGAN, S.P.: "Input Versus Output Queueing on a Space-DivisiOn Packet Switch," IEEE Trans. on Commun, voi. 35, pag. 1347-1356, dec. 1987. KARSHMER, AI. i THOMAS, J.N.: " Computer Networking on Cable TV Plants," IEEE Commun. Magazine, voi. 30, pag. 32-40, nov. 1992. KATZ, D., FORD, P.S.: "TUBA: Replacing IP with CLNP," IEEE Network Magazine, voi. 7, pag. 38-47, mai/iunie 1993. KATZ, E.D., BUTTLER, M. i McGRATH, R.: "A Scalable FTITP Server: The NCSA Prototype," Computer Networks and ISDN Systems, voi. 27, pag. 155-164, nov. 1994. KAUFMAN, C, PERLMAN, R. i SPECINER, M.: Network Security, Englewood Cliffc, NJ: Prentice HaU, 1995. KAVAK, N.: Data Communication n ATM Networks," IEEE Network Magazine, voi. .9, pag. 28-37, mai/iunie 1995.

726

BIBLIOGRAFIE I RECOMANDRI DE LECTUR

CAP. 8

KENT, CA. i MOGUL, J.C.: "Fragmentation Considered Harmful," Proc. SIGCOMM '87 Conf. ACM, pag. 390-401,1987. KENT, S.T.: "Internet Privacy Enhanced Mail," Commun. of the ACM, voi. 36, pag. 48-60, aug. 1993. KESSLER, G.C. i TRAIN, D.: Metropolitan Arca Networks: Concepts, Standards, and Services, New York: McGraw-Hill,' 1992. KESSLER, G.C: ISDN, ediia a doua, New York: McGraw-Hill, 1993. KM, J.B., SUDA, T. i YOSHIMURA, M.: "International Standardization of B-ISDN," Computer Networks and ISDN Systems, voi. 27, pag. 5-27, oct. 1994. KLEINROCK, L. i TOBAGI, F.: "Random Access Techniques for Data Transmission over Packet-Switched Radio Channels," Proc. Nat. Computer Conf, pag. 187-201,1975. KOHNO, R., MEIDAN, R. i MILSTEIN; L.B.: "Spread Spectrum Access Methods for Wireless Communication," IEEE Commun. Magazine, voi. 33, pag. 58-67, ian. 1995. KUMAR, V.: MBone: Interactive Multimedia on the Internet Indianapolis, N: New Riders, 1996. KUNG, H.T. i MORRIS, R.: "Credit-Based Flow Control for ATM Networks," IEEE Network Magazine, voi. 9, pag. 40-48, martie/aprilie 1995. KWAN, T.T., McGRATH, R.E. i REED, DA: "NCSA's WWW Server: Design and Performance," IEEE Computer Magazine, voi. 28, pag. 68-74, nov. 1995. KWOK, T.: "A Vision for Residential Broadband Service: ATM to the Home," IEEE Network Magazine voi. 9, pag. 14-28, sept./oct. 1995. KYAS, O:. ATM Networks, London: International Thomson Publishing, 1995. LA PORTA, T.F., VEERARAGHAVAN, M., AYANOGLU, E, KAROL, M., i GITLIN, R.D.: "BISDN: A Technological Discontinuity," IEEE Commun. Magazine, voi. 32, pag. 84-97, oct. 1994. LAI, X. i MASSEY, J.: "A Proposal for a New Block Encryption Standard," Advances n Cryptology-Eurocrypt '90 Proceedings, New York: Springer-Verlag, pag. 389-404,1990. LAI, X.: On the Design andSecurity of Block Ciphers, Konstanz, Germany: Hartung-Gorre, 1992. LAMPSON, B.W.: "A Note on the Confinement Problem," Commun. Of the ACM, voi. 10, pag. 613-615, oct. 1973. LANDAU, S.: "Zero-Knowledge and the Department of Deferise," Notices of the American Mathematical Society, voi. 35, pag. 5-12, ian. 1988. LANGSFORD, A.: "The Open System User's Programming Interfaces," Computer Networks voi. 8, pag. 3-12,1984. LATIF, A., ROWLANCE, E.J. i ADAMS, R.H.: "The IBM 8209 LAN Bridge," IEEE Network Magazine, voi. 6, pag. 28-37, mai/iunie 1992.

SEC. 8.2

BIBLIOGRAFIE IN ORDINE ALFABETICA

727

LAUDON, K.C.: "Ethical Concepts and Information Technology," Commun. of the ACM, voi. 38, pag. 33-39, dec. 1995. LE BOUDEC, J.-Y.: "The Asynchronous Transfer Mode: A Tutorial," Computer Networks and ISDN Systems, voi. 24, pag. 279-309, mai 1992. LEINER, B.M., COLE, R., POSTEL, J. i MILLS, D.: "The DARPA Internet Protocol Suite," IEEE Commun. Magazine, voi. 23, pag. 29-34, martie 1985. LEVINE, DA i AKYILDIZ, I A : "PROTON: A Media Access Control Protocol for Optical Networks with Star Topology," IEEE/ACM Trans. on Networking, voi. 3, pag. 158-169, aprilie 1995. LEW, S.: "Crypto Rebeis," Wired, pag. 54-61, mai/iunie 1993. LIN, F., CHU, P. i LIU, ML: "Protocol Verification Using Reachability Analysis: The State Space Explosion Problem and Relief Strategies," Proc. SIGCOMM '87 Conf., ACM, pag. 126-135,1987. LIPPER, E.H. i RUMSEWICZ, M.P.: "Teletraffic Considerations for Widespread Deployment of PCS," IEEE Network Magazine voi. 8, pag. 40-49, sept./oct. 1994. LITTLE, T.D.C. i VENKATESH, D.: "Prospects for Interactive Video on Demand," IEEE Multimedia Magazine, voi. 1, pag. 14-24, toamna 1994. LIU, C.L. i LAYLAND, J.W.: "Scheduiing Algorithms for Multiprogramming n a Hard Real-Time Environment," Journal of the ACM, voi. 20, pag. 46-61, ian. 1973. LUOTONEN, A. i ALTIS, K.: "World Wide Web Proxies," Computer Networks and ISDN Systems, voi. 27, pag. 147-154, nov. 1994. MACARIO, R.C.V.: Cellular Radio-Piinciples and Desigii, New York: McGraw-Hill, 1993. MACEDONIA, M.R. i BRUTZMAN, D.P.: "MBone Provides Audio and Video Across the Internet," IEEE Computer Magazine, voi. 27, pag. 30-36, aprilie 1994. MASSEY, J.L.: "SAFER K-64: A Byte-Oriented Block Ciphering Algorithm," Proc. Cambridge Security Workshop, Springer-Verlag, pag. 1-17,1994. MATSUI, M.: "Linear Cryptanalysis Method for DES Cipher," Advances n Cryptology-Eurocrypt '93 Proceedings, New York: Springer-Verlag, pag. 386-397,1994. McBRYAN, O.: "GENVL and WWW: Tools for Taming the Web," Proc. First Intl. WWW Conference, pag. 79-90,1994. McDYSAN, D.E. i SPOHN, D.L.: ATM-Theoiy and Application, NY: McGraw-Hill, 1995. McKENNEY, P.E. i DOVE, K.F.: "Eficient Demultiplexing of Incoming TCP Packets," Proc. SIGCOMM '92 Conf., ACM, pag. 269-279,1992. MENEZES, A.J. i VANSTONE, SA: "Elliptic Curve Cryptosystems and Their Impiementation," Journal of Cryptology, voi. 6, pag. 209-224,1993.

728

BIBLIOGRAFIE I RECOMANDRI DE LECTURA

CAP. 8

MERKLE, R.C. i HELLMAN, M.: "Hiding and Signatures n Trapdoor Knapsacks," IEEE Trans. on Information Theory, voi. IT-24, pag. 525-530, sept. 1978. MERKLE, R.C. i HELLMAN, M.: "On the Security of Multiple Encryption," Commun. of the ACM, voi. 24, pag. 465-467, iulie 1981. MERKLE, R.C.: "Fast Software Encryption Functions," Advances n Cryptology-CRYPTO '90 Proceedings, New York: Springer-Verlag, pag. 476-501,1991. METCALFE, R.M. i BOGGS, D.R.: "Ethernet: Distributed Packet Switching for Local Computer Networks," Commun. of the ACM, voi. 19, pag. 395-404, iulie 1976. METCALFE, R.M.: "Computer/Network Interface Design: Lessons from Arpanet and Ethernet," IEEE Journal on Selected Areas n Commun., voi. 11, pag. 173-179, febr. 1993. METCALFE, R.M.: "On Mobile Computing," Byte, voi. 20, pag. 110, sept. 1995. MIKL T.: "The Potenial of Photonic Networks," IEEE Comraun. Magazine, voi. 32, pag. 23-27, dec. 1994a. MKI, T.: "Toward he Service-Rich Era," IEEE Commun. Magazine, voi. 32, pag. 34-39, febr. 1994b. MINOLI, D. i VTTELLA, M.-.ATM& CellRelay for Coiporate Enviwwnents, New York: McGraw-Hill, 1994. MINOLI, D.: Video Dialtone Technology, New York: McGraw-Hill, 1995. MMCHANDANI, S. i KHANNA. R. (eds): FDDI Technologies and Applications, New York: John Wiley, 1993. MISHRA, P.P. i KANAKIA, H.: "A Hop by Hop Rate-Based Congestion Control Scheme," Proc. SIGCOMM '92 Conf., ACM, pag. 112-123,1992. MOCHIDA, Y.: "Technologies for Loca-Access Fibering," IEEE Commun. Magazine, voi. 32, pag. 64-73, febr. 1994. i, J.C.: "IP Network Performance," n Internet System Handbook, Lynch, D.C. i Rose, M.T. (eds.), Reading, MA: Addison-Wesley, pag. 575-675,1993. J.C.: "The Case for Persistent-Connection HTTP," Proc. SIGCOMM '95 Conf., ACM, pag. 299-314,1995. MOK, AX i WARD, SA: "Distributed Broadcast Channel Access," Computer Networks, voi. 3, pag. 327-335, nov. 1979. MORALES, J, PATKA, A., CHOA, P i KUI, J.: "Video Dial Tone Sessions," IEEE Network Magazine, voi. 9, pag. 42-47, sept./oct. 1995. MOY, J.: "Multicast Routing Extensions," Commun. of the ACM, voi. 37, pag. 61-66, aug. 1994. MULLENDER, SJ. (ed.): Distributed Systems, ediia a doua, New York: ACM Press, 1993. MYLES, A. i SKELLERN, D.: "Comparison of Mobile Host Protocols for IP," Computer Networks and ISDN Systems, voi. 26, pag. 349-355, dec. 1993.

SEC. 8.2

BIBLIOGRAFIE IN ORDINE ALFABETICA

729

NAGLE, J.: "Congestion Control n TCP/IP Internetworks," Computer Commun. Rev., voi. 14, pag. 11 - 17, oct. 1984. NAGLE, J.: "On Packet Switches with Infinite Storage," IEEE Trans. on Commun., voi. COM-35, pag. 435-438, aprilie 1987. NEEDHAM, R.M. i SCHROEDER, M.D.: "Authentication Revisited," Operating Systems Rev., voi. 21, pag. 7, ian. 1987. NEEDHAM, R.M. i SCHROEDER, M.D.: "Using Encryption for Authentication n Large Networks of Computere," Commun. of the ACM, voi. 21, pag. 993-999, dec. 1978. NELSON, M.N. i LINTON, M.: "A Highly Availabie, Scalable ITV System," Proc. Fifteenth Symp. on Operating Systems Prin., ACM, pag. 54-67,1995. NEMETH, E., SNYBER, G., SEEBASS, S. i HEN, T.R.: UNIX System Adininistration Handbook, Englewood Cliffs, NJ: Prentice Hali, 1995. NEMZOW, M.: Implementing Wireless Networks, New York: McGraw-Fil, 1995. NEUMAN, B.C. i TS'O, T.: "Kerberos: An Authentication Service for Computer Networks," IEEE Commun. Magazine, voi. 32, pag, 33-38, sept. 1994. , P.: "ATM Local Area Networks," IEEE Commun. Magazine, voi. 32, pag. 86-98, martie 1994. , P.: "Traffic Management for ATM Local Area Networks," IEEE Commun. Magazine, voi. 32, pag. 44-50, aug. 1994. NIST: "Secure Hash Algorithm," U.S. Government Federal Information Processing Standard 180,1993. OMTOYAR, C.G. i ALDRIDGE, A.: "Introduction to SDH/SONET," IEEE Commun. Magazine voi. 31, pag. 30-33, sept. 1993. OTWAY, D. i REES, O.: "Efficient and Timely Mutual Authentication." Operating System Rev. pag. 8- 10, ian. 1987. PBGEI, J.E., GUNTHER, C.G. i HATTORL T.: "Overview of Wireless Personal Communications," IEEE Cornrnun. Magazine voi. 33, pag. 28-41, ian. 1995. PAFF, A.: "Hybrid Fiber/Coax n the Public Telecommunications Infrastrucure," IEEE Commun. Magazine, voi. 33, pag. 40-45, aprilie 1995. PAHLAVN, K., PRQBERT, T.H. i CHASE, M.E.: "Trends n Local Wireless Networks," IEEE Commun. Magazine, voi. 33, pag. 88-95, martie 1995. PALIS, J.C.: Fiber Optic Commun, ediia a treia, Englewood Cliffs, NJ: Prentice Hali, 1992. PALMER, L.C. i WHITE, L.W.: "Demand Assignment n the ACTS LBR System," IEEE Trans. on Commun, voi. 38, pag. 684-692, mai 1990.

730

BIBLIOGRAFIE I RECOMANDRI DE LECTURA

CAP. 8

PAN, D.: "A Tutorial on MPEG/Audio Compression." IEEE Multimedia Magazine voi. 2, pag. 60-74, Summer 1995. PANCHA, P. i EL ZARKL M.: "MPEG Coding for Variable Bit Rate Video Transmission," IEEE Commun. Magazine, voi. 32, pag. 54-66, mai 1994. PANDYA, R.: "Emerging Mobile and Personal Communication Systems," IEEE Commun. Magazine voi. 33, pag. 44-52, iunie 1995. PARULKAR, G., SCHMIDT,D.C. iTURNER, J.S.: "AITPM: AStrategyfor IntegratingIPwith ATM,"Proc. SIGCOMM '95 Conf, ACM, pag. 49-58,1995. PATRIDGE, C, HUGHES, J. i STONE, J.: "Performance of Checksums and CRCs over Real Data," Proc. SIGCOMM '95 Conf., ACM, pag. 68-76,1995. PATRIDGE, G: "A Proposed How Specification," Internet RFC 1363, sept. 1992. PATRIDGE, G: Gigabit Networldng, Reading, MA: Addison-Wesley, 1994. PAXSON, V. i FLOYD, S.: "Wide-Area Traffic: The Failure of Poisson Modeiing," Proc. SIGCOMM '94 Conf., ACM, pag. 257-268,1995. PAXSON, V.: "Growth Trends n Wide-Area TCP Connections," IEEE Network Magazine, voi. 8, pag. 9- 17, iulie/aug. 1994. PERKINS, G: "Providing Continuous Network Access to Mobile Hosts Using TCP/IP," Computer Networks and ISDN Systems, voi. 26, pag. 357-370, nov. 1993. * n PERLMAN, R: Interconnections: Biidges and Routers, Reading, MA: Addison-Wesley, 1992. PERLMAN, R.: Network Layer Protocols with Byzanthine Robustness, tez de doctorat, M.I.T., 1988. PERRY, T.S. i ADAM, JA.:" E-Mail: Pervasive and Persuasive," IEEE Spectmm, voi. 29, pag. 22-28, oct. 1992. PETERSON, W.W. i BROWN, D.T.: "Cyclic Codes for Error Detection," Proc. IRE, voi. 49, pag. 228-235, ian. 1961. PICKHOLTZ, R L , SCHILLING, D.L. i MBLSTEN, L.B.: "Theory of Spread Spectrum Communication-A Tutorial," IEEE Trans. On Commun., voi. COM-30, pag. 855-884, mai 1982. * PIERCE, J.: "How Far Can Data Loops Go?" IEEE Trans. on Commun., voi. COM-20, pag. 527-530, iunie 1972. PINKERTON, B.: "Finding What People Want: Experiences with the WebCrawler," Proc. First Intl. WorldWide Web Conference, 1994. PISCITELLO, D.M. i CHAPN, AJL: Open Systems Networldng: TCP/IP and OSI, Reading, MA: Addison-Wesley, 1993. PJTT, D A : "Bridging-The Double Standard," IEEE Network Magazine, voi. 2, pag. 94-95, ian. 1988.

SEC. 8.2

BIBLIOGRAFIE IN ORDINE ALFABETICA

731

QUICK, R. F., Jr. i BAIACHANDRAN, K: "An Overview of the Ceilular Digital Packet Data (CDPD) System," Fourth Int'l Symp. on Personal, Indoor, and Mobile Radio Commun., pag. 338-343,1993. QUISQUATER, J.-J. i GIRAULT., M.: "Chinese Lotto as an Exhaustive Code-Breaking Machine," IEEE Computer Magazine, voi. 24, pag. 14-22, nov. 1991. RABIN, M.O.: "Digital Signatures and Public-Key Functions as Intractable as Factorization," Technical Report LCS-TR-212, M.I.T, ian. 1979. RAHNEMA, M.: "Overview of the GSM System and Protocol Architecture," IEEE Commun. Magazine, voi. 31, pag. 92-100, aprilie 1993. RAJAGOPALAN, B.: "Reliability and Scaling Issues n Multicast Communication," Proc. SIGCOMM '92 Conf., ACM, pag. 188-198,1992. RANSOM, M.N.: "The VISTAnet Gigabit Network Testbed," Journal of High Speed Networks, voi. 1, pag. 49-60,1992. RAO, S.K. i HATAMIAN, M.: "The ATM Physical Layer," Computer Commun. Rev., voi. 25, pag. 73-81, aprilie 1995. RTVEST, R.L. i .SHAMIR, A.: "How to Expose an Eavesdropper," Commun. of the ACM, voi. 27, pag. 393-395, aprilie 1984. RIVEST, R.L, SHAMIR, A. i ADLEMAN, L: "On a Method for Obtaining Digital Signatures and Public Key Cryptosystems," Commun. of the ACM, voi. 21, pag. 120-126, febr. 1978. RVEST, R.L.: "The MD5 Message-Digest Algorithm," RFC 1320, aprilie 1992. ROBERTS, L.: "Dynamic Allocation of Satellite Capacity through Packet Reservation," Proc. NCC, AFIPS, pag. 711-716,1973. ROBERTS, L: "Extensions of Packet Communication Technology to a Hand Held Personal Terminal," Proc. Spring Joint Computer Conference, AFIPS, pag. 295-298,1972. ROMANOW, A. i FLOYD, S.: "Dynamics of TCP Traffic over ATM Networks," Proc. SIGCOMM '84 Conf., ACM, pag. 79-88,1994. ROSE, MX i McCLOGHRBE, K.: How to Manage Your Network Using SNMP, Englewood Oiffs, NJ: Prentice Hali, 1995. ROSE, M.T.: The Internet Message, Englewood Cliffs, NJ: Prentice Hali, 1993. ROSE, M.T.: The Simple Book, Englewood Cliffs, NJ: Prentice Hali, 1994. ROSS, RE. i HAMSTRA, J.R.: "Forging FDDI," IEEE Journal on Selected Areas n Commun., voi. 11, pag. 181-190, febr. 1993. SADIKU, M.N.O. i ARVTND, A.S.: "Annotated Bibliography on Distributed Queue Dual Bus (DQDB)," Computer Commun. Rev., voi. 24, pag. 21-36, ian. 1994.

732

BIBLIOGRAFIE I RECOMANDRI DE LECTUR

CAP. 8

SALTZER, J.H., POGRAN, K.T. i CLARK, D.D.: "Why a Ring?" Computer Networks, voi. 7, pag. 223-230, aug. 1983. r

SALTZER, J.H., REED, D.P. i CLARK, D.D.: "End-to-End Arguments n System Design," ACM Trans. on Computer Systems, voi. 2, pag. 277-288, nov. 1984. SANDERSON, D.W. i DOUGHERTY, D.: Smileys, Sebastopol, CA: O'Reilly, 1993. SANTIFALLER, M.: 'TCP/IP and ONC/NFS," Reading, MA: Addison-Wesley, 1994. SCHNEIER, B.: "Description of a New Variable-Length Key, 64-Bit Block Cipher [Biowfish]," Proc. of the Cambridge Security Workshop, Springer-Verlag, pag. 191-204,1994. SCHNEIER, B.: Applied Cryptography, ediia a doua, New York: John Wiley, 1996. SCHNEIER, B.: E-Mail Security, New York: John Wiley, 1995. SCHNORR, CP.: "Efficient Signature Generation for Smart Cards," Journal of Cryptology, voi. 4, pag. 161-174, 1991. SCHOLTZ, RA.: "The Origins of Spread-Spectrum Communications," IEEE Trans. on Commun., voi COM30, pag. 822-854, mai 1982. SCOTT, R: "Wide Open Encryption Design Offers Flexible Implementations," Cryptologia, voi. 9, pag. 75-90, ian. 1985. SELFRTOGE, O.G. i SCHWARTZ, RT.: "Telephone Technology and Privacy," Technology Rev., voi. 82, pag. 56-65, mai 1980! SEYBOLD, A.M.: Using Wireless Communications n Business, New York: Van Nostrand Reinhold, 1994. SHACHAM, N. i McKENNEY, P.: "Packet Recovery n High-Speed Networks Using Coding and Buffer Management," Proc. INFOCOM '90, IEEE, pag. 124-130,1990. SHAH, A. i RAMAKRISHNAN, G.: "FDDI-A High Speed Network, Englewood Cliffs, NJ: Prentice Hali, 1994. SHANNON, C: "A Mathematical Theory of Communication," Bell System Tech. J, voi. 27, pag. 379-423, iulie 1948; i pag. 623-656, oct. 1948. SHEN, B. i SETHI, I.K.: "Inner-Block Operations on Compressed Images," Proc. of ACM Multimedia '95, ACM,'pag. 489-498,1995. SHIMIZU, A. i IVnYAGUCHI, S.: "Fast Data Encipherment Algorithm FEAL," Advances n CryptologyEurocrypt '87 Proceedings, NY: Springer-Verlag, pag. 267-278,1988. SHREEDHAR, M. i VARGHESE, G.: "Efficient Fair Queueing Using Deficit Round Robin," Proc. SIGCOMM '95 Conf, ACM, pag. 231-243,1995. SINGLETON, A.: "Wired on the Web," Byte, voi. 21, pag. 77-80, ian. 1996.

SEC. 8.2

BIBLIOGRAFIE IN ORDINE ALFABETICA

733

SIPIOR, J.C. i WARD, B.T.: "The Ethical and Legal Quandary of Email Privacy," Commun. of the ACM, voi. 38, pag. 48-54, dec. 1995. SIU, K.-Y. i JAIN, R.: "A Brief Oveiview of ATM: Protocol Layers, LAN Emulation, and Traffic Management," Computer Commun. Rev., voi. 25, pag. 6-20, aprilie 1995. SMITH, P.: Frame Reky, Reading, MA: Addison-Wesley, 1993. SOHA, M. i PERLMAN, R.: "Comparison of Two LAN Bridge Approaches," IEEE Network Magazine, voi. 2, pag. 37-43, ian./febr. 1988. SPAFFORD, E.H.: "The Internet Worm: Crisis and Aftermath," Commun. of the ACM, voi. 32, pag. 678-687, iunie 1989. SPRAGINS, J.D., cu HAMMOND, J.L i PAWLIKOWSKI, K.: Telecgmmunications Pivtocols and Desigii, Reading, MA: Addison-Wesley, 1991. STALLINGS, W.: Data and Computer Communications, ediia a patra, New York: Macmillan, 1994. STALLINGS, W.: ISDN and Broadband ISDN with Frame Reky and ATM, Englewood Cliffs, NJ: Prentice Hali, 1995a. STALLINGS, W.: Local and MetivpolitanArea Networks, ediia a patra, New York: Macmillan. 1993b. STALLINGS, W.: Network and Intemetwork Security, Englewood Cliffs, NJ: Prentice Hali, 1995b. STALLINGS, W.: Pivtect YourPiivacy: The PGP Usei's Guide, Englewood Cliffs, NJ: Prentice Hali, 1995c. STALLINGS, W.: SNMP, SNMPv2, and CMIP, Reading, MA: Addison-Wesley, 1993a STEELE, R., WHITEHEAD, J. i WONG, W.C.: "System Aspecte of Cellular Radio," IEEE Commun. Magazine, voi. 33, pag. 80-86, ian. 1995a. STEELE, R., WILLIAMS, J., CHANDLER, D., DEHGHAN, S. i COLLARD, A.: 'Teletraffic Performance of GSM900/DCS1800 n Street Microcells," IEEE Commun. Magazine, voi. 33, pag. 102-108, martie 1995b. STEINER, J.G., NEUMAN, B.C. i SCHILLER, J.I.: "Kerberos: An Authentication Service for Open Network Systems," Proc. Winter USENIX Conf, USENIX, pag. 191-201,1988. STEINMETZ, R. i NAHRSTEDT, K.: Multimedia: Computing, Communications and Applications, Englewood Cliffs, NJ: Prentice Hali, 1995. STEPHENS, W.E. i BANWELL, T.C.: "155.52 Mb/s Data Transmission on Category 5 Cable Plant IEEE Commun. Magazine, voi. 33, pag. 62-69, aprilie 1995. STERBENZ, J.P.G., SCHULZRINNE, H.G. i TOUCH, J.D.: "Report and Discussion of the IEEE ComSoc TCGN Gigabit Networking Workshop 1995," IEEE Network Magazine, voi. 9, pag. 9-29, iulie/aug. 1995. STEVENS, W.R.: TCP/IP Illustrated, Voi. 1, Reading, MA: Addison-Wesley, 1994. <*

734

BIBLIOGRAFIE I RECOMANDRI DE LECTUR

CAP. 8

STDXER, B.: "A Survey of UNI Signaling Systems and Protocols," Computer Commun. Rev., voi. 25, pag. 21-33, aprilie 1995. . ST1NSON, D.R.: Qyptography Theory and Practice, Boca Raton, FL: CRC Press, 1995. SUNSHINE, CA i DALAL, Y.K.: "Connection Management n Transport Protocols," Computer Networks, voi. 2, pag. 454-473,1978. SUZUKI, T.: "ATM Adaptation Layer Protocol," IEEE Commun. Magazine, voi. 32., pag. 80-93, aprilie 1994. * TANENBAUM, A.S.: Distiibuted Operating Systems, Englewood Cliffs, NJ: Prentice Hali, 1995 TANENBAUM, A.S.: Modem Operating Systems, Englewood Cliffs, NJ: Prentice Hali, 1992. % TERAOKA, F., YOKTE, Y. i TO^ORO, M.: "Host Migration Transparency n IP Networks," Computer Commun. Rev., voi. 23, pag. 45-65, ian. 1993.
s

THYAGARAJAN, A.S. i DEERING, S.E.: "Hierarchical Distance-Vector Multicast Routing for the MBone," Proc. SIGCOMM '95 Conf, ACM, pag. 60-66,1995. TQKORO, M. i TAMARU, K.: "Acknowledging Ethernet Compcon, IEEE, pag. 320-325, Fall 1977.

TOLMIE, D.E. i RENWICK, J.: "HIPPI: Simplicity Yields Success," IEEE Network Magazine, voi. 7, pag. 28-32, ian./febr. 1993. * TOLMIE, D.E.: "Gigabit LAN Issues-HIPPI, Fibre Channel, and ATM," n Proc. High-Performance Computing and Networking, Hertzberger, B. i Serazzi, G. (Eds.), Berlin: Springer Verlag, pag. 43-53,1995. * TOLMIE, D.E.: "Gigabit Networking," IEEE LTS, voi. 3, pag. 28-36, mai 1992. TOMLINSON, R.S.: "Selecting Sequence Numbers." Proc. SIGCOMM/SIGOPS Interprocess Commun. Workshop, ACM, pag. 11-23,1975. TOUCH,.J.D.: "Performance Analysis of MD5," Proc. SIGCOMM '95 Conf. ACM. pag. 77-86,1995. TRUONG, H.L., ELLINGTON, W.W. Jr., LE BOUDEC, J.-Y., MEIER, AX i PACE, J.W.: "LAN Emulation on an ATM Network," IEEE Commun. Magazine voi. 33, pag. 70-85, mai 1995. TUCHMAN, W.: "Hellman Presents No Shortcut Solutions to DES," IEEE Spectrum, voi. 16, pag. 40-41, iulie 1979. TURNER, J.S.: "New Directions n Communications (or Which Way to the Information Age)," IEEE Commun. Magazine, voi. 24, pag. 8-15, oct. 1986.

, VAN DER LINDEN, P.: Just Java, Englewood Cliffs, NJ: Prentice Hali, 1996. VAN OORSCHOT, P.C. i WIENER, M.J.: "A Known-Plaintext Attack on Two-Key Triple Encryption," Advances n Cryptology-CRYPTO '88 Proceedings, New York: Springer-Vertag, pag. 119-131,1988. VAN RENESSE, R., VAN STAVEREN, H. i TANENBAUM, A.S.: "Performance of the World's Fastest Distributed Operating System," Operating Systems Rev., voi. 22, pag. 25-34, oct. 1988.

SEC. 8.2

BIBLIOGRAFIE IN ORDINE ALFABETICA

735

VARGHESE, G. i LAUCK, T.: "Hashed and Hierarchica! Timing Wheels: Data Structures for the Efficient Implementation of a Timer Facility," Proc. Eleventh Symp. on Operating Systems Prin., ACM, pag. 25-38,1987. VENKATKAMNI, C. i CHIUEH, T.: "Design, Implementation, and Evaluation of a Software-Based RealTime Ethernet Protocol," Proc. SIGCOMM '95 Conf, ACM, pag. 27-37,1995. VETTER, R.J.S SPELL, C i WARD, C: "Mosaic and the World-Wide Web," IEEE Computer Magazine, voi. 27, pag. 49-57, oct. 1994. VELLAMIZAN, G i SONG, C: "High Performance TCP n ANSNET," Computer Commun. Rev., voi. 25, pag. 45-60, oct. 1995. VTTERB, AJ.: CDMA Piincipks ofSpread Spectium Communications, Reading, MA: Addison-Wesley, 1995. WB, H., YOZAWA, T., OHNISH, T. i TANAKA, Y.: "Mobile Computing Environment Based on Internet Packet Forwarding," Proc. Winter USENIX Conf, USENIX, pag. 503-517, ian. 1993. WALRAND, J.: Comrnunication Networks: A First Course, Homewood, L: nvia, 1991. WATSON, R.W.: "Timer-Based Mechanisms n Reliable Transport Protocol Connection Management," Computer Networks, voi. 5, pag. 47-56, febr. 1981. WAYNER, R: "Picicing the Crypto Lock," Byte, pag. 77,80, oct. 1995. WESBAND, S.P. i REINIG, BA.: "Managing User Perceptions of Email Privacy," Commun. of the ACM, voi. 38, pag. 40-47, dec. 1995. WIENER, M.J.: "Efficient DES Key Search," Technical Report TR-244, School of Computer Science, Careon Univ., Oiawa, 1994. WHIIAMS, KA, M M , T.Q. i DU, DJH.-C: "A Media Access Protocol for Time and Wavelength-Division Multiplexed Passive Star Networks," IEEE Journal on Selected Areas n Commun., voi. 11. pag. 560-567, mai 1993. WIXINGER, W., TAQQU, M.S., SHERMAN, R. l WILSGN, D.V.: "Seif-Similarity through High Variabilii}': Statistica! Anaysis of Ethernet LAN Traffic at the Source Level," Proc. SIGCOMM '95 Cont, ACM, pag. 100-113,1995. W0LTE8, M.S.: "Fiber Distributed Data Interface-ATutoriai," ConneXions, pag. 16-26, oct. 1990. YNG, C.-Q. i REDDY, A.V.S.: "A Taxonomy for Congestion Control Algorithms n Packet Switching Networks," IEEE Network Magazine, voi. 9, pag. 34-45, iulie/aug. 1995. YEH, Y,-S.5 HLUCHYJ, M.G. i ACAMPORA, A.S.: "The Knockout Switch: A Simple, Modular Architecture for High-Perfonnance Packet Switching," IEEE Journal on Selected Areas n Commun., voi. 5, pag. 1274-1283, oct. 1987. YQUSSEF, A.M., KALMAN, E., BENZON, L.: "Technico-Economic Methods of Radio Specrum Assignment," IEEE Commun. Magazine, voi. 33, pag. 88-94, iunie 1995.

736

BIBLIOGRAFIE I RECOMANDRI DE LECTURA

CAP. 8

YUVAL, G.: "How to Swindle Rabin," Cryptologia, voi. 3, pag. 187-190, iulie 1979. ZHANG, L: "Comparison of Two Bridge Routing Approaches," IEEE Network Magazine, voi. 2, pag. 44-48, ian./feb. 1988. ZHANG, L.: "RSVP A New Resource ReSerVation Protocol," IEEE Network Magazine, voi. 7, pag. 8-18, sept./oct. 1993. * ZMMERMANN, P.R.: PGP: Source Code and Intemals, Cambridge, MA: M.I.T. Press, 1995b.

ZMMERMANN, P.R.: The Official PGP User*s Guide, Cambridge, MA: M.I.T. Press, 1995a. ZEPF, G.K.: Hwnan Behavbr and the Principie ofLeast Effort: An Introduction to Hurnan Ecology, Cambridge, MA: Addison-Wesley, 1949. ZIV, J. i LEMPEL, Z.: "A Universal Algorithm for Sequential Data Compression," IEEE Trans. on Information Theory, voi. LT-23, pag. 337-343, mai 1977.

DICIONAR

A-side carrier Absolute maximum rating Abstract syntax notation-1 Abstract vvindow toolkit Access charge Access control Acknowledge (ACK) Acknowledgement frame Active map Adapter board Adapter plug Address mapping Address resolution protocol Advanced communication technology satellite

Furnizor de tip A Viteza maxim absolut Notaia sintactic abstract-1 Trus de instrumente pentru ferestre abstracte Tax de acces (Mijloc de) control al accesului Confirmare pozitiv Cadru de confirmare Hart activ Plac adaptoare Fi de adaptare Punerea n coresponden a adresei Protocol de rezoluie a adreselor Tehnologie avansat de comunicare prin satelit

737

738

DICIONAR

ADV...-BAC.

Advanced data Communications control procedure Advanced mobile phone system Affrmative acknowledgement Alias Amount of variability Amplitude modulation Analog cellular telephone Anonymous remailer Anycasting Appliances Application gateway ASCnarmor Asymmetric digital subscriber line Async Authentication Authoritative record Auto-dial Automatic calling unit (ACU) Automatic power off Automatic repeat request Automatic send / receive (ASR) Available bit rate service

Procedura de control avansat pentru controlul comunicrii Sistem telefonic mobil avansat Confirmare pozitiv Pseudonim Cantitate de variabilitate; variabilitate Modulaie n amplitudine Telefon celular analog Retransmitor anonim de pot Trimitere ctre oricine Utiliti Poart de nivel aplicaie Armur ASCII Linie de abonat digital asimetric Asincron Autentificare nregistrare competent (demn de ncredere) Cu formare automat a numrului Unitate de apel automat Decuplare automat Cerere de repetare automat Transmisie / recepie automat Serviciu de transmitere cu viteza disponibil

B
B-side carrier Backbone Background Background job Background task Furnizor de tip B Coloan vertebral Fundal Lucrare de prioritate redus Proces de fundal

BAC... - BOO...

DICIONAR

739

B
Backing store Backplane Backward channe! Backward Searning aSgorithm Balanced error Balanced transmission Bandwih Simited signal Baseband coaxiale cable Base bnd Socal area network Basic rate Batched communication Baud rate Big endian Binary countdown Binar}' exponenial backoff Binary synchronous communication (BSC) Biquinary code Birttdav atack Memorie de salvare Fund de sertar Canal invers Algoritm de nvare regresiv Eroare echiprobabil Transmisie echilibrat Semnal limitat de banda de transfer Cablu coaxial de band de baz Reea local n banda de baz Vitez primar Comunicare (n loturi) fr confirmare Vitez de transmisie Cel mai semnificativ primul Numrtoare invers binar Regresie exponenial binar Comunicare binar sincron Cod doi din cinci Atacul zilei de natere Tub de bii, conduct de bii Bit stuffing nserare de bii Hart de bii Blind carbon copy Block cipher Block error rate Block ignore character Block marker Boarder gateway protocol Body, email Bookmark Copie confidenial Cifrare pe blocuri Rata de erori pe blocuri Caracter de ignorare a blocului Marcaj de bloc Protocolul porilor de grani Corp (de scrisoare) Adres de pagin

740

DICIONAR

BRL.-BUS..

Bridge Broadband cable Broadcast Broadcast address Broadcast network Broadcast routing Broadcast storm Browse Browser Bucket brigade attack Buffer Built-n check Bulletin board system (BBS) Burstiness Bus network
L,

Punte Cablu de band larg Difuzare Adres de difuzare Reea cu difuzare Dirijare pentru difuzare Furtun de difuzare Rsfoire Program de navigare Atac de tip gleata brigzii de pompieri Tampon Test incorporat Sistem de informare n reea Proprietatea traficului.de a fi n rafal Reea cu magistral

Cache Caching Caii accepted signal Caii control signal Caii duration Called party Caller Cancel character Cancellation Care-of address Carrier Carrier

Memorie ascuns (tampon) Folosirea memoriei ascunse Semnal de acceptare a apelului Semnal de control al apelului Durata comunicaiei Apelat (subst) Apelant Caracter de anulare Anulare Adres a intermediarului Purttor Companie de telecomunicaii

CAR...-CLE...

DICIONAR

741

Carrier sense multiple access protocol Carrier signalling Cell delay variation Cell error ratio Cell loss ratio Cell misinsertion rate Cell transfer delay Cell relay Central wiring closet Certification authority Challenge-response protocol Channel associated signalling Character stuffing Check point Chip Chip Chip Chip sequence Choke cell Chosen plaintext attack Chunks Cipher block chaining Cipher feedhack mode Ciphertext Ciphertext only attack Circuit switching Classless interdomain routing Clicking Cleartosend(CTS)

Protocol de acces multiplu cu sesizarea purttoarei Semnalarea purttoarei Variaia ntrzierii celulelor Procentul celulelor cu erori Procentul de celule pierdute Rata de celule rtcite ntrziere la transferul celulelor Releu de celule Panou central de cablare Autoritate de certificare Protocol provocare-rspuns Semnalizare asociat canalului Inserare de caractere Punct de reluare (ntr-un program) Cip Circuit integrat Achie Secven de cip Celul de oc Atac cu text clar ales Fragmente nlnuire a blocurilor cifrate Mod cu reacie cifrat Text cifrat Atac cu text cifrat Comutare de circuite Dirijare inter-domenii nebazat pe clase Selecie cu ajutorul mausului Gata de transmisie

742

DICIONAR

CLO... - CON..

Clocked signals Closed user group(CUG) Cluster Guter Cluster controller Code division multiple access Code book Coder/decoder (codec) Collision detection Collision-free protocol Color lookup table Columnar transposition cipher Common carrier Common gateway interface Compliance requirements Computer animation Computer network Computer services Computer-based message system (CBMS) Concatenated virtual circuit Confirmed service Congestion Connection setup Contention Contention bus Congestion threshold Conection establishment Connection release Connection setup

Semnale sincronizate Grup nchis de utilizatori Grup Asociaie, ciorchine Controlor al unui grup de echipamente Acces multiplu cu divizarea codului Carte de coduri Codificator/decodificator Detecia coliziunilor Protocol fr coliziuni Tabel de cutare a culorilor Cifru cu transpoziie pe coloane Purttoare comun Interfa comun de poart Clauze contractuale Animaie realizat cu calculatorul Reea de calculatoare Servicii de calcul Sistem de mesagerie electronic Circuit virtual concatenat Serviciu confirmat Congestie Stabilirea conexiunii Conflict Magistral cu conflicte Pragul congestiei Stabilirea conexiunii Eliberarea (desfiinarea) conexiunii Configurarea conexiunii

CON...-DAT...

DICIONAR

743

Connection-oriented service Conectionless Connectionless service Contention delay Convergence sublayer Copyright status Count-to-infinity problem Crossbar switch Cyclic redundancy check (CRC)

Serviciu orientat pe conexiuni Fr conexiune, neorientat pe conexiune Serviciu fr conexiune ntrziere determinat de evitarea conflictului Subnivel de convergen Statutul drepturilor de autor Problema numrrii nesfrite Comutator matricial Control cu redundan ciclic

D
Data carrier detect(DCD) Data circuit-terminaing equipment Data Communications equipment (DCE) Data link Data set ready(DSR) Data switching exchange Data terminal equipment (DTE) Data terminal ready (DTR) Datagram Datagram subnets Dataset DC signalling Deadlock Delta modulation Designated router Dial-n modem Digital sense multiple access Digital signature
Detecia purttoarei de date Echipament de terminare a circuitului de date Echipament pentru comunicaii de date Legtur de date Modem pregtit (semnal) Comutator de date Echipament terminal (de date) Terminal pregtit (semnal) Datagram Subretele de tip datagram Modem Semnalizare n curent continuu Interblocare Modulare delta Ruter desemnat Modem apelabil Acces multiplu cu detecie digital Semntur digital

744

DICIONAR

DIG...-EXP..

D
Digitized voice Disk farm Distance vector multicast routing Distance vector routing Distant network Distributed mail system protocol Distributed queue dual bus Domain name system Dumb terminal Voce digitizat Ferm de discuri Dirijare multi-destinaie dup vectorul distanelor Dirijare dup vectorul distanelor Reea aflat la distan Protocol de sistem distribuit de pot electronic Magistral dual cu cozi distribuite Sistemul numelor de domenii Terminal neinteligent

E
E-mail Echo canceller Echo suppressor Electronic funds transfer (EFT) Electronic mail Electronic point-of-sale (EPOS) Electronic publishing Emoticon Encapsulation End offce End point End point End system End to end End user Envelope, email Error recovery Error trapping Explicit rate Post electronic Unitate de anulare a ecoului Unitate de suprimare a ecoului Transfer electronic de fonduri Pot electronic Punct de vnzare automatizat Tehnoredactare asistat de calculator Caracter emoticon - fa ntristat ncapsulare Oficiu final Capt Punct final Sistem final Capt-la-capt Utilizator final nfurtoare, email Recuperare din eroare Captarea erorilor Vitez explicit

EXT... - GEN...

DICIONAR

745

E
Exterior gateway protocol Externai viewer . Protocol de poart exterioar Program de vizualizare extern

F
Fiber cable Fiber cfiannel (Fibre channel) Fiber distributed data inerface Fiber optics Fiber socket Fiber to the curb Fiber to the tiome Fibre chaneel Firewall Fil character Fiat address FSooding FIow control FSow specificatioe Flow-based routing Foregroond ForeigB ageai Frame Frame relay Framing information Frequency division multiplexing Frequency modulation FuII duplex Cablu de fibr (optic) Canal de fibr optic Interfa de date distribuite pe fibr optic Fibr optic Conector pentru fibr Fibr ctre vecintate Fibr ctre cas Canal de fibr optic Zid de protecie Caracter de umplere Adres nestructurat Inundare Controlul fluxului Specificaia fluxului Dirijare bazat pe flux Prim-plan Agent pentru strini Cadru Releu de cadre Informaia de ncadrare Multiplexare prin divizare n frecven Modulaie n frecven Duplex integral

Gateway Generic ceSI rate algorithm

Poart Algoritmul vitezei generice de transmitere

746

DICIONAR

ICO...-INE.

H
Half-duplex communication Helper application Hidden station problem High-end networks High-level data link control High-performance parallel interface Home agent Home page Hop Host Hub Hyperlink Hypermedia Hypertext Hypertext markup language Hypertext transfer protocol Comunicaie semi-duplex Program auxiliar pentru o aplicaie Problema staiei ascunse Reele cu tehnologie de vrf, performante Controlul legturii de date de nivel nalt Interfa paralel de mare performan Agent local Pagin personal Salt (hop) (Calculator) gazd Nod (ntr-o reea de calculatoare) Hiper-legtur Hiper-media Hipertext Limbaj de marcare a hiper-textului Protocol de transfer al hiper-textului

I
Icon Idle Illegal vaiue Improved mobile telephone service n-band signalling Information network Integrated services digital network Interactive mail access protocol Interface data unit Interior gateway protocol Interlaced video Intermediate system Iconi Inactiv Valoare nepermis Serviciu mbuntit de telefonie mobil Semnalizare n band Reea informaional Reea digital cu servicii integrate Protocol interactiv de acces la pot Unitate de date de interfa Protocol de poart interioar Video ntreesut Sistem intermediar

NT...-LOA...

DICHONAR

747

International Standards Organization International telecommunication union Internet Architecture Board Internet backbone

Organizaia internaional de Standardizare Uniunea Internaional de Telecomunicaii Consiliul arhitecturii Internet Tronson de baz Internet Protocolul mesajelor de control Internet

Internet group management

Protocol de gestiune a grupurilor Internet Autoritatea de nregistrare a politicii din Internet

iternet service piwider

Furnizor de servicii Internet Societatea Internet Protocolul de transport Internet Dirijare inter-reele

Internetwork

nter-retea Interconectarea reelelor Trunchi inter-oficii Trunchi ntre oficii de taxare

Fluctuaie

Atac cu text clar cunoscut

Leaky tacket algorithm Limited distance modem Link access procedore

Algoritmul gleii gurite Modem de distan mic Procedur de acces la legtur (de date) Cel mai semnificativ ultimul

Load stiedding

mprtierea ncrcrii

748

DICIONAR

LOC...-MUL...

Local Access and Transport Area Local central offce Logical link control Long-haul trunks Loopback Low-endPC Low-speed Communications

Acces i zon de transport locale Oficiu central local Controlul legturii logice Trunchiurile principale de comunicaie Bucl local PC terminal de performan sczut Comunicaie de vitez mic

M
Mailbox Mailing list Man n the middie attack Mapped Medium access sublayer Meet n the middie attack Message authentification code (MAC) Message digest Message framing Midsplit cable Moderated newsgroup Monoalphabetic substitution cipher Mrouter Multicast addresses Multicast group Multicast spanning tree Multicasting Multidestination routing Multihop Multimedia Rezumatul mesajului mprirea mesajelor n cadre Cablu cu njumtim Grup de tiri cu moderator Cifru de substituie monoalfabetic M-ruter Adrese pentru trimitere multipl Grup de destinaii pentru trimiterea multipl Arborele de acoperire multidestinaie Trimitere multipl Dirijare multidestinaie Multisalt Multimedia Cutie potal List de adrese email Atac de tip omul-din-mijloc Pus n coresponden Subnivel de acces la mediu Atac de tip ntlnirea-la-mijloc Cod de autentificare (a unui mesaj)

NET...-NET...

DICIONAR

749

Mutimode fiber Multipath fading Multiple access protocols Multiple acess with colision avoidance Multipoint Multiprotocol router Multipurpose internet mail extensions

Fibr multimod Atenuare multi-ci Protocoale de acces multiplu Acces mutiplu cu evitarea coliziuniloir

Multipunct Ruter multiprotocol Extensii de pot Internet cu scop multiplu

N
Name server Narrowband ISDN National Institute of Standard and Technology National Security Agency National Television Standards Commettee Near video on demand Negative achknowledgement (NAK) Network (to) Network access point Network architecture Network control protocol Network controller Network core protocol Network hardware Network information center Network layer Network manager Network management A lega n reea Punct de acces la reea Arhitectura reelei Protocol de control al reelei Controlor de reea Protocol de nucleu de reea Echipamente de reea Centru de informare al reelei Nivelul reea Procesul controlor de reea Gestiunea reelei Agenia Naional de Securitate Comitetul Naional pentru Standarde de Televiziune Video aproape la cerere Confirmare negativ Server de nume ISDN de band ngust Institutul Naional de Standarde i Tehnologie

750

DICIONAR

NET...-PAY..

N
Network news (USENET) Network service access point Network topology Network virtual terminal Newsfeed Newsgroup Nuli modem tiri Punct de acces la servicii de reea Topologia reelei Terminal virtual de reea Surs de tiri Grup de interese, grup de tiri Modem nul

O
Office automation (OA) One-bit sliding window protocol One-time pad Open shortest path first Open system interconnection (OSI) Operation and maintenance cell Optical carrier Output feedback mode Overhead Automatizarea birourilor Protocol cu fereastr glisant de un bit Cheie acoperitoare Deschide mai nti calea cea mai scurt Interconectarea sistemelor deschise Celul de operare i ntreinere Purttor optic Mod cu reacie de la ieire Suprancrcare

Packet assembler/disassembler (PAD) Packet switching Packet switching network (PSN) Packetized elementary stream Padded Paging channel Paging system Passive star Payload

Asamblor/dezasamblor de pachete Comutare de pachete Reea cu comutare de pachete Flux elementar pachetizat Aliniat Canal de avertizare Sistem de paginare Stea pasiv Informaie util

PEA...-PRO...

DICnONAR

751

Peakcellrate Peakcellrate Peer Permanent virtual circuit Personal Communications network Phase alternating line Phase modulation Photonic sublayer Piggybacking Pipeline Plain old telephone service Plaintext Pointofpresence Point-of-sale terminals Point-to-point network Point-to-point protocol Policy certification authority Polling Post office protocol Predictive encoding Presentation layer Pretty good privacy Primaryrate Privacy enhanced mail Privacy of data Private branch exchange Private key ring, PGP Program stream, MPEG Promiscuous mode Protocol data unit

Viteza de vrf de transmitere a celulelor Viteza maxim de transmitere Pereche, similar Circuit virtual permanent Reea de comunicaii personale Linie alternat n faz Modulaie de faz Subnivel fotonic Acumulare nainte de confirmare Band de asamblare Serviciu telefonic tradiional Text clar, text n clar Punct de livrare (a unor servicii) Terminale n puncte de vnzare Reea punct-la-punct Protocol punct-la-punct Autoritate de certificare a politicii Interogare Protocol de oficiu potal Codificare predictiv Nivel prezentare Confidenialitate destul de bun Viteza primar Pot cu faciliti de securitate Confidenialitatea datelor Comutator privat Inel de chei private, PGP Fluxul programului, MPEG Mod transparent Unitate de date a protocolului

752

DICIONAR

PRO... - REA...

Protocol hierarchy Protocol independent multicast Protocol stack Protocol standard Protocol verification Proxy server Public access terminal Public data network (PDN) Public domain(PD) Public key cipher Public key cipher system Public key ring Public switched telephone network Public-key criptography Puise code modulation Puise stream Puise train Push-to-talk system

Ierarhie de protocoale Transmitere multipl independent de protocol Stiv de protocoale Standard de protocol Verificarea protocoalelor Server intermediar Terminal de acces public Reea public de date Domeniul public Cifru cu chei publice Sistem de cifrare cu chei publice Inel de chei publice Reea telefonic comutat public Criptografie cu chei publice Modularea impulsurilor n cod Tren de (im)pulsuri Tren de (im)pulsuri Sistem cu buton de emisie

0
Quadrature amplitude modulation Quantization noise Quoted printable encoding Modulaia cuadratic n amplitudine Zgomot de cuantizare Codificare afiabil marcat

R
Race conditions Radio transmission Random access channel Rate Rate-based congestion control Reachability analysis Condiii de curs Transmisie radio Canal cu acces aleator Vitez, rat Controlul congestiei n funcie de vitez Analiza accesibilitii

RE...-RES...

DICIONAR

753

R
Re-route Receiver Receiving window Recode (to) Recoverable error Recoverable error Recovery Recovery Recovery Recovery procedure Recursive query Redundancy checking Redundant array of inexpensive disks Redundant character Redundant code Reference point, ISDN Reference station Reflection attack Releasing a connection Remote login Remote login Remote console (device) Remote terminal Repeater Replay attack Request for commen Request-reply service Resolver, DNS Resource management cell A trimite pe o alt rut (cale) Receptor Fereastr de recepie A recodifica Eroare corectabil Eroare reparabil Recuperare Reparare Restaurare Procedur de revenire din eroare Interogare recursiv Verificare prin redundan Tablou redundant de discuri ieftine Caracter pentru controlul erorilor Cod redundant Punct de referin Staie de referin Atac prin reflectare Desfiinarea (eliberarea) unei conexiuni Acces de la distan Conectare la distan Consol (dispozitiv) conectat la distan Terminal de teleprelucrare Repetor Atac prin reluare Cerere pentru comentarii Serviciu cerere-rspuns Rezolvitor, DNS Celul de gestiune a resurselor

754

DICIONAR

RES...-SEN..

R
Resource record Resource reservation Resource reservation protocol Response frame Retransmission timer, TCP Return to zero signal Reverse address resolution protocol Reverse channel Reverse path forwarding Ringbacksystem Ring network Ring, star shaped Rounding trip nregistrare de resurse Rezervare de resurse Protocol de rezervare a resurselor Cadru de rspuns Ceas de retransmitere, TCP Cu revenire la zero (semnal) Protocol de conversie invers a adreselor Canal de rspuns Urmrirea cii inverse Sistem cu reapelare Reea n inel Inel, configurat n stea Dus/ntors Dirijare Rutare Algoritm de dirijare Codificare dup lungimea apariiilor

Routing Routing
Routing algorithm Run length encoding

S-box Satellite computer Satellite network Search engine, World Wide Web Secret-key cryptography Section sublayer, SONET Secure hash algorithm Selective flooding Selective repeat protocol Self-checking code Sender

Bloc S (substituie) Calculator satelit Reea satelit Motor (main) de cutare, WWW Criptografie cu chei secrete Subnivel seciune, SONET Algoritm de dispersie sigur Inundare selectiv Protocol de repetare selectiv Cod autotestabil Emitor, expeditor

SEN...-SIM...

DICIONAR

755

Sendingwindow Sequentiel couleur avec memoire Sequence check Serial line IP Service access point Service data unit Service primitive Service provider Service user Service specific connectionoriented protocol Session key Set-top box Set asynchronous balanced mode extended Set normal response mode extended Severely-errored cell block ratio Shared access Shell account Shieldcable Short hul modem Shortest path routing Signal conditioning Signal to noise ratio Silly window syndrome Simple efficient adaptation layer Simple Internet protocol plus Simple mail transfer protocol Simple network management protocol

Fereastr de transmitere Semnalizare pe canal separat Verificarea secvenei (ordinii) IP de linie serial Punct de acces la serviciu Unitate de date de serviciu Primitiv de serviciu Furnizor de servicii Utilizator de servicii Protocol orientat pe conexiuni specific serviciului Cheie de sesiune Cutie de conectare Stabilirea modului asincron echilibrat extins Stabilirea modului de rspuns normal extins Fraciunea blocurilor grav eronate Acces partajat Cont de lucru n linia de comand Cablu ecranat Modem de distan scurt Dirijare pe calea cea mai scurt Condiionarea (mbuntirea) semnalului Raportul semnal zgomot Sindromul ferestrei stupide Nivel de adaptare eficient simpl Protocol simplu mbuntit pentru Internet Protocol simplu de transfer al potei Protocol simplu de gestiune a reelei

756

DICT10NAR

SIN...-STR..

Single-bit Single errors Single-hop Single-mode fber Sink tree vs. Spanning tree Site Site - server Sliding window protocol Slow start algorithm Smart terminal Smiley Snooping agent Socket Source encoding Source routing Source routing bridge Space dhision switch Split horizon Spool Standard generalized markup language Star-shaped ring Star network Statistical encoding Status poli Stop-and-wait Storage hierarchy Store-and-forward Striping

Mono-bit Erori singulare Mono-salt Fibr mono-mod Arbore de scufundare / arbore de acoperire Sit, sediu Server de sediu, de sit Protocol cu fereastr glisant Algoritm de pornire lent Terminal inteligent Caractere smiley - fa zmbitoare Agent ascuns Soclu Codificare bazat pe surs Dirijare de la surs Punte pentru dirijare de la surs Comutator pentru divizare n spaiu Orizont mprit Virtualizare Limbaj de marcare generalizat standard Inel configurat n stea Reea cu topologie stea Codificare statistic Testarea strii Pas-cu-pas Ierarhie de memorii Memorare si retransmitere Repartizare

STR...-TIM...

DICIONAR

757

Structure of management information Stub network Style sheet Subsplit cable Substitution cipher Supervisoiy frame Sustained cell rate Switch hierarchy, telephone Switched etheraet Switched multimegabit data service Switched virtual circuit Switching centre Switching fabric, ATM Symmetric key cryptography Synchronous data link contro! Synchronous payload envelope

Structura informaiei de gestiune Reea-ciot Foaie de stil Cablu submprit Cifru cu substituie Cadru de supervizare Viteza mediat de transmitere Ierarhie de comutatoare, telefon Ethernet comutat Serviciu de date comutat multimegabit Circuit virtual comutat Centru de comutare Schem de comutare Criptografie cu chei simetrice Control sincron al legturii de date nveli sincron pentru informaie util

Tandem office Tap Telematics Terminal interface processor Thin ethernet Third part Thread Three-way handshake Throughput Time division multiplexing Time division switch

Oficii n tandem (din aceeai zon local) Conexiune, pin Telematic Procesor de interfaare a terminalelor Ethernet gros Ter (relativ la un contract) Subproces nelegere n trei pai Productivitate Multiplexare cu divizare n timp Comutator cu divizare n timp

758

DICIONAR

TTM...-TWL.

Time domain reflectometry Timeout Token Token bucket algorithm Token bus LAN (see IEEE 802.4) Token ring LAN Token holding time Toii connecting trunk Tool office Torn tape office Traffic descriptor Traffic policing Traffic shaping Trailer Transceiver Transit network Transmission control protocol Transponder, satellite Transport entity Transport gateway Transport layer Transport stream Transposition cipher Trap,SNMP Trap directed polling Tributary, SONET Trunk Tunneling Twisted pair

Reflectometrie n domeniul timp Expirarea timpului Jeton Algoritmul gleii cu jeton LAN de tip jeton pe magistral LAN de tip jeton pe inel Timp de reinere a jetonului Trunchiuri care conecteaz centralele de facturare Oficii de taxare Oficiu de tocare a benzilor Descriptor de trafic Politica de trafic, urmrirea traficului Modelarea traficului Sfrit (ncheiere, tren) Transiver Reea de tranzit Protocol de control al transmisiei Transponder, satelit Entitate de transport Poart la nivelul transport Nivel transport Flux de transport Cifru cu transpoziie Trap, SNMP Interogare referitoare la capcane Aservit, SONET Trunchi de magistral Trecere prin tunel Pereche torsadat

UNB...-WID...

DICIONAR

759

u
Unbalanced transmission Unconfirmed service Uniform resource locator Universal resource identifier Unnumbered frame Unshielded twisted pair Unspecified bit rate service Urgent data User agent User datagram protocol User profite Transmisie neechilibrat Serviciu neconfirmat Adres uniform pentru localizarea resurselor Identificator universal de resurse Cadru nenumerotat Pereche torsadat ne-ecranat Serviciu cu vitez de transmisie nespecificat Date urgente Agent utilizator Protocolul datagramelor utilizatorilor Profilul utilizatorilor

V
Vacation daemon Variable bit rate service Vector quantization Very small aperture terminal Video on demand Voice-grade line Voice - grade line Demon de vacan Serviciu cu vitez variabil de transmisie Cuantizare de vectori Terminal cu deschidere foarte mic Video la cerere Linie telefonic Linie de calitate vocal

w
Wavelenght division multiple access Wavelength division multiplexing Web Web page Weighted fair queueing Well-known ports Wide area network (WAN) Wide-mouth frog protocol Acces multiplu cu divizarea lungimii de und Multiplexare cu divizarea lungimii de und ncrengtur Pagin de Web Cozi echitabil ponderate Porturi general cunoscute Reea larg rspndit geografic Protocolul broasca-cu-gura-mare

760

DICIONAR

WIR...-WOR.,

W
Wire center (Wo)men-n the-middle Wireline carrier Working Workstation World wide web Worm Centru de cablaj Omul-din-mijloc Furnizor de telefonie prin fir n funciune Staie de lucru Lumea ca o pnz de pianjen Vierme

INDEX
ARPANET, 32,41,44,45,46,47,48,65,80, 330,333,385,529,536,578,585,598, 605 ARQ, 186 ASN.l, 588,589,590,591,592,593,594,597, 621 ATM, xv, xvi, 41,56,57,58,59,60,61,66,67, 70,71,116,117,119,132,133,135, 136,137,138,139,143,158,162,208, 217,218,220,221,223,301,303,315, 317,320,321,352,353,360,361,363, 364,367,377,378,416,417,418,419, 420,421,422,424,425,426,427,429, 433,434,436,437,438,439,441,442, 443,454,470,475,506,507,508,509, 514,515,516,517,527,532,533,535, 638

AAL, xvi, 58,59, 60,61,279,419,437,454,506, 507,508,509,510,511,512,513,514, 515,516,533,535,638 AAL 1,507,509,510,511,512,514,515,535 AAL 2,510,511,512,515,535 AAL 3/4,507,511,512,513,514,515,535 AAL 5,506,507,514,515,516,535,638 ABR, 419,425,426,427,434,436,443,507 ACR, 436 ADC, 670 ALOHA, 228,229,230,231,232,233,234,235, 237,239,249,251,255,304,305,306, 307,308,309,310,311,314 AMPS, xvi, 146,148,149,150,151,158,246, 249,309 ANSI, 64,208,255,301,302 ANSNET, 48 ARP, xvi, 389,391,392,401,437,438,442,443

B
BGP, xvi, 398,399,406,438 BITNET, 49 Blanca, 51 BOC, 97

761

762
BOOTP, 389,393 BUS, 437

INDEX DSMA, 250,251 DSS,573 DTE, 105,106

C-H

E
CASA, 52 CBR, 425,426,427,433,434,507 CDMA, xvi, 246,251,252,254,255,304,308, 309,310,311,312 CDPD, xvi, 14,246,249,250,251,309,310,338 CDV,428 CER, 428,429 CGI, 653,654,667 CIDR, 402,403,405 CLR, 428 CLUT,676 CMR, 428,429 Consiliul Arhitecturii Internet, 65 CSMA, xvi, 232,233,234,235,237,244,246, 251,255,256,262,265,291,304,309, 310,311,312,313 CSMA/CD, 234,235,255,256,265,291,304, 309,310,311,312,313 CSNET, 46 CTD, 428 CVDT, 427 EARN,49 ER, 436

FAQ, xvi, 615,624 FCC, 88,92,147,148,151,155 FDDI, 135,136,217,218,295,296,297,298, 300,301,303,309,310,314,390,391, 392 FDM, xvi, 109,110,111,135,148,150,153,158, 160,226,227,240,249,251,252,304, 306,308,309,310 FTP, xvi, 35,49,317,381,407,486,609,613, 637,638,641,642,643,656,665 FTTC,xvi,107,110 FTTH, xvi, 107,159

G
GCRA, 429,431,432 Gopher, 637,641,642,643 GSM, xvi, 150,151,246,247,248,249,251,309, 310,311

D
DCE, iv, 105,106 DCS,247,602 DES, 413,415,547,548,549,550,551,552,553, 554,557,558,569,574,619,620 DMSP, 614 DNS, xvi, 35,46,391,406,537,577,578,580, 581,582,583,584,585,600,604,635, 641,659,669 domeniu, 5,15,37,51,64,101,109,110,132, 153,159,222,227,243,244,265,266, 300,301,321,341,342,368,406,409, 420,423,539,568,578,579,580,581, 582,583,584,652,677 .j ; DQDB, xvi, 10,52,53,56,61,68,279,280,309, 310

H
HDLC, xvi, 67,208,210,211,214,215,219,221, 222,223,282 HDTV, 133,674,682 HEC, xvi, 217,218,219,220,419,424 HEPNET, 49 fflPPI, xvi, 301,302,303,309,310,314 HTML xvi, 608,631,637,640,641,643,644, 645,646,647,648,649,650,651,654, 656 HTTP, 35,634,636,637,638,639,640,642, 644,653,656

I-M

INDEX

763
TU, xvi, 62,63,64,65,87,102,419,436,507, 511,514,590,619,679 ITU-R,63,88 ITU-T,63,64,65 IXC, 98,99

I
IAB, xvi, 65,66 IBM, 9,38,40,42,47,54,62,77,208,271,273, 285,291,303,314,398,547,551,553 ICMP, xvi, 389,390,400,406,411,412,438, 501,595,596 IDEA, xvi, 554,555,558,616,617,620 IDU, 21 IEEE, 9,10,65,66,235,245,246,255,260,266, 267,271,279,280,282,285,287,288, 298,299,303,310,406,551,657 IEEE 802,9,65,235,245,246,255,266,271, 279,280,285,287,303,310 IGMP, 400,406 IMAP, 614 IMP, 43,44,45,47 IMTS, 146,147 IP, xv, 26,32,33,34,35,36,37,38,39,40,42, 46,47,48,49,54,58,66,68,69,136, 212,213,214,216,223,249,281,282, 303,317,320,321,338,367,369,370, 371,373,374,375,377,381,382,383, 385,386,387,388,389,390,391,392, 393,394,397,399,400,401,402,403, 405,406,408,410,413,414,415,416, 426,437,438,440,442,454,485,486, 487,488,489,490,491,495,503,504, 515,521,526,527,534,535,578,580, 581,582,583,584,585,593,595,596, 613,635,641,663 IPRA, 619,620,621 Pv4,405,406,408,409,410,412,413,414,415, 442 IPv5,406 IPX, 42,214,282,330,338,367,369,370,371, 373,409 ISDN, xvi, 52,56,116,120,128,129,130,131, 132,133,144,158,161,295,297,421 ISDN de band ngust, 133,158 ISDN de band larg, xvi, 52,56,120,132,133, 158 IS-IS, 338 ISO, xvi, 26,27,38,64,65,66,208,255,338, 369,578,590,592,643,646,679,682

Java, xvi, 631,654,655,656,657,658,659,660, 661,662,664,665 JPEG, 607,608,647,679,680,682,683,684

K
KDC, 559,564,565,566,567 Kerberos, 567,568

LAN, 9,10,11,14,15,41,43,46,52,53,58,68, 85,129,135,169,211,225,226,227, 228,229,234,241,243,244,245,255, 261,265,266,267,271,278,279,280, 282,283,284,285,286,287,288,289, 290,291,292,293,294,295,298,301, 302,309,310,311,312,314,316,334, 338,341,342,369,370,387,388,390, 397,400,401,416,424,436,437,438, 440,441,442 LAP, 208 LATA, xvi, 98 LCP, 213,214,215,216 LEC,98,99 LES, 437 LS, 438 LLC, 255,282,284

M
MAC, xvi, 225,234,235,243,255,260,266,267, 269,274,282,284,295,297,298,369, 376,438 MACA, xvi, 245,246,309,310,311 MACAW,245,246,309

764

INDEX

N-S

MAN, xvi, 10,52,53,61,80,226,227,279,281, 282,309,310,313,341,536 MBone, 669 MCR, 427,428,436 MD5,413,415,574,575,577,616,617,619 MIB, xvi, 587,590,594,595,596 MIDI, 671 MILNET, 46 MIME, xvi, 605,606,607,608,617,637,638, 639, 640,668 MNP, 103 Mosaic, 50,631, 644 MOllS, 369,598 MPEG, 425,607,608,609,679,682,683,684 MTSO, 147,148,149 MTU, 487 PAD, 55 PAL, 673, 679, 682 PBX, 130,131,132 PCA, 620 PCM, xvi, 112,114,115,116,118,131,160, 295, 297, 298, 306, 425 PCN, xvi, 151,155,156,158 PCR, 427,428, 429, 432, 436,443 PCS,xvi, 151,155,156,158,162 PDU, 21 PEM, xvi, 615,619,620,621 PGP, xvi, 577, 615, 616, 617, 618, 619, 620, 621 POP, 98, 614 POP3, 614 POTS, 56 PPP, xvi, 67, 212, 213, 214, 215, 221, 223, 634 PSTN, xvi, 94 PTT, xvi, 62, 63,129,374 PVC, xvi

N
NAK, 201, 222 NAP, xvi, 48 NCP, 42,43,213,214,215,216,367 NETBLT, 532 NIC, 386,387,388 N-ISDN, 71,132, 682 NIST, 65,255,573,574,575 NNTP, xvi, 35,627,628, 630, 642 Novell, 41,42,68,69,212,330, 338,367,409 NREN, 48,51 NSA, xvi, 551,554,573,574 NSAP, xvi, 409,454,455,457,594 NSFNET, 41,46, 47,48, 338 NT1,129,130,131,161 NT2,130,161 NTSC, 672,673,679,682

Q
QAM, xvi, 102 QoS, 427, 429, 447

R
RARP, xvi, 389,393,438,442,517 RFC, xvi, 66, 212, 213, 214, 216,317,384, 390, 391, 393, 399, 400, 403, 405, 406, 410, 438, 485, 486,491, 504,515,575,585, 593,596,597, 604, 605,606, 607,608, 609, 611, 612,613,614,617, 619,626, 627, 637,638,639,640 RSVP, 365,429

O
OAM, 115, 218 OC, 118 OSPF, xvi, 338,393,394,395,396,397,398, 400,406, 438 SABME, xvi, 210 SAP, xvi, 21, 43,68, 454 SCR, 427,428,432

T-X
SDH, xvi, 115,118 SDLC, xvi, 208, 210, 221 SDU, 21 SEAL, 514 SECAM, 673, 679 SGML, 608,643 SHA, xvi, 574,575 SIPP, 406 SLIP, 67, 212, 213, 214, 221, 634 SMDS, 52,53, 54,56, 61, 68, 70,156, 350 SMI, xvi, 593,594 Smiley, 624 SMTP, 35,610,611,612,613,627,636 SNA, xv, xvi, 38,208,367,373 SNMP, xvi, 585,586,587,588,589,590,591, 592,593, 594,595, 596, 597 SNRME, xvi, 210

INDEX

765
472, 474,517, 518, 520,523,525,526, 527,535,536 TSAP, 454, 455, 456,457,474,485, 489

U
UBR, 425,426, 427,433,434,507 UDP, xvi, 34, 67, 69,241, 320,381,384,393, 406, 408,410, 485, 504, 506, 517,521, 535,578,584,595,596 URI, 643 URL, 634, 635, 640, 641, 642, 643, 648, 653, 666, 667,668 UTP, 77, 299

V.24, 63,105 V.32,102,103 VBR, 425,433,434 VISTAnet, 52 VSAT, xvi, 153,154

SONET, 41,57, 67,109,115,116,117,118,119, 135,136,160,162, 214, 215, 217,218, 219, 675 SPADE, 306,309 SPN, 49 SPE, 116,117,118,119, 219 SPX,xvi,42 SSCOP, 516

w
WAN, 11,12,15, 47,166,225, 249, 291, 303, 316,340,341,369,374,375,392,446 WARC, xvi, 88 WDM,xvi, 110,158

TCP, xv, xvi, 26, 32, 33, 34, 35, 36, 37, 38, 39, 40, 42,46, 47, 48, 49,58, 66, 67, 68, 69, 212, 213, 317, 320, 367, 372, 374, 381, 384, 398, 406, 408, 410, 451, 452,455, 485, 486, 487, 488,489, 490, 491,492, 493,494,495,496,497,498,500,501, 502,503, 504,505,506,516, 517,521, 526,527,529,533,534,535,578,593, 595,596,610, 611,613, 627, 628,630, 634, 635, 636, 637, 638, 641, 653,668 TDM, 109,115,150,158,160,227,240,247, 248, 249, 251, 252, 278, 304, 306,307, 308, 309, 310, 377 TIP, 45 TPDU, 449, 450,451, 452, 457, 458,459,460, 462, 464, 465, 466,467, 468, 469,470,

WDMA, 241, 243,311 Web, xvi, xvii, 5,35,49,132,211,300,381,521, 537,597, 608, 631, 632, 633, 634, 635, 636, 638, 639, 640, 642, 643, 644,645, 647, 648,650,652,653, 654,655,656, 659,663,664, 665, 666, 667, 668 WWW, xvi, 49,50,177,506,602,630,634,635, 636, 639, 641,644,645,654, 665 WYSIWYG, xvii, 643,644

X
X.21,55 X.3,55 X.400,598,600,612,613,619,620,621

1998 Gxnputer Press AGORA


http://wuw.agora.ro

You might also like