Retele de calculatoare ¸

Principii

Radu-Lucian Lup¸a s

Aceasta este editia electronic˘ a c˘rtii Retele de calculatoare, publicat˘ la ¸ a a¸ ¸ a Casa C˘rtii de Stiint˘, ˆ 2008, ISBN: 978-973-133-377-9. a¸ ¸ ¸a ın Drepturile de autor apartin subsemnatului, Radu-Lucian Lup¸a. ¸ s Subsemnatul, Radu-Lucian Lup¸a, acord oricui dore¸te dreptul de a copia s s continutul acestei c˘rti, integral sau partial, cu conditia atribuirii corecte autorului ¸i ¸ a¸ ¸ ¸ s a p˘str˘rii acestei notite. a a ¸ Cartea poate fi desc˘rcat˘ gratuit de la adresa a a http://www.cs.ubbcluj.ro/~rlupsa/works/retele.pdf

c 2008, Radu-Lucian Lup¸a s
5

Cuprins

Principii
Cuprins Prefat˘ ¸a 1 Introducere 1.1 Serviciile oferite de retea . . . . . . . . . . . . . . . . . . . . . . . . . ¸ 1.2 Principalele elemente ale unei retele de calculatoare . . . . . . . . . . ¸ 1.3 Premise generale ˆ elaborarea ¸i implementarea protocoalelor ˆ retele ın s ın ¸ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Notiuni de teoria informatiei ¸ ¸ 2.1 Problema codific˘rii informatiei pentru un canal discret . . a ¸ 2.2 Coduri cu proprietatea de prefix . . . . . . . . . . . . . . . 2.2.1 Reprezentarea arborescent˘ a codurilor prefix . . . . . a 2.2.2 Decodificarea ˆ cazul codurilor prefix . . . . . . . . . ın 2.2.3 Lungimile cuvintelor unui cod prefix . . . . . . . . . . 2.3 Coduri optime . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Cantitatea de informatie . . . . . . . . . . . . . . . . ¸ 2.3.2 Lungimea medie a cuvintelor de cod . . . . . . . . . . 2.3.3 Generarea codului optim prin algoritmul lui Huffman 2.3.4 Compresia fi¸ierelor . . . . . . . . . . . . . . . . . . . s 2.4 Coduri detectoare ¸i corectoare de erori . . . . . . . . . . . s 2.4.1 Modelul erorilor . . . . . . . . . . . . . . . . . . . . . 2.4.2 Principiile codurilor detectoare ¸i corectoare de erori . s 2.4.3 Cˆteva coduri detectoare sau corectoare de erori . . . a 2.4.3.1 Bitul de paritate . . . . . . . . . . . . . . . . . . 2.4.3.2 Paritate pe linii ¸i coloane . . . . . . . . . . . . . s 2.4.3.3 Coduri polinomiale . . . . . . . . . . . . . . . . . 2.4.4 Coduri detectoare ¸i corectoare de erori ˆ alte domenii s ın 5 13 15 15 20 22 25 26 29 29 31 33 39 40 41 44 50 51 52 53 55 55 55 56 57

2

. . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

. . . . . . . . . . . . . . . . . .

c 2008, Radu-Lucian Lup¸a s
6 3 Nivelul fizic 3.1 Problema transmisiei informatiei la nivelul fizic . . . . . . . ¸ 3.2 Transmiterea semnalelor . . . . . . . . . . . . . . . . . . . . 3.2.1 Modific˘rile suferite de semnale . . . . . . . . . . . . . . a 3.2.2 Analiza transmiterii semnalelor cu ajutorul transformatei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Codificarea informatiei prin semnale continue . . . . . . . . ¸ 3.3.1 Scheme de codificare . . . . . . . . . . . . . . . . . . . . 3.3.2 Modulatia . . . . . . . . . . . . . . . . . . . . . . . . . . ¸ 3.3.3 Multiplexarea ˆ frecvent˘ . . . . . . . . . . . . . . . . ın ¸a 3.3.4 Capacitatea maxim˘ a unui canal de comunicatie . . . . a ¸ 3.4 Transmisia prin perechi de conductoare . . . . . . . . . . . . 3.4.1 Constructia cablului . . . . . . . . . . . . . . . . . . . . ¸ 3.4.2 Propriet˘¸i ale mediului . . . . . . . . . . . . . . . . . . at 3.4.3 Leg˘tur˘ magistral˘ . . . . . . . . . . . . . . . . . . . . a a a 3.4.4 Considerente practice . . . . . . . . . . . . . . . . . . . 3.5 Transmisia prin unde radio . . . . . . . . . . . . . . . . . . . 3.5.1 Propagarea undelor . . . . . . . . . . . . . . . . . . . . 3.5.1.1 Polarizarea . . . . . . . . . . . . . . . . . . . . . . 3.5.1.2 Absorbtia ¸i reflexia . . . . . . . . . . . . . . . . . ¸ s 3.5.1.3 Difractia . . . . . . . . . . . . . . . . . . . . . . . . ¸ 3.5.1.4 Interferenta undelor . . . . . . . . . . . . . . . . . ¸ 3.5.1.5 Divergenta undelor . . . . . . . . . . . . . . . . . . ¸ 3.5.2 Antene . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5.2.1 Directivitatea . . . . . . . . . . . . . . . . . . . . . 3.5.2.2 Polarizarea . . . . . . . . . . . . . . . . . . . . . . 3.5.2.3 Tipuri de antene . . . . . . . . . . . . . . . . . . . 3.5.3 Raza de actiune a unei leg˘turi radio . . . . . . . . . . ¸ a 3.5.3.1 Obstacolele . . . . . . . . . . . . . . . . . . . . . . 3.5.3.2 Linia orizontului . . . . . . . . . . . . . . . . . . . 3.5.3.3 Utilizarea satelitilor artificiali ai P˘mˆntului . . . . ¸ a a 3.5.3.4 Zgomotul . . . . . . . . . . . . . . . . . . . . . . . 3.5.3.5 Sc˘derea puterii cu distanta . . . . . . . . . . . . . a ¸ 3.5.3.6 Emisia directionat˘ ¸i polarizat˘ . . . . . . . . . . ¸ as a 3.5.4 Spectrul radio ¸i alocarea lui . . . . . . . . . . . . . . . s 3.5.5 Particularit˘¸i ale sistemelor de comunicatie prin radio at ¸ 3.5.5.1 Topologia leg˘turii . . . . . . . . . . . . . . . . . . a 3.5.5.2 Fiabilitatea . . . . . . . . . . . . . . . . . . . . . . 3.5.5.3 Securitatea . . . . . . . . . . . . . . . . . . . . . . 3.6 Transmisia optic˘ . . . . . . . . . . . . . . . . . . . . . . . . a 3.6.1 Constructia mediului . . . . . . . . . . . . . . . . . . . ¸ 3.6.1.1 Conectarea fibrelor optice . . . . . . . . . . . . . . 3.6.2 Propagarea semnalului optic . . . . . . . . . . . . . . . 3.6.2.1 Moduri de propagare . . . . . . . . . . . . . . . . . Cuprins 59 59 60 60 62 65 65 68 71 71 72 72 74 75 76 77 78 78 79 79 80 80 80 81 83 83 83 83 84 84 85 86 86 86 88 88 89 89 89 90 91 91 91

. . . . . . . . . . . . . . . Fourier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

c 2008, Radu-Lucian Lup¸a s
Cuprins 3.6.2.2 Caracteristici ale mediului . . . . . . . . . . . . . . . . . . . 3.6.2.3 Multiplexarea ˆ lungimea de und˘ . . . . . . . . . . . . . . ın a 3.6.3 Considerente practice . . . . . . . . . . . . . . . . . . . . . . . . 4 Nivelul leg˘turii de date a 4.1 Detectarea ¸i corectarea erorilor . . . . . . . . . . . . . . . . . . . . s 4.2 Controlul accesului la mediu . . . . . . . . . . . . . . . . . . . . . . 4.2.1 Protocoale bazate pe asigurarea unui interval exclusiv de emisie 4.2.2 Protocoale bazate pe coliziuni ¸i retransmitere . . . . . . . . . s 4.2.3 Protocoale mixte . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Retransmiterea pachetelor pierdute . . . . . . . . . . . . . . . . . . 4.3.1 Principiul confirm˘rilor pozitive ¸i retransmiterilor . . . . . . . a s 4.3.2 Trimiterea ˆ avans a mai multor pachete . . . . . . . . . . . . ın 4.3.3 Spatiul numerelor de confirmare . . . . . . . . . . . . . . . . . ¸ 4.4 Controlul fluxului . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 Cereri de suspendare ¸i de continuare . . . . . . . . . . . . . . s 4.4.2 Mecanismul pas cu pas . . . . . . . . . . . . . . . . . . . . . . 4.4.3 Mecanism combinat cu retransmiterea pachetelor pierdute . . . 4.5 Multiplexarea ˆ timp . . . . . . . . . . . . . . . . . . . . . . . . . . ın Nivelul retea ¸i nivelul transport ¸ s 5.1 Retransmiterea datelor de c˘tre nodurile intermediare . . . . . . . . a 5.1.1 Retransmiterea ˆ retele bazate pe datagrame . . . . . . . . . . ın ¸ 5.1.2 Retransmiterea ˆ retele bazate pe conexiuni . . . . . . . . . . ın ¸ 5.2 Algoritmi de dirijare . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Calculul drumurilor cu informatii complete despre graful retelei ¸ ¸ 5.2.2 Calculul drumurilor optime prin schimb de informatii de distant˘ ¸ ¸a 5.2.3 Dirijarea ierarhic˘ . . . . . . . . . . . . . . . . . . . . . . . . . a 5.2.4 Metode particulare de dirijare . . . . . . . . . . . . . . . . . . 5.2.4.1 Inundarea . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.4.2 ˆ a¸area rutelor din adresele surs˘ ale pachetelor . . . . Inv˘t a 5.2.5 Metode de difuziune . . . . . . . . . . . . . . . . . . . . . . . . 5.3 Functionarea la trafic ridicat . . . . . . . . . . . . . . . . . . . . . . ¸ 5.3.1 Alegerea pachetelor de transmis . . . . . . . . . . . . . . . . . 5.3.2 Controlul congestiei . . . . . . . . . . . . . . . . . . . . . . . . 5.3.3 Formarea (limitarea) traficului . . . . . . . . . . . . . . . . . . 5.3.4 Rezervarea resurselor . . . . . . . . . . . . . . . . . . . . . . . 5.4 Nivelul transport . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.5 Interconectarea retelelor . . . . . . . . . . . . . . . . . . . . . . . . ¸ Metode ¸i protocoale criptografice s 6.1 Asigurarea confidentialit˘¸ii . . . ¸ at 6.1.1 Introducere . . . . . . . . . . 6.1.2 Refolosirea cheilor . . . . . . 6.1.3 Problema spargerii unui cifru 7 92 92 93 95 96 97 98 99 101 102 103 108 109 114 115 115 116 117 119 120 122 122 125 127 128 136 139 139 140 140 141 142 143 144 145 146 147 149 151 151 154 155

. . . . . . . . . . . . . .

5

. . . . . . . . . . . . . . . . . .

6

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

c 2008, Radu-Lucian Lup¸a s
8 6.1.4 Algoritmi de criptare utilizati ˆ practic˘ . . . . . . . . . . ¸ ın a 6.1.5 Criptografie asimetric˘ (cu cheie public˘) . . . . . . . . . . a a 6.1.5.1 Utilizarea criptografiei asimetrice . . . . . . . . . . . . 6.2 Autentificarea mesajelor . . . . . . . . . . . . . . . . . . . . . . 6.2.1 Functii de dispersie criptografice . . . . . . . . . . . . . . . ¸ 6.2.1.1 Utilizarea functiilor de dispersie . . . . . . . . . . . . . ¸ 6.2.2 Functii de dispersie cu cheie . . . . . . . . . . . . . . . . . . ¸ 6.2.3 Semn˘tura digital˘ . . . . . . . . . . . . . . . . . . . . . . . a a 6.2.4 Verificarea prospetimii mesajelor . . . . . . . . . . . . . . . ¸ 6.2.5 Combinarea cript˘rii, autentific˘rii ¸i verific˘rii prospetimii a a s a ¸ 6.3 Stabilirea cheilor . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1 Stabilirea cheilor ˆ prezenta unui adversar pasiv . . . . . . ın ¸ 6.3.1.1 Stabilirea cheilor prin criptografie asimetric˘ . . . . . a 6.3.1.2 Stabilirea cheii prin metoda Diffie-Hellman . . . . . . 6.3.1.3 Atacul man-in-the-middle . . . . . . . . . . . . . . . . 6.3.2 Stabilirea cheilor ˆ prezenta unui adversar activ . . . . . . ın ¸ 6.3.3 Stabilirea cheilor cu ajutorul unui tert de ˆ ¸ ıncredere . . . . . 6.3.4 Certificarea cheilor publice . . . . . . . . . . . . . . . . . . 6.3.5 Transportul prin utilizatori umani . . . . . . . . . . . . . . 6.4 Numere aleatoare . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4.1 Generatoare fizice . . . . . . . . . . . . . . . . . . . . . . . 6.4.2 Generatoare de numere pseudoaleatoare . . . . . . . . . . . 6.4.3 Generatoare utilizate ˆ practic˘ . . . . . . . . . . . . . . . ın a 6.5 Autentificarea utilizatorilor . . . . . . . . . . . . . . . . . . . . . 6.5.1 Stocarea parolelor . . . . . . . . . . . . . . . . . . . . . . . 6.5.2 Parole de unic˘ folosint˘ . . . . . . . . . . . . . . . . . . . a ¸a Cuprins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 163 164 165 166 167 168 169 171 173 173 176 176 177 178 178 180 182 183 185 186 186 188 188 188 189

Protocoale
Cuprins 7 Codific˘ri de interes practic a 7.1 Probleme privind reprezentarea numerelor ˆ ıntregi . . . . . . . . 7.1.1 Reprezent˘ri pe biti . . . . . . . . . . . . . . . . . . . . . . a ¸ 7.1.1.1 Bitul . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.1.1.2 Siruri de biti . . . . . . . . . . . . . . . . . . . . . . . ¸ ¸ 7.1.1.3 Reprezentarea pe biti a numerelor ˆ ¸ ıntregi . . . . . . . 7.1.2 Reprezent˘ri pe octeti . . . . . . . . . . . . . . . . . . . . . a ¸ 7.1.2.1 Octeti . . . . . . . . . . . . . . . . . . . . . . . . . . . ¸ 7.1.2.2 Siruri de octeti . . . . . . . . . . . . . . . . . . . . . . ¸ ¸ 7.1.2.3 Reprezentarea numerelor pe un num˘r ˆ a ıntreg de octeti ¸ 7.1.2.4 Reprezentarea numerelor pe un ¸ir arbitar de biti . . . s ¸ 7.1.3 Probleme privind reprezentarea lungimii ¸irurilor . . . . . . s 7.1.4 Alte metode de reprezentare a numerelor ˆ ıntregi . . . . . . 195 203 203 203 204 204 205 206 206 208 208 210 212 214

. . . . . . . . . . . .

. . . . . . . . . . . .

. . . . . . . . . . . .

. . .3. . . ¸ 8. . . . . . . . . . . . . . . . ın 7. . . .1. . . . . . . .1. . . .3. . . . . . . . . . . . . . . . . . . . . . . . . .2 ISO-8601 ¸i RFC-3339 . .2. . . . . . . listen() ¸i ¸ s 8. . . . . 7. . . . . .1 Codificarea UTF-8 . . . . . . . . . accept() . . . . . .3. 7. . . . . . . . . . 7. . . . . ¸ s 8. . . . . . . . .4. . . . . . .2 Comunicare prin datagrame . .1 Deschiderea conexiunii de c˘tre client . . . . . . . . . . .1. . .7 Interactiunea dintre connect(). . . . . . . . . .1 Comunicare prin conexiune . . . . .4 Recodific˘ri . .1. . . 8. . . . . a 7. . . . . . . . . . . . 8.1 Functia socket() . . . . . .1. .2 Deschiderea conexiunii de c˘tre server . .3. . . . . . . . . . . . . . . . . . . . a 8. . . .2 Functia connect() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Codific˘rile UTF-32 . . . . . . . . .3. .3 Timpul POSIX . . . . . . .1. . .3 Codific˘ri bazate pe secvente de evitare . . . . . . .4. . . . . . . . . . 8. . s a 7. . . . . . . . . a ¸ 8 Programarea ˆ retea — introducere ın ¸ 8. . . . . . . ¸ 8. . . . .1 Codificarea hexazecimal˘ . . . . . . . . . . . . . . . . .5 Functia accept() . . . . . . . .2. . . . .3. . . . s 7. . . .3. . . . . . . . . . . . . . . . . . .2.2. . . .1. . . . . . . . . . . .1. . . . . . . a 8. . .1. . . . . . .3. .3.1. . . . . . . .4 ˆ Inchiderea conexiunii .3. . . . . . . . . . . . . . ¸ 8. . . . . . . . ¸ 8. . . . . . . . . . . . . . . . . . . . . . .4. . . .3. . . . . 7. . . . . . . . . . . . . s 7. . . . . . . .2 Formatarea datelor . .3. . . . . . a 7. . .4. . . ¸ 8. . . . .3. . . . . . . . . . . . .1. .1 Codificarea ASCII . . . . . . . . . . . . . . . . . . . . . .1 M˘surarea timpului . . . . . . . .2 Codific˘rile UTF-16 . . . . . . . . . . . . . . . . . . .2. . . . .1. . . . . . . . . . . .4. . . a 7.1. . . .3 Principalele apeluri sistem . a 7. . . . . . .c 2008. . . . .11 Functiile sendto() ¸i recvfrom() .1. . . . . . . . . .3 Formate utilizate ˆ practic˘ . . . .8 Functiile getsockname() ¸i getpeername() ¸ s 8. . . . . . . ¸ 8. . . . . . . . . . . . . .3. . . .1. . . . . . . . . . . .1.2 Obiectivele ˆ alegerea reprezent˘rii timpului ˆ calculator ın a ın 7. . . . . . . . . .10 Functiile shutdown() ¸i close() . . . .3. a 7. . . . . . . ¸ 8. . . . . .1.1. .1 Comunicatia prin conexiuni . . . .3. . ¸ a 8. . . . . 7. . . . .1 Formatul utilizat de po¸ta electronic˘ . . . a 7. . . . .3.4 Exemple . 8. .3. . . . .3. .1. . . . . . . . . . . ¸ s 8. . . . . . 8. . . . . . . . . . .2. . .2 Comunicatia prin datagrame . . .3 Codific˘rile Unicode . . . . . . . . . . . . . . . a 7. . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . ¸ 8.1. . . . . . . . .4 TAI 64 . . . .1. . . .3. .9 Functiile send() ¸i recv() . 9 215 216 217 218 220 220 221 221 222 224 225 225 226 227 227 228 228 229 229 231 231 232 233 233 234 234 235 237 237 237 238 239 239 240 242 242 243 245 245 246 246 249 252 . . Radu-Lucian Lup¸a s Cuprins 7. . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . .3. .2 Codificarea textelor . .2 Codificarea ˆ baza 64 . .4 Functia listen() . .3 Functia bind() . . . . .3. . . ın a 7. . . . . ¸ s 8. . . . .1.2 Codific˘rile ISO-8859 . . . . . 8. . . . . . . . . . .3. . .1. . . . . . . . .1. . . . . . . . . . . .6 Formatul adreselor . . . . . . .3 Comunicatia propriu-zis˘ . . . . . . .3. .1 Interfata de programare socket BSD . . . . . . . . . . .3 Reprezentarea datei ¸i orei . . . . . .

1.2.2. . . .3 (Ethernet) . . . 252 252 254 255 257 257 257 258 260 263 263 266 272 274 277 279 279 279 280 280 281 281 282 283 283 285 286 286 291 291 292 293 294 294 295 296 298 298 300 300 301 301 Retele IEEE 802 ¸ 9. . . . . . . . . . . . . . . 8. . . . . .2 Siruri de caractere ¸i tablouri . . . . . . . . . . . ¸ 9. .5 Retele virtuale (VLAN) . . . . . . . . . . . . 8. . a a 9.2 Bazele dirij˘rii pachetelor IP . . . . . . . . . . . . . . . . . . . . . . .2 Scrierea prefixelor de retea . . . . . . . . . . . . . . . 10.1. . . . . . . .1. .1. .3. . . . . . . . . . . . . . . . ¸ 9. .4 Pointeri . . . . . . . . . . a 9. . 8. . . .2. . . . . . . . . . . . . . . . .2.3. . . .2. . . . . . . . . . . . .1 Retele IEEE 802. . . .2. . . . . . . . . . . . ¸ s ¸ 10. . . .1 Alocarea pe utiliz˘ri . . . . . at 9. . . . . . . . . . . . . . .1. . . . . . .2 Protocolul IP . . . . . . . ¸ 9. . . . . . . .1 Arhitectura retelei .3 Generarea pachetelor beacon . .11 . . . . .4 Alocarea adreselor IP ¸i prefixelor de retea s ¸ 10. . . . . . . . . . . . . . . . . . . . . . ¸ 10. . a 9. . . . . . . . . . .1 Tipuri ˆ ıntregi . . . .2. . .2. . . . . . . . . . . . . .3 Probleme de robustete ¸i securitate . . . . . . . . . . . .1 Structura pachetului IP . .2. . . . . . . . . . . .4. . . . .c 2008. . . . . . . . . . .1. . . . .2 Accesul la mediu . . . . . . . . . . . . . . . . . . .1. . . . . . . . . .1.1 Arhitectura retelei . . . . . ¸ 9. . . . . . . . . ¸ 9. . . . . . . . . . ¸ . .2. .3 Leg˘turi prin cablu magistral˘ . . .6. . ¸ s 8. . . . . . . . . . . . . . .6 Facilit˘¸i avansate ale switch-urilor . . .1 Switch-uri configurabile . . . . . . . . . . . . . . . . . s 10. 9. . . . . . . . . . . . .2 Filtrare pe baz˘ de adrese MAC . . . . . . . . . ¸ 10. . . . .2. . .1 Formate binare . . . . . . . . . . . . . . . . . . . . . . .4 Leg˘turi redundante . . Radu-Lucian Lup¸a s 10 8. .1. . . . . . . . .2. . . . . . . 10. . . .1.1.2. . . . . . . . .2.3 Scrierea ca text a adreselor ¸i prefixelor . . . . . . .1 Leg˘turi punct la punct prin perechi de conductoare a 9. . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Repetoarele ¸i comutatoarele . . . . . . . . .4. .6. . . . .2. . . . . . . . . . . . .3 Probleme de concurent˘ ˆ comunicatie .5 Dirijarea efectuat˘ de comutatoare (switch-uri) . . . . . . . . . . . . . .2 Retele IEEE 802. . . . . . .2. . . .3 Variabile compuse (struct-uri) . . . . . . . . . . . . . . . . . .4 Securitatea retelelor 802.1. . .4 Probleme privind costul apelurilor sistem 8.2 Leg˘turi prin fibre optice . . . . .6. . . .2 Prefixul de retea . . . .2. . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . . a 10. . .1. . . . . .1. . . . . 10 Internetul 10.2.2. . .3 Tabela de dirijare . . . . .2. . . . . . . . . . . . . . . . . . .1 Subretele ¸i interfete . .2. . . s 9. . . . . .1. Cuprins . . . .1. . . . ¸a ın ¸ 9 . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Considerente privind proiectarea unei retele . . . . . . . .6. . . .1 Scrierea adreselor IP . . . . . 8. a 10. . . . . . . . . . . . . . . . .6. . . . 8. . . ¸ 10. . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . .2. . . a 9. . . . . a 9. . . . 9. . 10. 9. .2 Formate text . . . . . . . .11 (Wireless) . . . 10. . . .2. . .2 Alocarea adreselor ¸i dirijarea ierarhic˘ s a .2. ¸ s 8.2. . . . . . . . . .3 Trunking . .

. . . . .1 Numele de domeniu . .4. . . . . . . . .3. 10. . . . . . . . . . . . . . . . . . .5. . . . . . . .2.2.2. . . . . . . . ¸ a 11 302 303 305 305 306 306 307 307 308 309 309 312 313 314 314 315 320 320 323 324 325 326 327 327 328 328 329 330 330 332 333 334 335 336 337 337 339 341 341 346 347 347 . . . . . . . . . . . . .2. . . . . . . . . . . . . . .5 Leg˘turile directe ˆ a ıntre nodurile IP . . . . . . . . . . . . . . . . . . Radu-Lucian Lup¸a s Cuprins 10. . . . . .2. . . . . . . . . . a 10. .7 Corespondenta ˆ ¸ ıntre functiile socket() ¸i actiunile modulu¸ s ¸ lui TCP . . .1. . . . 10. . . . . . ¸ ın 10. . . . . . . . . . . a 10. . . .5. . . . .5. .3. . 10. . . . . . . . . . . . . .7. .3 Translatia adreselor (NAT) . . . . . . . . . . 10.8 Controlul fluxului . 10. . . . . . . . . . . . . . . . . . . s ¸ 10. . .3. . . . . . . . . . . . . .2 Diagnosticarea function˘rii rutelor . . . . .6. . . . . . .1. .2. . . . . . . . . .3. ¸ 10. . . . .5 ˆ Inchiderea fortat˘ a conexiunii . . . 10. . . . . . . . Imp˘ ¸ ın 10. . . . . 10. . . . . . . . . . . . . . . . . ¸ a 10. . . .2. . . . . . .3 ˆ artirea ˆ domenii de autoritate . . . . 10. . . . .2 Configurarea parametrilor de retea pe diverse sisteme de op¸ erare . . . . . . . . . . . . . . .1. . . . . 10.3. . .6 C˘utarea numelui dup˘ IP . . . . . . ¸ ¸ a 10. . a 10.4 Congestia .4. . . . . . . . .3. .1 Dimensiunea maxim˘ a pachetelor ¸i fragmentarea . . .5. . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3. .7. . . . . . . . . . . . . . . . 10. . . . . . . . . . . . . . . . . . .4 Alegerea num˘rului initial de secvent˘ . . . . . . . . . .4 Mecanismul de interogare a serverelor . . . 10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. .1 Rezolvarea adresei — ARP . 10. .10Algoritmul lui Nagle ¸i optimizarea num˘rului de pachete . ¸ ¸ 10. . . . .6 Configurarea automat˘ a statiilor — DHCP .7. .3. . . . . . . . .4.3. .1 Filtre de pachete (firewall) . .4. . . a s 10. . . 10. a ¸ 10. 10. 10. . . . .7. . . .1. . .1.2 Retele private .2. . 10. . 10. . . . .c 2008. . .2 Comunicatia bidirectional˘ . . . . . .3. . . .2. . . .5. . .5 Redirectionarea . . . . .1. . . . . . . . . . . . s 10. . . . .1. . .3. . . .7 Situatii speciale ˆ dirijarea pachetelor . . . . ¸ 10. . .5 Erori la dirijare ¸i protocolul ICMP . . . . . . a a 10. ¸ 10. . .2. . . . . . .7 Configurarea ¸i testarea unei retele IP locale . . . . . .1. . . . . .1. . . 10. . . . . . . . . . . . . . . . . . . . . . . .2.1 Translatia adresei surs˘ . . . . .7. . . . .4 Identificarea nodurilor dup˘ nume: sistemul DNS . . . . . . . . . . . . . . . . . . . . . . . . . .7. . . .3 Nivelul transport . . . . . . . . . . . . . . ¸ a 10. . . .2 Datagrame nesigure: UDP . . .9 Stabilirea time-out-ului pentru retransmiterea pachetelor .1 Alegerea parametrilor . .1 Pachete nelivrabile .3 Testarea ¸i depanarea retelelor .1. . . . . . .2 Calitatea serviciului . . . 10.3.5. . . . . . . . . . . .3.1. . .2. . . . . . . . . . . . . . .4. . . s a 10. . . . . . . . .6 Identificarea aplicatiei destinatie . . . . 10.1 Principiul conexiunii TCP . . . .3 Deschiderea ¸i ˆ s ınchiderea conexiunii . . . . .3. . .3 Ciclarea pachetelor IP . . . . .6 Alte chestiuni privind dirijarea pachetelor . . . . .1 Conexiuni cu livrare garantat˘: protocolul TCP . . . . .2. . . . . . . .11Trimiterea datelor speciale (out of band) .2 Structura logic˘ a bazei de date DNS . . . . . . . . .7. . . . s ¸ 10. . . . . .5 Sincronizarea serverelor pentru un domeniu . . . . . a ¸ ¸a 10. . 10. .

. . . . . . . . . . . s a 11. . . .3. . . . . . .2. .1 Po¸ta electronic˘ . . . .3. . . . . . . . . . . .4 PGP/GPG . . . . . . . . . .2. . . . . . . . . 11. . . . . . . . .1.3. . . .4. . . . .2 Sesiuni interactive la distant˘ . . . . . . . . .2 Utilizatori ¸i identit˘¸i . . . . . . .1 Chei primare ¸i subchei . . . . . . . .5 Conexiuni securizate: SSL/TLS .2 URL-urile . . . . . . . . 11.3 Securitatea po¸tei electronice . . .5 Gestiunea cheilor secrete . . . . . . . .4. . . . . .2. . . . . . . .4. .2 Transmiterea ¸i certificarea cheilor publice . 350 ¸ ¸ 10. . . . . . . 11.1. . . . . .2 Transmiterea mesajelor . .2. . . . . . . . . . . . . .4. . . . . . . . . . .3 Alte facilit˘¸i HTTP . . . 11. . . . . . . . . . . .3 Configurarea unui MTA . . . . . . . . . . . . . . . Bibliografie Index 353 353 354 355 358 359 360 362 362 365 366 368 371 373 373 376 379 379 380 381 382 383 384 385 386 387 389 390 390 391 392 392 393 395 395 395 397 399 401 405 . . . . .1 Protocolul SMTP . . . . . . . . . . . . . 11.3. .1.1 Transmiterea cheilor publice . .1. . . . . . . . . . . . . . . . .3. . . . . . .4 Tunelarea . . . .1 Conexiunea ssh protejat˘ criptografic . . .1. . . . . . . . . s ¸ 11. . . . . . . . . .3 Generarea ¸i modificarea cheilor . .1.2. 11. . . . .2. .2 Metode de autentificare ˆ ssh . . . 11.1 Protocolul ftp . . . . . 11. . . . . ¸a 11. . . . . . . . . . . . . . . .2. . . . . . . . . . . . . 11. . . . . . . . . . . . . . . .4. . .1. . . . 11. s at 11. 11. .4. . . . . . . .2 Determinarea urm˘torului MTA . . . . 11. . . . . . . . . . 11. . . . . .6 Utilizarea TLS pentru web . . . . ın 11. . . . . . . . . . s 11.1. .1 Antetul mesajelor . . . . . . . . .3. .1. . .2 Verificarea autenticit˘¸ii cheilor . . . . . . . . . . . . . 11. . 11.1. . . . . .1.1 Formatul mesajelor .4. . . . . . . . . . . . . . . . . . . . . . 11. . . . .3. . . .1. . . . . . . . . .3 Transferul fi¸ierelor ˆ retea . .4. . . . . . . . . . 11. . . . . . .1. . . . .1. . tunelarea ¸i aplicatii . . .1. s 11. . . .2. . . . . . . . . . . . . . . .4 Proxy HTTP . . . .1. . . . . . . . . . . . 11. .2. . . . . .1 Protocolul ssh . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s 11. . . .4 Controlul perioadei de valabilitate a cheilor . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . .4. . . . . . . . .2. . . . .7. . . . . . . . . . . . . . . . s 11. . . . . . .3 Ata¸area fi¸ierelor ¸i mesaje din mai multe p˘rti s s s a¸ 11. . . . . . . . . s a 11. . . . . . . . .2. . . . . . . . . . . . . .1. . . .2. . . . . .2 Extensii MIME . . . .3 Multiplexarea conexiunii. . . . . . .7. . . . .3. at 11. . . . . .2 Protocolul HTTP . . . . . .2. . . . . . .2. . a 11. . . . at 11. . . . . . . . . . . . . .2 Sistemul X-Window . . . . . . . . . . . . . . .4 Codificarea corpului mesajului ¸i a ata¸amentelor s s 11.2 Translatia adresei destinatie . .1. .4. . . . . . . . . . . . . . . . . . . . . 11. . . . . . . . 351 11 Aplicatii ˆ retele ¸ ın ¸ 11. . . s ın ¸ 11. . . . . . . . . . . a 11.3. . . . . . . . . . .1. . .2. . . . . .1 Structura cererilor ¸i a r˘spunsurilor . . . . . .1 Structura cheilor GnuPG . . . Radu-Lucian Lup¸a s 12 Cuprins 10.3 Transmiterea mesajelor criptate sau semnate . . .1.c 2008. . . . . .1. .

este totu¸i util˘ ˆ ın ın ¸ ın ¸ s a ın vederea unei bune ˆ ¸elegeri a acestor platforme ¸i biblioteci. de¸i lucrarea ¸ a a s trateaz˘ chestiuni de nivel mult mai coborˆt decˆt cel al platformelor ¸i biba a a s liotecilor utilizate ˆ mod normal ˆ aplicatiile ˆ retea. este inutil In a ¸ s˘ mai subliniem importanta acestui domeniu. protocoale. ¸ Partea a doua a lucr˘rii. Sunt presupuse. precum ¸i privind functionarea s ¸ a s ¸ sistemelor de operare. este extrem de u¸or pentru oricine ¸ s s˘ se piard˘ ˆ nenum˘ratele detalii ˆ permanent˘ schimbare. a ¸ Lucrarea de fat˘ se adreseaz˘ ˆ principal programatorilor de aplicatii ¸a a ın ¸ ˆ retea ¸i administratorilor de retele complexe. a ¸ In ¸a prima parte a lucr˘rii de fat˘. Ca urmare. ˆ predarea unui curs de Retele de calculatoare la aceast˘ facın ¸ a . este dedicat˘ studierii problemelor ce a ¸a a trebuie rezolvate de o retea de calculatoare. Retelele de a s ¸ calculatoare nu fac exceptie. ˆ consecint˘. din partea ın ¸ s ¸ cititorului. ınt s Tot ceea ce are leg˘tur˘ ˆ a a ıntr-un fel sau altul cu calculatoare are dou˘ a caracteristici: se dezvolt˘ foarte repede ¸i est foarte complex.c 2008. principii. Principiile de baz˘ se sunt (relativ) simple ¸i evolueaz˘ a a s a mult mai lent decˆt constructiile tehnice elaborate pe baza lor. ın a a Lucrarea de fat˘ este rodul experientei autorului ˆ activit˘¸i legate ¸a ¸ ın at de administrarea retelei de calculatoare a Departamentului de Informatic˘ al ¸ a Facult˘¸ii de Matematic˘ ¸i Informatic˘ din cadrul Universit˘¸ii Babe¸-Bolyai at as a at s Cluj-Napoca. Aceast˘ privire de ansamblu poate fi suficient˘ pentru unii cititori. a a ˆ caz contrar fiind probabil necesar˘ citirea efectiv˘ a standardelor. Ea este a a s ın ¸ construit˘ pentru a oferi cititorului o privire de ansamblu asupra protocoalelor a studiate. o bun˘ prezentare trebuie s˘ porneasc˘ a a ın a a a de la principiile de baz˘. cuno¸tinte de baz˘ de programare. a a ın a ın a Consider˘m c˘. Ca un avertisment pentru programatori. precum ¸i a principiilor constructiei ¸ s ¸ posibilelor solutii ale acestor probleme. ˆ orice domeniu. Radu-Lucian Lup¸a s 13 Prefat˘ ¸a ˆ contextul prezent al dezvolt˘rii retelelor de calculatoare. prezint˘ cˆteva dintre cele mai a a a r˘spˆndite protocoale ¸i mecanisme utilizate ˆ retelele de calculatoare. mention˘m c˘.

de metode s ın a ¸ ¸ ¸i protocoale criptografice. Seturile mari de date ce se vehiculeaz˘ ˆ sistemul medical. s ¸ ın ¸ . Radu-Lucian Lup¸a s 14 Prefata ¸˘ ultate. optimizarea si managementul registrelor nationale de boli cronice netransmisibile CRONIS. de aplicatii ˆ retele etc.c 2008. precum ¸i din activitatea de cercetare desf˘¸urat˘ de-a lungul anilor.Sistem decizional bazat pe tehnici de tip multi-agent pentru generarea. cer o foarte bun˘ cunoa¸tere s ¸ s a s ¸i punere ˆ practic˘ a notiunilor legate de codificarea informatiei. precum a ın ¸i nevoia de confidentialitate ¸i securitate a lor. ˆ s as a ın special de nevoile practice din cadrul contractului de cercetare PNII 11003/2007 .

Din punctul de vedere al programatorului acestor procese. construit din mai multe calculatoare interconecs tate ˆ ıntr-o retea. De notat c˘. Radu-Lucian Lup¸a s 15 Capitolul 1 Introducere Prin retea de calculatoare ˆ ¸elegem un sistem (constˆnd din com¸ ınt a ponente hard ¸i soft) care interconecteaz˘ ni¸te calculatoare. Rolul retelei este de-a oferi acestor procese posia ¸ bilitatea de-a comunica ˆ ıntre ele. din nucleul sistemului de oper¸ a s ¸ are sau din biblioteci standard.c 2008. apelabile de c˘tre aceste procese (fig. ˆ aceste functii este necesar˘ desemnarea destinatarului spre In ¸ a care procesul emit˘tor dore¸te transmiterea datelor. de exemplu. care se comport˘ ca un sistem unitar. termenul de retea de calculatoare mai are a ın ¸ ¸i sensul de sistem de calcul. In a a a . apelabile de c˘tre un proces uti¸ ¸ a lizator. API — ¸ ¸ Application Programming Interface) a retelei. reteaua ofer˘ ni¸te functii. pentru ˆ ınceput. Serviciile oferite de retea ¸ Se spune c˘ orice problem˘ bine formulat˘ este pe jum˘tate rezolvat˘. 1.1). vom stabili mai exact ce se dore¸te de la o retea s ¸ de calculatoare. prezint˘ ¸ a a acelea¸i conturi de utilizatori pe toate calculatoarele. s 1. a Ansamblul acestor functii constituie interfata de programare (engl. ˆ uzul comun. sunt o functie care trimite date de la procesul curent spre partenerul ¸ sau partenerii de comunicatie ¸i o functie care receptioneaz˘ datele trimise spre ¸ s ¸ ¸ a procesul curent. respectiv a emit˘torului ¸a s ¸a ˆ acest scop. a a a a a Prin urmare. ¸ Principalele functii oferite de retea. ˆ Intr-o retea de calculatoare avem mai multe calculatoare pe care se ¸ execut˘ procese utilizator. fiecare dinspre care procesul receptor solicit˘ s˘ primeasc˘ date.1. permitˆnd unor s a s ¸a programe ce se execut˘ pe aceste calculatoare s˘ comunice ˆ a a ıntre ele.

¸ a a a Pe lˆng˘ aceste functii de baz˘. a a ¸ ˆ continuare vom trece ˆ revist˘ principalele caracteristici ale serIn ın a viciului oferit de retea proceselor de aplicatie. identificˆnd unic o anumit˘ entitate). a unui ¸ir de octeti transmis face obiectul unei ˆ ¸elegeri (proto¸ s ¸ ınt col ) ˆ ıntre procesele utilizator. Rolul retelei este de-a transmite ˆ ¸ ¸ ıntocmai ¸irul de octeti trimis s ¸ de procesul surs˘ c˘tre procesul destinatie.1. ¸ ¸ O comunicatie poate fi. reteaua mai ofer˘ functii pentru cona a ¸ a ¸ a ¸ figurarea diferitilor parametrii. dintr-o multime ¸ ın ¸ ¸ ¸a ¸a ¸ . a ¸ a ¸ entitate ce poate comunica ˆ retea trebuie s˘ aib˘ asociat˘ o adres˘ (un ¸ir ın ¸ a a a a s de biti. ˆ mod obi¸nuit. Semnificatia. din punctul de vedere al proceselor aplicatie. o astfel de ¸ a ¸a comunicatie este numit˘ unicast. ¸ Datele transmise de procesele utilizator sunt de obicei ¸iruri arbitrare s de octeti. de exemplu ˆ cazul ˆ ¸ a ıns˘ ın ın care un serviciu este oferit de mai multe servere. timp de propagare. Alti parametrii sunt legati de calitatea as a a ¸ ¸ serviciilor oferite de retea (debit de transfer de date. este favorabil ca reteaua s˘ aleag˘ destinatarul ¸ a a comunicatiei. Serviciile oferite de retea ¸ Proces destinatie ¸ calculator recv() interfata de ¸ programare (API) send() Retea ¸ Figura 1. etc). desa a In s tinatarul este selectionat explicit de c˘tre procesul emit˘tor. Uneori ˆ a.c 2008.1: Reteaua de calculatoare. fiecare calculator s ın ¸ trebuie s˘-¸i cunoasc˘ propria adres˘). ¸ ¸ a ¸ Reteaua ofer˘ o aplicatiilor o cale de transmisie a datelor (linia punctat˘). construit dup˘ anumite reguli. pentru procesul a a ¸ ¸ destinatie. dup˘ num˘rul destinatarilor: ¸ a a • punct la punct. ¸ ¸ Functionalitatea retelei este oferit˘ prin functii apelabile din procesele utilizator. O parte dintre ace¸ti parametri fixeaz˘ rolul ¸ s a ¸i locul diverselor componente ˆ cadrul retelei (de exemplu. la proiectarea programelor utilizator nu ne intereseaz˘ cum lucreaz˘ reteaua pentru a transmite datele. La proiectarea retelei nu ne intereseaz˘ ce fac ¸ a procesele utilizator cu datele transferate. Radu-Lucian Lup¸a s 16 Proces surs˘ a calculator 1. ˆ functie de distanta fat˘ de emit˘tor. echivalente din punctul de vedere al clientului. Constructia ¸ a ¸ a ¸ efectiv˘ a retelei nu este vizibil˘ aplicatiilor. dac˘ exist˘ un singur destinatar.

s ¸ -ˆ ınchiderea conexiunii. ˆ general. capacitatea este s ın s s inversul duratei medii ˆ ıntre trecerea. ˆ care destinatari sunt toate calculatoarele dintra ın o retea. procesul emit˘tor preg˘te¸te un In ¸a a s ansamblu. multicast). ¸ ¸ Timpul de transfer a unui bloc de date este timpul scurs de la trecerea. ˆ cadrul comunicatiei ˆ In ın ¸ ıntre dou˘ procese se disting a trei faze: . ın a a s a inclusiv alocarea unor resurse pentru comunicatie. s Capacitatea oferit˘ de retea unei leg˘turi poate s˘ varieze datorit˘ a ¸ a a a variatiei debitului altor comunicatii care partajeaz˘ acelea¸i echipamente. ¸ ¸ a s . a primului bit al blocului pˆn˘ la trecerea. numit datagram˘ (prin analogie cu telegram˘ ). ˆ cadrul c˘reia se elibereaz˘ resursele alocate ın a a la deschidere. Radu-Lucian Lup¸a s Capitolul 1. a ¸ ¸a Principalii parametri de calitate ai serviciului oferit de retea sunt: ¸ Capacitatea de transport oferit˘ de retea. cuprinzˆnd a a a un ¸ir de biti destinat procesului receptor ¸i anumite informatii necesare s ¸ s ¸ livr˘rii (adresa destinatarului). broadcast). ˆ care unul sau ambele procese transmite ¸ a ın un ¸ir de pachete sau de biti celuilalt proces. la posibilitatea ın invers˘rii ordinii de receptie fat˘ de ordinea de emisie a datagramelor. sau debitul maxim acceptat. ¸ . printr-un punct dat. Echivalent.c 2008. Timpul de transfer este egal cu s raportul dintre dimensiunea blocului ¸i debitul cu care se face transferul. Distingem difuziune coma a ¸ plet˘ (engl. Apoi transmite datagrama retelei de cala ¸ culatoare. este a ¸ raportul dintre num˘rul de biti transportati ˆ cadrul unei comunicatii a ¸ ¸ ın ¸ ¸i timpul ˆ care ace¸tia sunt transmi¸i. a a prin acela¸i punct. care o transmite procesului receptor. a ultimului bit. ˆ cadrul c˘reia sunt f˘cute ni¸te preg˘tiri. Un astfel de comunicatie se nume¸te a ¸ s anycast. Mai multe datagrame trimise de acela¸i proces surs˘ c˘tre acela¸i proces destinatie sunt transs a a s ¸ mise independent una de alta. ¸ a ¸ Serviciul de comunicatie oferit de retea poate fi de tip conexiune sau ¸ ¸ de tip transport de datagrame: • ˆ cazul conexiunilor. printr-un punct dat al retelei. Introducere 17 specificat˘ de destinatari posibili. dac˘ exist˘ mai multi destinatari.comunicatia propriu-zis˘. ceea ce duce. ¸i difuziune selectiv˘ (engl. a ¸ doi biti consecutivi ai unei comunicatii. ˆ care destinatarii sunt ¸ s a ın o submultime aleas˘ a calculatoarelor din retea. • ˆ cazul transportului de datagrame.deschiderea conexiunii. • difuziune.

ˆ loc de timpul de propagare se utilizeaz˘ o alt˘ m˘rime. De ¸ exemplu. Timpul de propagare rezult˘ din ˆ ¸ a ınsumarea timpului de propagare a semnalului de-a lungul mediului de comunicatie ¸ cu diver¸ii timpi de a¸teptare a datelor ˆ diverse zone tampon. Timpul dus-ˆ ıntors este suma dintre timpii de propagare pentru cele dou˘ sensuri ¸i timpul de procesare pentru crearea a s r˘spunsului. ¸ a a Penttru alte aplicatii. Radu-Lucian Lup¸a s 18 1. ˆ a a a ıns˘ diferite aplicatii au cerinte diferite: ¸ ¸ . a a a a a ˆ a o capacitate mai mare nu este util˘. timpul de propagare influenteaz˘ foarte putin ¸ a ¸ timpul total necesar transmiterii fi¸ierului. la transferul unui fi¸ier mare. s .ˆ ıngheat˘“ datorit˘ cre¸terii timpului de propagare ¸i ¸a a s s momente ˆ care imaginea . care este timpul scurs de la transmiterea unui mesaj de c˘tre o partenerul de comunicatie pˆn˘ la primirea r˘spunsului din a ¸ a a a partea acestuia. s Uneori. ın a a a timpul dus-ˆ ıntors. De res s ın marcat c˘ timpul de propagare a semnalului este egal cu distanta de la a ¸ emit˘tor la receptor ˆ artit˘ la viteza de propagare a semnalului. a a Timpul scurs de la ˆ ınceputul transmisiei unui bloc de date de c˘tre a emit˘tor pˆn˘ la finalul receptiei blocului de c˘tre receptor este egal cu ¸a a a ¸ a suma dintre timpul de transfer ¸i timpul de propagare.c 2008. ˆ a este important s˘ nu fie momente ˆ care ıns˘ a ın imaginea . Serviciile oferite de retea ¸ Exist˘ aplicatii. a Evident. un timp de propagare mare nu este deranjant.La unele aplicatii timpul de propagare nu este prea important.La difuzarea de materiale audio sau video. iar ¸a ımp˘ ¸ a viteza de propagare nu poate dep˘¸i viteza luminii ˆ vid.. ˆ a este important ca el s˘ fie constant ıns˘ a ˆ timp. transmisia video (de exemplu ¸ pentru teleconferinte) sau alte aplicatii ˆ timp real. timpul de propagare prin leg˘turi prin satelit nu poate a fi mai scurt de cˆteva zecimi de secund˘.1. din acest moas ın tiv.sare ˆ ın ınainte“ datorit˘ scurt˘rii timpua a lui de propagare.. timpul de propagare e bine s˘ fie cˆt mai scurt. cum ar fi telefonia. pentru a ¸ s care este important ca reteaua s˘ ofere o capacitate medie cˆt mai mare. la care oricum timpul de s transfer este mare. de exemplu. este important s˘ ¸ ¸ ın a nu scad˘ niciodat˘ capacitatea leg˘turii sub o anumit˘ valoare minim˘. Aceasta pentru c˘ nu este deranjant dac˘ o transmisie ın a a de televiziune este cu cˆteva secunde ˆ ˆ arziere fat˘ de evenia ın ıntˆ ¸a mentele transmise. de exemplul legate de transfer de fi¸iere. . ıns˘ a Timpul de propagare ˆ ıntre dou˘ entit˘¸i este timpul scurs ˆ a at ıntre momentul ˆ care entitatea surs˘ emite un bit ¸i momentul ˆ care acel bit ın a s ın ajunge la destinatie.

echivalent. a unor fractiuni de secund˘ de ¸ a ın a ¸ a material audio-video. ¸a Posibilitatea existentei erorilor de transmisie: Erorile de transmisie ¸ apar ca urmare a diverselor perturbatii ce afecteaz˘ transmiterea sem¸ a nalelor. ˆ a vine cu un anumit cost. Mesajele se pot pierde datorit˘ erorilor de transmisie. Introducere 19 . Securitatea comunicatiei ˆ ınseamn˘ c˘ un adversar care controleaz˘ o a a a parte din retea s˘ nu poat˘ obtine informatia transmis˘. s s ¸ deoarece mesajele pierdute trebuie retransmise.1. costul este cre¸terea ¸i fluctuatia timpului de propagare. din cˆnd ˆ cˆnd.3 ¸i § 4. Metodele de reducere a probabilit˘¸ii erorilor a a a ¸ at de transmisie sunt studiate ˆ § 2.Timpul de propagare (sau. ˆ a niciodat˘ aceast˘ probabilitate nu a ıns˘ a a poate fi f˘cut˘ zero (probabilitatea unei erori poate fi f˘cut˘ ˆ a mai a a a a ıns˘ mic˘ decˆt. studiate ˆ ¸ ¸ ın capitolul 6. de exemplu. Radu-Lucian Lup¸a s Capitolul 1. .4 ¸i § 4. videoconferinte. este adesea preferabil˘ p˘strarea unui timp de propagare redus. probabilitatea unui cataclism devastator care a a s˘ distrug˘ toat˘ reteaua). Exa emple de astfel de aplicatii sunt: telefonie. La o transmisie audiovideo. sesiuni ¸ ¸ interactive la distant˘. timpul dus-ˆ ıntors) este important s˘ fie scurt ˆ special pentru aplicatii ˆ care entit˘¸ile ce a ın ¸ ın at comunic˘ transmit mesaje scurte ¸i trebuie s˘ a¸tepte r˘spunsul a s a s a la mesajul precedent pentru a putea genera mesajul urm˘tor.4. a a ıns˘ Cel mai adesea. a a cu pretul pierderii. Duplicarea sau inversarea a ¸ a mesajelor pot fi cauzate de modific˘ri ale configuratiei sau ˆ arc˘rii a ınc˘ a retelei ˆ timpul trecerii pachetelor prin retea. s˘ nu poat˘ ¸ a a ¸ ¸ a a a modifica datele transmise f˘r˘ ca acest lucru s˘ fie detectat de c˘tre aa a a receptor ¸i s˘ nu poat˘ impersona vreuna dintre entit˘¸ile ce comunic˘. a ın s Transmisia sigur˘ este evident util˘. ın s Transmisia sigur˘ ˆ a ınseamn˘ ca fiecare mesaj al entit˘¸ii surs˘ s˘ ajung˘ a at a a a exact ˆ ıntr-un singur exemplar la destinatie (s˘ nu se piard˘ ¸i s˘ nu fie ¸ a as a duplicat) ¸i mai multe mesaje transmise de c˘tre o aceea¸i surs˘ spre o s a s a aceea¸i destinatie s˘ ajung˘ la destinatie ˆ ordinea ˆ care au fost transs ¸ a a ¸ ın ın mise de surs˘. a a a supraaglomer˘rii sau a defect˘rii unor echipamente din retea sau chiar a a ¸ din cauz˘ c˘ emit˘torul transmite cu debit mai mare decˆt este capaa a ¸a a bil receptorul s˘ preia informatia transmis˘.c 2008. s a a at a Securitatea comunicatiei se obtine prin metode criptografice. Exist˘ metode de-a mic¸ora oricˆt de mult probabilitatea ca a s a un mesaj s˘ fie afectat de erori. Realizarea transmisiei ¸ ın ¸ sigure este studiat˘ ˆ § 4.

s ¸ Nivelul fizic este deci un modul care permite transmisia unui ¸ir de biti ˆ s ¸ ıntre dou˘ dispozitive legate direct unul de cel˘lalt. antenele de emisiea a receptie.2. serviciul oferit direct de c˘tre nivelul retea nu poate fi a ¸ utilizat direct de c˘tre programele utilizator. a a ın Nivelul fizic ˆ ımpreun˘ cu nivelul leg˘turii de date ofer˘ o leg˘tur˘ a a a a a bun˘ ˆ a ıntre dou˘ calculatoare conectate direct printr-un mediu fizic. fibra optic˘ sau. ın a ¸ Constructia ¸i functionarea nivelului retea este studiat˘ ˆ capitolul 5. este nevoie ca cele dou˘ dispozitive s˘ fie legate printr-un mediu de a a comunicatie care permite propagarea variatiei unei m˘rimi fizice. a a Nivelul leg˘turii de date este construit partial prin hard (parte a pl˘cii de a ¸ a retea) ¸i partial prin soft (parte a driver -ului pl˘cii de retea). Principalele elemente ale unei retele de calcula¸ toare Pentru ca dou˘ dispozitive aflate la distant˘ unul de cel˘lalt s˘ poat˘ a ¸a a a a comunica. ˆ a ıntre modului de retea ¸ ¸i programul utilizator se mai interpune un modul. Modulul de retea este cona ın ¸ ¸ struit prin soft. uneori. constituind (ˆ s ımpreun˘ cu a modulul omolog de pe calculatorul partener de comunicatii) nivelul transport. nivelul fizic este a a constituit din: cablul electric. Radu-Lucian Lup¸a s 20 1.2. De aceea. biblioteci legate ˆ programele utilizator. constituit a ın ¸ din cˆte un modul ˆ fiecare calculator al retelei. eventuale amplificatoare sau repetoare. Principalele elemente ale unei retele de calculatoare ¸ 1. Aceste functii sunt ın ¸ s ¸ ¸ . ˆ nucleul sistemului de operare al fiec˘rui calculator din retea. Constructia nivelului fizic este studiat˘ ˆ s a ¸ ¸ a ın capitolul 3. ¸ s ¸ ¸ a ın De obicei. de-o parte ¸i de alta a nivelului fizic se plaseaz˘ cˆte s a a un modul de adaptare. Mediul fizic. ¸ Nivelul transport este constituit din p˘rti ale nucleului sistemului de operare a¸ ¸i. pl˘cile de retea din calcula¸ a ¸ toare ¸i driver -ele pl˘cilor de retea. serviciul oferit de nivelul fizic sufer˘ de anumite neajuna suri. cum ar fi probabilitatea mare a erorilor ¸i transmisia nesigur˘. ¸ ¸ a ˆ ımpreun˘ cu dispozitivele de adaptare ˆ a ıntre reprezentarea local˘ a informatiei a ¸ ¸i reprezentarea pe mediul de transmisie constituie nivelul fizic al retelei. Constructiv. aceste dou˘ module constituie nivelul leg˘turii de date. Constructia ¸ s ¸ a ¸ ¸ nivelului leg˘turii de date este studiat˘ ˆ capitolul 4.2.c 2008. ¸ ın Fiecare dintre nivele ofer˘ nivelului superior o interfat˘ care cuprinde a ¸a ˆ principal functii de trimitere ¸i de receptie a datelor. dup˘ caz. a ¸ Realizarea unei astfel de leg˘turi cade ˆ sarcina nivelului retea. s ın Relatiile dintre aceste componente sunt reprezentate ˆ figura 1. De obicei. Pentru s a contracararea acestora. este preferabil s˘ putem transmite date prin intermediul unui lant de a ¸ calculatoare (sau alte dispozitive) legate fizic fiecare cu urm˘torul din lant. Ar fi a neeconomic s˘ cerem s˘ existe o leg˘tur˘ direct˘ ˆ a a a a a ıntre oricare dou˘ calculaa toare.

c 2008. din noduri diferite ˆsi transmit unul s ı¸ altuia (utilizˆnd ˆ acest scop serviciile oferite de nivelul inferior) dou˘ tipuri a ın a . Nivelul retea ofer˘ nivelului transport servicii ¸ a de transfer de date ˆ ıntre orice dou˘ calculatoare din retea.1). Radu-Lucian Lup¸a s Capitolul 1. dar ˆ continuare cu restrictia c˘ transferul este posibil doar ˆ ın ¸ a ıntre calculatoare conectate direct. dar ˆ a neadeca ¸ ınc˘ vate utiliz˘rii directe de c˘tre aplicatii (lipsa transmisiei sigure. dar exist˘ o a a a a a leg˘tur˘ printr-un nod intermediar. Nivelul leg˘turii de date ofer˘ nivelului retea servicii de transfer de date a a ¸ mai sigure. de pe acela¸i nivel. Astfel. Sunt figurate a¸ ¸ doar componentele implicate ˆ comunicatia dintre dou˘ aplicatii. nu ne intereseaz˘ nici ce aplicatii vor utiliza reteaua (acela¸i ¸ a ¸ ¸ s nivel retea din Internet este utilizat de aplicatii de po¸ta electronic˘. Cele dou˘ aplicatii ın ¸ a ¸ a ¸ se execut˘ pe dou˘ calculatoare ˆ a a ıntre care nu exist˘ o leg˘tur˘ direct˘. a a similare celor oferite de retea aplicatiilor (a¸a cum am v˘zut ˆ § 1. a ¸ Constructia fiec˘ruia dintre nivele este independent˘ de constructia ¸ a a ¸ celorlalte (conteaz˘ doar interfata dintre ele ¸i parametrii de calitate a servia ¸ s ciului oferit de un nivel celui imediat superior).). etc. dar numai ˆ ıntre calculatoare conectate direct ¸i cu riscul ca datele s˘ fie alterate ˆ timpul transferului sau s˘ se piard˘ coms a ın a a plet. ˆ proiectarea ın nivelului retea. nici cum este construit nivelul fizic s ¸ (perechi de conductoare. nivelul fizic ofer˘ nivelului leg˘turii de a a date servicii de transfer de date. Introducere Nod final Aplicatie ¸ Modul transport Modul de retea ¸ Modul legatur˘ a de date Modul leg˘tur˘ a a fizic˘ a Modulul de retea ¸ Modul legatur˘ a de date Modul leg˘tur˘ a a fizic˘ a Modul legatur˘ a de date Modul leg˘tur˘ a a fizic˘ a Nod intermediar Nod final Aplicatie ¸ Modul transport Modul de retea ¸ Modul legatur˘ a de date Modul leg˘tur˘ a a fizic˘ a Nivelul aplicatie ¸ Nivelul transport Nivelul retea ¸ Nivelul leg˘turii a de date 21 Nivelul fizic Mediu fizic Mediu fizic Figura 1. fibre optice sau leg˘turi radio prin satelit). De exemplu. ¸ ¸ s a telefonie prin Internet ¸i videoconferinte). web.2: Componentele unei p˘rti dintr-o retea de calculatoare. comunicatie a a ¸ ¸ posibil˘ doar pentru un singur proces aplicatie la un moment dat. a Modulele. dar ser¸ ¸ s a ın viciile oferite sunt mai primitive.

a ¸ Functionarea corect˘ a unei retele necesit˘ respectarea. dup˘ ce s-a r˘spˆndit deja a a a a a un protocol acceptabil. ¸ 1.2. un plan bun azi este mai bun ¸ a ¸ a decˆt un plan perfect mˆine (maxim˘ atribuit˘ generalului american a a a a George Patton. Reteaua ın a ¸ trebuie s˘ ofere mecanisme prin care orice defectiune s˘ fie u¸or de loa ¸ a s calizat. ın s ¸ pe care le vom ˆ sira pe scurt ˆ continuare: ın¸ ın • Deoarece o retea este format˘ din multe componente. Premise generale ˆ elaborarea ¸i implementarea ın s protocoalelor ˆ retele ın ¸ Pe lˆng˘ ratiunile pur functionale. frecventa cu care ¸ a ¸ se ˆ ampl˘ ca cel putin o component˘ a unei retele s˘ nu functioneze ıntˆ a ¸ a ¸ a ¸ corect este mare. Este necesar ca o defectiune s˘ afecteze cˆt mai putin ¸ a a ¸ din retea. rezult˘ un protocol a ınt as ¸ a prost. a a • Protocoalele totu¸i evolueaz˘. studiate pe larg ˆ capitolele urm˘a a ¸ ¸ ın a toare. de c˘tre toate ¸ a ¸ a a modulele implicate. Rezult˘ de aici principiul c˘ o imple¸ a a a mentare trebuie s˘ fie strict˘ cu ceea ce transmite ¸i tolerant˘ cu ceea a a s a ce receptioneaz˘. Radu-Lucian Lup¸a s 22 1. Momentul standardiz˘rii unui protocol este a extrem de delicat: dac˘ este standardizat ˆ a ınainte ca problema de rezolvat s˘ fie bine ˆ ¸eleas˘ ¸i solutiile posibile bine analizate. Principalele elemente ale unei retele de calculatoare ¸ de date: datele utile a c˘ror transfer este cerut de nivelul superior ¸i date a s de control necesare coordon˘rii activit˘¸ilor modulelor din cadrul nivelului.3. Este bine ca mici abateri ale partenerului ¸ de comunicatie s˘ fie tolerate. a at Regulile de reprezentare a acestor date. sau. exist˘ riscul creerii unui protocol perfect. a . dac˘ standardizarea apare prea tˆrziu. iar componentele a c˘ror defectare duce la c˘derea ˆ ¸ a a ıntregii retele trebuie s˘ fie cˆt mai putine. ˆ elaborarea ¸i implementarea protocoalelor intervin ratiuni practice. dificil˘. a protocoalelor de comunicatie stabilite. ¸ a • Reteaua trebuie s˘ functioneze ast˘zi. dar pe a care nu-l folose¸te nimeni deoarece ˆ s ınlocuirea sistemelor existente ar fi mai scump˘ decˆt avantajul adus de protocolul mai bun. ˆ general. iar oprirea ˆ s a ıntregii retele ˆ vederea schimb˘rii ¸ ın a echipamentelor afectate de schimbarea protocolului nu este rezonabil˘. ¸ a a ¸ • G˘sirea unei pene ˆ a ıntr-un sistem complex este. de organizare a acestora ˆ mesaje.c 2008. circa 1944). eventual nici una. • Implement˘ri diferite ale unui protocol se pot abate ˆ moduri diferite de a ın la specificatia protocolului. ın precum ¸i regulile dup˘ care se trimit mesajele ˆ s a ıntre modulele aceluia¸i nivel s alc˘tuiesc protocolul de comunicatie al nivelului respectiv.

de a la prima versiune a protocolului. Tranzitia este mult u¸urat˘ dac˘ protoa ¸ s a a colul vechi prevede anumite facilit˘¸i. ¸ metodele utilizabile ˆ acest scop sunt similare cu cele descrise mai sus ın pentru facilitarea evolutiei protocoalelor. O posibilitate este ca ˆ protocol at ın s˘ se prevad˘ o faz˘ de negociere ˆ care fiecare entitate anunt˘ ce versia a a ın ¸a uni de protocol ¸i ce extensii de protocol cunoa¸te. a actiunilor unui dispozitiv. ducˆnd la un protocol prea complex. se rea a curge la protocoale ce au posibilitatea de-a fi implementate doar partial. a ın • Cerinte diferite ale diferitelor aplicatii duc la tendinta de-a elabora proto¸ ¸ ¸ coale complexe. ce im¸ plementeaz˘ o versiune veche a protocolului. Introducere 23 Ca urmare. la primirea unui mesaj a neprev˘zut ˆ acea versiune. la o schimbare de protocol trebuie avut ˆ vedere existenta ın ¸ unei perioade de tranzitie ˆ timpul c˘reia echipamentele noi trebuie s˘ ¸ ın a a poat˘ comunica cu cele vechi. Alt˘ posibilitate este stabilirea. Protocoale complexe a a a duc la implement˘ri scumpe ¸i cu riscuri mari de-a avea erori. care s˘ satisfac˘ pe toat˘ lumea. iar apoi comunicatia s s ¸ decurge conform versiunii celei mai recente ¸i cu cele mai multe extens sii suportate de ambii parteneri. Este a s preferabil un protocol care s˘ ofere cˆteva operatii simple care s˘ poat˘ a a ¸ a a fi combinate dup˘ dorinta aplicatiei ce-l utilizeaz˘. Dac˘ o astfel de a ¸ ¸ a a abordare nu este fezabil˘.c 2008. ¸ . Radu-Lucian Lup¸a s Capitolul 1.

c 2008. Introducere . Radu-Lucian Lup¸a s 24 Capitolul 1.

a priori ¸ ¸ informatia de transmis poate fi v˘zut˘ ca o variabil˘ aleatoare. dup˘ caz. numit emit˘tor . Similar. care transform˘ as ¸a a informatia util˘.1). ˆ ¸ ıntre surs˘ ¸i canal avem nevoie de un dispozitiv. ¸ ınt s ¸ at ˆ cele ce urmeaz˘. numit˘ semnal (ˆ esent˘. Informatia de transmis nu este cunoscut˘ ¸ a ¸ ¸ a initial nici de destinatie. ¸ a a a Comunicatia dintre surs˘ ¸i destinatie se desf˘¸oar˘ prin intermediul ¸ as ¸ as a unui canal de comunicatie. Surs˘ a Emit˘tor ¸a Canal Receptor Destinatie ¸ Figura 2.1: Transmisia informatiei de la surs˘ la destinatie ¸ a ¸ . Radu-Lucian Lup¸a s 25 Capitolul 2 Notiuni de teoria informatiei ¸ ¸ Teoria informatiei se ocup˘ cu studiul metodelor de codificare a in¸ a formatiei ˆ vederea transmiterii sau stoc˘rii acesteia. Canalul de comunicatie este capabil s˘ transmit˘ ¸ ¸ a a fie o m˘rime variabil˘ ˆ timp. fie un ¸ir de simboluri a ın s dintr-o multime finit˘. o functie real˘ a a ın a ın ¸a ¸ a continu˘).c 2008. ne va interesa problema transmiterii unei inforIn a matii de la o surs˘ la o destinatie. ˆ cadrul teoriei infor¸ ın a In matiei se studiaz˘ ¸i cum se poate m˘sura cantitatea de informatie transmis˘ ¸ as a ¸ a ˆ ıntr-un mesaj ¸i cum se poate m˘sura eficienta unei anumite codific˘ri. numit s ¸ a receptor . ˆ ¸ a a a ıntr-un semnal sau. al c˘rui rol este de-a efectua operatia invers˘. ˆ ıntre canal ¸i destinatie se plaseaz˘ un dispozitiv. s a ¸ a Prin informatie ˆ ¸elegem cuno¸tintele unei entit˘¸i. caz ˆ care canalul este numit continuu. produs˘ de surs˘. ˆ a ıntr-un ¸ir de s simboluri. ¸i anume de-a exa ¸ a s trage din semnal sau din ¸irul de simboluri informatia util˘ pentru destinatie s ¸ a ¸ (fig. 2. Ca urmare. ¸ a ın Deoarece canalul nu poate transmite direct informatia sursei. nici de sistemul de transmitere. caz ˆ care canalul este numit discret.

s Restul capitolului trateaz˘ scheme de reprezentare a informatiei pena ¸ tru canale discrete. schem˘ de codificare a informatiei sau cod . Regulile de corespondent˘ dintre informas ¸ ¸a ¸ia util˘ ¸i reprezentarea sa poart˘ denumirea de schem˘ de reprezentare a t a s a a informatiei. ¸ a ¸ Ca exemplu. Notiuni de teoria informatiei ¸ ¸ Semnalul sau.c 2008. ¸irul de simboluri ce tranziteaz˘ canalul se a s a nume¸te reprezentarea informatiei. Vom studia ˆ continuare: ın • propriet˘¸i generale ale codurilor. De regul˘ S = {0. De asemenea. De exemplu. precum ¸i spatiul ¸i semnele de punctuatie. simboluri. Elementele lui S se numesc simboluri de cod sau.1. dup˘ caz. a s s . ¸ ¸ a ın Ca un al doilea exemplu. ¸ a Schema de codificare a informatiei se presupune c˘ este stabilit˘ ˆ ¸ a a ın prealabil ¸i este cunoscut˘ atˆt emit˘torului cˆt ¸i receptorului. dar nu ¸i de textul efectiv de transmis. 1}. la elaborarea unei scheme de codificare a literelor dintr-un text utilizˆnd un canal ce poate transmite doar simbolurile a 0 ¸i 1 se poate ¸ine cont de frecventa obi¸nuit˘ a literelor ˆ s t ¸ s a ıntr-un text. Radu-Lucian Lup¸a s 26 Capitolul 2. Multimea S este finit˘ ¸i are cel putin dou˘ elemente. •S a ¸ s • u · v reprezint˘ concatenarea ¸irurilor u ¸i v. iar conceptele din a ¸ textul respectiv sunt efectiv informatia continut˘ ˆ text. ¸ as ¸ a a Pentru ¸irurile de simboluri de cod vom utiliza urm˘toarele notatii: s a ¸ ∗ reprezint˘ multimea ¸irurilor finite de elemente din S. canalul pentru care este construit˘ fiind de tip continuu. o limb˘ scris˘ este o schem˘ de reprezentare a infora a a matiei. precum ¸i m˘surarea cantit˘¸ii de informatie. at • problema minimiz˘rii num˘rului de simboluri necesare a fi transmise prin a a canal. pentru un canal discret a c˘rui multime de simboluri contine literele ¸ a ¸ ¸ alfabetului limbii respective. limba vorbit˘ este o alt˘ schem˘ de reprezentare a a a a informatiei. Problema codific˘rii informatiei pentru un canal a ¸ discret ˆ cazul unui canal discret. ˆ a la elaborarea ei nu se cunosc informatiile ce trebuia ıns˘ ¸ esc efectiv transmise. numit˘ multimea simbolurilor de cod sau alfabetul ¸ a ¸ canalului. ıl ¸ 2. Un s ¸ s ¸ text scris ˆ ıntr-o limb˘ este o reprezentare a informatiei. s a a ¸a a s ˆ constructia schemei de reprezentare a informatiei se ¸ine cont de caracın ¸ ¸ t teristicile canalului ¸i de caracteristici generale ale informatiilor ce trebuie s˘ s ¸ a se poat˘ transmite. scurt. canalul poate transmite un ¸ir de simIn s boluri dintr-o multime S. s a at ¸ • problema codific˘rii ˆ cazul ˆ care canalul altereaz˘ ¸irul de simboluri a ın ın as pe care ˆ transmite (canal cu perturbatii).

finit˘ ¸i avˆnd cel putin dou˘ elemente. a a ıncˆ Numim multimea cuvintelor de cod multimea W = c(M ). ∀u ∈ S ∗ . . Multimea de mesaje M este nevid˘ ¸i cel mult num˘rabil˘. . ∀u. cel mult num˘rabil˘. m2 . . mk ) = c(m1 ) · c(m2 ) · c(mk ) ˆ este injectiv˘. s Definitia 2.3 Un cod c : M → S ∗ se nume¸te: ¸ s • cod unic decodabil.2 Numim cuvˆnt de cod orice ¸ir de simboluri de cod w ∈ S ∗ cu ¸ a s proprietatea c˘ exist˘ un mesaj m ∈ M astfel ˆ at w = c(m). etc. s s Informatia transmis˘ de c˘tre surs˘ const˘ dintr-un ¸ir de mesaje. aceea de-a fi unic decodabil: a Definitia 2. . a s • ε este ¸irul vid. . ¸ ¸ Un ¸ir de mesaje (m1 . Notiuni de teoria informatiei ¸ ¸ 27 • |u| reprezint˘ lungimea ¸irului u. a Definitia 2. . a • cod cu proprietatea de prefix sau cod prefix. . astfel ˆ at c(m1 ) s˘ fie prefix pentru c(m2 ) ¸i ˆ plus ıncˆ a s ın c(m) = ε. pentru ca receptorul s˘ poat˘ decodifica a a f˘r˘ ambiguit˘¸i orice transmisie a emit˘torului este necesar˘ o proprietate aa at ¸a a suplimentar˘ a codului. avem |u · v| = |u| + |v|. nu¸ mere. unde M este multimea de mesaje. (2.c 2008. · c(mk ). . ¸ as a ¸ a Fiecare mesaj m ∈ M va fi codificat prin ¸irul c(m) ∈ S ∗ . mk ) ∈ M ∗ (unde M ∗ desemneaz˘ multimea s a ¸ ¸irurilor finite de mesaje din M ) va fi codificat prin ¸irul format prin cons s catenarea codific˘rilor mesajelor: a c(m1 ) · c(m2 ) · . ele pot fi propozitii. litere.1) . De cele ¸ as a a mai multe ori M este finit˘. v ∈ S ∗ . Ca urmare. Radu-Lucian Lup¸a s Capitolul 2. dac˘ functia c : M ∗ → S ∗ dat˘ prin a ¸ ˆ a c(m1 . ∀m ∈ M . . avem |ε| = 0 ¸i u · ε = ε · u = u. iar c : M → S ¸ a a S este multimea simbolurilor de cod. dac˘ nu exist˘ m1 . m2 ∈ M . De remarcat c˘ ˆ urma concaten˘rii se pierd delimit˘rile dintre codific˘rile a ın a a a mesajelor individuale. ¸ a a a a s Fiecare mesaj este un element dintr-o multime M de mesaje posibile. a a cu m1 = m2 .1 Numim functie de codificare sau cod orice functie injectiv˘ ¸ ¸ ¸ a ∗ . Mesajele ¸ provin din universul utilizatorului sistemului. .

Exemplul 2. d} ¸i multimea a ¸ s ¸ simbolurilor de cod S = {0. a De notat c˘ un cod obtinut prin oglindirea cuvintelor unui cod prefix a ¸ se nume¸te cod sufix ¸i ˆ s s ıntotdeauna este unic decodabil. s Propozitia 2. dac˘ exist˘ o constant˘ l ∈ I \ {0} astfel ˆ at a a a a N ıncˆ |c(m)| = l. ∀m ∈ M . Problema codificarii informatiei pentru un canal discret ¸ • cod de lungime fix˘.c 2008. ¸ a Exemplul 2. a a → 0 b → 101 c → 11 d → 100 Exemplul 2. b. Orice cod prefix este unic decodabil. c. obtinut prin oglindirea cuvintelor codului din a ¸ exemplul anterior. s . valoarea l se nume¸te lungimea codului.1: Consider˘m multimea mesajelor M = {a. Radu-Lucian Lup¸a s 28 ˘ 2.1.2: Urm˘torul cod. Orice cod de lungime fix˘ este cod prefix. 1}. este unic decodabil dar nu are proprietatea de prefix: a → 0 b → 101 c → 11 d → 001 Codul nu este prefix ˆ ıntrucˆt cuvˆntul de cod 0 care este codificarea mesajului a a a este prefix al cuvˆntului de cod 001 care este codificarea mesajului d.3: Codul de mai jos nu este unic decodabil: a → 0 b → 1 c → 01 Codul nu este unic decodabil ˆ ıntrucˆt ¸irul de simboluri de cod 01 poate fi a s codifcarea mesajului c sau a ¸irului de mesaje ab. Urm˘torul cod are proprietatea de prefix.4 Au loc urm˘toarele propriet˘¸i: ¸ a at 1. a 2. Demonstratia este imediat˘.

t • dac˘ M nu este finit˘ (de exemplu. trebuie s˘ ne extindem la clase mai largi decˆt cea In ¸ a a a codurilor de lungime fix˘. Exemplul 2. codurile de lungime fix˘ nu sunt adecvate ˆ urm˘toarele s a ın a dou˘ cazuri: a • pentru obtinerea unui cod eficient. Radu-Lucian Lup¸a s Capitolul 2. ¸ a a a dac˘ probabilit˘¸ile diverselor mesaje din M sunt diferite (M este mula at ¸imea mesajelor sursei).2. a a ¸ ˆ aceste situatii. Coduri cu proprietatea de prefix De¸i simple.1. c. d. f.c 2008. e. ¸a a ın ¸ s ˆ acela¸i timp.2. ¸ s a a s a Constructia arborelui se face conform algoritmului 2. muchiile descendente sunt cel mult ˆ num˘r ın a de |S| ¸i sunt etichetate cu simboluri distincte din S.2: Arborele ata¸at unui cod prefix s Exemplul 2.4: Pentru codul din exemplul 2. A¸a cum vom vedea ˆ continuarea paragrafului a s ın de fat˘. Notiuni de teoria informatiei ¸ ¸ 29 2. b.5: Fie codul prefix pentru multimea mesajelor ¸ M = {a. a a a • cuvˆntul de cod al unui mesaj este format din simbolurile de cod ale a muchiilor de pe lantul ce une¸te r˘d˘cina cu frunza ata¸at˘ mesajului. clasa codurilor prefix este suficient˘ ˆ situatiile enumerate mai sus ¸i. ın s a 2. permite decodificarea destul de simpl˘ a transmisiei.1 (Genereaz˘ ar¸ a bore). M este multimea numerelor naturale). g. s • fiecare frunz˘ este etichetat˘ cu cˆte un mesaj distinct din M .2.1 arborele este reprezentat ˆ ın figura 2. h} . adic˘ avˆnd cuvinte cˆt mai scurte. Reprezentarea arborescent˘ a codurilor prefix a Unui cod prefix c : M → S ∗ i se poate ata¸a un arbore ˆ care: s ın • pentru fiecare nod intern. 0 a 0 0 d 1 b 1 1 c Figura 2.

. Coduri cu proprietatea de prefix Algoritmul Genereaz˘ arbore a intrarea: M multime finit˘ nevid˘ ¸ a a c : M → S ∗ cod prefix ie¸irea: T arborele asociat codului c s algoritmul: creeaz˘ T format doar din r˘d˘cin˘ a a a a r:=r˘d˘cina lui T a a pentru m ∈ M execut˘ a (s1 .c 2008.2. l execut˘ a dac˘ nu exist˘ muchie descendent˘ de la x etichetat˘ cu si atunci a a a a dac˘ x are asociat un mesaj atunci a eroare: c nu este cod este prefix sfˆr¸it dac˘ as a creaz˘ y descendent al lui x ¸i eticheteaz˘ (x.1: Generarea arborelui asociat unui cod prefix . Radu-Lucian Lup¸a s 30 2. . . y) cu si a s a sfˆr¸it dac˘ as a x:=descendentul lui x pe muchia etichetat˘ si a sfˆr¸it pentru as dac˘ x nu e frunz˘ atunci a a eroare: c nu este cod este prefix sfˆr¸it dac˘ as a asociaz˘ m nodului x a sfˆr¸it pentru as sfˆr¸it algoritm as Algoritmul 2. . sl ):=c(m) x:=r pentru i:=1.

2}: s ¸ a → 0 b → 10 c → 11 d → 12 e → 200 f → 201 g → 21 h → 22 Arborele ata¸at este reprezentat ˆ figura 2. din acest motiv.c 2008.3: Arborele ata¸at codului prefix din exemplul 2.2. Acesta ruleaz˘ ˆ timp proportional a ın ¸ cu num˘rul de simboluri de cod din reprezentarea datelor de decodificat. Acest lucru este posibil s numai pentru codurile prefix.6: Fie codul prefix din exemplul 2.5.3. s 2. codurile prefix se mai numesc ¸i coduri instantanee. s ın 2 0 a 0 b c 1 1 2 d 0 e 0 1 g 2 h 1 f Figura 2.3) ¸i fie ¸irul de s s decodificat: s = 0112000 .5 (vezi fig. Notiuni de teoria informatiei ¸ ¸ 31 ¸i multimea simbolurilor de cod S = {0. Decodificarea ˆ cazul codurilor prefix ın Dac˘ avem un ¸ir de mesaje codificat printr-un cod prefix.2. 2. decodifia s carea se poate face prin algoritmul 2.2. 1. s Exemplul 2. Radu-Lucian Lup¸a s Capitolul 2. a De remarcat c˘ fiecare mesaj este decodificat de ˆ a ındat˘ ce ultimul a simbol din reprezentarea sa a fost citit ¸i prelucrat.

Radu-Lucian Lup¸a s 32 2. . mk ) ∈ M ∗ ¸irul mesajelor a c˘ror codificare este s s a s1 . . l execut˘ a dac˘ nu exist˘ muchie descendent˘ de la x etichetat˘ cu si atunci a a a a eroare: s nu este concatenare de cuvinte de cod sfˆr¸it dac˘ as a x:=descendentul ui x pe muchia etichetat˘ cu si a dac˘ x este frunz˘ atunci a a adaug˘ la m mesajul asociat lui x a x:=r˘d˘cina lui T a a sfˆr¸it dac˘ as a sfˆr¸it pentru as dac˘ x nu este r˘d˘cina lui T atunci a a a eroare: s nu este concatenare de cuvinte de cod sfˆr¸it dac˘ as a sfˆr¸it algoritm as Algoritmul 2. . . .2: Decodificarea unei reprezent˘ri printr-un cod prefix a .c 2008. .2. . sl ) ∈ S ∗ un ¸ir finit de simboluri de cod s ie¸irea: m = (m1 . . . . m2 . . s2 . sl algoritmul: m:=ε x:=r˘d˘cina lui T a a pentru i:=1. Coduri cu proprietatea de prefix Algoritmul Decodeaz˘ a intrarea: T arborele unui cod prefix c : M → S ∗ s = (s1 . .

pentru un k0 ∈ I arbitrar. Continuˆnd a a s s a a a a ˆ acela¸i fel..c“ la ¸irul de mesaje ¸i revenim la r˘d˘cin˘.. x ∈ S.c“ ¸i .2) ¸i. i ∈ M . Deoarece am s a ajuns la o frunz˘. ¸ ın s Vom demonstra ˆ ai prima implicatie. satisfac urm˘toarea inegalitate (inegalitatea lui Kraft): a |S|−li ≤ 1 i∈M (2. ad˘ug˘m .e“ ¸i . Presupunˆnd inegalitatea lui Kraft adev˘rat˘ pentru coduri de lungime a a a maxim˘ k = k0 . vom obtine ˆ continuare mesajele . Urmeaz˘ simbolul de cod 1..c“. coborˆm de-a lungul muchiei 1 ¸i ajungem la s a a s frunza . vom examina o conditie necesar˘ ¸i suficient˘ In a ¸ a s a pentru existenta unui cod prefix cu lungimi date ale cuvintelor.c 2008. iar apoi vom ¸ ar˘ta c˘ aceast˘ conditie este de asemenea necesar˘ pentru existenta unui cod a a a ¸ a ¸ unic decodabil. Teorema 2. acesta are valoarea 0.3. s˘ demonstr˘m c˘ are loc ¸i a N∗ a a a s pentru coduri de lungime maxim˘ k = k0 + 1.2. a s ın a ... ∀i ∈ M .....b“. a a Demonstratie. Ca urmare ın ¸a ın a K= m∈M d−1 = |M | · d−1 ≤ d · d−1 = 1. Sirul de mesaje ın s ¸ ın s ¸ transmis este deci . dac˘ numerele naturale (li )i∈M satisfac inegalitatea (2. Radu-Lucian Lup¸a s Capitolul 2. Pentru aceasta. reciproc. Demonstratia va fi construit˘ prin inductie dup˘ a ¸ a ¸ a maximul k al lungimilor cuvintelor de cod (k = maxm∈M lm )..a“. punem mesajul din eticheta frunzai — adic˘ . Vom nota ˆ continuare d = |S| ¸i K = m∈M d−lm .2) atunci s a exist˘ un cod prefix c : M → S ∗ avˆnd lungimile cuvintelor |c(i)| = li .a“ — ˆ ¸irul a a ın s de mesaje decodificat ¸i revenim la r˘d˘cin˘. s˘ construim a a multimile de mesaje ¸ Mx = {m ∈ M : primul simbol din c(m) este x} . pentru cazul ˆ care multimea ıntˆ ¸ ın ¸ mesajelor M este finit˘.5 Fiind dat˘ o multime de mesaje M cel mult num˘rabil˘ ¸i o a ¸ a a s multime de simboluri S finit˘ avˆnd cel putin 2 elemente distincte. s a a a a coborˆm de-a lungul muchiei 1 ¸i ajungem ˆ nodul p˘rinte ale nodurilor . Pentru k = 1. Coborˆm ˆ arbore de-a lungul s a ın muchiei etichetate cu 0 ¸i ajungem la frunza etichetat˘ . . Lungimile cuvintelor unui cod prefix ˆ cele ce urmeaz˘.a“. pentru ¸ a a ¸ orice cod c : M → S ∗ cu proprietatea de prefix. ˆ ınseamn˘ c˘ toate cuvintele de cod sunt de lungime 1 ¸i a a s ˆ consecint˘ sunt ˆ num˘r de cel mult d. Notiuni de teoria informatiei ¸ ¸ 33 Decodificarea se face astfel: La ˆ ınceput x este r˘d˘cina arborelui.acea“. lungimile cuvintelor de cod li = |c(i)|. Lu˘m din a a a ¸irul s primul element.d“. 2. Urmeaz˘ simbolul 1.

Deoarece. c|Ml este un cod prefix. N a ∀l ∈ I . Radu-Lucian Lup¸a s 34 2. satisface inegalitatea lui Kraft. Dar (Kl )l∈IN este un sub¸ir al ¸irului sumelor partiale ale unei N s s ¸ . Coduri cu proprietatea de prefix Se observ˘ imediat c˘ (Mx )x∈S sunt disjuncte dou˘ cˆte dou˘ ¸i c˘ reuniunea a a a a as a lor este M .c 2008. rezult˘ Kl ≤ 1. obtinem: a ¸ ¸ K= x∈S m∈Mx d−(lm ) ≤ x∈S 1 = 1. cuvˆntul de cod asociat acestui elea a ment are lungime cel putin 1 ¸i ca urmare din nou ¸ s d−lm ≤ m∈Mx 1 . c|Mx . conform s ipotezei de inductie. rezult˘ c˘ toate cuvintele de cod ale a ¸ a a elementelor din Mx au lungime mai mare sau egal˘ cu 2. ˆ Insumˆnd acum pentru toate submultimile Mx . m∈Mx de unde d−lm ≤ m∈Mx 1 . l ∈ I N ¸i not˘m s a Kl = m∈Mk d−(lm ) . d • Dac˘ Mx = ∅. d • Dac˘ Mx are un singur element. este de asemenea un cod ¸ prefix. Acest cod prefix are ¸ toate cuvintele de cod lungime cel mult k0 ¸i ca urmare. adic˘ ¸ a d−(lm −1) ≤ 1. pentru fiecare l ∈ I . d ˆ cazul unei multimi M num˘rabile. deoarece ˆ a ın caz contrar singurul cuvˆnt de cod de lungime 1. anume x.2. construim In ¸ a Ml = {m ∈ M : |c(m)| ≤ l} . Eliminˆnd din toate cuvintele de cod primul a simbol obtinem un nou cod prefix pentru Mx . avem a m∈Mx 1 d−lm = 0 ≤ d . ar fi prefix a pentru toate celelalte. Pentru fiecare x ∈ M . Ca urmare K= x∈S m∈Mx d−lm . restrictia lui c la Mx . Distingem ˆ continuare trei cazuri: ın • Dac˘ Mx are cel putin 2 elemente.

∀m ∈ M s algoritmul: E:={ε} pentru l=1. Radu-Lucian Lup¸a s Capitolul 2.3: Constructia unui cod prefix cu lungimi date ale cuvintelor de cod ¸ .2) N a a ie¸irea: c : M → S ∗ cod prefix cu |c(m)| = lm .c 2008. Notiuni de teoria informatiei ¸ ¸ 35 Algoritmul Construie¸te cod s intrarea: (lm )m∈M ⊆ I satisf˘cˆnd (2.maxm∈M lm execut˘ a E :=∅ pentru w ∈ E execut˘ a pentru x ∈ S execut˘ a E :=E ∪ {w · x} sfˆr¸it pentru as sfˆr¸it pentru as E:=E pentru m ∈ M : lm = l execut˘ a c(m):= o valoare arbitrar˘ din E a E:=E \ {c(m)} sfˆr¸it pentru as sfˆr¸it pentru as sfˆr¸it algoritm as Algoritmul 2.

3) La prima iteratie. Constructia codului va fi realizat˘ de a ¸ ¸ a algoritmul 2. ˆ a a ¸ a ın care l = k + 1. la iteratia urm˘toare. cuvintele din Ek+1 a a sunt de lungime k. Dac˘ un cuvˆnt din Ek a aa a ¸ a a este atribuit unui mesaj. Pentru aceasta. |Ek | = d ¸i ¸ s dk−lm = d · K ≤ d = |E| m∈M lm ≥k Presupunˆnd c˘ (2. cuvintele din Ek+1 se obtin din a s ¸ cuvintele r˘mase din Ek dup˘ atribuirea unora ca ¸i cuvinte de cod prin a a s ad˘ugarea la final a cˆte unui simbol din S. avem dk+1−lm = d · m∈M lm ≥k+1 dk−lm = m∈M lm ≥k+1   = d   dk−lm  = m∈M lm =k dk−lm − m∈M lm ≥k ≤ d(|Ek | − |{m ∈ M : lm = k}|) = = |Ek+1 | unde ultima egalitate rezult˘ din modul de constructie a lui Ek+1 din Ek a ¸ prin eliminarea unui num˘r de elemente egal cu num˘rul de cuvinte de a a .c 2008. Ca urmare.3) are loc la iteratia cu l = k. a ¸ ¸ Mai ˆ ai. vom ar˘ta c˘ a a dk−lm ≤ |Ek | m∈M lm ≥k (2. S˘ ar˘t˘m acum c˘ se obtine un cod prefix. De aici rezult˘ c˘ seria a a a este convergent˘ ¸i suma ei K este la rˆndul ei mai mic˘ sau egal˘ cu 1. Apoi. a Cuvintele ce vor fi atribuite ˆ continuare pot avea prefixe de lungime k ın doar dintre cuvintele r˘mase ˆ Ek .2. Coduri cu proprietatea de prefix permut˘ri a seriei cu termeni pozitivi m∈M d−lm . as a a a S˘ demonstr˘m acum reciproca. a ın Vom nota ˆ cele ce urmeaz˘ cu Ek valoarea lui E ˆ cadrul iteratiei ın a ın ¸ l = k imediat dup˘ executia instructiunii E:=E . la prima iteratie cuvintele din E1 se obtin prin concatenarea a ¸ ¸ cˆte unui simbol din S la ¸irul vid. ¸i anume c˘ inegalitatea lui Kraft a a s a implic˘ existenta unui cod prefix. a ın Mai trebuie ar˘tat c˘ exist˘ ˆ a a a ıntotdeauna ˆ E o valoare de atribuit lui ın c(m). Demonstr˘m ˆ continuare corectitudinea acestui algoritm. s˘ ar˘t˘m c˘ toate cuvintele din Ek au lungime k. Radu-Lucian Lup¸a s 36 2. a a aa a ˆ Intr-adev˘r. pentru a demonstra c˘ lungimile cuvintelor de cod sunt ıntˆ a ˆ ıntr-adev˘r cele dorite. cuvˆntul de cod respectiv este eliminat din Ek .3.

a a ¸ 0 R˘d˘cina a a arborelui (a) Initializarea: ¸ E = {ε} 1 0 b 1 b 0 1 (b) Iteratia ¸ l = 1: E = {1} ¸i a fost s plasat .b“ (c) Iteratia l = 2: ¸ E = {10. m∈M inegalitatea este satisf˘cut˘ ¸i prin urmare exist˘ un cod prefix. a as a Constructia propriu-zis˘ este ar˘tat˘ ˆ figura 2. ca a ¸ s urmare. exist˘ ˆ Ek suficiente cuvinte.7: Dorim construirea unui cod prefix pentru multimea M = ¸ {a. e} ¸i multimea de simboluri de cod S = {0. le = 3. b. 1} cu urm˘toarele s ¸ a lungimi ale cuvintelor de cod: la = 3. Radu-Lucian Lup¸a s Capitolul 2.♦ a ın 37 Exemplul 2. ¸ a a Observ˘m acum c˘ suma din inegalitatea (2.4. Rezolvare: mai ˆ ai verific˘m dac˘ este satisf˘cut˘ inegalitatea lui ıntˆ a a a a Kraft: |S|−lm = 2−3 + 2−1 + 2−3 + 2−3 + 2−3 = 1 ≤ 1. ld = 3. Cerculetele de¸ a a a ın ¸ semneaz˘ nodurile corespunz˘toare elementelor din multimea E. 11} 0 b 0 0 a 1 1 1 c 0 d 1 e (d) Ultima iteratie. d. lc = 3.7) . c. Notiuni de teoria informatiei ¸ ¸ cod de lungime k urmat˘ de ˆ a ınlocuirea fiec˘rui cuvˆnt r˘mas cu d cuvinte a a a obtinute prin ad˘ugarea fiec˘rei litere posibile din S.3) are un num˘r de termeni a a a de valoare 1 egal cu num˘rul de cuvinte de lungime k de obtinut ¸i. lb = 1. l = 3: E = ∅ ¸ ¸i codul este complet generat s Figura 2..c 2008.4: Constructia unui cod prefix cu lungimi fixate ale cuvintelor de cod ¸ (exemplul 2.

6 (McMillan) Pentru orice cod unic decodabil c : M → |S| are loc inegalitatea: n d−lm ≤ 1 m∈M (2. · d−lmk d−(lm1 +. l) ≤ dl . Avem: a ¸ Teorema 2.mk )∈M k d−lm1 · .2.. Consider˘m mai ˆ ai cazul cˆnd M este finit˘. . nu doar a celor prefix.4) unde lm = |c(m)|. a s aceste codific˘ri sunt distincte ¸i ca urmare N (k. . . ˆ Inlocuind ˆ (2. mk ) ∈ M k : lm1 + . S˘ observ˘m acum c˘ N (k. .mk )∈M k (2.. (2. .5) pentru care lm1 + . s Demonstratie. Cu alte cuvinte... m ∈ M ¸i d = |S|.. .6) l=k (m1 . . l) = Mai observ˘m c˘ a a k ≤ lm1 + . Radu-Lucian Lup¸a s 38 2. Deoarece codul este unic decodabil. Obtinem: ¸ lmax · k Ek = N (k.c 2008.5) dup˘ valorile sumei lm1 + . + lmk = l. l) este num˘rul de ¸iruri de k mesaje pentru a a a a s care lungimea codific˘rii ¸irului este l. .5) = Regrup˘m acum termenii din (2. Coduri cu proprietatea de prefix Vom ar˘ta ˆ continuare c˘ inegalitatea lui Kraft este o conditie necea ın a ¸ sar˘ pentru existenta codurilor unic decodabile.. vom nota cu N (k. . l) num˘rul de termeni din dezvoltarea a (2. obtinem: ın ¸ E ≤ k lmax · k l=k dl · d−l = lmax · k − k + 1 ≤ lmax · k.8) . a a Pentru aceasta. l) · d−l . . + lmk ≤ lmax · k unde lmax este maximul lungimii cuvintelor de cod (lmax = maxm∈M lm ).. (2. adic˘ a s a N (k. S˘ lu˘m un k ∈ I arbitrar ¸i s˘ calcul˘m: a a N∗ s a a Ek = (m1 . . l) este cel mult egal cu a s num˘rul de ¸iruri distincte de l simboluri de cod. .+lmk ) (m1 . N (k. (2. .. + lmk = l . ..7) adic˘ a E k ≤ lmax · k..6). + lmk . S˘ not˘m ¸ a ıntˆ a a a a n cu E = m∈M d−lm .

. etc).3. Anume. Mk este finit˘ ¸i c|Mk s a este un cod unic decodabil.7 Pentru orice cod unic decodabil. Coduri optime Deoarece stocarea sau transmiterea fiec˘rui simbol de cod implic˘ un a a cost (timp necesar transmisiei. se poate detera a mina statistic frecventa fiec˘rei litere. a ¸ a ˆ al doilea rˆnd. a c˘rei valoare medie este ceea ce dorim s˘ minimiz˘m. precum ¸i frecventele unor succesiuni ¸ a s ¸ de litere. s 2. Radu-Lucian Lup¸a s Capitolul 2.♦ a a Corolarul 2. Lungimea reprezent˘rii mesajului este de asemenea o a variabil˘ aleatoare. Ca exemplu. Ca urmare. este ¸ ¸ natural s˘ c˘ut˘m un cod pentru care num˘rul de simboluri de cod necesare a a a a transmiterii ¸irului de mesaje al sursei este cˆt mai mic. spatiu fizic pe suportul de informatie. Notiuni de teoria informatiei ¸ ¸ Aceast˘ inegalitate are loc pentru orice k ∈ I . Dac˘ M este num˘rabil˘. construim multimile a a a ¸ Mk = {m ∈ M : |c(m) ≤ k} . de valoare medie a unei variabile aleatoare.c 2008. Ek ≤ 1 pentru fiecare k ∈ I . nu se poate cere minimizarea a a lungimii reprezent˘rii informatiei transmise efectiv de surs˘. acest num˘r mediu de biti se consider˘ ˆ sens In a a ¸ a ın probabilistic. a a Mai ˆ ai. Pentru fiecare k ∈ I . a a a a Probabilit˘¸ile diferitelor mesaje ale sursei se pot estima pe diverse at c˘i fie analizˆnd teoretic fenomenele pe baza c˘rora functioneaz˘ sursa. N Observ˘m acum c˘ E = limk→∞ Ek ≤ 1. Se impun ˆ a cˆteva s a ıns˘ a preciz˘ri cu privire la aceast˘ minimizare. Prin urmare. prin urmare E ≤ 1. a N a atunci pentru un k suficient de mare am avea E k > lmax · k. codul trebuie elaborat necunoscˆnd informatia particular˘ ıntˆ a ¸ a pe care urmeaz˘ s-o trimit˘ sursa. Se va minimiza a ¸ a deci num˘rul mediu de biti necesari reprezent˘rii unui mesaj al sursei. dac˘ mesajele a s a a sursei sunt litere ce alc˘tuiesc un text ˆ a ıntr-o anumit˘ limb˘. exist˘ un cod prefix cu acea lea¸i lungimi ale cuvintelor de cod. fiecare mesaj al sursei poate fi considerat o variabil˘ aleatoare cu valori din multimea M a ¸ de mesaje ale sursei. Dac˘ am avea E > 1. ∀k ∈ I N ∗ 39 N as ¸i not˘m Ek = m∈Mk d−lm . fie a a a ¸ a analizˆnd statistic ¸iruri de mesaje trimise de surs˘.

a De notat c˘ cantitatea de informatie nu are nici o leg˘tur˘ cu utilia ¸ a a tatea informatiei. . . . cantitatea de informatie purtat˘ de mesajul a ¸ a compus s˘ fie suma cantit˘¸ilor de informatie purtate de cele dou˘ mesaje a at ¸ a separat. m2 .1. . a s ca m˘sura informatiei s˘ fie aditiv˘. . mt−1 ). . putem.c 2008. Altfel spus. ¸ Definitia 2. m2 . .3.3.. Atunci cantitatea de informatie adus˘ de un a a ¸ a mesaj m este info(m) = − log2 pm . . Este de dorit. ¸i anume. m2 . . . pentru a transmite un bit de ¸ s s informatie avem nevoie cel putin de un bit (cifr˘ binar˘). Unitatea de m˘sur˘ pentru cantitatea de informatie este bitul.8 Fie o surs˘ care emite un ¸ir de mesaje m1 . . cantitatea de informatie purtat˘ s ın ¸ a de un mesaj va fixa o limit˘ inferioar˘ teoretic˘ a num˘rului de simboluri de a a a a cod necesare codific˘rii mesajului. mesajul a c˘zut cu fata ˆ sus poart˘ o cantitate de informatie egal˘ a ¸ ın a ¸ a 1 cu − log2 2 = −(−1) = 1bit. Exist˘ o leg˘tur˘ ˆ ¸ a a a a a ıntre aceste notiuni. Radu-Lucian Lup¸a s 40 2.mt−1 . cantitatea de informatie adus˘ de un mesaj mt ˆ contex¸ a ın tul (adic˘ urmˆnd dup˘) m1 . m2 . Cantitatea de informatie ¸ Cantitatea de informatie purtat˘ de un mesaj este o m˘sur˘ a incer¸ a a a titudinii pe care destinatarul o avea imediat ˆ ınainte de primirea mesajului ¸i s care este eliminat˘ ˆ urma primirii mesajului.. pentru ¸ a ın s fiecare m ∈ M . . . adic˘ pentru care probabilitatea ca un In a mesaj s˘ aib˘ o anumit˘ valoare este independent˘ de mesajele anterioare ¸i a a a a s de pozitia (num˘rul de ordine) mesajului ˆ ¸irul de mesaje. ¸ ¸ a a Exemplul 2. . de asemenea.mt−1 este minus logaritmul probabilit˘¸ii a a a at ca al t-lea mesaj s˘ fie mt . s˘ not˘m cu pm probabilitatea ca un anumit mesaj din ¸irul a a s de mesaje s˘ aib˘ valoarea m. conditionat˘ de faptul c˘ mesajele precedente au a ¸ a a fost m1 . A¸a cum vom vedea ˆ continuare. ˆ sensul c˘ privind ca un singur mesaj a ¸ a a ın a o succesiune de dou˘ mesaje. a ın Cantitatea de informatie purtat˘ de un mesaj trebuie deci s˘ fie mic˘ ¸ a a a dac˘ pentru destinatar evenimentul anuntat de mesaj era aproape sigur ¸i a ¸ s mare dac˘ este un eveniment total nea¸teptat. a¸a cum vom vedea. . a a ¸ A nu se confunda bitul cu sensul de unitate de m˘sur˘ pentru cantia a tatea de informatie cu bitul cu sensul de cifr˘ binar˘. ˆ cazul unei surse ergotice. ¸ a s Cantitatea de informatie adus˘ de mesajul mt este ¸ a info(mt ) = − log2 Pr(mt |m1 . mt ∈ M . Coduri optime 2.8: Dac˘ emit˘torul anunt˘ receptorului rezultatul arunc˘rii unei a ¸a ¸a a monede.

224 biti de informatie..1%. Cu aceste cuno¸tinte.9: ˆ textul acestei lucr˘ri. fiecare liter˘ .2. Radu-Lucian Lup¸a s Capitolul 2. fie pm probabilitatea mesajului m ¸i fie c : M → S ∗ un cod unic s decodabil.. ˆ a a s In aceste conditii. Pentru fiecare ¸ a ¸ m ∈ M .3. cu informatiile ¸a a a ¸ 1 ¸ a disponibile imediat ˆ ınainte. dac˘ a ¸ a a a a emit˘torul ar fi spus de la ˆ ¸a ınceput num˘rul este 3...10: Presupunem c˘ emit˘torul informeaz˘ receptorul asupra a ¸a a rezultatului arunc˘rii unui zar.58 biti. a ¸ 6 Definitia 2.1% sunt . Notiuni de teoria informatiei ¸ ¸ 41 Exemplul 2. 2. Se nume¸te a s entropia sursei de informatie cantitatea ¸ H=− m∈M pm · log pm (2.11 Un cod unic decodabil c : M → S ∗ se nume¸te cod optim ¸ s dac˘ lungimea medie a cuvintelor sale este mai mic˘ sau egal˘ decˆt lungimea a a a a ∗. medie a cuvintelor oric˘rui cod unic decodabil c : M → S a Exist˘ urm˘toarea limit˘ inferioar˘ pentru lungimea medie a cuvina a a a telor de cod: .. S˘ observ˘m c˘.011 ≈ 6. ¸i doar In a s 1. Dac˘ emit˘torul trimite mesajul num˘rul este a a ¸a a ˆ ıntre 1 ¸i 4 cantitatea de informatie este − log2 4 ≈ 0. probabilitatea acestui caz.b“.9) Cu alte cuvinte. receptorul se va a¸tepta de la fiecare s ¸ s liter˘ s˘ fie . Lungimea medie a cuvintelor de cod Definitia 2.b“ cu probabilitate de 1. ¸ a ¸ ¸ fiecare mesaj m ∈ M avˆnd o probabilitate pm de-a fi emis. Dac˘ emit˘torul s ¸ ¸ a ¸a 6 anunt˘ acum c˘ num˘rul este 3. entropia este cantitatea medie de informatie per ¸ mesaj.58 biti.a“. s a a ¸ Exemplul 2.107 ≈ 3.a“ poart˘ − log2 0.b“ poart˘ − log2 0. este 4 .. Se nume¸te lungimea medie a cuvintelor codului c valoarea s l= m∈M pm · |c(m)|. de unde cantitatea de informatie purtat˘ 1 de mesajul num˘rul este 3 este − log2 4 = 2 biti. Definitia 2.7% ¸i .10 Fie o surs˘ ce emite mesaje dintr-o multime M .9 Fie o surs˘ de informatie ce emite mesaje dintr-o multime M . ¸ a a ¸ ¸ ¸i fiecare liter˘ .a“ cu probabilitate de 10. cantitatea de informatie a ¸ transmis˘ ar fi fost − log2 1 ≈ 2.c 2008. 10.7% dintre litere sunt .5 biti.

12 Fie o surs˘ ce emite mesaje dintr-o multime M . Cu alte cuvinte In a a avem nevoie cel putin de un simbol binar (un bit) pentru a transmite un bit ¸ de informatie. prin urmare ar exista un cod unic decodabil ¸i limita din teorema 2. s ¸ a Eficienta ¸i redundanta relativ˘ sunt numere cuprinse ˆ ¸ s ¸ a ıntre 0 ¸i 1. lungimea cuvintelor a a de cod ar trebui s˘ fie lm = − log|S| pm . s Valoarea minim˘. ˆ cazul general putem doar s˘ alegem ca lungimi ale cuvintelor de In a cod valorile mai mari. ¸ Se nume¸te redundanta relativ˘ valoarea 1 − η. lm = − log|S| pm . Radu-Lucian Lup¸a s 42 2. Atunci lungimea medie l a sursei ¸i fie c : M → S s cuvintelor codului c satisface l≥ H . pentru lungimea medie a cua a vintelor de cod poate fi atins˘ efectiv.c 2008. l este lungimea medie a cuvintelor de cod. Pentru aceste valori inegalitatea lui a Kraft este satisf˘cut˘: a a |S|−lm = m∈M m∈M |S|−(− log|S| pm ) = m∈M pm = 1 ≤ 1. dac˘ |S| = 2.12 ar fi s atins˘: a l= m∈M pm · − log|S| pm = − m∈M pm · = log2 pm log2 |S| = 1 log2 |S| · − m∈M pm · log2 pm H . log2 |S| Acest lucru se poate realiza ˆ a numai dac˘ lm = − log|S| pm sunt toate ıns˘ a ˆ ıntregi.13 Se nume¸te eficienta unui cod raportul η = ¸ s ¸ H . iar S este multimea simbolurilor de cod. Motivul pentru care ea nu poate fi ˆ ın ıntotdeauna atins˘ a este dat˘ de natura discret˘ a simbolurilor de cod.10) ˆ particular. ¸ Definitia 2. Ideal. Coduri optime Teorema 2. l log2 |S| unde H este entropia sursei. dat˘ teorema 2. Pentru aceste valori avem − log|S| pm ≤ lm < − log|S| pm + 1 de unde rezult˘: a . fie H entropia a ¸ ∗ un cod unic decodabil. log2 |S| (2. adic˘ se poate obtine eficienta η = 1. a a ¸ ¸ doar ˆ anumite cazuri.12.3. atunci rezult˘ l ≥ H.

.... at Vom nota cu Hk entropia noii surse. .mk k pm1 · . construim un cod pentru acestea din urm˘ ¸i determin˘m as a raportul dintre lungimea medie a cuvˆntului de cod ¸i num˘rul de mesaje din a s a M codificate prin acesta. fie a a ¸ H entropia sursei ¸i fie S o multime de simboluri de cod.. .mi+1 .. exist˘ un cod c : M k → S ∗ pentru care a lungimea medie a cuvintelor de cod. · pmi−1 · pmi+1 · . . . · pmk .. ale c˘rei mesaje vor fi suca N. · pmk  ·  )∈M k−1 = i=1  · − mi ∈M k pmi · log2 pmi  = = i=1 1·H = =k · H Conform teoremei 2. Avem Hk = − (m1 .mk ) = pm1 · .mi−1 .....c 2008. (2.14. ˆ detaliu.11) log2 |S| log2 |S| Rezultatul teoremei precedente poate fi ˆ ımbun˘t˘¸it dac˘ ˆ loc s˘ a at a ın a consider˘m mesajele sursei ca fiind mesajele din M consider˘m succesiuni a a de mesaje din M ... + log2 pmk ) = (m1 .. · pmk · (log2 pm1 + ... Multimea de mesaje ale noii surse este ¸ prin urmare M k . log2 |S| log2 |S| . .. · pmk · log2 pmi =   (m1 . .mk )∈M k p(m1 . a a a cesiuni de k mesaje ale sursei originale. satisface Hk Hk ≤ l(k) < + 1. .. .mk ) log2 p(m1 . .... ...14 Fie o surs˘ ergotic˘ ce emite mesaje dintr-o multime M . .. Notiuni de teoria informatiei ¸ ¸ 43 Teorema 2.. Atunci exist˘ un s ¸ a cod c : M → S ∗ unic decodabil a c˘rui lungime medie l a cuvintelor de cod a satisface H H ≤l< + 1.mk k )∈M k =− =− i=1 (m1 . Radu-Lucian Lup¸a s Capitolul 2. l(k) .mk )∈M k  pm1 · ....... constructia este urm˘toarea: In ¸ a Fix˘m k ∈ I Consider˘m o a doua surs˘. Probabilit˘¸ile mesajelor sunt p(m1 ..mk ) = pm1 · ..

Generarea codului optim se s face astfel (vezi fig... pd = 0. ˆ caz de egalitate ˆ ın ıntre probabilit˘¸i. Oricare dintre alegeri duce la un . log2 |S| k log2 |S| 2.d“ sau .c 2008. c˘ nu s-ar putea uni de fiecare dat˘ exact |S| arbori. astfel ˆ at la toate celelalte uniri s˘ se ıncˆ a uneasc˘ cˆte |S| arbori ¸i ˆ final s˘ r˘mˆn˘ exact un arbore. La fiecare a unire. b.15. 2. la prima unire se vor a a uni (n − 2) mod (|S| − 1) + 2 arbori.5): • ˆ prima faz˘ creem noduri izolate corespunz˘toare mesajelor sursei In a a (fig.35.c“. Radu-Lucian Lup¸a s 44 2. putem alege un k ∈ I astfel ˆ at codificˆnd N ıncˆ a cˆte k mesaje succesive din M s˘ obtinem un num˘r de simboluri pe mesaj a a ¸ a ˆ ıncadrat ˆ ıntre H l(k) H ≤ < + ε.. pb = 0.3.c“ cu . Algoritmul se termin˘ ˆ momentul ˆ care r˘mˆne un at a ın ın a a singur arbore. Coduri optime Num˘rul mediu de simboluri de cod utilizate pentru a transmite un mesaj din a (k) M este l k . se iau oricare dintre arborii de at probabilit˘¸i egale. at a pe = 0. • Alegem dou˘ noduri cu cele mai mici probabilit˘¸i ¸i le unim. 1}. Dac˘ |S| > 2 ¸i n nu este de forma (|S| − 1)k + 1 cu k ∈ I astfel a s N. e} cu probabilit˘¸ile corepsunz˘toare pa = 0.11: Fie o surs˘ avˆnd multimea mesajelor posibile a a ¸ M = {a.3. pc = 0.d“.3. . Ca idee de baz˘. a a s ın a a a a Exemplul 2.5(a)). log2 |S| k log2 |S| k Prin urmare. dup˘ care une¸te cˆte |S| arbori (|S| fiind a a a a a s a num˘rul de simboluri de cod) ca subarbori ai unui nod nou creat..b“ cu . Algoritmul cel mai a at utilizat pentru aceasta este algoritmul lui Huffman (algoritmul 2. 2. Acestea pot a at s fi .b“ cu .. se iau arborii cu sumele probabilit˘¸ilor mesajelor asociate cele mai at mici.. Generarea codului optim prin algoritmul lui Huffman Ne vom ocupa ˆ continuare de generarea efectiv˘ a unui cod optim ın a pentru o surs˘ cu probabilit˘¸i cunoscute ale mesajelor. algoritmul lui Huffman construie¸te arborele unui a s cod prefix ˆ modul urm˘tor: pleac˘ de la n arbori (n fiind num˘rul de mesaje) ın a a a fiecare constˆnd doar din r˘d˘cin˘.15.4). pentru orice ε > 0. c.20 ¸i fie alfabetul canalului S = {0. care este delimitat de H l(k) H 1 ≤ < + .15. d.

ei ) :=si sfˆr¸it pentru as pt := d pei i=1 E:=(E \ {e1 .c 2008. . s2 . Notiuni de teoria informatiei ¸ ¸ 45 Algoritmul Huffman intrarea: M multime finit˘ de mesaje ¸ a pm ∈ (0. . . ed } creaz˘ t unic a pentru i ∈ {1. . . . at m∈M pm = 1 S = {s1 . m ∈ M . sd } multime finit˘ de simboluri de cod. . . . .4: Algoritmul lui Huffman . d } . probabilit˘¸ile mesajelor. . d } execut˘ a pune ei ca fiu al lui t s(t. . . . . Radu-Lucian Lup¸a s Capitolul 2. . . d ≥ 2 ¸ a ie¸irea: c : M → S ∗ cod prefix s algoritmul: E:=M d :=(|M | − 2) mod (|S| − 1) + 2 cˆt timp |E| > 1 execut˘ a a alege e1 . . . . ∀i ∈ {1. . . . . ∀e∗ ∈ E \ {e1 . ed ∈ E cu pei ≤ pe∗ . ed }) ∪ {t} d :=d sfˆr¸it cˆt timp as a c:=codul prefix asociat unicului arbore din E sfˆr¸it algoritm as Algoritmul 2. 1).

35 + 0.35 0.e“ (fig.35 · 1 + 0.226121 0. a ˆ final unim cei doi arbori r˘ma¸i. 2.5(c)).65 a 0 0 0 1 1 1 0 1 b c d e b c d e (c) Pasul 3 (d) Pasul 4 (e) Arborele final Figura 2.15 b 0.15 log2 0. c(c) = 101.c“ poate a at ¸ s fi unit fie cu arborele format din .20 e a b c (b) Pasul 2 0.. acum ace¸tia In at s sunt .11 ¸ .5(b)).d“ ¸i s .2 · 3 = 2.15+ + 0. c(b) = 100.35 0.d“ ¸i .3.30 0.35 a 0.c“. c(e) = 111. Radu-Lucian Lup¸a s 46 2. S˘ alegem .2 ≈2.15 log2 0.15 d 0.. Coduri optime cod optim. • In a s Avem acum codurile mesajelor: c(a) = 0. c(d) = 110.20 e 0. • ˆ continuare unim din nou arborii de probabilit˘¸i minime. 2. Calcul˘m ¸i probabilitatea arborelui a a s rezultat: 0. entropia este ¸ H = − 0.15 + 0..15 log2 0.3.15 · 3 + 0.35 a 0.30 0.a“.2 log2 0.3 Pentru comparatie.b“ ¸i pe .15 = 0.15 d 0.15 + 0..5: Functionarea algoritmului Huffman.e“.15 + 0. s • Avem acum dou˘ posibilit˘¸i: arborele ce contine pe .15 c (a) Pasul 1 0...35 a b c d e 0. Alegem a doua variant˘.15 · 3 + 0. (fig. exemplul 2..35 log2 0.15 · 3 + 0. Lungimea medie a cuvintelor de cod este l = 0.b“ cu .c 2008.. fie cu arborele format din ..

ar fi rezultat multimea a a ¸ de arbori din figura 2.c 2008.3 0. s ın S˘ observ˘m c˘ se obtine exact aceea¸i lungime medie a cuvintelor de cod: a a a ¸ s l = 0. Lema 2.15 Codul obtinut prin algoritmul Huffman este optim. s Pentru orice mesaje m1 .6(a) ¸i ˆ final arborele asociat codului prefix din figura 2. m2 ∈ M . fie S alfabetul canalului ¸i fie c : M → S ∗ un cod optim. ¸ Pentru demonstratie avem nevoie de cˆteva leme ce descriu pro¸ a ˆ cele ce urmeaz˘ vom nota cu L(c) lungimea priet˘¸i ale unui cod optim.12: Fie o surs˘ avˆnd multimea mesajelor posibile a a ¸ M = {a. fie pm .15 · 3 + 0. Notiuni de teoria informatiei ¸ ¸ 47 Dac˘ la pasul 4 s-ar fi ales cealalt˘ posibilitate.15.6(b). entropia este H ≈ 2. dac˘ pm1 < pm2 atunci |c(m1 )| ≥ |c(m2 )|.35 · 2 + 0.1. s Constructia codului prin algoritmul lui Huffman este prezentat˘ ˆ ¸ a ın figura 2.65 0. b. pc = 0. 2}. pd = 0.15 · 3 + 0.6.1.35 0 0 1 0 1 0 1 a b c d e a 1 d e b c (b) Arborele final (a) Pasul 4 Figura 2. f} cu probabilit˘¸ile corepsunz˘toare pa = 0. pf = 0.16 Fie M multimea mesajelor sursei.4804382 ≤ 1. c.7.2 · 2 = 2. probabilit˘¸ile ¸ at mesajelor sursei. e.6: Variant˘ alternativ˘ pentru pa¸ii 4 ¸i 5 (exemplul 2. d.15.1 ¸i fie alfabetul canalului S = {0. 1. a . at a pe = 0.4. In at a medie a cuvintelor unui cod c.11) a a s s Exemplul 2. Lungimea medie a cuvintelor de cod este l = 1. m ∈ M .15 · 2 + 0.346439 ≈ ≈ 1. Radu-Lucian Lup¸a s Capitolul 2. pb = 0.346439 ¸i avem s H 2.5849625 Teorema 2.6 = l log2 |S| 1.

Radu-Lucian Lup¸a s 48 0.4 0.12 ¸ Demonstratie. exemplul 2. Deoarece ne intereseaz˘ doar s a . pm1 < pm2 ¸i ¸ s |c(m1 )| < |c(m2 )|.4 0.1 0. Presupunem contrariul: ∃m1 .♦ a Lema 2. prin interschimbarea cuvintelor de cod asociate mesajelor m1 ¸i m2 : s   c(m2 ) .17 Fie M multimea mesajelor sursei.15 0. m2 } Avem L(c ) = m∈M pm · |c (m)| = =L(c) − pm1 |c(m1 )| − pm2 |c(m2 )| + pm1 |c(m2 )| + pm2 |c(m1 )| = =L(c) + (pm1 − pm2 )(|c(m2 )| − |c(m1 )|) < <L(c) adic˘ c are lungimea cuvintelor de cod mai mic˘ decˆt c. de unde rezult˘ a a a a c˘ c nu este cod optim. Coduri optime 0. Demonstratie. c : M → S ∗ . fie S alfabetul canalu¸ lui.15 0.7. Atunci exist˘ cel putin (n − 2) mod (|S| − a ¸ 1) + 2 cuvinte de cod de lungime lmax . |M | ≥ 2.c 2008.3.15 0. exist˘ un cod prefix cu acelea¸i ¸ a s lungimi ale cuvintelor de cod ca ¸i codul c. m = m1 c(m1 ) . fie c : M → S ∗ un cod optim ¸i fie lmax lungimea celui mai lung cuvˆnt al s a codului c (lmax = maxm∈M |c(m)|).4 0.2 0 1 0 1 2 2 0 1 a b c f d e a b c f d e (c) Pasul 3 (d) Arborele final Figura 2. m = m2 c (m) =  c(m) .7: Functionarea algoritmului lui Huffman. Construim atunci un alt cod.1 2.2 0.4 0. Conform corolarului 2.1 0. m2 ∈ M . m ∈ M \ {m1 .1 a b c d (b) Pasul 2 f e a b c d e f (a) Pasul 1 0.15 0.

num˘rul pozitiilor libere este cel mult |S| − 2. prin urmare ¸ s n = k · (|S| − 1) + 1 − j Notˆnd q = |S| − j − 2. care este egal cu num˘rul n de mesaje. Dac˘ arborele are ˆ total j pozitii libere. num˘rul de frunze. Vom numi num˘rul de pozitii a a ¸ libere ale unui nod intern (un nod ce are cel putin un fiu) valoarea |S| minus ¸ num˘rul de fii. aceasta are cel putin 2 fii. lungimile cuvintelor de cod se p˘streaz˘. Acum t are un singur descendent. avem a n = k · (|S| − 1) + q − |S| + 3 = (k − 1) · (|S| − 1) + 2 + q Deoarece 0 ≤ j ≤ |S| − 2 rezult˘ 0 ≤ q ≤ |S| − 2 de unde a q = (n − 2) mod (|S| − 1) Penultimul nivel contine cel putin un nod intern.c 2008. ˆ caz contrar s-ar putea muta o frunz˘ de pe a ın a ultimul nivel ca descendent al nodului cu cel putin o pozite liber˘. fiecare nod intern are zero pozitii ¸ ¸ libere ˆ Intr-adev˘r. Observ˘m urm˘toarele: a a a • Cu exceptia penultimului nivel. atunci unicul nod a ın˘ ¸ intern este r˘d˘cina. prin completarea acestora cu a ın ¸ frunze ar rezulta un arbore cu 0 pozitii libere ¸i n + j frunze. f˘r˘ a restrˆnge generalitatea. a Pentru un arbore cu k noduri interne ¸i cu num˘rul total de pozitii s a ¸ libere 0. putem. s˘ preaa a a supune c˘ c este cod prefix. este a a n = k · (|S|−1)+1. Notiuni de teoria informatiei ¸ ¸ lungimile cuvintelor de cod. deoarece |M | ≥ 2. a a • Suma numerelor pozitiilor libere ale nodurilor penultimului nivel este ¸ cel mult |S| − 2. Cum |S| − j = q + 2 rezult˘ a ¸ a c˘ pe ultimul nivel avem cel putin a ¸ q + 2 = (n − 2) mod (|S| − 1) + 2 49 . ¸ ¸ a prin aceast˘ operatie ar sc˘dea lungimea cuvˆntului de cod corea ¸ a a spunz˘tor ¸i ca urmare ar sc˘dea lungimea medie a cuvintelor de a s a cod. a a ˆ acest fel lungimea cuvˆntului de cod corespunz˘tor scade cu 1 ¸i ın a a s lungimea medie a cuvˆntului de cod scade cu o valoare nenul˘. Putem elimina a a nodul t subordonˆnd unicul s˘u descendent direct parintelui lui t. Acest lucru se demonstreaz˘ imediat prin inductie dup˘ a ¸ a k. contrazicˆnd ipoteza c˘ c este optim. a Consider˘m arborele asociat codului c. Dac˘ arborele are ˆ altime 1. Mut˘m k − 1 dintre descendentii lui t pe pozitii a ¸ ¸ libere ale altor noduri ale penultimului nivel. Nodul t s a ¸ a are |S| − k pozitii libere. Conın ¸a a ¸ sider˘m acum un arbore de ˆ altime cel putin 2 ¸i s˘ presupunˆnd a ın˘ ¸ ¸ s a a prin absurd c˘ am avea |S| − 1 pozitii libere. de unde rezult˘ c˘ ¸ a a pe ultimul nivel exist˘ cel putin |S| − j frunze. Radu-Lucian Lup¸a s Capitolul 2. deci mai r˘mˆn cel putin k − 1 pozitii libere ¸ a a ¸ ¸ la celelalte noduri. a a ¸ s ˆ consecint˘. ceea a a ce contrazice din nou ipoteza c˘ c e optim. Fie t un nod intern de a ¸ pe penultimul nivel ¸i fie k num˘rul de descendenti ai s˘i. ¸i.

17 deducem c˘ co a a are cel putin (n − 2) mod (|S| − 1) + 2 cuvinte de lungime maxim˘. conform ¸ s ipotezei de inductie. respec¸ s s at s a a tiv L(co ) lungimile medii ale cuvintelor de cod corespunz˘toare. notˆnd pt = i=1 pei . deducem c˘ acestea sunt cuvintele corespunz˘toare mesajelor cu a a probabilit˘¸ile cele mai mici.3. prin urmare L(ch ) ≤ L(co ). Din ¸ a lema 2. a putem face ca celor (n − 2) mod (|S| − 1) + 2 mesaje alese de algoritmul lui Huffman s˘ le corespund˘ prin co cuvinte de cod ce difer˘ doar prin ultimul a a a simbol. S˘ mai remarc˘m c˘ ch este codul produs de algoritmul lui a a a Huffman pentru multimea de mesaje (M \ {e1 . probabilit˘¸ile mesajelor. deci codul obtinut prin algoritmul lui Huffman este a optim. . Coduri optime Pentru k = 1. .c 2008. avem L(co ) = L(co ) − pt ¸i analog. prin interschimb˘ri de cuvinte de cod. ed alese de algoritmul at a lui Huffman pentru prima unificare. unde t este un obiect nou introdus.c(ed ). s˘ facem ca cele a a (n−2) mod (|S|−1)+2 cuvinte de lungime maxmim˘ din co s˘ fie cele alese a a ˆ prima etap˘ a algoritmului lui Huffman. . Algoritmul Huffman este folosit aproape de orice algoritm de coms presie. ıns˘ a ¸ . Observ˘m In s a d s acum c˘. s˘ ¸ a not˘m cu pm . . dˆnd ca valoare pentru c(t) prefixul comun al lui a c(e1 ). adic˘ fie mesajele e1 .16. . rezultˆnd cuvinte de cod de lungime 1 pentru toate mesajele. . .♦ 2. m ∈ M . f˘r˘ ca prin aceasta s˘ pierdem ın a aa a optimalitatea lui co . ˆ s at ın al doilea caz putem. Creem acum un cod co : (M \ {e1 .♦ Demonstratia teoremei 2. Avem de a demonstrat c˘ L(ch ) ≤ L(co ). De aici ¸ rezult˘ L(ch ) ≤ L(co ). algoritmul lui Huffman face o singur˘ a a unificare. . adic˘ n ≤ |S|. a Un astfel de cod este optim. . fie mesaje de acelea¸i probabilit˘¸i. ˆ acela¸i mod. De asemenea. deoarece cuvinte de cod de lungime mai mic˘ a decˆt 1 nu sunt permise. a Presupunem acum c˘ algoritmul Huffman genereaz˘ codul optim pena a tru un k dat ¸i s˘-i demonstr˘m optimalitatea pentru k + 1. . . . . Vom demonstra ¸ a n−1 prin inductie dup˘ num˘rul k = |S|−1 ..3. creem un cod ch pornind de la ch . Compresia fi¸ierelor s Codarea optimal˘ este ceea ce face orice program de compresie a a fi¸ierelor. Radu-Lucian Lup¸a s 50 frunze. . el este optim. s˘ not˘m cu ch codul gena at a a erat de algoritmul lui Huffman ¸i cu co un cod prefix optim pentru aceea¸i s s multime de mesaje ¸i acelea¸i probabilit˘¸i ¸i s˘ not˘m cu L(ch ).15. aplicˆnd lema 2. ˆ a de regul˘ nu direct asupra octetilor din datele de comprimat. ed }) ∪ {t} ¸i.4. prin interschimb˘ri de cuvinte de cod. L(ch ) = a a L(ch ) − pt . ed }) ∪ {t} → S ∗ . . ¸ a a 2. Fie n num˘rul de mesaje. S˘ lu˘m deci s a a a a o multime de mesaje M cu k(|S| − 1) + 1 ≤ |M | ≤ (k + 1)(|S| − 1). a Deoarece co este un cod optim.

dar care altereaz˘ ¸irul de simboluri de cod trans¸ as mise.4. s ¸ Pentru transmiterea corect˘ a datelor printr-un canal cu perturbatii a ¸ este necesar un mecanism care s˘ permit˘ fie detectarea fie corectarea erorilor a a de transmisie. dup˘ care ˆ modific˘ pena ıl a tru a-l optimiza conform frecventelor observate ˆ date. In a ¸ a ¸ a compresia. Notiuni de teoria informatiei ¸ ¸ 51 Algoritmii de compresie utilizati ˆ practic˘ se folosesc ¸i de depen¸ ın a s dentele ˆ ¸ ıntre octetii succesivi. ˆ ıntotdeauna r˘mˆne posibilitatea ca erorile de transa a misie s˘ transforme un cuvˆnt de cod ˆ alt cuvˆnt de cod ¸i.c 2008. Radu-Lucian Lup¸a s Capitolul 2. o astfel de alterare este efectul zgomotelor ce se suprapun In a peste semnalul transmis de nivelul fizic (vezi capitolul 3). din acest motiv un astfel de canal se nume¸te canal cu zgomot sau canal cu perturbatii. s ¸ 2. Desigur. Coduri detectoare ¸i corectoare de erori s Vom studia ˆ cele ce urmeaz˘ problema transmisiei informatiei ˆ ın a ¸ ın situatia unui canal discret. alter˘rile cele mai probabile ale ¸irului de a s a s simboluri transmis conduc la secvente de simboluri de cod care nu constituie ¸ cuvinte de cod. ca urmare. a a Ca principiu. atunci receptorul poate recalcula codul folosit de emit˘tor (folosind acela¸i algoritm ca ¸i emit˘torul). ¸ Utilizarea oric˘rui cod presupune c˘ receptorul cunoa¸te codul folosit a a s de emit˘tor. ˆ practic˘. nici un program de compresie nu poate comprima ¸a un ¸ir aleator de octeti. Ca o consecint˘. ca urmare. Metodele adaptative presupun as ¸ a c˘ emit˘torul ˆ a ¸a ıncepe emisia cu un cod standard. Dac˘ algoritmul de ¸ ın a generare a codului este fixat ¸i codul folosit la un moment dat depinde doar s de datele trimise (codate) deja. Ambele mecanisme permit receptorului s˘ determine dac˘ un a a cuvˆnt de cod a fost transmis corect sau a fost alterat de c˘tre canal. • corectarea erorilor presupune c˘ receptorul determin˘ cuvˆntul de cod cel a a a mai probabil s˘ fi fost transmis de c˘tre emit˘tor ¸i d˘ sursei mesajul a a ¸a s a corespunz˘tor acelui cuvˆnt. Transmiterea separat˘ a codului c˘tre receptor risc˘ s˘ contrabal¸a a a a a anseze cˆ¸tigul obtinut prin codare optimal˘. erorile a a ın a s . ˆ cazul a a In unui cuvˆnt alterat: a • detectarea erorilor presupune c˘ receptorul informeaz˘ destinatia de acest a a ¸ lucru. nu e posibil˘ decˆt cantitatea de informatie transmis˘. atˆt detectarea cˆt ¸i corectarea erorilor se bazeaz˘ pe a a s a un cod ˆ care nu orice secvent˘ (de lungime adecvat˘) de simboluri de cod ın ¸a a este cuvˆnt de cod ¸i. ¸a s s ¸a De notat c˘ nici un cod nu poate folosi mai putini biti pentru codare a ¸ ¸ ˆ lipsa redundantei.

a ın • rafale de erori. O modelare simpl˘ a erorilor este aceea ˆ care se presupune c˘ exa ın a ist˘ doar erori individuale ¸i c˘ probabilitatea ca o eroare s˘ afecteze un bit a s a a este aceea¸i pentru toti bitii ¸i independent˘ de valorile bitilor ¸i de pozitiile s ¸ ¸ s a ¸ s ¸ celorlalte erori. probabilitatea s˘ se a a l(l−1) 2 l−2 ¸i. Radu-Lucian Lup¸a s 52 2. ¸a ˆ cele ce urmeaz˘ vom considera alfabetul canalului S = {0. Cu un cod bine ales. In a 2.1. adic˘ de¸ a ¸ a terminarea. probabilitatea unei erori nedea ıns˘ tectate poate fi f˘cut˘ suficient de mic˘. rezult˘ c˘ orice cod detector sau corector de erori are a a redundant˘. care schimb˘ valoarea unui bit din 0 ˆ 1 sau reciproc. • erori de sincronizare. probabilitatea ca acea secvent˘ s˘ fie se transmit˘ corect este p0 = (1 − p) a ¸a a afectat˘ de exact o eroare este p1 = lp(1 − p)l−1 ≈ lp. s a probabilit˘¸ii corespunz˘toare. a a ¸ a Transmisia unui ¸ir de biti poate fi afectat˘ simultan de mai multe s ¸ a erori distincte. 1}. care schimb˘ o parte dintr-un ¸ir de bitˆ (nu neap˘rat a s ı a toti).4. ˆ general. Deoarece la orice cod detector sau corector de erori multimea ¸irurilor ¸ s de cuvinte de cod este o submultime strict˘ a multimii ¸irurilor arbitrare ¸ a ¸ s de simboluri de cod. at a Distingem urm˘toarele tipuri de erori: a • erori individuale.4. Cu alte cuvinte. fiecare bit are o probabilitate p s˘ fie inversat a (dac˘ emit˘torul a transmis un 1 receptorul s˘ primeasc˘ 0 ¸i dac˘ emit˘torul a ¸a a a s a ¸a a transmis 1 receptorul s˘ primeasc˘ 0) ¸i 1 − p s˘ fie transmis corect. respectiv cod corector de erori .rar˘“ a multimii secventelor ¸ a ¸ a ¸ ¸ de simboluri de cod. ˆ a. Evident. s ıncˆ a a a Este deci esential˘ constructia unui model probabilistic al erorilor. Coduri detectoare ¸i corectoare de erori s s˘ scape nedetectate. probabilitatea ca o secvent˘ de l biti s˘ ¸a ¸ a n .. probabilitatea s ın produc˘ dou˘ erori este p2 = 2 p (1 − p) a a . De aici denumirea de cod detector de erori . Prin urmare. care determin˘ pierderea unui bit sau introducerea a unui bit. a a s a Erorile fiind independente.c 2008. Lungimea rafalei este num˘rul de biti dintre primul ¸i ultimul bit ¸ a ¸ s modificat. ˆ ımpreun˘ cu decalarea corespunz˘toare a bitilor urm˘tori. Modelul erorilor Constructia codului detector sau corector de erori trebuie f˘cut˘ ˆ ¸ a a ın a¸a fel ˆ at s˘ fac˘ suficient de mic˘ probabilitatea unei erori nedetectate. pentru aceasta este necesar a a a ca multimea cuvintelor de cod s˘ fie o submultime . pentru fiecare modificare a ¸irului de simboluri transmis de canal. posibilit˘¸ile de detectare a erorilor ¸in de constructia at t ¸ codului.

adic˘ probabilitatea de-a avea mai mult de cˆteva erori este a a extrem de mic˘. consider˘m c˘ avem doar erori individuale.2. Notiuni de teoria informatiei ¸ ¸ 53 s˘ se produc˘ exact k erori este a a pk = l! pk (1 − p)l−k . a multimea cuvintelor de cod. independent de erorile de transmisie survenite. ˆ a a ıntrucˆt p a 1.18 Spunem despre codul c : M → {0. ın Deoarece nu avem erori de sincronizare ¸i deoarece toate cuvintele de s cod au aceea¸i lungime l. Prin urmare. . . pentru orice cuvˆnt de cod w ∈ W = c(M ). . v) = i=1 |ui − vi |. prin transfora a marea lui w ca urmare a k sau mai putine erori. Astfel. este o submultime a multimii ¸irurilor de ¸ ¸ ¸ s simboluri de cod de lungime l: W ⊆ {0. definim a urm˘toarele: a Definim pe {0. a ın . 1}l o functie distant˘: ¸ ¸a l d(u. 1}l . cuvˆntul rezultat w nu este ¸ a cuvˆnt de cod: w ∈ W . unde u = (u1 .4. a ˆ Intrucˆt probabilitatea de-a avea k sau mai multe erori scade foarte a repede o dat˘ cu cre¸terea lui k. 1}l c˘ detecteaz˘ k erori ¸ a a individuale dac˘. . . Ca model al erorilor. v2 . W . . . a a Definitia 2. k!(l − k)! conform distributiei binomiale.. Ne vom pune deci doar problema detect˘rii sau corect˘rii erorilor ce afecteaz˘ un cuvˆnt de cod de a a a a lungime fix˘ l. . distanta ˆ s ¸ ıntre dou˘ a cuvinte este num˘rul de erori individuale necesare pentru a transforma primul a cuvˆnt ˆ cel de-al doilea.c 2008. a 2. . Not˘m cu l lungimea cuvintelor de cod. pentru l suficient de mic avem p0 p1 p2 . a Pentru a determina num˘rul de erori detectate de un cod. ¸ Observ˘m c˘. receptorul poate departaja cuvintele de cod succes sive. . ina a dependente (cazul studiat ˆ paragraful anterior). 1}. Principiile codurilor detectoare ¸i corectoare de erori s Vom analiza doar cazul codurilor de lungime fix˘ pentru multimea de a ¸ simboluri S = {0. se alege o valoare k astfel ˆ at probabilitatea a s ıncˆ de-a avea k sau mai multe erori este neglijabil de mic˘ ¸i se construie¸te codul as s presupunˆnd c˘ nu se produc mai mult de k − 1 erori. Radu-Lucian Lup¸a s Capitolul 2. ul ) ¸i v = (v1 . vl ). u2 .

multimea mesajelor este multimea ¸ ¸ ¸ ¸irurilor de n biti. l l S˘ mai not˘m c˘ |M | = |W | = 2n . 1}l ¸i W = c(M ). pentru orice cuvˆnt de cod w ∈ W = c(M ).21 Fie codul c : M → {0. as a S˘ analiz˘m acum eficienta codului. Ca urmare.c 2008. eficienta codului este ¸ n H = . a s ∀m ∈ M . 1}l c˘ corecteaz˘ k erori ¸ a a individuale dac˘.20 Spunem despre codul c : M → {0. 1}l ¸i W = c(M ). s ¸ . ¸a a • g˘sirea unor algoritmi eficienti pentru codificare ¸i pentru detectarea eroa ¸ s rilor (adic˘ verificarea apartenentei unui ¸ir de l biti la W ) ¸i eventual a ¸ s ¸ s corectarea erorilor (adic˘ g˘sirea celui mai apropiat cuvˆnt din W fat˘ a a a ¸a de un ¸ir de l biti dat). ws ) ≥ d(w . a a a Constructia efectiv˘ a unui cod detector sau corector de erori cuprinde ¸ a dou˘ aspecte: a • constructia unei multimi W ⊆ {0. d(w . pentru o valoare n dat˘. datele utile pentru un a a ¸ cod detector sau corector de erori sunt ¸iruri de biti.4. as a S˘ examin˘m acum codurile corectoare de erori. probabilitatea oric˘rui mesaj fiind aceea¸i: pm = |M | = 2−n . Ca urmare. u. 1}n .19 Fie codul c : M → {0. 1}l cu dmin (W ) suficient de mare pentru ¸ num˘rul de erori de detectat sau corectat ¸i. totodat˘. obtinuti prin codificarea s ¸ ¸ ¸ datelor din universul aplicatiei. Radu-Lucian Lup¸a s 54 2. w). Codul c corecteaz˘ ¸ s a k erori dac˘ ¸i numai dac˘ dmin (W ) ≥ 2k + 1. v). prin transa a formarea lui w ca urmare a k sau mai putine erori cuvˆntul rezultat w are ¸ a proprietatea c˘ w este cel mai apropiat cuvˆnt de w din W : a a ∀ws ∈ W . Mesajele sunt s ¸ a 1 echiprobabile. avˆnd log2l|W | cˆt a s a a a mai mare pentru o eficient˘ cˆt mai mare a codului. De obicei. Propozitia 2. M = {0. ¸ Propozitia 2. a a Definitia 2. Codul c detecteaz˘ ¸ s a k erori dac˘ ¸i numai dac˘ dmin (W ) ≥ k + 1.v∈W u=v unde W este multimea cuvintelor de cod ale codului considerat. Coduri detectoare ¸i corectoare de erori s Not˘m acum a dmin (W ) = min d(u.

cˆteva coduri detectoare sau corecın a toare de erori. cu n1 ¸i n2 fixati. a ¸ Pentru un astfel de cod. Notiuni de teoria informatiei ¸ ¸ 55 2. Sirul 11001100 nu este cuvˆnt de cod valid. emit˘torul prime¸te de la surs˘ n biti ce ¸a s a ¸ constituie informatia util˘. Sirul 11001100 este cuvˆntul de cod a ¸ a corespunz˘tor informatiei utile 1100110.3. Cˆteva coduri detectoare sau corectoare de erori a Descriem ˆ continuare. a a paritate par˘ (engl. Paritate pe linii ¸i coloane s La un astfel de cod informatia util˘ se consider˘ a fi o matrice n1 ×n2 ¸ a a de biti. Sirul 1110110 se codific˘ a ¸ a 11101100 (bit de control 1). s a a ¸ ¸ 2. Ca urmare n = n1 · n2 . a s Bitul de paritate se calculeaz˘ num˘rˆnd bitii cu valoare 1 din infora aa ¸ matia util˘ ¸i verificˆnd dac˘ este par sau impar. a a ¸ 2. Sirul 1110110 ¸ a a ¸ se codific˘ 11101101 (bit de control 1).3. iar ultimii l − n biti a a ¸ a ¸ poart˘ numele de biti de control. ¸ as a a Exemplul 2. Primii n biti din ¸ ¸ ¸ ¸ cuvˆntul de cod poart˘ denumirea de informatie util˘. Sirul ¸ a ¸ 11001101 este cuvˆntul de cod corespunz˘tor informatiei utile 1100110.4. Bitul de paritate La codul cu bit de paritate se alege l = n + 1. pentru ¸ s ¸ as ¸ detectarea erorilor aplic˘ acela¸i algoritm ca ¸i emit˘torul asupra informatiei a s s ¸a ¸ utile citite ¸i verific˘ dac˘ rezultatul coincide cu bitii de control cititi. Unicul bit de control se mai nume¸te bit de paritate. ¸i paritate impar˘ (engl. Exist˘ dou˘ sisteme.4.13: Pentru codul cu paritate par˘ ¸i n = 7.4. ˆ care W este multimea ¸irurilor de l biti continˆnd un num˘r ın ¸ s ¸ ¸ a a impar de valori 1. ¸irul de biti 1010110 as s ¸ (informatie util˘) se codific˘ 10101100 (bitul de control este 0).2. Sirul 11001101 nu este cuvˆnt de cod a ¸ ¸ a valid.c 2008. Codul are l = (n1 + 1) · (n2 + ¸ s ¸ . Receptorul cite¸te informatia util˘ ¸i bitii de control. even parity). In ¸ ˆ general. s ¸ ¸ a a s a odd parity). ¸ a a iar ultimii l − n biti sunt unic determinati de primii n biti. Radu-Lucian Lup¸a s Capitolul 2. calculeaz˘ cei l − n biti de control aplicˆnd un al¸ a a a goritm asupra informatiei utile ¸i transmite prin canal informatia util˘ urmat˘ ¸ s ¸ a a de bitii de control.3. multimea cuvintelor de cod W este astfel aleas˘ ˆ at ¸irul In ¸ a ıncˆ s primilor n dintre cei l biti s˘ poat˘ lua oricare dintre cele 2n valori posibile. ˆ care W este definit˘ ca fiind multimea a ın a ¸ ¸irurilor de l biti continˆnd num˘r par de valori 1. s Se vede imediat c˘ dmin (W ) = 2 ¸i prin urmare bitul de paritate a s detecteaz˘ o eroare ¸i nu poate corecta nici o eroare.1. ¸irul de biti a s s ¸ 1010110 se codific˘ 10101101 (bitul de control este 1). Exemplul 2. pe scurt.14: Pentru codul cu paritate impar˘ ¸i n = 7. ˆ descrierea lor vom utiliza notatiile din paragraful precedent.

2. a s Pentru corectarea erorilor. Coduri detectoare ¸i corectoare de erori s 1). Multimea cuvintelor de s a ¸ ¸ cod este multimea matricilor (n1 + 1) × (n2 + 1) ˆ care pe fiecare linie ¸i pe ¸ ın s fiecare coloan˘ num˘rul de valori 1 este par. .3. . + vk−1 X + vk . 1}k i se asociaz˘ un polinom a s ¸ a de grad cel mult k − 1: v(X) = v1 X k−1 + v2 X k−2 + . . Radu-Lucian Lup¸a s 56 2. se caut˘ mai ˆ ai liniile ¸i coloanele care a ıntˆ s ˆ ıncalc˘ paritatea. primul bit de pe linia a 2 este eronat.16: Sirul 101001101011010011000111111101 nu este cuvˆnt de ¸ a cod: 1 0 1 0 0 1 1 0 1 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 1 Se observ˘ c˘ paritatea nu este respectat˘ de linia a 2-a ¸i de prima coloan˘. s Exemplul 2. ambele variante duc ¸ la acela¸i rezultat. va exista exact a a a a o linie ¸i o coloan˘. a a Se poate ar˘ta u¸or c˘ dmin (W ) = 4.4. .3. De remarcat c˘ ultimul bit din s a a matrice trebuie calculat fie ca bit de paritate al bitilor de paritate ai liniilor. ¸ fie ca bit de paritate ai bitilor de paritate ai coloanelor. Cuvintele de cod sunt v˘zute ca fiind matrici (n1 + 1) × (n2 + 1) ˆ care a ın ultima linie ¸i ultima coloan˘ cuprind bitii de control. s a ¸ s a Exemplul 2. fiind 0 ˆ original. cuvˆntul de cod rezultat este ¸irul: 1011101010110001111011011. . Coduri polinomiale Oric˘rui ¸ir de biti v = (v1 .c 2008. vk ) ∈ {0. Bitul eronat este la intersectia liniei ¸i coloanei g˘site.15: Pentru n1 = n2 = 4. Datele ın utile sunt deci: 1010010101100111. Presupunˆnd c˘ s-a produs o singur˘ eroare. a a a s a Prin urmare.4. . prin urmare codul detecteaz˘ 3 a s a a erori sau corecteaz˘ 1 eroare. ¸irul 1011010111001111 se codific˘ s a astfel: 1 0 1 1 1 0 1 0 1 0 1 1 0 0 0 1 1 1 1 0 1 1 0 1 1 Astfel. a Codificarea ¸i detectarea erorilor se face calculˆnd bitul de paritate s a pentru fiecare linie ¸i pentru fiecare coloan˘. .

la g(X). s ¸ • se calculeaz˘ r(X) ca fiind restul ˆ artirii lui i(X) · X l−n la g(X) a ımp˘ ¸ • ¸irul bitilor de control este ¸irul de l − n biti al c˘rui polinom asociat este s ¸ s ¸ a r(X). . Codurile polinomiale sunt mult utilizate datorit˘ simplit˘¸ii construca at ¸iei unor circuite (hardware) care calculeaz˘ bitii de control.4. ¸ . . 1}. Deoarece r(X) este restul ˆ artirii lui i(X) · X l−n la g(X). . t a ¸ Dac˘ se dore¸te corectarea erorilor.4. rl−n a a ¸ s a s al c˘rui polinom asociat este a v(X) =i1 X l−1 + . se alege un a¸a-numit poli¸ s nom generator g(X) de grad l − n (reamintim c˘ l este lungimea cuvintelor a de cod. cu ¸ ¸ s tabelele de mai jos: + 0 1 · 0 1 0 0 1 0 0 0 1 1 0 1 0 1 De remarcat c˘ polinoamele peste orice corp p˘streaz˘ multe din proa a a priet˘¸ile polinoamelor . + in X l−n + r1 X l−n−1 + . Radu-Lucian Lup¸a s Capitolul 2. ¸ s ımp˘ ¸ Pentru constructia unui cod polinomial.c 2008. ˆ particular se poate defini la fel adunarea. iar n este num˘rul de biti ai informatiei utile. Deoarece ˆ F2 avem c˘ ın a 1 + 1 = 0 rezult˘ c˘ r(X) = −r(X).. n < l). unde + este operatia sau exclusiv.obi¸nuite“. +. Pentru a ne convinge de corectitudinea algoritmului de mai sus. in . rezult˘ c˘ poliımp˘ ¸ a a nomul i(X) · X l−n − r(X) este divizibil cu g(X). De aici rezult˘ c˘ v(X) este divizibil cu a a a a g(X). · ). . . . . 2. iar · este operatia ¸i. . . . Notiuni de teoria informatiei ¸ ¸ 57 Coeficienti acestui polinom sunt considerati ca elemente ale corpului F2 = ¸ ¸ ({0. Multimea cua ¸ ¸ vintelor de cod W se define¸te ca multimea ¸irurilor de l biti cu proprietatea s ¸ s ¸ c˘ polinomul asociat ¸irului este divizibil cu g(X). r1 . at s ın sc˘derea ¸i ˆ a s ınmultirea ¸i are loc teorema ˆ artirii cu rest. . + rl−n = =i(X) · X l−n + r(X). a s Sirul bitilor de control se calculeaz˘ astfel: ¸ ¸ a • se construie¸te polinomul i(X) asociat informatiei utile. . Coduri detectoare ¸i corectoare de erori ˆ alte domenii s ın Ne ˆ alnim cu coduri detectoare sau corectoare de erori ¸i ˆ situatii ıntˆ s ın ¸ mai putin legate de calculatoare. s˘ a observ˘m c˘ obtinem ca ¸i cuvˆnt de cod un ¸ir de forma i1 . se observ˘ c˘ pozitiile erorilor nu a s a a ¸ depind decˆt de restul ˆ artirii polinomului asociat ¸irului de biti receptionat. a ımp˘ ¸ s ¸ ¸ v (X).

d.. Radu-Lucian Lup¸a s 58 2.m.4. ca urmare permite de¸ a ¸a tetcarea ¸i coerctarea multor . a . iar pentru ¸a a litere se pronunt˘ un cuvˆnt ˆ ¸a a ıntreg. ¸. De exemplu. codul IBAN. Coduri detectoare ¸i corectoare de erori s Limbajul natural contine mult˘ redundant˘. nu contin redundant˘. pe de alt˘ parte. sunt cazuri ˆ care o singur˘ eroare poate schimba radial ın a sensul unei fraze. ISBN-ul de In a s pe c˘rti ¸i alte asemenea coduri de identificare ce sunt transmise frecvent prin a¸ s intermediul unor operatori umani au o cifr˘ de control. diverse indicative cum ar fi a numere de telefon. s ¸ ¸a la transmiterea acestora cifrele se pronunt˘ cu anumite modific˘ri. pentru a evita confuzia dou˘ -nou˘ . ˆ sfˆr¸it. Din p˘cate ˆ a. numere de ˆ ınmatriculare.erori de tipar“. indicativul ROT209 se va pronunta Romeo ın a ¸ Oscar Tango Two Zero Niner. dup˘ cum v˘ puteti convinge s a a ¸ uo¸r citind aceast˘ fraz˘. a a ¸a s Ca un alt exemplu. Ca urmare. codul numeric personal (CNP).a. Cum. ˆ englez˘. care ˆ ıncepe cu litera ce se dore¸te a fi transmis˘. 2 minute se va pronunta doi s a ¸ minute. Transmisia vocii prin radio sau prin telefonie analogic˘ este ˆ general a ın zgomotoas˘ ¸i adesea cu distorsiuni puternice. riscul erorilor de as transmisie este ridicat. nu garanteaz˘ detectarea nici m˘car s a a a ıns˘ a a a unei singure erori.c 2008. dintr-un set standardizat. de asemenea 7 se pronunt˘ ¸epte.

1. actioneaz˘ asupra mediului. nivelul s ¸ ¸ ¸ fizic trebuie s˘ fie capabil s˘ transmit˘ datele ˆ folosul acestora. a ¸ ¸ ¸ M˘rimea fizic˘ ce m˘soar˘ actiunea produs˘ de emit˘tor ¸i transmis˘ a a a a ¸ a ¸a s a de c˘tre mediu pˆn˘ la receptor ¸i care este utilizat˘ efectiv ca purt˘toare a a a s a a a informatiei se nume¸te semnal . a a a ın Sirul de biti ce trebuie transmis poart˘ denumirea de date utile.. un ¸ir de simboluri) produs de o surs˘ c˘tre o destinatie. nivelul fizic dispune de un mediu de a transmisie. . Semnalul este ˆ ¸ s ıntotdeauna analizat ca o functie continu˘ de timp. ˆ cons ¸a s ¸ a s ın formitate cu valorile lor. Problema transmisiei informatiei la nivelul fizic ¸ Sarcina nivelului fizic este aceea de-a transmite un ¸ir de biti (sau.1). ¸ a Nivelul fizic cuprinde trei elemente: mediul de transmisie. ¸ a ¸a ¸a a Sursa ¸i destinatia sunt . Radu-Lucian Lup¸a s 59 Capitolul 3 Nivelul fizic 3.clientii“ sistemului de comunicatie. Receptorul sesizeaz˘ ¸ a a actiunile emit˘torului asupra mediului ¸i reconstituie ¸irul de biti produs de ¸ ¸a s s ¸ surs˘. ¸ a M˘rimea fizic˘ utilizat˘ ca semnal este aleas˘ de proiectantul sistemua a a a lui de comunicatii dintre acele m˘rimi pe care mediul ales le poate propaga ¸ a ˆ conditii bune. s ¸ ˆ general. Mediul de transmisie se ˆ ıntinde de la amplasamentul sursei pˆn˘ a a la amplasamentul destinatiei ¸i este capabil s˘ transmit˘ la distant˘ o anumit˘ ¸ s a a ¸a a actiune fizic˘. Sursa ¸i ın s a a ¸ s destinatia se afl˘ la distant˘ una fat˘ de cealalt˘. De exemplu. emitatorul ¸˘ ¸i receptorul (vezi fig.c 2008. 3. ın ¸ semnalul poate fi tensiunea electric˘ dintre conductoare sau intensitatea curena tului prin conductoare. Sirul de biti reconstituit este livrat destinatiei. ¸ ¸ a Pentru ˆ ındeplinirea scopului s˘u. pentru transmisia prin perechi de conductoare. Emit˘torul prime¸te bitii de la surs˘ ¸i.

ˆ continuarea acestui capitol vom trece ˆ revist˘ problemele speciIn ın a fice legate de transmiterea semnalelor ¸i de codificarea informatiei prin sems ¸ nale. unde t este timpul. Semnalul m˘surat s ıl a . ın ınt ¸ a parametrilor specificati ˆ documentatiile privind echipamentele folosite ¸i. vom considera ˆ principal cazul transmiterii tenın siunii electrice printr-o pereche de conductoare.2. ¸ ın ¸ s mai ales.1. Radu-Lucian Lup¸a s 60 3. Prezentarea de fat˘ are ca scop familiarizarea cu notiunile ¸i proba ¸a ¸ s lemele respective. Problema transmisiei informatiei la nivelul fizic ¸ Nivelul fizic Sursa Emit˘tor ¸a Sir de ¸ biti ¸ Semnal Mediu Receptor Semnal Destinatie Sir de ¸ biti ¸ Figura 3. ˆ vederea ˆ ¸elegerii solutiilor existente. Receptorul efectueaz˘ operatia ¸ a ¸ invers˘. a a ¸ Schema de codificare utilizat˘ trebuie s˘ fie aceea¸i pentru emit˘tor a a s ¸a ¸i receptor. Transmiterea semnalelor 3. ¸ 3.2 care sunt transform˘rile suferite ¸a a ın a de semnal ˆ timpul propag˘rii.2. Modific˘rile suferite de semnale a Pentru a studia modific˘rile suferite de semnale ˆ timpul propag˘rii a ın a prin mediul de transmisie. Semnalul m˘surat la jonctiunea dintre emit˘tor ¸i mediu se nume¸te a ¸ ¸a s s semnal emis ¸i ˆ vom nota cu Ue (t). O parte din schemele folosite vor fi studiate ˆ t a a ın § 3.1: Modelarea transmisiei la nivel fizic Emit˘torul transform˘ ¸irul de biti receptionat ˆ ¸a as ¸ ¸ ıntr-un semnal adecvat transmiterii prin mediul de comunicatie. Corespondenta dintre ¸irurile de biti posibile ¸i semnalele corespunz˘toare a ¸ s ¸ s a poart˘ denumirea de schem˘ de codificare a informatiei prin semnal continuu.c 2008. posibilit˘¸ii comunic˘rii cu speciali¸tii ˆ domeniul electronicii ¸i at a s ın s comunicatiilor. Schema de codificare a informatiei trebuie s˘ ın a ¸ a ¸in˘ cont de aceste modific˘ri. O analiz˘ riguroas˘ a acestor probleme dep˘¸e¸te cu mult cadrul acestei a a as s lucr˘ri.1. astfel c˘ a ın a semnalul primit de receptor de la mediu nu este identic cu semnalul aplicat de emit˘tor asupra mediului. limit˘rilor lor.3. Vom ar˘ta ˆ § 3. s Mediul de transmisie modific˘ ˆ general semnalul transmis.

baze diferite dua cˆnd la valori proportionale. echivalent. ¸ a s ıntˆ Num˘rul 1/g se nume¸te factor de atenuare ˆ tensiune. factorul de atenuare ˆ putere este egal cu 1/g 2 . Radu-Lucian Lup¸a s Capitolul 3. dup˘ valoarea logaritmului se scrie o pseudo-unitate de m˘sur˘ a a a a ce arat˘ de fapt baza de logaritmare utilizat˘. Transform˘rile suferite de semnal sunt urm˘toarele: a a Ωˆ arziereaconst˘ ˆ faptul c˘ semnalul receptionat urmeaz˘ cu o anumit˘ ıntˆ a ın a ¸ a a ˆ arziere semnalul emis. definit ın ca raportul dintre puterea semnalului emis ¸i a celui receptionat.c 2008. ai factorilor de ın s a atenuare ai componentelor. are valoarea aproximativ˘ s ın a v ≈ 2/3c = 2 · 108 m/s. unde l este lungimea mediului iar Intˆ v v este viteza de propagare a semnalului. avem Ur (t) = g · Ue (t − ∆t). cu a a a ıntˆ 0 < g < 1. Avem 1 B=10 dB. deoarece puterea este proportional˘ cu p˘tratul ¸ a a tensiunii (raportul tensiune/intensitate fiind aproximativ constant). ın atenuarea const˘ ˆ faptul c˘ semnalul receptionat are amplitudine mai a ın a ¸ mic˘ decˆt cel emis. s ıntˆ ˆ arzierea are valoarea ∆t = l . Pseudo-unitatea de m˘sur˘ utilizat˘ curent este decibel ul. v depinde numai de materialul izolator dintre conductoare ¸i. Din acest motiv. are loc Ur (t) = g · Ue (t). avˆnd sima a a a bolul B. Dua rata ∆t se nume¸te ˆ arziere (de propagare) sau timp de propagare. Deoarece schimbarea bazei de logaritmare a ¸ are un efect similar cu schimbarea unit˘¸ii de m˘sur˘ pentru o m˘rime at a a a fizic˘. La transmisia prin conductoare. pseudo-unitatea de m˘sur˘ folosit˘ este bel ul. ˆ aceea¸i baz˘. ˆ cazul s ¸ In perechii de conductoare. Cu notatiile de mai sus ¸i neglijˆnd fenomenele ıntˆ ¸ s a ce vor fi descrise la punctele urm˘toare. avem Ur (t) = Ue (t − ∆t). ˆ loc de factorul de ın atenuare se folose¸te adesea logaritmul s˘u: logaritmul factorului de s a atenuare rezultat este suma logaritmilor. Viteza de propagare a semnalului depinde de natura mediului de transmisie. a a a avˆnd simbolul dB. Pentru logaritmul ˆ a a ın baza zece. ın Prin conectarea unul dup˘ cel˘lalt a mai multor medii de transa a misie. fie ca valoarea logaritmului ˆ baza ın . unde c este viteza luminii ˆ vid. pentru materialele folosite ˆ mod curent. a s ın De cele mai multe ori atenuarea unui semnal este exprimat˘ prin a factorul de atenuare ˆ putere. Tinˆnd cont ¸i de ˆ arziere. Logaritmul factorului de atenuare se nume¸te pe scurt atenuare. s Valoarea logaritmului depinde de baza utilizat˘. factorul de atenuare a mediului rezultat este produsul factorilor de atenuare ai componentelor. numit pe scurt factor de atenuare. O valoare exprimat˘ ˆ decia a ın beli (dB) o putem vedea. Neglijˆnd ˆ arzierea. Nivelul fizic 61 la jonctiunea dintre mediu ¸i receptor se nume¸te semnal receptionat ¸i ˆ vom ¸ s s ¸ s ıl nota cu Ur (t).

ˆ miliwatti. se nume¸te pragul de sensibila s itate al receptorului. oridecˆteori transmitem un acela¸i semnal. Ca exemple: ¸ s at o putere de emisie de 1 mW poate fi scris˘ ¸i 0 dBm. Puterea minim˘ a semnalului receptionat. Dac˘ factorul de atenuare este 2.1 mW se scrie ca −10 dBm. care este un zgomot a provenit din semnalul transmis pe un mediu de transmisie vecin.2. modificarea se a a a s manifest˘ identic. De ex¸ a ın 2 ) = 10. o putere de 1 W as se scrie 30 dBm.2. a Zgomotul se exprim˘ ca diferenta dintre semnalul receptionat efeca ¸ ¸ tiv ¸i semnalul ce ar fi receptionat ˆ lipsa zgomotului. logaritmul s˘u este emplu. ın ın distorsiunea este o modificare determinist˘ a semnalului receptionat fat˘ a ¸ ¸a de cel emis. Adesea. a a O categorie special˘ de zgomot este diafonia. Raportul sems ¸ ın nal/zgomot este raportul dintre puterea semnalului ¸i puterea cores spunz˘toare zgomotului.3 B = 3 dB. este specificat˘ nu puterea ci logaritmul puterii: se ia a num˘rul ce reprezint˘ puterea. dac˘ factorul de atenuare este (1/g a a 1 B = 10 dB. pentru care receptorul a ¸ este capabil s˘ decodifice corect semnalul. Pseudo-unitatea de m˘sur˘ corespunz˘toare reprezent˘rii ın a a a a de mai sus se nume¸te decibel-miliwatt. alte sisteme de transmisie de date. Puterea semnalului emis se m˘soar˘ ˆ watti (W) sau miliwatti a a ın (mW). avˆnd simbolul (neconform regs a ulilor Sistemului International de Masuri ¸i Unit˘¸i) dBm. ˆ ıntrerup˘toare a electrice. zgomotele sunt modific˘ri nedeterministe ale semnalului receptionat. 3. alte echipamente electronice) sau de factori interni cu manifestare aleatoare (mi¸carea de agitatie s ¸ termic˘ a atomilor din dispozitivele electornice). iar 0. care are o intrare ¸i o ie¸ire a s s .c 2008. diferit˘ de ˆ arziere ¸i atenuare. fie ca valoarea logaritmului ˆ baza 101/10 . de obicei nu este s pericol de confuzie deoarece logaritmul este exprimat ˆ decibeli. ˆ timp ın ın ce raportul semnal/zgomot nu are unitate de m˘sur˘. Transmiterea semnalelor 10 ˆ ınmultit˘ cu 10. a ¸ cauzate de factori externi sistemului de transmisie (fulgere. (O modificare este detera ıntˆ s minist˘ dac˘. pragul de sensibilitate s ¸a se poate exprima ˆ miliwatti sau ˆ decibel-miliwatti. Ca ¸i puterea emit˘torului. Radu-Lucian Lup¸a s 62 3.2.2. Analiza transmiterii semnalelor cu ajutorul transformatei Fourier Consider˘m un dispozitiv electronic.2.) Mai multe detalii despre distorsiuni vor fi date ˆ a ın § 3. logaritmul s˘u (atena a uarea) este log10 2 B ≈ 0. Uneori termenul de raport semnal/zgomot este a utilizat ¸i pentru logaritmul raportului semnal/zgomot. ¸i logaritmul s˘u se exprim˘ a a ın s a a ˆ decibeli.

ˆ particular. . s s Ue (t) = g(f ) · U0 · cos(2πf t + φ − θ(f )). o pereche de conductoare folosit˘ pentru transmisie In a poate fi considerat˘ un astfel de dispozitiv. Dispozitivele liniare au proprietatea c˘. Reamintim c˘ un a a operator L este liniar dac˘.. dac˘ semnalul de intrare este a a sinusoidal . ie¸irea. dac˘ semnalul de intrare Ui (t) poate fi a descompus ca o sum˘ de forma a Ui (t) = α1 Ui1 (t) + α2 Ui2 (t) + · · · + αn Uin (t).Uen = L(Uin ). atunci pentru semnalul de ie¸ire avem s Ue (t) = L(Ui )(t) = α1 Ue1 (t) + α2 Ue2 (t) + · · · + αn Uen (t). mai mult. Valoarea operatorului este functia timp-tensiune Ue = ¸ L(Ui ) care caracterizeaz˘ semnalul de ie¸ire. ˆ a ˆ s ıns˘ ın general depinde de tot istoricul ei. . are loc s L(αf + βg) = αL(f ) + βL(g). adic˘ opa eratorul L care le caracterizeaz˘ este un operator liniar. adic˘ a Ui (t) = U0 · cos (2πf t + φ) . s Ui Ue Figura 3. unde Ue1 = L(Ui1 ). Ue2 = L(Ui2 ). . .2: Un dispozitiv cu o intrare ¸i o ie¸ire s s Tensiunea de la ie¸ire depinde de tensiunea de la intrare. 3. a s Multe dispozitive electronice au un comportament liniar. Pentru un dispozitiv liniar. atunci semnalul de ie¸ire este tot sinusoidal ¸i. Radu-Lucian Lup¸a s Capitolul 3.2).c 2008. Acest ¸ ¸ operator prime¸te ca argument functia timp-tensiune Ui care caracterizeaz˘ s ¸ a semnalul de intrare. iar cele dinspre receptor. Nivelul fizic 63 (fig. capetele dinspre emit˘tor constia ¸a tuind intrarea. comportamentul dispozitivului poate fi descris de un operator L (reamintim c˘ un operator este o functie a ¸ definit˘ pe un spatiu de functii cu valori tot ˆ a ¸ ¸ ıntr-un spatiu de functii). pentru orice functii f ¸i g ¸i pentru orice scalari a ¸ s s α ¸i β. Altfel spus.

aici facem doar o a prezentare semi-intuitiv˘). Relatia (3.1) spune c˘ semnalul U se poate scrie ca o sum˘ de sinu¸ a a soide cu diferite frecvente f avˆnd amplitudinile a(f ) ¸i defazajul (decalajul ¸ a s sinusoidei de-a lungul axei Ox) egal cu φ(f ). T Un semnal limitat ˆ timp. adic˘ nul ˆ afara unui interval finit [0. Radu-Lucian Lup¸a s 64 3. calculˆnd efectul dispozitivului a ın a asupra fiec˘rei sinusoide ˆ parte ¸i ˆ a ın s ınsumˆnd ˆ final ie¸irile: a ın s . ın a ın se poate descompune sub forma: ∞ U (t) = 0 a(f ) · cos (2πf t + φ(f )) df.1) este dat˘ de obicei sub forma numit˘ transformata a ¸ a a Fourier invers˘ : a U (t) = I R ˆ U (f ) · e2πif t df. de exemplu [Crstici et al. a (Nota: conditiile matematice asupra semnalului. Frecventele f pentru care amplitudinile corespunz˘toare a(f ) sunt ¸ a nenule alc˘tuiesc spectrul semnalului. 1981]. Transmiterea semnalelor unde g(f ) ¸i θ(f ) depind doar de cum este construit dispozitivul ¸i de frecventa s s ¸ f a semnalului. T ].2) ˆ unde U este o functie complex˘ care se nume¸te transformata Fourier a functiei ¸ a s ¸ U.2. semnalul de ie¸ire se poate calcula des scompunˆnd ˆ sinusoide semnalul de intrare.c 2008. (3. Orice semnal se poate scrie unic ca o sum˘ de semnale sinusoidale. a Pentru un dispozitiv liniar. a Un semnal periodic de perioad˘ T se poate descompune ˆ a¸a-numita a ın s serie Fourier : ∞ U (t) = k=0 ak cos 2πk t + φk . ¸i alte detalii se g˘sesc ˆ ¸ s a ın lucr˘rile de specialitate.1) Not˘: relatia (3. (3.

4) este satisf˘cut˘. conditia (3. pe durata a a s . cu o aproximatie acceptIn a ¸ a a ¸ abil˘. a semnalului de intrare Ui . ¸ s at a De exemplu. ¸ Comportamentul unui dispozitiv liniar este deci complet definit de functiile g(f ) ¸i θ(f ). banda de trecere a unei linii telefonice este cuprins˘ a ˆ ıntre aproximativ 300 Hz ¸i 3 kHz. g(f ) este constant˘ ¸i θ(f ) este proportional ¸ as ¸ cu f .1.3. Diferenta fmax − fmin se nume¸te l˘¸imea de band˘ a dispozitivului.3) = 0 ∞ L(ai (f ) · cos(2πf t + φi (f )))df = = 0 ai (f ) · g(f ) · cos(2πf t + φi (f ) − θ(f ))df. s 3.3. unde ai (f ) ¸i φi (f ) sunt functiile a(f ) ¸i φ(f ) din descompunerea. semnalul de ie¸ire va prezenta distorsiuni acceptabil de s mici. Nivelul fizic 65 Ue (t) = L(Ui (t)) = ∞ = L 0 ∞  ai (f ) · cos(2πf t + φi (f ))df  = (3. Codificarea informatiei prin semnale continue ¸ 3. adic˘ exist˘ constantele g0 ¸i θ0 astfel ˆ at a a s ıncˆ g(f ) = g0 θ(f ) = θ0 f (3. ˆ s In consecint˘. doar pentru frecvente care se ˆ a ¸ ıncadreaz˘ ˆ a ıntr-un anumit interval f ∈ [fmin . ¸ ˆ practic˘. Scheme de codificare Cea mai simpl˘ codificare este aceea ˆ care ˆ artim timpul ˆ ina ın ımp˘ ¸ ın tervale de durat˘ fixat˘ ∆t (pe care o numim lungimea unui bit) ¸i. Radu-Lucian Lup¸a s Capitolul 3.4) pentru toate frecventele f din spectrul semnalului. ¸ s Un semnal este nedistorsionat dac˘ ¸i numai dac˘.1). fmax ]. conform s ¸ s relatiei (3. dac˘ spectrul semnalului de intrare se ˆ ¸a a ıncadreaz˘ ˆ banda de trea ın cere a dispozitivului.c 2008. pentru toate frecas a ventele f din spectrul semnalului. Acest interval se nume¸te banda de trecere a dispozitivului.

Num˘rul de biti consecutivi identici ın a ¸ trebuie s˘ fie limitat.sus“ (peste prag) ¸i va determina de cˆte ori se a s a cuprinde ˆ acest interval durata unui bit. U ∆t 0 1 1 0 0 0 1 0 1 1 0 1 1 t Figura 3. Valoarea pragului poate fi fix˘ sau poate fi stabilit˘ dinamic ˆ functie a a ın ¸ de amplitudinea semnalului receptionat pentru a ¸ine cont de atenuare. ¸ a s a Limitarea num˘rului de biti identici consecutivi se poate face ˆ mai a ¸ ın multe feluri: Codificarea Manchester. pe un mediu separat (adic˘ folosind o alt˘ a a pereche de fire). ¸ t S˘ observ˘m c˘ receptorul trebuie s˘ fie sincronizat cu emit˘torul.4). Radu-Lucian Lup¸a s 66 3. Semnalul are una sau dou˘ tranzitii pentru a ¸ fiecare interval corespunz˘tor unui bit. ˆ acest scop. receptorul va m˘sura In a timpul cˆt semnalul este . O tranzitie la mijlocul intervala ¸ ului arat˘ valoarea bitului: tranzitia este ˆ sus pentru 1 ¸i ˆ jos pentru a ¸ ın s ın 0. semnalul emis va avea o anumit˘ valoare — de exemplu 12 V — a a dac˘ bitul are valoarea 1 ¸i o alt˘ valoare — de exemplu 0 V — dac˘ bitul are a s a a valoarea 0 (vezi fig.. de sincronizare. dac˘ receptorul s a dispune de un ceas suficient de precis. c˘ci receptorul nu va putea distinge ˆ a a ıntre n biti ¸i n + 1 ¸ s biti consecutivi avˆnd aceea¸i valoare. Dac˘ tensiunea este mai mare decˆt o a a a valoare numit˘ prag — pentru exemplul nostru se poate lua ca prag 3 V — a receptorul decide c˘ bitul respectiv are valoarea 1. Sincronizarea se poate face ¸i pe baza semnalului util.c 2008. a a a a ¸a adic˘ s˘ examineze semnalul receptionat la mijlocul intervalului corespunz˘tor a a ¸ a unui bit. 3. Pentru a face posibil ca doi biti consecutivi s˘ aib˘ aceea¸i valoare. dac˘ n este prea mare.3). Acest lucru se poate face — ˆ a este adesea nepractic — transmitˆnd ıns˘ ¸a un al doilea semnal. iar ˆ caz contrar decide c˘ a ın a bitul are valoarea 0.3. ¸ . ¸ a a s la ˆ ınceputul intervalului corespunz˘tor unui bit mai poate s˘ apar˘ o a a a tranzitie (fig. 3. Codificarea informatiei prin semnale continue ¸ fiec˘rui bit.3: Codificarea direct˘ a Receptorul determin˘ intervalele corespunz˘toare bitilor ¸i m˘soar˘ a a ¸ s a a semnalul la mijlocul fiec˘rui interval.

s a Retelele Ethernet de 100 Mbit/s utilizeaz˘ un cod de grup cu n = 4 ¸ a ¸i m = 5. ¸ a Codul este determinat de numrele n ¸i m ¸i de aceast˘ tabel˘.5). 3.4: Codificarea Manchester Codificarea Manchester diferential˘. Dac˘ bitul este 1 atunci semnalul mai are a a o tranzitie la mijlocul intervalului (fig. ¸ U ∆t 0 1 1 0 0 0 t Figura 3.5: Codificarea Manchester diferential˘ ¸ a Codurile de grup sunt o familie de coduri construite dup˘ urm˘toarea a a schem˘: a Se fixeaz˘ un num˘r n (valori uzuale: n = 4 sau n = 8). s s a a Sirul de biti de codificat se codific˘ astfel: mai ˆ ai. cu s ¸ s ¸ restrictia ca ˆ ¸ ıntre cei m biti s˘ nu fie prea multe valori egale consecutive. ¸irul a a s transmis trebuie s˘ aib˘ ca lungime un multiplu de n biti. a a ¸ Se fixeaz˘ o tabel˘ de corespondent˘ care asociaz˘ fiec˘ruia dintre a a ¸a a a cele 2n ¸iruri de n biti posibile un ¸ir de m biti. un bit 0 fiind reprezentat printr-o ¸ ¸ a valoare a tensiunii ¸i un bit 1 prin alt˘ valoare. ¸ a U ∆t 0 1 1 0 0 0 t Figura 3. fiecare grup ¸ ¸ a ıntˆ de n biti consecutivi se ˆ ¸ ınlocuie¸te cu ¸irul de m biti asociat. s . Apoi ¸irul s s ¸ s de biti astfel obtinut se codific˘ direct. Radu-Lucian Lup¸a s Capitolul 3. Nivelul fizic 67 Retelele Ethernet de 10 Mbit/s utilizeaz˘ codificarea Manchester.c 2008. Semnalul are o tranzitie la ˆ ¸ a ¸ ınceputul fiec˘rui interval de bit. unde m > n este fixat.

un a a 1 timp τ o valoare ¸i urm˘torul timp τ cealalt˘ valoare va fi distorsionat atˆt s a a a de mult ˆ at . durata ¸ a s s unui bit util este m τ ¸i avem k = m .urcu¸urile“ ¸i . Pentru a ın a codificarea direct˘. La codificarea direct˘. alternativ. ¸ a Pentru un mediu dat. ¸ a 2 1 Dac˘ banda de trecere a mediului include intervalul 0. durata unui s a bit este egal˘ cu τ ¸i deci k = 1.3. a Diversele codific˘ri studiate mai sus au diferite rapoarte k ˆ a ıntre durata medie a unui bit ¸i valoarea lui τ . a Semnalele de form˘ rectangular˘ descrise mai sus au spectru ina a finit (spectrul lor nu este m˘rginit superior). Dac˘ limita superioar˘ a benzii de trecere este fmax . O ın posibil˘ solutie este modulatia. prin urmare.. τ = 1 ∆t. exist˘. atunci un semnal rectangular care are. Modulatia ¸ Exist˘ situatii ˆ care este necesar ca spectrul semnalului s˘ ocupe a ¸ ın a o band˘ departe de frecventa zero. durata unui bit este 2τ ¸i avem k = 2.3.. ¸ a a 1 valoarea minim˘ este τ = 2fmax . a ¸ ¸ a ın . cu o band˘ de trecere dat˘. La codific˘rile Manchester ¸i Manchester a s a s diferential˘. fie pentru a putea transmite mai multe semnale pe acela¸i mediu prin multiplexare ˆ frecvent˘ s ın ¸a (vezi § 3.rotunjite“ mai ¸ at a a mult sau mai putin. Debitul maxim cu care se pot transmite n n datele este fmax . Radu-Lucian Lup¸a s 68 3. ¸ S˘ not˘m cu τ durata elementar˘ a unui palier al semnalului ideal a a a (durata minim˘ ˆ care semnalul ideal are o valoare constant˘). pentru codificarile Manchester ¸i Manchester a s diferential˘.coborˆ¸urile“ semnalului nu vor mai putea fi ıncˆ s s as identificate de c˘tre receptor ¸i ca urmare informatia purtat˘ nu mai poate fi a s ¸ a obtinut˘. Dac˘ frecventa maxim˘ a benzii de trecere ¸ a a ¸ a este mai mic˘ decˆt 2τ . τ = ∆t. semnalul rezultat direct ˆ urma uneia dintre schemele In ¸ ın de codificare descrise ˆ paragraful precedent nu poate fi transmis direct.3). Aceasta se poate ˆ ampla fie pentru c˘ a ¸ ıntˆ a circuitele sau mediul de transmisie nu pot transmite frecventele apropiate de ¸ zero (este de exemplu cazul transmiterii prin unde radio). atunci a mediul p˘streaz˘ suficient din forma semnalului pentru ca receptorul s˘ poat˘ a a a a decodifica informatia transmis˘.. Trecute printr-un mediu de a comunicatie care are o l˘¸ime de band˘ finit˘.3. Codificarea informatiei prin semnale continue ¸ S˘ examin˘m acum cerintele privind banda de trecere a mediului a a ¸ necesar˘ pentru transmiterea semnalelor de mai sus. k 3.c 2008. descris˘ ˆ continuare. ˆ aceste situatii.2. a a a o valoare minim˘ a lui τ pentru care receptorul poate extrage informatia util˘ a ¸ a din semnalul receptionat. 2τ . semnalele vor fi . La codurile de grup.

se nume¸te semnal purt˘tor. f sau φ variaz˘ ˆ timp. ¸ AM ). Nivelul fizic 69 Semnalul transmis efectiv este de forma: U (t) = a · sin(2πf t + φ). engl. Se observ˘ c˘ modulatia ˆ amplitudine este liniar˘ (modulatia a a ¸ ın a ¸ sumei a dou˘ semnale a + b este suma rezultatelor modulatiei indepena ¸ dente pentru a ¸i b). avem: a modulatia de amplitudine (prescurtat MA. ¸˘ a s ın Semnalul rezultat ˆ urma modulatiei se nume¸te semnal modulat. iar frecventa f de repaus se nume¸te s s a ¸ s frecventa purt˘toare ¸i o vom nota ˆ continuare cu fp . Semnalul original ˆ numim semnal primar sau semnal modulator. unde unul dintre parametri a.. se nume¸te demodulatie. amplitude modulation. rezultat direct din codificare. ın ¸ s Operatia de constructie a semnalului modulat pornind de la semnalul ¸ ¸ primar se nume¸te modulatie. asupra semnalului s(t) se impune restrictia a a ¸ s(t) > 0. de obtinere a semnalului pris ¸ ¸ a ¸ mar dˆndu-se semnalul modulat. ˆ functie de semnalul a ın ın ¸ original.5) m m cos(2π(fp − fs )t − φ) − cos(2π(fp + fs )t + φ) 2 2 .de repaus“ ale parametrilor a. rezultat pentru valorile . ıl Semnalul sinusoidal. Pentru ca amplitudinea a = U0 · s(t) s˘ fie mai mare decˆt 0. Operatia invers˘. Semnalul transmis este a ın deci: U (t) = U0 · s(t) · sin(2πfp t). unde s(t) este semnalul modulator. f ¸i φ. a s ¸ Dup˘ parametrul modificat. Radu-Lucian Lup¸a s Capitolul 3. care const˘ ˆ modificarea amplitudinii a.c 2008. s Dac˘ semnalul modulator este sinusoidal a s(t) = 1 + m · sin(2πfs t + φ) atunci U (t) =U0 · s(t) · sin(2πfp t) = =U0 · (sin(2πfp t) + m · sin(2πfs t + φ) · sin(2πfp t)) = =U0 · + sin(2πfp t)+ (3.

t s Din liniaritatea modulatiei ˆ amplitudine ¸i din relatia (3. a as a a ¸ dintre frecventa purt˘toare ¸i frecventele din spectrul semnalului primar. care const˘ ˆ modificarea frecventei f ˆ jurul frecventei pura ın ¸ ın ¸ t˘toare fp . o valoare constant˘ a lui s(t) nu poate fi de¸ a osebit˘ de zero ¸i. modulatia de frecvent˘ (prescurtat MF. Codificarea informatiei prin semnale continue ¸ adic˘ ˆ urma modulatiei ˆ amplitudine cu un semnal sinusoidal de a ın ¸ ın frecvent˘ fs se obtine o sum˘ de trei semnale sinusoidale avˆnd frecven¸a ¸ a a ¸ele fp − fs . Din acest motiv. ¸ a s ¸ ˆ Intrucˆt spectrul semnalului modulat este simetric ˆ jurul freca ın ventei purt˘toare. s(t) este semnalul modulator. frequency modulation. a a ın ¸ ın modulatia de faz˘. speca a trul semnalului modulat contine frecventa purt˘toare ¸i dou˘ benzi lat¸ ¸ a s a erale.3. fp ¸i fp + fs . s a s .5) de¸ ın s ¸ ducem c˘. ˆ consecint˘. Modulatia ˆ cuadratur˘ const˘ ˆ varierea simultan˘ a amplitu¸ ın a a ın a dinii a ¸i a fazei φ. Semnalul modulator trebuie s˘ respecte restrictia a a ¸ m · s(t)s0 fp . pentru a transmite simultan dou˘ semnale utile s1 ¸i s2 . ¸ a iar m este o constant˘. engl. ¸ ¸a FM ). stˆng˘ ¸i dreapt˘. respectiv sumele. spectrul lui s(t) nu poate contine frecvente In ¸a ¸ ¸ prea apropiate de 0. Ca urmare. care const˘ ˆ modificarea fazei φ.c 2008. fp este frecventa purt˘toare. acestea cuprinzˆnd diferentele. ˆ a ıntrucˆt receptorul nu are de obicei un reper aba solut de timp. adesea se suprim˘ total sau partial de la ¸ a a ¸ transimisie una dintre benzile laterale. Exist˘ ¸i posibilitatea de-a varia simultan doi sau chiar toti cei trei as ¸ parametri. Radu-Lucian Lup¸a s 70 3. el nu poate detecta decˆt variatiile de faz˘ ale semnalului a ¸ a receptionat. Analiza spectrului unui semnal modulat ˆ frecvent˘ este mult mai ın ¸a difcil˘ decˆt ˆ cazul modulatiei ˆ amplitudine. a Semnalul transmis are forma U (t) = U0 · sin 2π · (fp + m · s(t)) · t unde. nici variatii lente ale lui s(t) nu pot fi a s ¸ detectate. mai mult. pentru un semnal modulator avˆnd un anumit spectru. din nou. de fapt doar una dintre benzile laterale poart˘ infor¸ a a matie util˘. ¸ a a ın Semnalul transmis are forma U (t) = U0 · sin 2πfp t + m · s(t) Este evident c˘.

ˆ acela¸i fel a ın ¸ ın s ˆ care cunoa¸terea principiului conserv˘rii energiei ne folose¸te pentru a nu ın s a s ˆ ıncerca constructia unui perpetuum mobile — ˆ ¸ ıncercare din start sortit˘ e¸ea s cului. const˘ ˆ transmiterea mai multor semnale ın a ın independente prin acela¸i mediu de transmisie. Ca urmare. a ¸a a 3. ˆ general. s Dou˘ semnale ale c˘ror spectre se ˆ a a ıncadreaz˘ ˆ benzi disjuncte pot a ın fi separate cu ajutorul unor dispozitive numite filtre (de frecvent˘).3. fmax ) este unic determinat de 1 valorile sale la momente de timp situate la intervale egale cu ∆t = 2fmax unul de altul. un semnal al c˘rui spectru este inclus ˆ intervalul a ın [0. .4. Teorema de e¸antionare a lui Shannon spune c˘ un semnal al c˘rui s a a spectru se ˆ ıncadreaz˘ ˆ a ıntr-un interval [0. Limitarea a a a este independent˘ de schema de codificare utilizat˘ pentru transmisie ¸i ca a a s urmare este valabil˘ pentru orice schem˘ de codificare ne-am putea imagina. ın Emit˘toarele produc semnale cu spectre disjuncte prin modulatie uti¸a ¸ lizˆnd frecvente purt˘toare diferite. debitul maxim de informatie ce poate fi transmis este proportional ¸ ¸ cu ∆f · log(s/n + 1). Pentru un mediu cu l˘¸imea de band˘ ∆f ¸i cu raportul semnal/zgoat a s mot s/n.c 2008. a a Este util s˘ avem ˆ vedere existenta acestei limite. Capacitatea maxim˘ a unui canal de comunicatie a ¸ Banda de trecere a mediului de transmisie ˆ ımpreun˘ cu raportul sema nal/zgomot determin˘ o limit˘ superioar˘ a debitului transmisiei.3.3. Nivelul fizic 71 Semnalul modulat are forma U (t) = U0 · s1 (t) s2 (t) = U0 · ((s1 (t)) cos(2πfp t) + (s2 (t)) sin(2πfp t)) s1 (t)2 + s2 (t)2 · sin 2πfp t + arctg 3. De notat c˘ diferentele ˆ a ¸ a a ¸ ıntre frecventele ¸ purt˘toare trebuie s˘ fie mai mari decˆt l˘¸imile de band˘ necesare transmisiei a a a at a semnalelor corespunz˘toare. fmax ) nu poate purta mai mult˘ informatie decˆt e¸antioanele sema ¸ a s 1 nalului luate la interval 2fmax unul de altul. Radu-Lucian Lup¸a s Capitolul 3. ¸a Multiplexarea ˆ frecvent˘ const˘ ˆ transmiterea simultan˘ prin aın ¸a a ın a cela¸i mediu a unor semnale avˆnd spectre ˆ s a ıncadrate ˆ benzi disjuncte. Acest rezultat provine din urm˘toarele dou˘ observatii: a a ¸ 1. Multiplexarea ˆ frecvent˘ ın ¸a Multiplexarea. a Fiecare receptor trebuie s˘ fie dotat cu un filtru care s˘ lase s˘ treac˘ a a a a doar banda utilizat˘ de emit˘torul coresunz˘tor.

sau — a a a a pentru a fi mai flexibile — dintr-un m˘nunchi de sˆrme subtiri. Policlorura de s a vinil (PVC). ˆ care conductoarele sunt paralele unul fat˘ de cel˘lalt. receptorul nu poate distinge ˆ In ¸ ıntre dou˘ vala ori posibile ale semnalului la un anumit moment de timp decˆt dac˘ a a diferenta dintre cele dou˘ valori este mai mare decˆt amplitudinea zgo¸ a a motului.4.4.3. Fiecare a a ¸ conductor este ˆ ınvelit ˆ ıntr-un strat izolator.c 2008. Constructia cablului ¸ Conductoarele trebuie realizate dintr-un material cu conductivitate electric˘ ridicat˘. a a ın Izolatia dintre conductoare trebuie s˘ nu absoarb˘ mult˘ energie ¸ a a a ˆ acest scop doar anumite dac˘ este plasat˘ ˆ a a ıntr-un cˆmp electric variabil. a ¸ a Deoarece pentru o schem˘ de codificare fixat˘ exist˘ o relatie de a a a ¸ proportionalitate ˆ ¸ ıntre l˘¸imea de band˘ a mediului ¸i debitul maxim al transat a s misiei. s ın at a a 3. a ¸a din aceast˘ cauz˘ nu se poate folosi ˆ circuite de semnal. cantitatea de informatie purtat˘ de un e¸antion este ¸ a s limitat˘ la o valoare proportional˘ cu log(s/n + 1). Radu-Lucian Lup¸a s 72 3. este posibil ca un ˆ paralel. 3. ˆ prezenta zgomotului. Semnalul este considerat a fi tensiunea electric˘ a ˆ ıntre conductoare. a ın ¸a a Conductoarele pot fi alc˘tuite dintr-o singur˘ sˆrm˘ de cupru. a ˆ cadrul unui cablu. dar nu ofer˘ sustinere mecanic˘. Ca urmare. Aproape ˆ toate cazurile materialul folosit este cuprul. debitul maxim al transmisiei unui echipament de comunicatie se nu¸ me¸te uneori ˆ mod impropriu tot l˘¸ime de band˘ sau band˘ de trecere. utilizat˘ adesea la izolarea conductoarelor de alimentare cu ena ergie electric˘. a ın ın . Transmisia prin perechi de conductoare La transmisia prin perechi de conductoare. Codificarea informatiei prin semnale continue ¸ 2. ˆ acest caz. In ın a conductor s˘ fie comun. In a substante sunt potrivite. Materialele utilizate cel mai frecvent sunt polietilena ¸ ¸i politetrafluoretilena (cunoscut˘ sub numele de Teflon TM ). formˆnd un cablu. n circuite utilizeaz˘ n + 1 conductoare. absoarbe prea mult din puterea unui semnal de frecvent˘ mare. a ¸ a Ca form˘ ¸i dispunere relativ˘. Adesea. Aerul este cel mai a a ın bun izolator. exist˘ trei constructii utilizate: as a a ¸ • Perechea simpl˘. ˆ In a ın loc de 2n cˆte sunt ˆ cazul ˆ care perechile sunt complet separate. partajat ˆ a ıntre dou˘ sau mai multe circuite de a semnalizare.1. mediul const˘ din dou˘ a a conductoare izolate ˆ ıntre ele. mai multe perechi de conductoare sunt duse ˆ ımpreun˘.

reducerea costului. perechea simpl˘ se s at a utilizeaz˘ doar pe distante mici. totodat˘. trebuie s˘ aib˘ continuitate de jur ˆ a a a ımprejurul conductoarelor (dac˘ este realizat prin ˆ a¸urarea unei foite metalice. apare diafonie foarte puternic˘ ˆ a In a ıntre circuite (mai mare decˆt la perechea simpl˘). evident. marginile foitei trebuie a ınf˘s ¸ ¸ s˘ fac˘ contact ferm ˆ a a ıntre ele) ¸i pe lungime (s˘ aib˘ leg˘tur˘ prin conectoare s a a a a . Din cauza diafoniei ¸i sensibilit˘¸ii la zgomote. Nivelul fizic 73 Avantajul este. Pentru ca ecranul s˘ fie eficient. Are de obicei atenuare mai mic˘ decˆt perechea simpl˘ sau a a a a cea torsadat˘. • Perechea coaxial˘ are unul din conductoare ˆ forma unui cilindru gol ˆ a ın ın interior. iar dezavantajul este m˘rirea a diafoniei ˆ ıntre circuite. mic¸orarea a s a s cˆmpului electromagnetic produs de semnalul ce trece prin perechea de a conductoare. Rolul r˘sucirii este de-a mic¸ora interactiunea ın a s ¸ cu cˆmpul electromagnetic ˆ a ınconjur˘tor. care verific˘ doar continuitatea ˆ curent continuu a conduca ın toarelor cablului. Radu-Lucian Lup¸a s Capitolul 3. fiecare circuit de comunicatie s˘ utilizeze conductoarele din ¸ a aceea¸i pereche ¸i nu un conductor dintr-o pereche ¸i un conductor din s s s alt˘ pereche. ˆ a¸urate a a a ¸ ınf˘s elicoidal. adic˘ mic¸orerea zgomotului a a s indus de un cˆmp electromagnetic ˆ a ınconjur˘tor ¸i. Cablurile a ¸ a a formate din perechi torsadate nu au niciodat˘ un conductor comun pena tru mai multe circuite. adic˘ ˆ a a ınvelit˘ ˆ a ıntr-un strat conductor continuu. a ¸ • Perechea torsadat˘ (engl. ˆ caz contrar. ˆ afar˘ de s In a r˘sucire. iar cel˘lalt conductor este dus prin interiorul primului conduca tor ¸i izolat electric fat˘ de acesta. Conductorul exterior este format s ¸a de obicei dintr-o plas˘ format˘ din sˆrme subtiri de cupru. pentru a reduce suplimentar interferentele In ¸ cu cˆmpul electromagnetic ˆ a ınconjur˘tor. o parte din fire fiind ˆ a¸urate ˆ ınf˘s ıntr-un sens ¸i alt˘ parte ˆ s a ın cel˘lalt sens. Acest lucru este important ˆ special pentru mic¸orarea diın s afoniei cu celelalte perechi de conductoare din acela¸i cablu. twisted pair ). De remarcat c˘ aceast˘ a a a a gre¸eal˘ este u¸or de comis ˆ urma unei identific˘ri gre¸ite a conducs a s ın a s toarelor dintr-un cablu ¸i nu este pus˘ ˆ evident˘ de dispozitivele simple s a ın ¸a de testare. a Cablul coaxial este ¸i mai protejat de interferente decˆt perechea s ¸ a torsadat˘. restul constructiei este identic˘ cu perechea simpl˘.c 2008. ˆ cazul unui cablu ce contine mai multe perechi ın ¸ torsadate. Este important ca. ˆ care conductoarele sunt r˘sucia ın a te unul ˆ jurul celuilalt. a ıns˘ ˆ oricare dintre variante. Costul este ˆ a mai ridicat. perechea de conductoare poate fi a ecranat˘ .

pierderile ˆ dieleca a ın tric (la frecvente mari dielectricul absoare o parte din energia cˆmpului ¸ a electric dintre conductoare) ¸i efectul pelicular (la frecvente mari curens ¸ tul electric din conductoare nu circul˘ uniform ˆ toat˘ masa acestora a ın a ˆ atrˆnirea izolatiei cablului duce ci doar ˆ vecin˘tatea suprafetei). s ¸ Atenuarea semnalului. a a at Limit˘rile sunt date de dou˘ fenomene independente. perechea s ¸ a In ¸ de conductoare are comportament de linie lung˘. pentru un tip de cablu se specific˘ rapora tul dintre logaritmul factorului de atenuare ¸i lungimea corespunz˘toare. Orice cablu este ˆ a¸urat cel putin ˆ ¸ ınf˘s ¸ ıntr-o manta de protectie. Se specific˘ de obicei prin raportare la viteza luminii ˆ a ın vid (notat˘ c. Impedanta caracteristic˘ a mediului.Ethernet gros“. ¸ care ¸ine la un loc ¸i protejeaz˘ mecanic conductoarele. Se ˆ ıntinde de la zero pˆn˘ la o frecvent˘ a a ¸a maxim˘ de ordinul a cˆteva sute de megahertzi sau cˆ¸iva gigahertzi. Propriet˘¸i ale mediului at ˆ cele ce urmeaz˘ vom presupune c˘ lungimea cablului este fie de In a a acela¸i ordin de m˘rime fie mai mare decˆt raportul dintre viteza luminii ˆ s a a ın vid ¸i frecventa maxim˘ din spectrul semnalului. a a 3. a Ecranul unui cablu poate fi colectiv.2. Se a at a a . logaritmul factorului de atenuare cre¸te liniar cu In ¸a s lungimea mediului. Cu titlu de exemplu. S˘ presupunem c˘ ata¸˘m la un ¸ a a a sa cap˘t al unei buc˘¸i infinite de cablu o surs˘ de tensiune alternativ˘. Propriet˘¸ile electrice mai importante ale mediului sunt: at Viteza de propagare a semnalului prin mediu. Mantaua de protectie t s a ¸ este fabricat˘ de obicei din PVC. a Un cablu destinat mont˘rii aerian trebuie s˘ fie prev˘zut cu un cablu a a a de otel pentru sustinere mecanic˘. s a ˆ decibeli pe kilometru. sau individual pentru fiecare pereche de conductoare. Pe lˆng˘ elementele cu rol electric. ˆ consecint˘. sub forma unei unde.67×c ≈ 2 × 108 m/s a In Banda de trecere a mediului. un cablu contine elemente cu rol a a ¸ de protectie.c 2008.4. Un cablu destinat mont˘rii subteran trebuie ¸ ¸ a a prev˘zut cu un scut metalic contra roz˘toarelor. Este identic˘ cu viteza a de propagare a undelor electromagnetice ˆ materialul dielectric dintre ın conductoare. Imb˘ a ın a ¸ ¸ la mic¸orarea frecventei maxime a benzii de trecere. 120 dB/km pentru cablu torsadat Ethernet.. ˆ mod tipic v ≈ 0. Transmisia prin perechi de conductoare c˘tre elemente de ecranare ale echipamentelor la care este conectat cablul). Factorul de atenuare cre¸te exponential cu lungimea s ¸ mediului. c ≈ 3 × 108 m/s). d˘m cˆteva valori tipice: ın a a 17 dB/km pentru cablu coaxial .4. adic˘ semnalul se propag˘ a a a din aproape. Ca urmare. ˆ ımbr˘cˆnd ˆ a a ıntreg cablul. de-a lungul perechii de conductoare. Radu-Lucian Lup¸a s 74 3. ˆ aceste conditii.

s a Realizarea mediului fizic. iar pe de alt˘ parte un semnal ce a sufer˘ dou˘ reflexii succesive se poate suprapune peste semnalul util ¸i. este complicat˘ de necesitatea ın a de a avea adaptare de impedant˘ ˆ fiecare punct al mediului. la ramificarea unei perechi apare. Nivelul fizic 75 observ˘ c˘ intensitatea curentului ce trece prin surs˘ ¸i prin cap˘tul dina a as a spre surs˘ al cablului este proportional˘ cu tensiunea. Raportul dintre a ¸ a tensiune ¸i intensitate se nume¸te impedanta caracteristic˘ a cablului. ˆ punctul de ramificatie. O astfel de interconectare poate avea dou˘ scopuri: pentru a a realiza simplu o comunicatie de tip difuziune (un emit˘tor transmite simultan ¸ ¸a c˘tre mai multe receptoare) sau pentru a permite mai multor calculatoare s˘ a a comunice fiecare cu fiecare.3.c 2008. Cablul pentru televiz¸ a a ın iune are impedanta de 75 Ω. ¸a s Dac˘ la un cap˘t de cablu de o anumit˘ impedant˘ leg˘m un a a a ¸a a cablu de alt˘ impedant˘ sau dac˘ emit˘torul sau receptorul ata¸at are a ¸a a ¸a s alt˘ impedant˘ decˆt impedanta caracteristic˘ a cablului. Reflexia produce dou˘ neajunsuri: pe de o parte scade puterea a semnalului util ce ajunge la receptor. ıntˆ ¸a ıl a Impedanta se m˘soar˘ ˆ ohmi (simbol Ω). ˆ acest caz. Emit˘torul se caracter¸a izeaz˘ printr-o impedanta de ie¸ire. a a s fiind ˆ arziat fat˘ de acesta. ¸ 3. ın ¸ ¸a Exist˘ dispozitive mai complicate (continˆnd transformatoare de sema ¸ a nal) care permit ramificarea unei perechi de conductoare f˘r˘ a introduce o aa . Cablul coaxial pentru retea Ethernet are ¸ ¸ impedanta de 50 Ω. O astfel de pereche de conductoare la care se leag˘ mai multe dispoza itive se nume¸te magistral˘ . ˆ acest caz. spunem c˘ a ¸a a ¸ a a avem o neadaptare de impedant˘. Leg˘tur˘ magistral˘ a a a La o pereche de conductoare pot fi conectate mai multe emit˘toare ¸a sau receptoare. ˆ distorsioneaz˘. sau ˆ general ˆ ın a ın ıntre medii cu indice de refractie ¸ diferit). a s ¸a definit˘ ca raportul dintre tensiunea aplicat˘ la bornele receptorului ¸i a a s intensitatea curentului absorbit de receptor. definit˘ ca raportul dintre sc˘derea a ¸˘ s a a tensiunii la borne cauzat˘ de absorbtia unui curent de c˘tre un dispozitiv a ¸ a montat la bornele emit˘torului ¸i intensitatea curentului absorbit. Radu-Lucian Lup¸a s Capitolul 3. jonctiunea respectiv˘ ¸a In ¸ a reflect˘ o parte din semnalul incident (este analog reflexiei luminii la a trecerea din aer ˆ sticl˘. la ¸a ın In simpla conectare a trei perechi de conductoare sau.4. Cablul torsadat Ethernet are 100 Ω. ˆ general. s s ¸ a Receptorul se caracterizeaz˘ ¸i el printr-o impedant˘ de intrare. o neadaptare de impedant˘. echivalent.

ınc˘ a ¸ ¸ ¸ Faptul c˘ mediul de transmisie este conductor ridic˘ ˆ a probleme a a ıns˘ speciale. Considerente practice Transmisia prin conductoare electrice este cea mai simplu de realizat deoarece calculatoarele ˆ ınsele folosesc intern semnale electrice pentru transmiterea. a a ¸ Astfel. perechile de conductoare s˘ ın ¸ a fie ˆ a cea mai potrivit˘ solutie pentru comunicatii pe distante mici. de exemplu. un cap˘t neconectat poate fi v˘zut ca o a a jonctiune de la perechea ce are o anumit˘ impedant˘ la un dispozitiv avˆnd ¸ a ¸a a impedanta infinit˘. ˆ constructia pl˘cilor a ın ¸ a de retea trebuie luate m˘suri speciale de izolare. t˘ierea la dimens ¸ a siune a cablurilor ¸i montarea conectoarelor se pot realiza cu unelte relativ s ieftine ¸i f˘r˘ a necesita prea mult˘ calificare din partea lucr˘torilor. ˆ mod obi¸nuit. 9.c 2008. El aba ¸ a ¸ soarbe integral semnalul incident. Dac˘ unul dintre conduc¸ a a . Emit˘torul sau receptorul astfel coneca ¸a ¸a tat trebuie s˘ aib˘ impedanta de ie¸ire. Pentru ca aceasta s˘ nu perturbe semnalul util. a ın a a pe leg˘turile punct la punct. a dou˘ a a ¸ a calculatoare sau alte echipamente. De asemenea. Dac˘ un cap˘t de pereche de conductoare este l˘sat liber (neconeca a a tat). emit˘torul ¸i receptorul au. asta ın ¸ fel ˆ at s˘ nu aib˘ comportament de linie lung˘ (la frecventele cu care se luıncˆ a a a ¸ creaz˘ uzual. la cap˘tul c˘reia se a at a a conecteaz˘ emit˘torul sau receptorul. ˆ retelele Ethernet vechi (vezi § 9. ¸ a ıncˆ as 3. ˆ situatiile ˆ care prin conductoarele mediului de transmisie ajung ın ¸ ın s˘ curg˘ curenti din alte surse.4. la cap˘tul unei perechi de ¸ a a conductoare trebuie montat un dispozitiv numit terminator . aceasta ˆ a ınseamn˘ cel mult cˆ¸iva centimetri). O astfel de a ¸ a conectare se utilizeaz˘. a O alt˘ solutie de conectare a mai multor dispozitive (emit˘toare sau a ¸ ¸a receptoare) la un cablu const˘ ˆ realizarea unei ramificatii foarte scurte. neproducˆnd nici un fel de reflexie. stocarea ¸i prelucrarea informatiei. Terminatorul este un simplu rezistor.4. Radu-Lucian Lup¸a s 76 3. respectiv de intrare.1). astel ˆ at joac˘ ¸i rol de terminator. ˆ majoritatea situatiilor practice. avˆnd rezistenta egal˘ cu impedanta cablului. el produce reflexii. De fapt. Aceste s aa a a motive fac ca. a ¸a s ın s impedanta necesar˘.3 ¸i a ın ¸ s fig. Not˘m a a c˘ terminatoarele sunt utilizate ˆ mod normal doar pe leg˘turi magistral˘. dac˘ echipamentele sunt conectate la retelele electrice a dou˘ a ¸ a ¸ a cl˘diri diferite. ˆ ıntre carcasele. Pentru evitarea reflexiilor. ˆ a nu permit propagarea semnalului de la fiecare ¸a ıns˘ ramur˘ spre toate celelalte.1. Transmisia prin perechi de conductoare neadaptare de impedant˘. mult mai mare a a ¸ s decˆt impedanta perechii de conductoare la care se conecteaz˘. tensiunea dintre carcase de propagarele lor poate fi chiar mai a mare. poate apare o tensiune electric˘ de ordinul a cˆtorva volti. legate la p˘mˆntarea retelei electrice.4.

fie amplasarea unor a s a a desc˘rc˘toare care s˘ limiteze tensiunea dintre conductoarele retelei ¸i p˘mˆnt.5. a a a ¸ s a a 3. a a ın Lungimea de und˘ se utilizeaz˘ adesea ˆ locul frecventei pentru a a a ın ¸ caracteriza unda. cu observatia c˘ undele electromags ¸ a netice din intervalul 1 GHz – 300 GHz se numesc microunde ¸i unii autori s consider˘ c˘ microundele nu fac parte dintre undele radio ci sunt o categorie a a separat˘ de acestea. lungimea ın a de und˘ se modific˘ la trecerea dintr-un mediu ˆ altul. Transmisia prin unde radio Undele electromagnetice sunt oscilatii ale cˆmpului electromagnetic. ¸ Lungimea de und˘ a unei unde este distanta parcurs˘ de und˘ ˆ a ¸ a a ın timpul unei oscilatii complete.c 2008. ¸ a Aceste oscilatii se propag˘ din aproape ˆ aproape. fenomenele ¸ ¸a ¸ a a atmosferice pot induce tensiuni ridicate ˆ ıntre conductoarele retelei ¸i carcasele ¸ s echipamentelor. ˆ acest caz lungimea de und˘ se calculeaz˘ pentru viteza In a a de propagare a undelor electromagnetice ˆ vid v = c = 3 × 108 m/s. a . Radu-Lucian Lup¸a s Capitolul 3. standardele de protectie la electrocutare cer legarea la p˘mˆnt ¸ a a a conductorului respectiv. ın a ın pentru majoritatea scopurilor cele dou˘ viteze pot fi considerate egale. ın Viteza de propagare ˆ aer este foarte apropiat˘ de viteza ˆ vid. Lungimea de und˘ se noteaz˘ cu λ ¸i are ¸ a a s v ¸ s valoarea λ = f . limita de jos a a ın ¸ frecventelor undelor radio este cuprins˘ ˆ ¸ a ıntre 30 Hz (λ = 10000 km) ¸i 3 kHz s (λ = 100 km). Viteza de propagare depinde de mediul ˆ care se propag˘ unda. ˆ functie de autori. unde conductorul exterior este legat la partea metalic˘ exterioar˘ a a a conectoarelor). Ca urmare. unde f este frecventa ¸i v este viteza de propagare. ˆ cazul unor cabluri de retea duse prin exteriorul cl˘dirilor. este neceın ¸ a sar˘ fie ecranarea cablului ¸i legarea ecranului la p˘mˆnt. Ca ura ¸ mare. legarea la p˘mˆnt trebuie ˆ a f˘cut˘ ˆ a a ıns˘ a a ıntr-un singur punct pentru a evita suprapunerea peste semnalul util a tensiunilor dintre diverse puncte ale retelei de p˘mˆntare. a Undele radio sunt unde electromagnetice avˆnd frecvente la care a ¸ pot s˘ lucreze dispozitivele electronice. Nivelul fizic 77 toare este expus atingerii cu mˆna (este cazul la retelele Ethernet cu cablu a ¸ coaxial. putˆnd duce la distrugerea echipamentelor retelei. ¸ a ın Frecventa unei unde electromagnetice este frecventa de oscilatie a ¸ ¸ ¸ cˆmpului electromagnetic ˆ a ıntr-un punct fixat din spatiu. iar limita de sus a frecventelor este cuprins˘ ˆ ¸ a ıntre 1 GHz (λ = 30 cm) ¸i 300 GHz (λ = 1 mm). Deoarece ˆ mod a a a s a ın normal conductoarele retelei sunt izolate fat˘ de reteaua de p˘mˆntare. ¸ a a O alt˘ surs˘ de tensiuni parazite ˆ a a ıntre conductoarele de semnal sunt desc˘rc˘rile electrice din atmosfer˘ (fulgerele ¸i tr˘znetele).

a ¸ 3. a ¸ a a at a De exemplu. iar frecventa ¸ ¸ purt˘toare este cel putin de cˆteva zeci de ori mai mare decˆt l˘¸imea de band˘.c 2008. s a ın a Receptorul const˘ de asemenea dintr-o anten˘. care converte¸te semnalul din s a s s tensiune ¸i intensitate electric˘ ˆ cˆmp electromagnetic. emit˘torul cuprinde ¸a dou˘ blocuri distincte: un dispozitiv electronic. transmisia prin unde radio este ˆ a ıntotdeauna cu modulatie. sau echivalent. vectorii E ¸i B sunt ˆ a a s ıntotdeauna perpendiculari unul pe cel˘lalt ¸i pe directia de deplasare a undelor. Orice anten˘ poate servi atˆt la emisie cˆt ¸i la receptie. s La transmisia prin unde radio.1. ¸ ˆ Intr-un sistem de transmisie prin unde radio. Din aceast˘ a ın a a cauz˘. a s ¸ Dac˘ E are directie constant˘ ¸i ˆ variaz˘ doar sensul ¸i modulul. ¸i un dispozitiv electronic. (Singura a a a s ¸ diferent˘ ce apare ˆ ¸a ıntre antene este c˘ antenele de emisie de putere mare a trebuie construite astfel ˆ at s˘ suporte tensiunile ¸i curentii mari ce apar ˆ ıncˆ a s ¸ ın elementele lor. pentru o vitez˘ de transmisie de 10 Mbit/s avem ˆ mod a ın tipic nevoie de o l˘¸ime de band˘ apropiat˘ de 10 MHz. notat˘ cu B. ¸i inductia magnetic˘. a ¸ a s ıi a s . Polarizarea Cˆmpul electromagnetic se caracterizeaz˘ prin dou˘ m˘rimi vectoa a a a riale. pentru care frecventa at a a ¸ purt˘toare va fi de cel putin 200 MHz. Propagarea undelor 3. definite pentru fiecare punct din spatiu: intensitatea cˆmpului electric. cu lungimile de und˘ cuprinse a ˆ ıntre 1 m ¸i 1 cm. a s ¸ a a ˆ Intr-un fascicul de unde electromagnetice. m˘rimile fizice utilizate ca semnal a sunt intensitatea cˆmpului electric ¸i inductia magnetic˘. raportul ˆ a ıntre l˘¸imea benzii ¸i limita at s inferioar˘ a benzii este ˆ mod tipic de cel mult cˆteva procente. ¸i antena. Transmisia prin unde radio De interes practic ˆ retelele de calculatoare sunt undele radio ˆ ın ¸ ın intervalul 300 MHz – 30 GHz.5. Radu-Lucian Lup¸a s 78 3.5.1.5. care plasat˘ ˆ calea a a a ın undelor electromagnetice transform˘ semnalul din cˆmp electromangetic ˆ a a ın tensiune ¸i intensitate electric˘. care decodific˘ s a s a semnalul electric.1. ¸ a notat˘ cu E.) Mai multe propriet˘¸i ale sistemului de transmisie fac ca l˘¸imea benat at zii de trecere a ˆ ıntregului sistem s˘ fie ˆ a ıngust˘ ˆ raport cu frecventele ˆ a ın ¸ ıntre care se ˆ ıncadreaz˘ banda de trecere. paralel ¸i mult mai lat s decˆt lungimea de und˘. care produce un semnal de a tip tensiune ¸i intensitate electric˘. Cele dou˘ m˘rimi a s ¸ a a a sunt proportionale ˆ modul ¸i au directii perpendiculare una pe cealalt˘ ¸i pe ¸ ın s ¸ as directia de propagare a undei.

3. Absorbtia ¸i reflexia ¸ s Absorbtia undelor radio ˆ aer este neglijabil˘. polarizate perpendicular unul pe cel˘lalt. Plasele metalice care au contact bun a ˆ ıntre firele componente ¸i au ochiurile mult mai mici decˆt lungimea de und˘ se s a a comport˘ ca o suprafat˘ metalic˘ compact˘. ˆ vreme ce ˆ spatele obstacolelor mai mari de cˆtea lungimi de und˘ a ın ın a a . Nivelul fizic 79 fasciculul se nume¸te polarizat liniar. Difractia ¸ Orice und˘ ocole¸te obstacolele mai mici decˆt o fractiune din lungimea a s a ¸ de und˘.1. polarizarea liniar˘ ¸i polarizarea circular˘ sunt de fapt a a s a cazuri particulare de polarizare eliptic˘. ın Un fascicol cu polarizare circular˘ rezult˘ de fapt prin suprapunerea a a a dou˘ fascicole. directia lui E se rote¸te ¸a ¸ s ˆ sens invers acelor de ceas. aceste unde pot parcurge u¸or multe a a a s mii de kilometri. de aceea este greu de obtinut leg˘tur˘ radio sub ap˘. rezult˘ ceea ce se nume¸te a a a s polarizare eliptic˘ . nori. De aceea. Se distinge polarizare circular˘ stˆng˘ dac˘. a a ¸a a Prin contrast. inclua a siv curbura P˘mˆntului pe distant˘ de cˆteva sute sau chiar mii de kilometri. prin a a reflexii repetate ˆ ıntre P˘mˆnt si ionosfer˘. ca ¸i ˆ cazul propag˘rii semnalelor prin cabluri. privind ˆ directia de a a a a ın ¸ propagare a undelor. a a a deplasˆndu-se ˆ aceea¸i directie ¸i cu un decalaj de un sfert de ciclu ˆ a ın s ¸ s ıntre ele.r˘mˆne umbr˘“. Radu-Lucian Lup¸a s Capitolul 3. ceat˘) absorb destul de puternic a a ¸a undele radio. Ionosfera reflect˘ undele cu lungimi de und˘ de ordinul metrilor. ¸i polarizare circular˘ dreapt˘ dac˘ E se rote¸te ın s a a a s ˆ sensul acelor de ceas. cu lungime de und˘ de ordinul kiloa a a a metrilor sau sutelor de metri sunt capabile s˘ ocoleasc˘ obstacole mari. ¸ ın a Pic˘turile de ap˘ (din ploaie. ˆ a perturb˘ serios propagarea ıns˘ a undelor radio.2. ˆ plan a s ¸ s ın perpendicular pe directia de deplasare a undei. undele lungi. dealurile sau cl˘dirile mai mari putˆnd provoca umbre. numit˘ directia de polarizare. a 3.5. undele cu lungime de und˘ sub cˆ¸iva metri se propag˘ aproape a at a numai ˆ linie dreapt˘. ¸ s ın a Metalele reflect˘ undele radio.3. Absorbtie moderat˘ ¸ a a a ¸ a se produce ˆ p˘mˆnt ¸i ˆ diferite materiale de constructie. ın a a a . Dac˘ cele dou˘ fascicole au amplitudini diferite. de amplitudine egal˘.1. Apa absoarbe puternic toate undele raın dio. Arm˘turile cl˘dirilor din beton a ¸a a a a a armat nu fac contact electric prea bun ˆ ıntre ele. fasciculul se nume¸te polarizat ¸ s circular.c 2008. dinspre emit˘tor spre receptor. ˆ special microundele.. ın a a s ın ¸ Sc˘derea puterii undelor radio datorit˘ absorbtiei este exponential˘ a a ¸ ¸ a cu distanta.5. a ¸ a ¸ Dac˘ E are modul constant ¸i directia lui se rote¸te uniform. Un fascicul polarizat liniar se caracters izeaz˘ prin directia vectorului E.

Transmisia prin unde radio 3. care la rˆndul ei este proportional˘ cu p˘tratul ¸ a a ¸ a a distantei fat˘ de emit˘tor. semnalele propagate pe cele dou˘ c˘i se bruiaz˘ a a a a a reciproc. ˆ a nu ¸ a a ıns˘ poate fi corectat˘ decˆt prin mutarea statiilor fat˘ de obstacolele ce produc a a ¸ ¸a reflexiile.1. a ¸ a ¸ 3. undele se suprapun ˆ faz˘ a a a ın a ¸i se adun˘. Interferenta undelor ¸ Dac˘ ˆ a ıntr-un punct ajung unde pe mai multe c˘i. Antene O anten˘ este un dispozitiv care realizeaz˘ conversia ˆ a a ıntre un semnal electric (tensiune ¸i intensitate electric˘) pe o pereche de conductoare ¸i s a s . ˆ ın as a ¸ In aceste situatii. Situatia apare mult mai rar decˆt cea prezentat˘ mai sus.4. 3. semnalul receptionat fiind mai puternic. semnalul receptionat fiind slab sau nul.5. puterea semnalului scade daa a a a ¸a torit˘ extinderii frontului de und˘. Radu-Lucian Lup¸a s 80 3. unda receptionat˘ ˆ acel punct as ¸ a ın este suma undelor ce ajung pe toate c˘ile. Schimbarea lungimii s de und˘ pe care se face transmisia poate de asemenea modifica mult efectul.5. puterea receptionat˘ Pr este invers proportional˘ cu p˘¸ a ¸ a a tratul distantei d dintre emit˘tor ¸i receptor: ¸ ¸a s Pr = Pe · α · 1 d2 unde α este o constant˘ ce depinde de constructia antenelor de emisie ¸i de a ¸ s receptie. aceasta din urm˘ duce la o a ¸ ın a sc˘dere exponential˘ cu distanta a puterii semnalului.1. a Dac˘ diferenta de drum ˆ a ¸ ıntre semnalele receptionate pe c˘i diferite ¸ a este comparabil˘ sau mai mare decˆt lungimea unui bit ¸i puterile semnalului a a s pe cele dou˘ c˘i sunt apropiate.5. dar mult mai mic˘ decˆt lungimea unui bit. ¸ ¸a Sc˘derea puterii datorit˘ extinderii frontului de und˘ este indepena a a dent˘ de eventuala absorbtie a undelor ˆ mediu. deplasarea receptorului (sau emit˘torului) pe o distant˘ de la ¸ ¸a ¸a un sfert din lungimea de und˘ ¸i pˆn˘ la de cˆteva ori lungimea de und˘ poate as a a a a modifica mult calitatea semnalului (reaminitim c˘ ˆ transmisiile de date se a ın utilizeaz˘ lungimi de und˘ cuprinse ˆ a a ıntre 1 cm ¸i 1 m).2. Dac˘ diferenta de drum s a ¸ a ¸ este apropiat˘ de un num˘r impar de lungimi de und˘.5. undele se suprapun a a a ˆ antifaz˘ ¸i se anuleaz˘ reciproc. de exemplu o cale a direct˘ ¸i o cale prin reflexia pe un obstacol. a Dac˘ diferenta de drum ˆ a ¸ ıntre dou˘ c˘i este un num˘r ˆ a a a ıntreg de lungimi de und˘.c 2008. ¸ ¸a ¸a Ca urmare. Divergenta undelor ¸ Pe m˘sur˘ ce ne dep˘rt˘m de emit˘tor. iar Pe este puterea emit˘torului. Densitatea puterii este invers proportional˘ a a ¸ a cu suprafata frontului de und˘.5.

se nume¸te anten˘ directiv˘. directivitatea ¸i lungimea s de und˘ la care functioneaz˘. Nivelul fizic 81 oscilatiile electromagnetice ˆ mediul ˆ ¸ ın ınconjur˘tor antenei. Exist˘ o leg˘tur˘ ˆ a a a ıntre dimensiunea antenei. ¸ ¸ O directie de maxim local al cˆ¸tigului.c 2008. va radia unde electroa a a magnetice ¸i. Anume. as ın Cˆ¸tigul antenei pe diverse directii este reprezentat grafic prin diaas ¸ gramele de cˆ¸tig. Radu-Lucian Lup¸a s Capitolul 3. pentru toate directiile posibile. pentru a obtine un lob principal s a ¸ de 3◦ (≈ 0. O anten˘ cu cˆ¸tig perfect uniform de jur s a a a as ˆ ımprejur (radiator izotrop) este imposibil de realizat. ˆ general o anten˘ este optimizat˘ pentru o anumit˘ band˘ de treIn a a a a cere. cˆ¸tigul ¸ s a as este pe unele directii supraunitar ¸i pe altele subunitar. Ca ¸ s a a ın s ¸ etalon se utilizeaz˘ de obicei o anten˘ ipotetic˘ care ar radia egal ˆ toate a a a ın directiile ¸i ar avea randamentul 100%. a cˆ¸tigului a ¸ as este numit˘ cˆ¸tigul antenei. raza unghiular˘ a lobului principal a ¸ a a (m˘surat˘ ˆ radiani) nu poate fi mai mic˘ decˆt raportul dintre diametrul a a ın a a antenei ¸i lungimea de und˘. O anten˘ are un anumit randament. Ca exemplu. integrala lui pe ˆ ¸ s ıntreaga sfer˘ fiind 4πη (unde η reprezint˘ randamentul antenei). O anten˘ opti¸ s a a a mizat˘ pentru a avea cˆ¸tig cˆt mai uniform. ¸ s a . reciproc. 3.5. a as O anten˘ optimizat˘ s˘ aib˘ cˆ¸tig cˆt mai mare pe o directie.2 m diametru. as gain) unei antene pe o directie se ˆ ¸elege raportul dintre puterea radiat˘ pe ¸ ınt a acea directie ¸i puterea radiat˘ de o anten˘ etalon. ˆ a a a a as a ¸ ın detrimentul celorlalte directii. Prin cˆ¸tigul (engl. se nume¸te lob. a as a ¸ ın se nume¸te anten˘ nedirectiv˘. ˆ acelea¸i conditii. Orice anten˘ este a a reversibil˘: dac˘ i se aplic˘ un semnal electric la borne. Limitarea aceasta este legat˘ de a ¸ a fenomenele de difractie a undelor ¸i nu poate fi ocolit˘. dac˘ este plasat˘ ˆ calea undelor electromagnetice.05 rad) la o lungime de und˘ de 6 cm (f = 5 GHz) avem nevoie a de o anten˘ de cel putin 1. Deoarece energia se conserv˘. Directivitatea O anten˘ nu radiaz˘ uniform de jur ˆ a a ımprejur. Ceilalti lobi se numesc lobi secundari sau s ¸ lobi laterali. va s a a ın produce semnal electric la borne. ˆ ¸ as ımpreun˘ cu directiile apropia ¸ ate. Cˆ¸tigul este dat a a as uneori direct. O astfel de diagram˘ este o reprezentare a cˆ¸tigului ca as a as functie de unghi pe toate directiile dintr-un plan. alteori este dat logaritmul cˆ¸tigului. Lobul care cuprinde maximul global al cˆ¸tigului se s as nume¸te lobul principal al antenei.1. Valoarea maxim˘. exprimat ˆ decibeli.2. definit ca raportul dintre puta erea undei electromagnetice radiate ¸i puterea absorbit˘ din semnalul electric s a primit. cel putin ˆ planul orizontal.

+20 dBm) ¸i frecventa f = 2. Apertura fat˘ de o anumit˘ directie a undei incidente este proporti¸a a ¸ ¸ onal˘ cu cˆ¸tigul antenei pe acea directie. c˘ absorbtia semnalului este neglijabil˘ ¸a ¸a ¸a a ¸ a (emit˘torul ¸i receptorul se g˘sesc ˆ cˆmp deschis ¸i nu plou˘) ¸i c˘ ambele ¸a s a ın a s a s a antene au un cˆ¸tig Ge = Gr = 2 pe directia spre partenerul de comunicatie. Mai presupunem c˘ receptorul se g˘se¸te la o a a s distant˘ d = 100 m fat˘ de emit˘tor. Apertura poate fi privit˘ s a a ca suprafata.6). a (0.125 m)2 · 2 ≈ 3. Transmisia prin unde radio O anten˘ de receptie plasat˘ ˆ calea undelor receptioneaz˘ o puta ¸ a ın ¸ a ere proportional˘ cu densitatea de putere a undei incidente. as ¸ ¸ Rezult˘ puterea semnalului receptionat: a ¸ Pr = 10−1 W · 2 · adic˘ aproximativ −84 dBm. Relatia este: a as ¸ ¸ S=G λ2 4π (3.6) unde S este aria efectiv˘. Pe este puterea a aplicat˘ la bornele antenei emit˘toare. Ge este cˆ¸tigul emit˘torului pe directia spre receptor. transversal˘ pe directia de propagare a undelor.9 · 10−9 W. d este distanta dintre emit˘tor ¸i recepa ¸a ¸ ¸a s tor. se poate calcula puterea receptionat˘. echivalent.4 GHz (lungimea de und˘ s ¸ a este atunci λ = 0. as s ¸ ¸a Exemplul 3. iar λ este lungimea de und˘. Radu-Lucian Lup¸a s 82 3. a as a Utilizˆnd relatia (3. un calculator dintr-o a ¸a retea IEEE 802.125 m). Raportul dinte ¸ a puterea disponibil˘ la bornele antenei ¸i densitatea de putere a undei incia s dente se nume¸te aria efectiv˘ sau apertura antenei. de pe care an¸ a ¸ tena preia ˆ ıntreaga energie. dac˘ a ¸ ¸ a a distanta dintre emit˘tor ¸i receptor este mult mai mare decˆt dimensiunile ¸ ¸a s a antenelor: Pr = Pe · Ge · 1 · Sr = 4πd2 λ2 = Pe · Ge · · Gr 16π 2 d2 unde Pr este puterea disponibil˘ la bornele antenei receptoare. G este cˆ¸tigul. 16π 2 (100 m)2 .5.c 2008. iar Gr ¸i Sr sunt as ¸a ¸ s respectiv cˆ¸tigul ¸i apertura antenei receptoare pe directia spre emit˘tor.1: Consider˘m un emit˘tor (de exemplu. Apertura depinde de directia considerat˘ a undei ¸ a incidente.11 — wireless) care emite un semnal cu puterea Pe = 100 mW ¸ (sau.

ˆ focarul c˘reia este plasat˘ ana ın a ¸ ın a a ˆ alte constructii. pentru a extinde domeniul a a ıi a de actiune. Obstacolele Obstacolele limiteaz˘ raza de actiune a leg˘turii radio. O astfel de anten˘ are cˆ¸tig maxim ˆ planul a a a a as ın orizontal (perpendicular pe baston) ¸i zero pe directie vertical˘ (ˆ lungul s ¸ a ın bastonului). D˘m ˆ continuare factorii care influenteaz˘ raza de actiune a unei a ın ¸ a ¸ leg˘turi radio.5. leg˘turile prin unde radio nu pot fi delimitate net la un anumit a domeniu.) a 3. este dificil de analizat ¸ a . este cel˘lalt pol). Uneori vom dori s˘ ˆ contracar˘m. ˆ vom dori s˘ ne mentin˘ o leg˘tur˘ radio ˆ ¸ a ıi a ¸ a a a ıntrun domeniu spatial limitat pentru a nu interfera cu leg˘turi radio din apropiere. bastonul este un pol. iar carcasa aparatului sau. Polarizarea Antenele cele mai simple au polarizare liniar˘: unda emis˘ este poa a larizat˘ liniar. .3. reciproc.5. O asrfel de anten˘ este alc˘tuit˘ dintra a a a o oglind˘ ˆ form˘ de paraboloid de rotatie. Mai mult. O anten˘ polarizant˘ a ¸ a a a circular va receptiona o transmisie polarizat˘ circular numai dac˘ are acela¸i ¸ a a s sens al polariz˘rii. a ın s 3. a P˘mˆntul. (In a ¸ a a ın a parte.3. indiferent de directia de polarizare. Antenele directive cele mai r˘spˆndite pentru comunicatii de date a a ¸ sunt a¸a-numitele antene parabolice (denumire improprie.5. Rotirea antenei a ¸ a ¸ emit˘torului fat˘ de cea a receptorului duce la variatia semnalului receptionat ¸a ¸a ¸ ¸ ˆ ıntre un maxim (cˆnd directiile polariz˘rilor celor dou˘ antene sunt paralele) a ¸ a a ¸i un minim (teoretic zero) cˆnd directiile sunt perpendiculare. 3. Undele produse sunt polarizate vertical. dup˘ caz. cˆmp electromagnetic este a a numai unul.2. s a ¸ O anten˘ polarizant˘ liniar va receptiona ˆ a a ¸ ıntotdeauna. pentru c˘ forma s a parabolic˘ este a reflectorului antenei). o transmisie polarizat˘ circular. Rotirea antenelor ˆ jurul dreptei ce le une¸te nu are efect. din a ¸ a cauza interferentei dintre undele reflectate pe diferite c˘i. ¸ a Cabluri electrice sau optice putem duce cˆte dorim.5.2. Raza de actiune a unei leg˘turi radio ¸ a Spre deosebire de leg˘turile prin perechi de conductoare sau prin a fibre optice.1. . o anten˘ po¸ a a larizant˘ circular va receptiona o emisie polarizat˘ liniar.3. Nivelul fizic 83 3. Radu-Lucian Lup¸a s Capitolul 3. antena propriu-zis˘ este plasat˘ ˆ alt˘ tena propriu-zis˘. pe o directie stabilit˘ prin constructia antenei. iar unda electromagnetic˘ este adus˘ ˆ focarul reflectorului parabolic a a ın printr-un tub metalic numit ghid de und˘.2. alteori dimpotriv˘.c 2008. Tipuri de antene Antenele nedirective sunt de cele mai multe ori un simplu baston metalic (de fapt.

distanta la linia orizontului ın˘ ¸ ¸ √ este d = 12. √ a se dubleaz˘ ın˘ ¸ dac˘ a ˆ altimea. distanta pˆn˘ la linia orizontului este (r desemneaz˘ raza In a ¸ a a a P˘mˆntului.4. de la baza turnului ˆ care se afl˘ obsera a ın a r vatorul: d = r · arccos h+r .6 m ¸ a a deasupra p˘mˆntului (de exemplu un radiotelefon ¸inut ˆ mˆn˘) este d = a a t ın a a √ 12. distanta la linia orizontului cre¸te cu un factor de 2 ≈ 1.5. Transmisia prin unde radio exact punctele ˆ care este posibil˘ receptia unei emisii radio ¸i punctele ˆ ın a ¸ s ın care emisia este obstructionat˘.5 km (de t ın a a ¸a regul˘ raza de actiune a unui releu GSM este limitat˘ de alte considerente). Distanta la linia orizontului cre¸te ˆ ¸ s ıncet cu ˆ altimea. a ¸ a De pe un turn cu ˆ altimea de 50 m.7 · 50 km ≈ 25 km. a ¸ ˆ cˆmpie. Utilizarea satelitilor artificiali ai P˘mˆntului ¸ a a Satelitii artificiali ai P˘mˆntului sunt utilizati ca echivalentul unor ¸ a a ¸ turnuri ˆ ınalte pentru montarea unor statii radio.c 2008.2. prin curbura suprafetei sale.7 × 10 s ın ¸ a ˆ kilometri. Linia orizontului Unul dintre obstacolele ce limiteaz˘ raza de actiune a undelor radio a ¸ este ˆ si P˘mˆntul. O statie aflat˘ ˆ ¸ a ıntr-un astfel de turn poate comunica cu un radiotelefon ¸inut ˆ mˆn˘ la o distant˘ de 16 km+4. Un turn cu ˆ altimea de 20 m (obi¸nuit pentru un releu GSM) are ın˘ ¸ s linia orizontului la 16 km.3. d ≈ 2rh. √ • dac˘ h a r. O statie aflat˘ la o anumit˘ ınsu¸ a a ¸ ¸ a a ˆ altime poate comunica cu o statie aflat˘ la nivelul solului dac˘ ¸i numai dac˘ ın˘ ¸ ¸ a as a statia de pe sol se afl˘ mai aproape decˆt linia orizontului celeilalte statii. ın Exemple: Distanta pˆn˘ la linia orizontului pentru un observator aflat la 1.7 · 1. Radu-Lucian Lup¸a s 84 3.5 km = 20.5. ¸ a a ¸ Dou˘ statii pot comunica dac˘ exist˘ cel putin un punct comun orizontului a ¸ a a ¸ celor dou˘ statii.5. Dou˘ relee de telecomunicatii avˆnd 50 m a ¸ a ˆ altime fiecare pot comunica direct dac˘ sunt la mai putin de 50 km unul de ın˘ ¸ a ¸ altul. iar h este ˆ altimea antenei deasupra suprafetei P˘mˆntului): a a ın˘ ¸ ¸ a a • m˘surat˘ de-a lungul curburii. distanta d rezult˘ mii de kilometri (2r ≈ 12.3. ın˘ ¸ ¸ s 3.3. ¸ a 3. Dup˘ altitudinea la care ¸ a . De remarcat c˘ dac˘ exprim˘m numeric 2r ˆ a a a ın 3 km) ¸i h ˆ metri.5 km.6 km ≈ 4. • m˘surat˘ ˆ linie dreapt˘ de la observator: a a ın a d= (r + h)2 − r2 = h(2r + h).

¸ s s ¸a a a Un satelit are o arie de acoperire incomparabil mai mare fat˘ de o ¸a statie terestr˘. utilizarea antenelor direc¸ ¸ tive necesit˘ un sistem foarte complicat de urm˘rire a satelitului. a a ¸a ¸a Nivelul de zgomot scade ˆ general o dat˘ cu cre¸terea frecventei. deoarece la conductoare electrice undele radio p˘trund accidental ˆ semnal. . . ˆ a a ıntrerup˘toare electrice (inclusiv colectoarele motoarelor a de curent continuu).. distingem trei categorii de sateliti: ¸ ¸ sateliti de joas˘ altitudine aflati ˆ ¸ a ¸ ıntre 200 . pentru acelea¸i antene. fixeaz˘ a s ın ¸a a puterea minim˘ pentru o anumit˘ distant˘ emit˘tor-receptor. a a ¸ sateliti geostationari aflati la 35800 km deasupra ecuatorului. Radu-Lucian Lup¸a s Capitolul 3. a a 3. un satelit acoper˘ o raz˘ de 1500 km. Nivelul fizic 85 sunt plasati.c 2008.8 h. La 200 km altitudine. . 1. Nivelul zgomotului radio ambiant este un factor important care limiteaz˘ inferior pragul de sensibilitate al receptorului ¸i. ¸ sateliti de altitudine medie ˆ ¸ ıntre 10000 . Este de remarcat faptul c˘ a a distanta de la un satelit la o statie terestr˘ este de la cˆteva zeci la cˆteva ¸ ¸ a a a sute de ori mai mare decˆt distanta de la un releu amplasat ˆ a ¸ ıntr-un turn la o statie terestr˘. 1000 km. a La comunicatia ˆ ¸ ıntre sateliti geostationari ¸i statii fixe de pe sol se pot ¸ ¸ s ¸ utiliza relativ u¸or antene cu directivitate bun˘. cu perioada de rotatie de 6 . . pentru f = 5 GHz.4. . ın a s ¸ . 15000 km (raza orbitei de 3–4 ori raza P˘mˆntului). fie antene cu directivitate foarte bun˘. pe a ın a cˆt˘ vreme la transmisiile radio semnalul util se amestec˘ direct cu zgomotul aa a radio ambiant. ˆ consecint˘. comunicatia cu satelitii necesit˘ fie put¸ ¸ ¸ a eri mari. . .5 . Ca urmare.5. Zgomotul Zgomotul ˆ transmisiile radio provine din multe surse. (vezi exemplul a ˆ care rezulta. deoarece antenele de pe sol s a sunt fixe. a a Din cauza distantelor mari.aglomerat˘“: presupunˆnd ¸ a ıns˘ a a c˘ avem antene ce dau un fascicul cu diametrun unghiular de 6◦ . un diametru al antenei de peste 1. 9 h. Transmisiile radio sunt mult mai sensibile la zgomot decˆt a transmisiile prin conductoare electrice.3. din cauza ecran˘rii imperfecte. puterile necesare sunt de ¸ a s la cateva sute la cˆteva sute de mii de ori mai mari. cu perioada de rotatie de 1. Orbita geostationar˘ este ˆ a destul de . ˆ ın ıntre altele aparatur˘ electronic˘.2 m) ın putem distinge doar ˆ ıntre 60 de sateliti distincti. ¸ a a a iar un satelit de medie altitudine acoper˘ o raz˘ de peste 7000 km. ¸ ¸ Pentru satelitii care nu sunt geostationari. . au pe¸ ¸ ¸ rioada de rotatie de exact o zi ¸i ca urmare apar fic¸i fat˘ de P˘mˆnt.

este frecventa purt˘toare utilizat˘. singur˘. atunci receptorul va receptiona doar transmisia mai a ¸ puternic˘. iar termenul de band˘ se ın a folose¸te cu sensul de interval de frecvente ˆ s ¸ ıntre care se ˆ ıncadreaz˘ spectrul a Fourier al unui semnal.acoper˘“ transmisia mai slab˘.6. Frecvente diferite. 3. atunci a s ¸ transmisia mai puternic˘ . ¸ s s a In a a cele dou˘ transmisii trebuie s˘ utilizeze directii de polarizare perpendiculare.. Spectrul radio ¸i alocarea lui s ˆ Incepem cu o precizare de terminologie: ˆ general cˆnd este vorba ın a de semnale. Aceasta se ˆ ampl˘ a a a ıntˆ a deoarece semnalele celor dou˘ emit˘toare se suprapun.3. a . dac˘ dou˘ emit˘toare radio functioneaz˘ ˆ aceea¸i a a a ¸a ¸ a ın s regiune geografic˘ ¸i emit pe frecvente identice sau foarte apropiate. Limitele efective ale benzii se ¸ a a determin˘ din standardul de transmisie folosit. Pe de alt˘ parte. puterea ıns˘ ¸ ¸ emis˘ pe lobii secundari ai antenei ¸i reflexiile de teren.c 2008. a s Polarizarea se poate utiliza pentru a separa dou˘ transmisii pe aceea¸i a s directie ¸i pe aceea¸i lungime de und˘. ın a a a s Lobii secundari ai antenelor. specificat˘ ˆ acest a ¸ a ın context. ˆ a ın ¸ ın ınseamn˘ a de fapt benzi disjuncte.ˆ ¸elege“ nici a ınt una dintre transmisii. a band˘ ˆ sensul de la semnale). ¸ ¸a a pentru a dubla raza de actiune a emit˘torului trebuie s˘-i cre¸tem puterea de ¸ ¸a a s 4 ori. Emisia directionat˘ ¸i polarizat˘ ¸ as a Domeniul de actiune a unui emit˘tor sau receptor poate fi restrˆns ¸ ¸a a ˆ mod voit dotˆnd emit˘torul sau receptorul (de obicei ambele) cu antene diın a ¸a rective. Dac˘. termenul de frecvent˘ se utilizeaz˘ adesea ¸i In ¸ ¸a a s cu sensul de interval de frecvente ˆ care se ˆ ¸ ın ıncadreaz˘ o transmisie (efectiv. Sc˘derea puterii cu distanta a ¸ Densitatea de putere a undelor electromagnetice scade cu p˘tratul a distantei de la emit˘tor. a 3.5. la o sensibilitate fixat˘ a receptorului. Ca urmare. termenul de frecvent˘ se utilizeaz˘ cu sensul de frecventa unei ¸a a ¸ componente ˆ descompunerea Fourier a semnalului. ˆ cazul utiliz˘rii polariz˘rii liniare.4. chiar dac˘. ˆ punctul ˆ a ¸a a ın ın care este plasat receptorul. ˆ acest sens. Trebuie ˆ a calculate cu atentie divergenta lobului principal. Dac˘ puterile sunt apropiate. Valoarea numeric˘ a frecventei. precum ¸i undele reflectate de diverse corpuri.5. au s polariz˘ri greu de controlat. puterea unuia dintre emit˘toare este mult mai mare ¸a decˆt puterea celuilalt. Radu-Lucian Lup¸a s 86 3.5. receptorul nu va putea . a a ¸ ˆ cazul polariz˘rii circulare se vor folosi cele dou˘ sensuri (stˆnga ¸i dreapta).5. transmisia mai slab˘ ar putea fi receptionat˘ a a a a ¸ a corect. Transmisia prin unde radio 3.3.5. ˆ comunicatii radio..

ˆ a cu a ın a ıns˘ un statut aparte sunt radioamatorii: frecventele sunt alocate activit˘¸ii de ¸ at radioamator ¸i nu unei persoane sau institutii. ¸i avˆnd o valoare . un utilizator de comunicatii radio care doIn ¸ re¸te s˘ opereze un emit˘tor trebuie s˘ obtin˘ o autorizatie ˆ care se specific˘ s a ¸a a ¸ a ¸ ın a frecventa de lucru. Utilizatorul unor astfel de echipamente trebuie totu¸i s˘ fie atent la eventualele diferente ˆ s a ¸ ıntre reglement˘rile a din diferite ¸˘ri: un echipament poate functiona legal f˘r˘ autorizatie ˆ ¸ara ta ¸ aa ¸ ın t de origine. a ˆ majoritatea cazurilor. telecomenzi pentru deschis garajul. etc. sau mai precis.).. Emiterea unui semnal radio.c 2008. poate duce la sanctionarea contraventional˘ sau a a ¸ ¸ a chiar penal˘ a operatorului. Exist˘ ˆ a benzi pentru care nu este necesar˘ o autorizare expres˘ a a ıns˘ a a emit˘torului. fie printr-un nume. a s a a Limitele benzii se g˘sesc ˆ standarde. ¸ a a ın a Exist˘ frecvente alocate posturilor de radio. controlorii de trafic aerian. din interiorul benzii. operatori de telefonie mobil˘. se specific˘ fie printr-o anumit˘ frecvent˘ sau lungime de ın a a ¸a und˘. a ¸ ın at a Echipamentele care lucreaz˘ pe frecvente pentru care nu trebuie aua ¸ torizatie ajung s˘ interfereze dac˘ sunt plasate ˆ apropiere. cu conditia ca emit˘torul s˘ nu dep˘¸easc˘ o anumit˘ putere. a ın Dou˘ transmisii radio ce se fac pe frecvente diferite. puterea maxim˘. juc˘rii cu telecomand˘ prin aa a a a radio. Dou˘ transmisii pe aceea¸i frecvent˘ ¸i ˆ aceea¸i zon˘ geografic˘ ın a s ¸a s ın s a a sunt practic imposibil de separat. a ¸ a a Pentru evitarea suprapunerilor ˆ ıntre utilizatori. a a ¸ c˘ror benzi de trecere sunt disjuncte.11 (Wireless a a ¸ ¸ Ethernet) ¸i Bluetooth. etc.3. telefoanele f˘r˘ fir. sau transmisia a mai slab˘ este imposibil de receptionat fiind .rotund˘“. utilizarea diverselor benzi de frecvente face obiectul unor reglement˘ri legale ˆ fiecare ¸ar˘. Nivelul fizic 87 Notiunea de band˘ ˆ care se face transmisia specific˘ ˆ acest context ¸ a ın a ın un interval de frecvente alocat pentru o anumit˘ categorie de transmisii radio.. dar s˘ necesite autorizatie ˆ alt˘ ¸ar˘. dac˘ au puteri apropiate. Radu-Lucian Lup¸a s Capitolul 3.5. tastaturi ¸i mau¸i f˘r˘ fir. walkie-talkie-urile de juc˘rie. ˆ ¸a ¸ ¸a a as a a In aceast˘ categorie intr˘ frecventele folosite de: retelele IEEE 802. ˆ acest sens. dispecerate de ¸ ¸ taxiuri. sistemelor de comunicatii radio a ¸ ¸ ale diferitelor institutii (politie. zona geografic˘ ˆ care opereaz˘. Unele dintre ¸ a a ın acestea permit selectarea frecventei de lucru dintre 2–4 frecvente predefinite. Tot ˆ aceast˘ categorie. pot fi separate ˆ general u¸or. precum ¸ a ın t a ¸i a unor acorduri internationale.acoperit˘“ de cea mai puternic˘. pe o frecvent˘ s ¸ ¸a pentru care operatorul emit˘torului nu este autorizat sau de o putere mai ¸a mare decˆt cea autorizat˘. ¸ a Benzile. mis s s aa aa crofoanele f˘r˘ fir. ¸ ¸ Utilizatorul va selecta o frecvent˘ diferit˘ dac˘ constat˘ o functionare proast˘ ¸a a a a ¸ a . Separarea a ın s ˆ frecvent˘ este mult mai u¸or controlabil˘ decˆt separarea spatial˘ studiat˘ ın ¸a s a a ¸ a a ˆ § 3. ˆ a radioamatorii trebuie s˘ s ¸ ıns˘ a se ˆ ınregistreze pentru a putea emite.

satelitul receptioneaz˘ emisia de la mai multe statii de pe P˘mˆnt. mai ˆ ¸ ındep˘rtat)..c 2008. Din acest motiv. cu semnal foarte slab. ¸ Mai mention˘m c˘.5. Pentru distante a at ¸ mari. . precum ¸i blocul de baleiaj de s ın ¸ s linii de la televizoarele ¸i monitoarele cu tub catodic. O astfel de comunicatie ¸ poate prezenta riscul ca emisiile statiilor de pe P˘mˆnt s˘ se ciocneasc˘ f˘r˘ ¸ a a a a aa ca statiile s˘ observe direct acest lucru. Topologia leg˘turii a Leg˘turile ˆ a ıntre releele de comunicatie radio. avˆnd alte scopuri decˆt comunicatiile.5. s • Radioemit˘toarele emit ¸i pe frecvente ce sunt multipli ai frecventei ¸a s ¸ ¸ purt˘toare (armonice). a 3.. una din statii este fix˘ ¸i se plaseaz˘ ˆ ¸ as a ıntr-un turn de unde poate comunica direct cu toate celelalte. ¸i a ¸ a ¸ a a s reciproc. Radu-Lucian Lup¸a s 88 3. Ca fapt divers.5. dup˘ o schem˘ convenit˘ ˆ a ¸ a a a ıntre emit˘tor ¸i re¸a s ceptor. ca ˆ cazul s ın ın leg˘turilor prin perechi de conductoare. Particularit˘¸i ale sistemelor de comunicatie prin radio at ¸ 3. a ¸ ¸ Functionarea acestora bruiaz˘ adesea posturile de radio pe unde lungi ¸ a ¸i uneori chiar medii.se v˘d“ protocoalele folosite nu permit comunicatii a a ¸ directe ˆ ıntre ele (exemplu: telefoanele GSM). Celelalte statii nu se .5. uneori acest efect este ¸ datorat receptiei de la un alt releu de televiziune. se ˆ ampl˘ uneori ca un post a ıntˆ a de televiziune s˘ apar˘. sunt ˆ general punct la punct.v˘d“ direct una pe alta ¸i de cele ¸ a s mai multe ori nici dac˘ . ¸i tolerarea unui num˘r de ciocniri ale transmisiilor pe perioadele ˆ s a ın care echipamentele vecine se nimeresc aceea¸i frecvent˘. amplasate ˆ turnuri ¸ ın ¸i dotate cu antene parabolice. Tehnica se nume¸te s ¸a s frequency hopping (salturi ale frecventei). ¸ a ¸ a a statiile de pe P˘mˆnt nu comunic˘ ˆ a direct ˆ ¸ a a a ıns˘ ıntre ele. printre produc˘torii de semnale radio parazite ¸ a a a intr˘ ¸i alte dispozitive.1. as a a ¸ enumer˘m cˆteva: a a • Sursele de alimentare de la aproape toate aparatele electronice moderne (a¸a-numitele surse ˆ comutatie). emit semnificativ s pe frecvente pˆn˘ la cˆteva sute de kiloherti (a¸a-numitele armonice. Statia central˘ prime¸te rol de ¸ a s arbitraj al transmisiilor. Transmisia prin unde radio ¸i suspecteaz˘ interferente cu echipamente vecine. ¸ a a a ¸ s adic˘ frecvente care sunt multipli ai frecventei de lucru a circuitului). ¸ a La echipamente mobile exist˘ mai multe posibilit˘¸i. ¸i pe un canal superior a a s celui pe care este transmis normal (dar atentie. a Leg˘turile ˆ a ıntre satelitii geostationari ¸i statiile terestre sunt astfel ¸ ¸ s ¸ c˘ emisia satelitului este receptionat˘ de mai multe statii de pe P˘mˆnt. Alt˘ solutie este schimbarea s a ¸ a ¸ repetat˘ a frecventei de lucru.5.

. Din acest motiv retelele locale pe cablu t a a ¸ pot s˘ nu prevad˘ m˘suri contra intru¸ilor. Spre deosebire ˆ a de cablurile magistral˘. erorile sunt ¸i mai rare.2). sunt imposibil de calculat ˆ mod practic. la leg˘turile radio ¸ a as a ¸a a este posibil ca dou˘ transmisii s˘ se ciocneasc˘ la receptor dar nici una din a a a statiile care le-au emis s˘ nu receptioneze transmisia celeilalte. a a a s Undele radio nu pot fi p˘zite.5. . Vom folosi termenul de s .5.democratic˘“ ¸ a (exemplu IEEE 802. unde un pachet emis de o ıns˘ a statie de pe cablu este receptionat de toate celelalte ¸i. Securitatea La comunicatiile prin cablu pe distant˘ scurt˘. iar la fibrele optice. Pentru comparatie. Aceste unde elecs tromagnetice fac parte din categoria undelor infraro¸ii.3. s −10 . Fiabilitatea Fiabilitatea unei leg˘turi radio este ˆ general mai sc˘zut˘ decˆt a a ın a a a unei leg˘turi pe cablu: a • Rata de erori este mult mai mare. analog cablului. ca urmare. starea ¸ a ¸ ın a a leg˘turii poate depinde de starea vremii. 10−12 .8 µm). anume din intervalul cuprins ˆ ¸ ıntre 1. Nivelul fizic 89 Pentru distante mici. dar cu frecvente mult mai mari. ciocnirea la ¸ ¸ s receptie a dou˘ pachete este sesizat˘ ¸i de c˘tre emit˘toare.2. Transmisia optic˘ a Transmisia optic˘ este de fapt tot o transmisie prin unde electromaga netice. ın ¸ la transmisia prin perechi de conductoare. 3. . probabilitatea unei a a erori de un bit este ˆ mod normal de 10−3 .. . 10 • La frecvente peste 10 GHz.8 µm) ¸i 3. 10−5 . se poate adopta o organizare mai . O statie ce ajunge ın ¸ ˆ umbr˘ va pierde leg˘tura ˆ mod imprevizibil. precum ¸i interferentele ˆ a s s ¸ ıntre undele reflectate. datorit˘ absorbtiei ˆ pic˘turile de ap˘.6 × 1014 Hz (λ = 1.c 2008.6. La o leg˘tur˘ radio. a • Umbrele provocate de cl˘diri ¸i relief. Retelele f˘r˘ fir este a ¸ aa esential s˘ aib˘ incorporate m˘suri de securitate. . probabilitatea unei erori de un bit este de 10−7 .7 × 1014 Hz (λ = 0. ın a a ın 3. 10−10 . Radu-Lucian Lup¸a s Capitolul 3. iar arbitrarea mediului se face prin mijloace asem˘n˘toare cu cele utilizate pe cabluri magistral˘ a a a (§ 4. .5.5.11): statiile comunic˘ direct ˆ ¸ a ıntre ele. securitatea comunica¸ ¸a a ¸iei poate fi asigurat˘ p˘zind cablul. ¸i eventual schimbarea frecventei (metoda frequency hopping) pentru a s ¸ preveni bruiajul. ¸ a ¸ 3. Acestea presupun metode ¸ a a a criptografice (vezi capitolul 6) ce previn ascultarea sau contrafacerea unui mesaj.

poate atinge cˆteva zeci ¸a s a de kilometri. ˆ ıntre emit˘tor ¸i receptor. Fibra propriu-zis˘ fiind extrem de subtire ¸i fragil˘. diode laser) ¸i. a s care permit trecerea curentului doar ˆ prezenta luminii.6. Radu-Lucian Lup¸a s 90 ˘ 3. . M˘rimea considerat˘ ca semnal este puterea luminoas˘. a ıns˘ s a a a O fibr˘ optic˘ este ˆ esent˘ un fir dintr-un material transparent.5 µm. ˆ ınconjurat de un ˆ ınveli¸ (engl. respectiv. Fibrele cu discontinuitate net˘ se numesc ¸ a a a fibre optice cu discontinuitate (engl. grade s index fiber ). ¸ a ˆ Intre miez ¸i ˆ s ınveli¸ poate fi o discontinuitate net˘.1. ea este ˆ a ¸ s a ınvelit˘ a . clads ding). Metoda este dificil de extins la distante mai mari. . ¸ Raza de lumin˘ poate fi ˆ a foarte u¸or ghidat˘ printr-o fibr˘ optic˘. Lucrurile care fac posibil˘ atingerea unor distante atˆt de mari a ¸ a sunt atenuarea mic˘ (sub 1 dB/km) ¸i imunitatea aproape perfect˘ la zgomot. tot din silica.c 2008. In ın a a a iese prin cel˘lalt cap˘t chiar dac˘ fibra nu este perfect dreapt˘. lumina ce intr˘ printr-un cap˘t al fibrei ˆ ıntoarce ˆ ınapoi ˆ fibr˘. diametrul firului de p˘r uman este de 20 . . Emisia ¸i receptia se realizeaz˘ cu dispozitive semiconductoare capas ¸ a bile s˘ emit˘ raze infraro¸ii la trecerea curentului prin ele (LED-uri. Constructia mediului ¸ Constructiv. Transmisia optica lumin˘ pentru aceste unde. a Lungimea fibrei. ın ¸ Pentru unele aplicatii. amorf). a s a 3. . Diametrul ˆ s ınveli¸ului este ˆ mod curent de 125 µm. dup˘ caz. optical a s s a waveguide). prin interiorul a a ın ¸a c˘ruia trece lumina. este cuprins ˆ a a ıntre 8 µm ¸i 62. asem˘n˘a a s a a toare celor de pe panourile de aparate. raza de lumin˘ se propag˘ direct prin aer de la emit˘tor la a a ¸a receptor. a a a a Fibra optic˘ se mai nume¸te ¸i ghid de und˘ optic (engl. presupunˆnd comunicatie pe distant˘ de cel ¸ a ¸ ¸a mult cˆ¸iva metri (de exemplu. de¸i nu se ˆ a s ıncadreaz˘ ˆ domeniul luminii vizibile a ın (λ = 780 nm . se a a a s ˆ acest fel.6. Diametrul ¸ ¸ miezului este principalul parametru dat la o fibr˘ optic˘. step index fiber ) iar fibrele cu trecere gradual˘ de la miez la ˆ a ınveli¸ se numesc fibre optice graduale (engl. Pentru s ın comparatie. sau. deoarece este identic ca ¸i scop ¸i foarte asem˘n˘tor functional cu s s a a ¸ ghidul de und˘ utilizat pentru microunde. c˘ semnalul transmis de mediu este intensitatea ın a cˆmpului electric sau inductia magnetic˘ ¸i c˘ utiliz˘m modulatie ˆ amplitua ¸ as a a ¸ ın dine pentru a transmite semnalul util. SiO2 . Dac˘ raza de lumin˘ love¸te peretele lateral al fibrei. sau se poate ca s a indicele de refractie s˘ scad˘ gradual. dar cu un indice de refractie putin mai mic. core) a a a a din silica (bioxid de siliciu. ˆ mod echivalent. Am putea a a a considera. 380 nm). o fibr˘ optic˘ este alc˘tuit˘ dintr-un miez (engl. 30 µm. pentru telecomenzi de televizoare sau pentru at dispozitive IrDA).

dar perturb˘ cel mai putin transmiterea semnalului prin a a ¸ fibr˘.6. ˆ fibre suficient de subtiri. Modurile diferite se propag˘ ˆ general s a ın cu viteze putin diferite. din a a ın cauza reflexiei unei p˘rti a luminii incidente. un mod este un posibil traseu al razei de lumin˘. Nivelul fizic 91 ˆ mai multe straturi cu rol de protectie mecanic˘. Intuitiv.2. Intuitiv. a traversˆnd ˆ mod repetat. numite moduri ¸ a a ¸ de propagare. care depinde de unghiul dintre directia ¸ .1. axul fibrei ¸i p˘strˆnd un unghi fixat a ın ın s a a fat˘ de acesta. ˆ alzind fibra pˆn˘ la temperatura de topire a sticlei ¸i ınc˘ a a s avˆnd grij˘ ca s˘ se lipeasc˘ capetele dar s˘ nu se amestece miezul cu a a a a a ˆ ınveli¸ul. Moduri de propagare Dac˘ diametrul fibrei nu este mai mare de cˆteva zeci de ori lungimea a a de und˘ a luminii. a¸ • prin conectoare optice. a 3. Reflexia trebuie s˘ fie cu pierderi ın a extrem de mici. Piesele metalice ata¸ate a a s capetelor de fibr˘ se strˆng una fat˘ de cealalt˘.2. doar anumite unghiuri sunt permise. Conectarea prin lipire necesit˘ echipamente mai scumpe. Eventual. Din a studiul ecuatiei undelor rezult˘ doar un num˘r finit de solutii. realizˆnd alinierea fat˘ a a ¸a a a ¸a ˆ fat˘ a capetelor de fibr˘. ın ¸ a Ideea de baz˘ a conducerii semnalului prin fibr˘ este c˘ o raz˘ de a a a a lumin˘ ce se propag˘ oblic prin miez ¸i atinge suprafata de contact dintre a a s ¸ miez ¸i ˆ s ınveli¸ s˘ se reflecte ˆ s a ınapoi ˆ miez. a a 3. modelul opticii geometrice — propagarea luminii sub forma a de raze — nu mai este o aproximare acceptabil˘ a fenomenelor ce au loc.1. Radu-Lucian Lup¸a s Capitolul 3. Propagarea semnalului optic 3. Fiecare cap˘t de fibr˘ se ¸lefuie¸te foarte bine ¸i a a s s s se prinde ˆ ıntr-o pies˘ metalic˘ cu rol de ghidaj. ˆ zig-zag.1 dB. ¸a ın ¸ Dac˘ o fibr˘ permite existenta mai multor moduri de propagare a a a ¸ luminii. O lipitur˘ produce o atenuare a semnalului ˆ jur de 0. spatiul dintre capetele de fibr˘ se ın ¸a a a poate umple cu un gel transparent cu indice de refractie apropiat de cel ¸ al fibrei.c 2008. acest lucru se ˆ ampl˘ deoarece viteza de ¸ ıntˆ a propagare a semnalului ˆ fibr˘ este egal˘ cu valoarea componentei longitudiın a a nale a vitezei de propagare a luminii. deoarece o raz˘ se va reflecta de multe ori de la un cap˘t la a a cel˘lalt al fibrei. reducˆnd astfel reflexia la cap˘tul fibrei. Conectarea cap ¸a la cap a dou˘ tronsoane de fibr˘ se poate face: a a • prin lipire. Conectarea fibrelor optice Problemele legate de conectarea fibrelor optice reprezint˘ principalul a dezavantaj al fibrelor optice fat˘ de perechile de conductoare. este s a nedemontabil˘. fibra se nume¸te multimod .6.6.1.

puterea emit˘torului. Diametrul mai mic al fibrei atrage dou˘ dificult˘¸i: pe de a at o parte. adic˘ l˘¸irea impulsurilor.2.3. a¸a cum am v˘zut. Caracteristici ale mediului D˘m ˆ continuare caracteristicile principale ale propag˘rii: a ın a viteza de propagare este viteza luminii ˆ silica. a zgomotul ˆ transmisia prin fibr˘ optic˘ apare aproape exclusiv datorit˘ ın a a a fotodiodei receptoare (zgomot termic). Acest fenomen de distorsionare a ¸ ın semnalului se nume¸te dispersie intermodal˘ . sunt de ordinul a 500 MHz km. a distorsiunile apar sub forma de dispersie. s a Opusul fibrei multimod este fibra monomod . Valorile s a a ın tipice.2.6. pentru o fibr˘ multimod.67 × c. foarte mic˘.6. ˆ care ecuatia undelor ın ¸ admite o singur˘ solutie. ¸ a ¸a a iar pe de alt˘ parte densitatea de putere luminoas˘ emis˘ prin fibr˘ trebuie a a a a s˘ fie mai mare. fiind receptionat la cel˘lalt cap˘t a ¸ a a ca mai multe copii putin decalate ˆ timp. Pentru a admite un a at a singur mod. Frecventa a ın ¸ purt˘toare este frecventa undelor infraro¸ii. de ordinul cˆtorva decibeli s a a a pe kilometru sau chiar cˆteva zecimi de decibel pe kilometru. fibra trebuie s˘ fie mult mai subtire.6. Sunt a at cauzate de mai multe fenomene. s ¸ 3. ¸i au ca ¸i consecint˘ limitarea practic˘ s s ¸a a a produsului dintre frecventa maxim˘ ce se poate transmite ¸i distanta ¸ a s ¸ dintre emit˘tor ¸i receptor. acesta limiteaz˘ inferior sensia bilitatea receptorului ¸i. Datorit˘ vitezelor diferite. a a s ın ¸a la cre¸terea preturilor echipamentelor. Multiplexarea ˆ lungimea de und˘ ın a Considerˆnd ca semnal intensitatea cˆmpului electric. 3. Semnalul modulator este r˘d˘cina a ¸ s a a p˘trat˘ a puterii luminoase emise. Existenta unui singur mod elimin˘ dispersia intera ¸ ¸ a modal˘. ˆ a ımbun˘t˘¸ind calitatea propag˘rii semnalului. sunt ¸ s ın neglijabile. ¸i ˆ particular diafonia. diametrele standard fiind a ¸ 10 µm sau 8 µm. ˆ consecint˘. a a . la atenuare dat˘ a fibrei. Transmisia optica de propagare a luminii ¸i axa fibrei. Acest produs se nume¸te (impropriu) banda ¸a s s de trecere ¸i se m˘soar˘ ˆ megahertzi kilometru (MHz km).c 2008. semnalul emis s a de la un cap˘t al fibrei este distorsionat. Radu-Lucian Lup¸a s 92 ˘ 3. Acest din urm˘ fapt duce la necesitatea utiliz˘rii diodelor a a a laser ca surs˘ de lumin˘ (LED-urile nu mai sunt adecvate) ¸i. aproximativ 0. cerintele de aliniere mecanic˘ a fibrei fat˘ de surs˘ sunt mai stricte. s a ¸a Captarea de paraziti de-a lungul fibrei.2. observ˘m c˘ a a a a prin fibra optic˘ se transmite un semnal modulat ˆ amplitudine. ın atenuarea este.

c 2008. ˆ cazul ˆ care a ın ın lumina de la emit˘torul optic p˘trunde ˆ ochi. Aceast˘ metod˘ de a ın ¸ a a multiplexare se nume¸te multiplexare ˆ lungimea de und˘ (engl. de exemplu la tensiuni electrice mari sau ˆ medii cu ın ¸ ın radiatii electromagnetice puternice. ˆ sfˆr¸it. fibrele optice concureaz˘ a a a direct cu perechile de conductoare. ˆ lipsa mijloacele de-a analiza direct semnalul electromagnetic (asupra ın c˘ruia opereaz˘ multiplexarea ˆ frecvent˘ ). ¸ Principalele dificult˘¸i la utilizarea fibrelor optice sunt legate de caat blare. Diferenta provine doar din faptul c˘. este posibil˘ realizarea multiplex˘rii ˆ frecvent˘ a mai a a ın ¸a multor semnale pe aceea¸i fibr˘ optic˘. De¸i puterea luminii transportate prin fibra optic˘ este foarte mic˘. analiz˘m doar puterea semnalului a a ın ¸a a electromagnetic. sunt mult mai u¸oare (contin mult mai putin a s ın a s s ¸ ¸ material) decˆt perechile de conductoare. Nivelul fizic 93 Ca urmare. precum ¸i pentru echipamente ce lucreaz˘ ¸ ¸ s a ˆ conditii mai speciale. Radu-Lucian Lup¸a s Capitolul 3. iar t˘ierea fibrei poate fi u¸or detectat˘). a Toate aceste avantaje fac fibrele optice s˘ fie extrem de atractive pena tru comunicatia pe distante mari. Subliniem c˘ diferenta ˆ a ¸ ıntre multiplexarea ˆ lungime de und˘ ¸i multiplexarea ˆ frecvent˘ este doar de terminologie. Considerente practice Realizˆnd o transmisie ghidat˘ prin cablu. Fibrele optice au cˆteva avantaje: sunt a izolatoare din punct de vedere electric. Riscul de accident este m˘rit prin faptul c˘ lumina nu este vizibil˘. Pentru as a a a aceasta se realizeaz˘ o constructie cu oglinzi semitransparente care permite ca a ¸ raza de lumin˘ emis˘ s˘ p˘trund˘ ˆ fibr˘.6. Pentru a preveni diafonia ˆ a a ıntre cele dou˘ a sensuri de propagare. Este posibil˘ ¸i transmisia duplex pe o singur˘ fibr˘ optic˘. Riscul principal este ca. s˘ produc˘ leziuni ireparabile ¸a a ın a a ale retinei. Receptoarele sunt dotate cu cˆte un filtru de culoare a corespunz˘toare plasat ˆ fata elementului fotosensibil. 3. ın a s ın ¸a nu una principial˘. se pot utiliza ochelari speciali prev˘zuti cu filtre care a a ¸ a ¸ . wavelength s ın a division multiplexing — WDM). a s a au atenuare mic˘ ¸i. sunt foarte putin sensibile la zgomot. a a a Ca m˘sur˘ de protectie. este necesar ca reflexiile pe capetele fibrei s˘ fie extrem a de reduse sau s˘ se aplice o multiplexare ˆ lungimea de und˘ ˆ a ın a ıntre cele dou˘ a sensuri. iar raza de lumin˘ ce iese din fibr˘ a a a a a ın a a a s˘ ajung˘ pe elementul receptor. ¸ este dificil de interceptat comunicatia prin ele (f˘r˘ a le t˘ia este aproape ¸ aa a imposibil de interceptat semnalul. s a a sectiunea extrem de mic˘ a fibrei face ca densitatea de putere s˘ fie suficient ¸ a a de mare pentru a fi periculoas˘. Emit˘toarele sunt diode laser sau LEDs a a ¸a uri de culori diferite. ˆ cazul transmisiei a ¸ a ın optice.3.

Radu-Lucian Lup¸a s 94 ˘ 3. s Un fir de praf ajuns pe cap˘tul unei fibre optice obstructioneaz˘ sea ¸ a rios trecerea luminii. conectoarele necuplate se acoper˘ cu capace a protectoare. se comercializeaz˘ cabluri. Transmisia optica las˘ s˘ treac˘ lumina vizibil˘.6. . de diferite lungimi.c 2008. Din acest motiv. a a a a a s Lipirea fibrelor sau montarea conectoarelor pe fibre necesit˘ echipaa mente scumpe (zeci de mii de dolari pentru un dispozitiv de lipire ¸i ˆ jur de s ın o mie de dolari pentru setul de unelte necesare mont˘rii conectoarelor) ¸i pera s sonal calificat. a cu conectoare gata ata¸ate. De aceea. dar blocheaz˘ infraro¸iile transmise prin fibre.

pachetele transmise se altereaz˘ reciproc. a a a partajˆnd aceea¸i leg˘tur˘ fizic˘. exist˘ un cost indepen¸ a a a dent de capacitate. at ¸ . a s a a a Ca urmare. • controlul accesului la mediu ˆ cazul ˆ care exist˘ mai multe emit˘toare ın ın a ¸a ce partajeaz˘ acela¸i mediu de transmisie. dar uneori ¸i ıntˆ a s la transmisia prin perechi de conductoare) ¸i mai multe dintre aceste s emit˘toare transmit simultan. nivelul leg˘turii de date are sarcina de-a realiza urm˘toaa a rele: • detectarea sau corectarea erorilor de transmisie. Radu-Lucian Lup¸a s 95 Capitolul 4 Nivelul leg˘turii de date a Nivelul leg˘turii de date are ca rol realizarea unei comunicatii stabile a ¸ ˆ ıntre calculatoare sau echipamente ˆ ıntre care exist˘ o leg˘tur˘ direct˘ la nivel a a a a fizic (exist˘ deci un mediu de comunicatie ˆ a ¸ ıntre ele). a s • retransmiterea pachetelor pierdute din cauza erorilor de transmisie. a ¸a • Constructia leg˘turii fizice este scump˘. ˆ general. mai mult. Ca urmare. • Dac˘ un acela¸i mediu de transmisie este utilizat de mai multe emit˘toare a s ¸a (ceea ce se ˆ ampl˘ adesea la transmisia prin unde radio. care s˘ transmit˘ fluxuri independente de pachete. este de dorit s˘ putem construim mai a multe leg˘turi logice. In a a Nivelul fizic ofer˘ servicii de transport de pachete. ˆ a aceste servicii a ıns˘ sufer˘ de urm˘toarele lipsuri: a a • Pachetele pot fi alterate sau chiar distruse complet din cauza zgomotului. o parte din date se vor pierde. leg˘tura de date ofer˘ servicii de transport de pachete. a ciocnirilor ˆ ıntre pachete transmise de mai multe emit˘toare simultan ¸a sau a incapacit˘¸ii destinatiei de-a le prelua la timp.c 2008. ¸a a • Dac˘ destinatia nu poate prelucra datele ˆ ritmul ˆ care sunt transmise a ¸ ın ın de c˘tre emit˘tor.

de regul˘. a ¸ a Receptorul recalculeaz˘ bitii de control conform continutului pachetua ¸ ¸ lui receptionat ¸i-i compar˘ cu cei de la finalul pachetului receptionat. la fiecare pachet generat de nivelul a a superior. ˆ caz ¸ s a ¸ In de nepotrivire. Radu-Lucian Lup¸a s 96 ˘ Capitolul 4. un astfel de pachet se nume¸te pachet de control.1: Alc˘tuirea nivelului leg˘turii de date ¸i locul s˘u ˆ a a s a ıntre nivelele retelei. receptorul reconstituie continutul a ¸ . ın aa ˆ primul caz. nivelul leg˘turii de date este un modul interpus ˆ a ıntre nivelul superior (ˆ mod normal.4). fie separat. dup˘ caz. Pentru ın ¸ s realizarea functiilor lor.c 2008. 4. ˆ a In cazul utiliz˘rii unui cod corector de erori. la finalul pachetului. Bitii de control sunt calculati conform a ¸ ¸ ¸ unui mecanism de codificare pentru canale cu perturbatii (vezi § 2. ¸ Constructiv. s 4. ˆ acela¸i a ın s pachet transmis prin nivelul fizic.1). Nivelul legaturii de date • controlul fluxului de date. nivelul retea) ¸i nivelul fizic (fig. modulele nivelului leg˘turii de date ale dispozitivelor ¸ a ce comunic˘ ˆsi transmit unul altuia. corect˘rii erorilor. informatiile de control sunt plasate fie ˆ fata datelor utile. receptorul deduce c˘ s-a produs o eroare de transmisie.1. • informatii de control. a s a a a Surs˘ a (modulul retea) ¸ Emit˘tor ¸a leg˘tur˘ a a de date Nivel fizic Receptor leg˘tur˘ a a de date Destinatie ¸ (modulul retea) ¸ Calculator emit˘tor ¸a Calculator receptor Figura 4. adic˘ frˆnarea emit˘torului ˆ cazul ˆ care a a ¸a ın ın destinatia nu este capabil˘ s˘ proceseze suficient de repede informatia ¸ a a ¸ primit˘. ¸ a Informatiile de control sunt transmise fie ˆ ¸ ımpreun˘ cu datele utile. fie dup˘ acestea. ˆ pachete de sine st˘t˘toare. pentru uzul strict al nivelului leg˘turii de date. dou˘ a ı¸ a a tipuri de informatii: ¸ • datele utile. sub In ¸ ın ¸ forma unui antet. a • multiplexarea mai multor leg˘turi logice prin aceea¸i leg˘tur˘ fizic˘. Detectarea ¸i corectarea erorilor s ˆ vederea detect˘rii sau. ce trebuie transmise de c˘tre nivelul leg˘turii de date ˆ a a ın folosul nivelelor superioare. ˆ cazul transmiterii datelor de control a In ˆ ıntr-un pachet separat. Bitii de ¸ ¸ control sunt ad˘ugati. un num˘r de biti de control. emit˘torul In a a a ¸a de la nivelul leg˘turii de date adaug˘. utilizˆnd serviciile nivelului fizic.

Controlul accesului la mediu Problema controlului accesului la mediu se pune ˆ situatia ˆ care pe ın ¸ ın un acela¸i mediu fizic actioneaz˘ mai multe emit˘toare. adic˘ ˆ cazul comunicatiei bidirectionale.. ˆ aceste conditii. etc. o parte din capacitatea de a transmisie a mediului este consumat˘ de mesajele de sincronizare necesare a stabilirii intervalelor fiec˘rei statii. ˆ schimb. pe rˆnd. precum ¸i revenirea dup˘ o pan˘ a unei statii. ˆ cazul accept˘rii coliziunilor. a c˘ror emisie simuls ¸ a ¸a a tan˘ interfereaz˘ ˆ a¸a fel ˆ at un receptor nu poate receptiona corect oricare a a ın s ıncˆ ¸ dintre transmisii. adic˘ mediul de comunicatie a ¸ a a ¸ — ˆ general o pereche de conductoare — trece pe la toate statiile. Radu-Lucian Lup¸a s ˘ Capitolul 4.c 2008. a ¸ • acceptarea posibilit˘¸ii coliziunilor ¸i retransmisia pachetelor distruse ˆ at s ın coliziuni. Bluetooth. ˆ sistemele a a a In ın ce asigur˘ un interval exclusiv de emisie. In pachetul nu poate fi recuperat. GSM. a a ın . ¸ Exist˘ dou˘ strategii de control al accesului la mediu: a a • asigurarea unui interval exclusiv de emisie. Nivelul legaturii de date 97 cel mai probabil al pachetului original. metoda cu coliziuni ¸i retransmiteri este nedeterminist˘ ın s a ¸i ca atare asigur˘ un anumit debit ¸i un anumit timp de a¸teptare doar cu s a s s o anumit˘ probabilitate strict mai mic˘ decˆt unu.2. o parte din a ¸ ın a capacitate este pierdut˘ datorit˘ pachetelor distruse ˆ coliziuni. ˆ ¸ s a a ¸ In cazul asigur˘rii unui interval exclusiv de emisie. ˆ acest caz. utilizˆnd acela¸i mediu fizic pentru ambele sensuri. a a ˆ practic˘.tip magistral˘“. aa • dac˘ statiile sunt conectate . pentru fiecare statie. Este ın ¸ cazul retelelor Ethernet mai vechi.3.11 (wireless Ethernet). emisia unei statii este receptionat˘ aceea¸i lungime de und˘. In s a ¸ ¸ a de toate statiile pe o anumit˘ raz˘. dac˘ exist˘ mai multe statii care emit pe ¸ a a ¸ ˆ general. ın ın 4. sunt complicate. ˆ a ın ¸ ¸ ıntre dou˘ entit˘¸i. problema accesului la mediu apare ˆ urm˘toarele ipostaze: In a ın a • la transmisia semi-duplex . Asigurarea unui interval exclusiv de emisie permite garantarea. eventuala retransmitere a datelor ın cade ˆ sarcina unui mecanism de tipul celui ce va fi studiat ˆ § 4. pentru fiecare statie. a at a s • la comunicatia prin unde radio. a unui debit minim cu care poate emite ¸i a unui interval ¸ s maxim de a¸teptare din momentul ˆ care are ceva de transmis ¸i pˆn˘ la s ın s a a intrarea ˆ emisie. Este cazul aproape tuturor retelelor ¸ a a ¸ f˘r˘ fir: IEEE 802. problema accesului la mediu const˘ ˆ a In ¸ a ın elabora un protocol care s˘ evite transmisia simultan˘. intrarea ¸i ie¸irea unei statii din a s s ¸ retea. ˆ cazul unui cod detector de erori.

ie¸irea arbitrului nu este posibil˘ ¸ ¸ s a (decˆt eventual prin desemnarea unui alt arbitru). fie prin anuntul explicit al ¸ statiei c˘ a ˆ ¸ a ıncheiat transmisia. a ¸ a a ¸ fie este detectat˘ de c˘tre arbitru c˘ nu r˘spunde ¸i este scoas˘ de pe lista a a a a s a statiilor din retea. dac˘ nu e pericol de a confuzie. Acest identificator se nume¸te adres˘ fizic˘ sau adres˘ MAC (de la Mes a a a dia Access Control — controlul accesului la mediu) sau.2. a a ¸ a ın ¸ a ¸ a se defecteaz˘. Defectarea arbitrului duce la c˘derea ˆ ¸ ¸ a ıntregii retele. ¸a ¸ a Arbitrul trebuie s˘ aib˘ lista tuturor statiilor din retea. Alocarea adresei fizice se face ˆ mod normal prin mecanisme a ın exterioare retelei. fie ˆ cadrul procesului de fabricatie al dispozitivului conectat la ¸ ın ¸ retea. statia fie este v˘zut˘ ca o statie ce nu are nimic de transmis. Dup˘ ˆ a ıncheierea perioadei alocate unei statii. ¸ s Aproape ˆ orice sistem ˆ care mai multe dispozitive sunt conectate ın ın la acela¸i mediu fizic este necesar ca fiecare dispozitiv s˘ aib˘ un identificator s a a unic. cum ar fi retelele utilizate pentru automatiz˘ri a ın ın ¸ a industriale transmisie audio-video. cum ar ın a ın fi retelele . ¸ 4. periodic. Anuntul se face printr-un pachet emis de arbitru ¸i continˆnd adresa ¸ s ¸ a fizic˘ a statiei ce poate emite. alta decˆt arbitrul. ¸ arbitrul anunt˘ statia urm˘toare. adic˘ adresele sunt alocate fie manual.c 2008. Detectarea coliziunilor ¸i retransmiterea s pachetelor distruse ˆ coliziuni este favorabil˘ ˆ sistemele interactive. Radu-Lucian Lup¸a s 98 4. adres˘. Ie¸irea unei a a ¸ ¸ s statii se face simplu prin anuntarea arbitrului. asigurarea unui interval exclusiv de emisie este favoraIn bil˘ ˆ sistemele ˆ timp real. Statia anuntat˘ de arbitru are la dispozitie un a ¸ ¸ ¸ a ¸ interval de timp ˆ care poate s˘ emit˘ ceea ce are de transmis. Dac˘ statia nu ın a a a ¸ are nimic de transmis. Intrarea unei statii noi a ¸ necesit˘ un mecanism special de anuntare a arbitrului. a ¸ fie c˘ emite un pachet special. dac˘ exist˘ statii ce vor s˘ intre ˆ retea. ¸ .. Protocoale bazate pe asigurarea unui interval exclusiv de emisie Cea mai simpl˘ metod˘ din aceast˘ categorie este s˘ existe o statie a a a a ¸ desemnat˘ ca arbitru. care s˘ anunte de fiecare dat˘ ce statie prime¸te dreptul a a ¸ a ¸ s de emisie. Un astfel de mecanism a ¸ este ˆ general bazat pe coliziuni ¸i prevede ca arbitrul s˘ ˆ ın s a ıntrebe. protocolul poate prevede fie c˘ statia nu emite nimic. ˆ a Incheierea perioadei alocate unei statii se poate ¸ face fie la expirarea unei durate de timp prestabilite. Controlul accesului la mediu ˆ general.2.obi¸nuite“ de calculatoare. de c˘tre administra¸ a a torul retelei. Dac˘ o statie.1.

¸ A a B c C A a B c C A c B a C (a) A ¸i C emit simuls tan cˆte un pachet scurt.c 2008.2).4. ˆ arzierea a ın s ıntˆ maxim˘ datorat˘ propag˘rii ˆ retea trebuie limitat˘ prin standard. fiecare statie cunoscˆnd adresa statiei a ¸ a ¸ a ¸ urm˘toare. un emit˘tor trebuie a ¸ ¸a s˘ considere coliziune orice situatie ˆ care detecteaz˘ o transmisie prea a ¸ ın a apropiat˘ ˆ timp de o transmisie proprie. de c˘tre fiecare dintre statiile emit˘toare. (b) Ceva mai tˆrziu. daa a a s . ˆ cazul ¸ a a In unei coliziuni. a Fiecare dintre ei termin˘ a emisia propriului pachet cu mult ˆ ınaintea sosirii pachetului celuilalt. ˆ loc s˘ existe un arbitru central care detine lista comın a ¸ plet˘ a statiilor. Radu-Lucian Lup¸a s ˘ Capitolul 4. Protocoale bazate pe coliziuni ¸i retransmitere s Cel mai simplu mecanism bazat pe coliziuni ¸i retransmitere pres supune ca o statie ce are date de transmis s˘ le transmit˘ imediat. ama bele pachete ajung la B. Coliziunea nu este detectat˘ de nici unul a a dintre emit˘toare. Nivelul legaturii de date 99 Metoda cu arbitru este utilizat˘. lista este distribuit˘. de exemplu. ˆ intervalul de emisie alocat. unde se produce coliziune.2: Dou˘ pachete emise simultan. este posibil ca dou˘ a ıntˆ a pachete s˘ fie ˆ coliziune pentru o statie receptoare ¸i s˘ nu fie ˆ cola ın ¸ s a ın iziune pentru alt˘ statie (fig 4. La leg˘turile radio poate s˘ mai apar˘ un fenomen. (c) Si mai tˆrziu. Detectarea unei coliziuni. ˆ a este detectat˘ de o statie aflat˘ la jum˘tatea distantei dintre ¸a ıns˘ a ¸ a a ¸ acestea. ˆ cadrul fiec˘rei celule a ın a GSM.2. Din acest motiv. A ¸ a prime¸te pachetul lui C s ¸i C prime¸te pachetul lui s s A. ˆ a a In cadrul acestei metode. a ¸ ¸a se poate face prin dou˘ metode: a • prin ascultarea mediului pentru a detecta o eventual˘ transmisie simula tan˘. fiecare statie emite a In ın ¸ datele utile. ¸i anume. a ın ¸ 4. Din acela¸i motiv. O alt˘ metod˘ de control al accesului este metoda cu jeton. dup˘ care anunt˘ statia urm˘toare.2. Figura 4. Metoda cu jeton a fost utia ¸a ¸ a lizat˘ ˆ retelele IEEE 802. ceea a a a ın ¸ a ce impune o limit˘ asupra ˆ a ıntinderii geografice a retelei. ˆ acest fel. a Datorit˘ ˆ arzierilor de propagare diferite. pˆn˘ la o trans¸ ¸a a a mitere cu succes. statia emit˘toare va repeta ulterior pachetul. ˆ conditiile ˆ care timpul de propagare a ın ¸ ın este mai mare decˆt timpul de transfer.

2. dac˘ apar frecvent coliziuni. B. a Alte ˆ ımbun˘¸˘¸iri ce pot fi aduse protocolului Aloha pur (nu ˆ a ¸i atat ıns˘ s la Aloha cuantificat) sunt: • detectarea purt˘toarei (CSMA — Carrier Sense Multiple Access): o statie a ¸ . din partea receptorului. ˆ acest caz. A ¸i C pot emite simultan ¸ ¸ a In s f˘r˘ a detecta coliziune.3). dou˘ a a a a statii ce au emis simultan vor emite simultan ¸i retransmiterile. • prin lipsa confirm˘rii. a a a a a Acest protocol simplu de acces la mediu se nume¸te Aloha pur . cu ajua torul c˘ruia receptorul s˘ detecteaze disturgerea pachetului ˆ urma a a ın coliziunii.c 2008. ˆ a pentru B se produce coliziune ˆ aa ıns˘ ıntre transmisiile lui A ¸i s C. mai este necesar ca receptorul s˘ confirme a pachetele primite cu succes (astfel de mecanisme de confirmare vor fi studiate ˆ § 4. aflate la o durat˘ de pachet unul de altul. Din acest motiv. Dac˘ intervalul de timp pˆn˘ la retransmitere ar fi fix. ciocnindu-¸i la ¸ s s infinit pachetele.3: Este posibil ca dou˘ emit˘toare radio. dar s˘ existe o a treia statie.3). ˆ acest protocol. s O variant˘ ˆ a ımbun˘¸˘¸it˘ a protocolului Aloha este protocolul numit atat a Aloha cuantificat (engl. s a ci doar la momente fixate. A B C Figura 4. toate pachetele au In ˆ aceea¸i lungime. s˘ fie situate prea departe a ¸a s a pentru a-¸i receptiona una transmisia celeilalte. Mai mult. Radu-Lucian Lup¸a s 100 4. 4. este posibil ca pentru un receptor s˘ apar˘ a a a a coliziune ˆ ıntre dou˘ pachete. Pena tru aceasta. ın Repetarea unui pachet distrus de o coliziune se face dup˘ un interval a de timp aleator. Controlul accesului la mediu torit˘ atenu˘rilor diferite. este necesar˘ utilizarea unui cod detector de erori. Inceperea transmisiei unui pachet nu poate avea loc oricˆnd. De asemenea. a primirii pachetului. ˆ timp ce pentru alt receptor unul dina ın tre pachete s˘ fie atˆt de puternic atenuat ˆ at s˘ nu perturbe deloc a a ıncˆ a receptia celui de-al doilea pachet (fig. care s˘ s ¸ a ¸ a receptioneze transmisiile ambelor emit˘toare (liniile punctate delimiteaz˘ zona ˆ care ¸ ¸a a ın transmisia unei statii poate fi receptionat˘). la trans¸ misia radio este imposibil ca emit˘torul s˘ detecteze ˆ ¸a a ıntotdeauna coliziunile propriei transmisii cu alte transmisii simultane. slotted Aloha). este bine ca timpul a pˆn˘ la urm˘toarea retransmitere s˘ fie m˘rit. A ¸i C.

echivalent. rezultˆnd coliziuni. Nivelul legaturii de date 101 care dore¸te s˘ emit˘ ascult˘ mai ˆ ai mediul. ˆ timpul emisiei proprii.3. O statie care receptioneaz˘ un CTS adresat altei ¸ ¸ a statii nu are voie s˘ transmit˘ nici date. dac˘ detecteaz˘ emisia s a a a ıntˆ a a altei statii. se economise¸te timpul necesar transmisiei datelor r˘mase. Protocoale mixte Exist˘ ¸i protocoale de control al accesului la mediu care combin˘ a s a metode de asigurarea accesului exclusiv cu metode bazate pe coliziuni. a 4. detecteaz˘ o coliziune. transs a misie oricum compromis˘. oarecum improa priu. CTS (clear to send. ca urmare la finalul transmisiei acelui pachet toate a a statiile vor emite simultan. rom. ˆ acest ¸ a s s In fel. prin intermediul unor pachete de a control de mici dimensiuni. nici pachete de control. destinat lui A dar receptionat de toate statiile. Dezavantajul este c˘. dac˘ nu. pe a ¸ a durata unui pachet lung. ¸ a ın s a . O astfel de metod˘ este metoda CSMA/CA (carrier sense multiple a access with collision avoidance. dup˘ a a a s a care s˘ verifice din nou dac˘ mediul este liber. este probabil s˘ se adune mai multe statii care a ¸ ar fi vrut s˘ emit˘. liber la transa misie). transmite un semnal de o form˘ special˘ pena a a tru a anunta c˘ pachetul este invalid ¸i apoi opre¸te transmisia. d. ˆ care pune ¸i durata ¸ ¸ ın s transmisiei copiat˘ din pachetul RTS. pe durata ¸ a a anuntat˘ ˆ CTS ¸i rezervat˘ astfel destinatarului CTS-ului. m. acces multiplu cu detectarea purt˘toarei ¸i a s evitarea coliziunilor ). O posibilitate este s˘ se negocieze. amˆn˘ emisia proprie pˆn˘ dup˘ finalul emisiei celeilalte ¸ a a a a a statii. a. lungimea pachetului). La primirea pachetului CTS. B r˘spunde printr-un alt pachet de control. abandoneaz˘ ¸ ın a a datele r˘mase de transmis. ˆ care specific˘ ın a timpul necesar transmiterii pachetului (sau.2. numit RTS (request to send. ¸ a O solutie mai bun˘ este ca o statie. a a a ˆ ıncepe emisia proprie. CSMA/CD): dac˘ o a statie.c 2008. Dac˘ mediul este liber. Radu-Lucian Lup¸a s ˘ Capitolul 4. care dore¸te s˘ emit˘ ¸i con¸ a ¸ s a as stat˘ c˘ mediul este ocupat. s˘ a¸tepte un interval de timp aleator. accesul exclusiv la mediu ˆ vederea transmiterii ın pachetelor de date. cerere de transmisie). statia A a ¸ transmite pachetul de date. O statie A care dore¸te a ın ¸ ¸ s s˘ transmit˘ un pachet de date unei statii B ˆ va trimite ˆ ai un pachet de a a ¸ ıi ıntˆ control. detectarea coliziunii — collision detection. de dimensiuni mai mari. utilizat˘ ˆ retelele IEEE 802. a¸teapt˘ un nou interval de timp aleator a s a ¸.11. ¸ O prim˘ posibilitate este ca statia s˘ ˆ a ¸ a ınceap˘ emisia proprie imea diat dup˘ terminarea emisiei celeilalte statii. s • oprirea transmisiei la detectarea unei coliziuni (numit˘.

ˆ cadrul fiec˘rui grup se ¸ In a aplic˘ un protocol cu coliziuni ¸i retransmitere. ˆ artirea ˆ grupuri poate a s Imp˘ ¸ ın fi f˘cut˘ dinamic: dac˘ ˆ cadrul unui grup apar frecvent coliziuni.ghiceasc˘“ dac˘ un anumit pachet ¸a a a a ajunge intact la destinatie sau este pierdut. dac˘ dou˘ grupuri au transmisii suficient de rare. Fiec˘rui grup i se aloc˘ intervale exclusive de emisie (ca ˆ cazul ın a a ın protocoalelor bazate pe intervale exclusive de emisie. Controlul accesului la mediu Aceast˘ metod˘ este foarte favorabil˘ ˆ retele f˘r˘ fir deoarece rea a a ın ¸ aa zolv˘ ¸i a¸a-numita problema statiei ascunse: este posibil s˘ existe trei statii. din punctul de vedere al lui In a ¸ a s B se produce o coliziune. dar cu diferenta c˘ fiecare ¸ a interval se aloc˘ unui ˆ a ıntreg grup. Retransmiterea pachetelor pierdute Dac˘ un pachet de date se pierde (de exemplu datorit˘ unei erori de a a transmisie. este necesar˘ a s a a retransmiterea acelui pachet. a Rolul unui protocol de retransmitere este s˘ asigure c˘ la destinatie a a ¸ ajung toate pachetele emise. Alt˘ posibilitate de combinare a celor dou˘ strategii o constituie proa a ˆ cazul acestor protocoale. ACK) primirea corect˘ a paa a chetelor • receptorul infirm˘ (engl. ˆ protocolul a a In CSMA/CA. Principial. ˆ ordinea ˆ care sunt emise ¸i f˘r˘ duplicate. trebuie stabilit˘ o ¸ a comunicatie ˆ ¸ ınapoi dinspre receptor spre emit˘tor. Protocolul CSMA. confirm˘rile sau infirm˘rile sunt ¸i ele pachete ¸i deci sunt a a s s la rˆndul lor supuse eventualelor erori de transmisie. nu permite lui C s˘ detecteze ın a dac˘ A transmitea deja c˘tre B ˆ momentul ˆ care C dore¸te s˘ transmit˘ la a a ın ın s a a rˆndul lui.3. exist˘ dou˘ ¸a a a strategii: • receptorul confirm˘ (engl. ca urmare. eroare detectat˘ dar nu ¸i corectat˘ de receptor). grupul a a a ın este scindat ˆ dou˘. s ıncˆ a a ˆ aceast˘ situatie. cu B situat˘ geografic aproximativ la mijlocul distantei ˆ s a ¸ ıntre A ¸i s C. Evident. dar nici A nici C nu pot detecta acest lucru. C receptioneaz˘ CTS-ul adresat de B lui A ¸i amˆn˘ ın ¸ a s a a transmisia proprie. ın ın s a a . statiile sunt ˆ artite tocolalele cu conflict limitat. as s ¸ a ¸ A. ˆ schimb. dac˘ A ¸i C emit simultan.2. 4. emit˘torul nu are cum s˘ . B ¸i C.. Radu-Lucian Lup¸a s 102 4. astfel ¸ s ¸ ¸ ˆ at A nu receptioneaz˘ transmisia lui C ¸i nici reciproc. a Evident. acknowledge. pot fi ın a a a recombinate ˆ ıntr-unul singur. CSMA se comport˘ exact ca Aloha pur.c 2008. descris ˆ paragraful precedent. dar cu B suficient ıncˆ ¸ a s de aproape de A ¸i de C astfel ˆ at s˘ poat˘ comunica cu fiecare dintre ele. negative acknowledge. NAK) un pachet eronat. nu unei statii). In ¸ ımp˘ ¸ ˆ grupuri. cu distanta dintre A ¸i C putin peste raza de actiune a transmisiei. ca urmare.

Surs˘ a Emit˘tor ¸a Receptor Destinatie ¸ Un mesaj Un mesaj Un mesaj ACK al doilea al doilea timeout al doilea al doilea ACK Figura 4. a a ¸a s trece la urm˘torul pachet. a ¸ ıi Algoritmul emit˘torului este urm˘torul: pentru fiecare pachet al sur¸a a sei. repet˘ pachetul ce nu a fost confirmat a (vezi figura 4. Principiul confirm˘rilor pozitive ¸i retransmiterilor a s Ideea de baz˘ a mecanismului de retransmitere este urm˘toarea: la a a primirea cu succes a fiec˘rui pachet de date.1. 4. trimite pachetul ¸i a¸teapt˘ a s s a pˆn˘ cˆnd fie prime¸te confirmarea. Dac˘ emit˘torul prime¸te confirmarea. dat˘ de acele informatii care ˆ sunt accesibile. a . receptorul trimite emit˘torului a ¸a cˆte un pachet cu rol de confirmare. cˆt timp nu a primit confirmare de la receptor. a a a reliable).3.4).4: Retransmiterea pachetelor pierdute S˘ examin˘m acum protocolul din punctul de vedere al fiec˘rui para a a ticipant (emit˘torul ¸i receptorul) ¸i s˘ nu uit˘m c˘ fiecare are viziunea lui ¸a s s a a a despre sistem. fie trece un timp egal cu durata dus-ˆ a a a s ıntors normal˘.c 2008. Dac˘ emit˘torul nu prime¸te confirmarea unui a a ¸a s pachet ˆ timpul dus-ˆ ın ıntors normal. Radu-Lucian Lup¸a s ˘ Capitolul 4. Nivelul legaturii de date 103 Aceste trei conditii ˆ ¸ ımpreun˘ formeaz˘ dezideratul de transmitere sigur˘ (engl.

ˆ acest fel. trimite un pachet de confirmare spre emit˘tor ¸i livreaz˘ ¸a ¸a s a destinatiei pachetul primit. Retransmiterea pachetelor pierdute Algoritmul receptorului este urm˘torul: pentru fiecare pachet primit a de la emit˘tor.c 2008. trebuie s˘ furniz˘m receptorului ¸ a a suficient˘ informatie pentru ca acesta s˘ disting˘ ˆ a ¸ a a ıntre repetarea pachetului precedent ¸i pachetul urm˘tor. s a a Pentru a obtine un algoritm corect. ¸ Exist˘ o problem˘ cu algoritmul de mai sus. acest num˘r de a a ın a ordine se nume¸te num˘rul de secvent˘ al pachetului. ˆ a a Intrebare pentru cititor: ce se ˆ ampl˘ dac˘ un pachet ajunge la destinatie ˆ a confirmarea lui se ıntˆ a a ¸ ıns˘ pierde? Surs˘ a Emit˘tor ¸a Receptor Destinatie ¸ Un mesaj Un mesaj Un mesaj ACK al doilea al doilea al doilea timeout ACK al doilea al doilea ACK Figura 4. receptorul s a ¸a In va retine num˘rul ultimului pachet receptionat ¸i va fi capabil s˘ verifice dac˘ ¸ a ¸ s a a urm˘torul pachet primit este repetarea acestuia sau este urm˘torul pachet al a a . pierderea unei confirm˘ri conduce la In a a dublarea unui pachet.3.4) c˘ receptorul nu are cum s˘ disting˘ ˆ a a a ıntre trimiterea urm˘torului a pachet de date ¸i retrimiterea unui pachet datorit˘ pierderii confirm˘rii.al doilea“ ın ¸ este livrat ˆ dublu exemplar destinatiei). O solutie este ca emit˘torul s˘ pun˘ ˆ fiecare s a ¸ ¸a a a ın pachet trimis num˘rul s˘u de ordine ˆ cadrul fluxului de date.. Rezultatul se vede ˆ figura 4.5: ˆ lipsa unor m˘suri adecvate. Radu-Lucian Lup¸a s 104 4. S˘ observ˘m (comparati ¸i cu ın ¸ a a ¸ s figura 4.5 (pachetul ce contine textul .

6: Neconfirmarea duplicatelor determin˘ emit˘torul s˘ repete la infinit un a ¸a a pachet a c˘rui confirmare s-a pierdut. este posibil (conform informatiilor emit˘torului) ca pachetul s˘ fi ¸ ¸a a ajuns (¸i eventual s˘ se fi pierdut confirmarea) sau ca pachetul s˘ nu fi ajuns s a a deloc. . El insist˘ ˆ retransmiterea pachetului pˆn˘ la primirea confirm˘rii. a ın a a a Prin urmare. 2 al doilea Figura 4. chiar dac˘ a a este un duplicat al unui pachet anterior (vezi figura 4. Dac˘ a s a a prime¸te confirmarea unui pachet.c 2008. . iar ¸ ¸a a ın cea a receptorului ˆ algoritmul 4. ˆ Intrebare pentru cititor: dac˘ receptorul prime¸te un duplicat al paa s chetului precedent. receptorul trebuie s˘ confirme fiecare pachet primit. Surs˘ a Emit˘tor ¸a Receptor Destinatie ¸ Un mesaj 1 Un mesaj Un mesaj ACK al doilea 2 al doilea al doilea timeout ACK 2 al doilea timeout . Nivelul legaturii de date 105 sursei. trebuie s˘-l confirme sau nu? a S˘ vedem rationamentul ce ne duce la r˘spuns: Emit˘torul nu are a ¸ a ¸a de unde s˘ ¸tie dac˘ un pachet de date a ajuns sau nu la receptor. Un exemplu de functionare a acestora ın ¸ . a Suntem acum ˆ m˘sur˘ s˘ d˘m algoritmii corecti pentru emit˘tor ¸i ın a a a a ¸ ¸a s pentru receptor: functionarea emit˘torului este descris˘ ˆ algoritmul 4. Radu-Lucian Lup¸a s ˘ Capitolul 4. dac˘ ˆ a a trimis un pachet ¸i nu a primit (ˆ a) confirmarea a ıns˘ s ınc˘ acestuia. poate fi sigur c˘ pachetul confirmat a ajuns s a la receptor.2.6).1.

d) de la nivelul fizic ¸ a dac˘ n = n atunci a n:=n + 1 livreaz˘ d destinatiei a ¸ sfˆr¸it dac˘ as a trimite n spre nivelul fizic sfˆr¸it cˆt timp as a sfˆr¸it algoritm as Algoritmul 4.7 ın Algoritmul Emit˘tor pas cu pas ¸a algoritmul: n:=0 cˆt timp sursa mai are pachete de trimis execut˘ a a fie d urm˘torul pachet al sursei a p:=(n.c 2008.2: Algoritmul receptorului ˆ protocolul simplu cu confirm˘ri ¸i reın a s transmiteri. f˘r˘ a a¸tepta o durat˘ mai mare de t ¸ a aa s a cˆt timp n = n sau a expirat durata t a sfˆr¸it cˆt timp as a sfˆr¸it algoritm as Algoritmul 4. d) execut˘ a trimite p receptioneaz˘ n .3. ˆ practic˘.3. Retransmiterea pachetelor pierdute este dat ˆ figura 4. a . ˆ ace¸ti algoritmi am presupus c˘ num˘rul de secvent˘ n poate cre¸te In s a a ¸a s oricˆt de mult.1: Algoritmul emit˘torului ˆ protocolul simplu cu confirm˘ri ¸i re¸a ın a s transmiteri. n se reprezint˘ pe un num˘r fix de biti ¸i ca urmare a In a a a ¸ s are o valoare maxim˘ dup˘ care revine la 0. Radu-Lucian Lup¸a s 106 4. Vom vedea ˆ § 4.3 ˆ ce conditii a a ın ın ¸ acest lucru afecteaz˘ corectitudinea algoritmului. Parametrul t este ales putin mai mare decˆt durata dus-ˆ ¸ a ıntors a nivelului fizic. Algoritmul Receptor pas cu pas algoritmul: n:=0 cˆt timp mai exist˘ pachete de primit execut˘ a a a receptioneaz˘ (n .

Radu-Lucian Lup¸a s ˘ Capitolul 4.7: Functionarea corect˘ a unui algoritm de retrasnmisie. ¸ a .c 2008. Nivelul legaturii de date 107 Surs˘ a Emit˘tor ¸a Receptor Destinatie ¸ Un mesaj 1 Un mesaj Un mesaj ACK al doilea 2 al doilea al doilea timeout ACK 2 al doilea ACK al treilea 3 al treilea al treilea timeout ACK 3 al treilea ACK Figura 4.

Exist˘ ¸ ¸ a dou˘ actiuni posibile pentru receptor: a ¸ . Radu-Lucian Lup¸a s 108 4. In aa a ıntˆ a situatie. Cu alte cuvinte. ¸ a a ¸a . ¸a s • ˆ urma pierderii unui pachet. Trimiterea ˆ avans a mai multor pachete ın De¸i corect.c 2008. receptorul poate ajunge ˆ situatia de-a In ın ¸ ˆ aceast˘ primi un pachet f˘r˘ s˘ fi primit mai ˆ ai pachetul anterior.3. este necesar ca ¸i confirm˘rile s˘ fie numerotate.Fiecare pachet de date este confirmat printr-un pachet de confirmare distinct.Receptorul ignor˘ complet pachetul (ˆ consecint˘.3. nici nu trimite a ın ¸a confirmare). Timpul maxim de a¸teaptare pentru confirmarea a s unui pachet r˘mˆne neschimbat. Exist˘ dou˘ s a a a a strategii posibile: . pentru a putea corela confirm˘rile cu pachetele ¸a s a de date.2. ¸i la distant˘ mare. a a De mentionat c˘ alegerea ˆ ¸ a ıntre aceste variante trebuie consemnat˘ ca a parte a protocolului stabilit ˆ ıntre emit˘tor ¸i receptor. un pachet de confirmare confirm˘ toate pachetele de date cu num˘r de secvent˘ a a ¸a mai mic sau egal cu valoarea din pachetul de confirmare. emit˘torul emite repede un pachet.Receptorul memoreaz˘ pachetul. a . In s ¸a a ¸ ¸a dup˘ care a¸teapt˘ (cea mai mare parte a timpului) propagarea pachetului a s a spre destinatar ¸i ˆ s ıntoarcerea confirm˘rii. urmˆnd s˘-l livreze destinatiei a a a ¸ dup˘ primirea pachetului (sau pachetelor) anterioare. algorimul pas cu pas din paragraful precedent este ins eficient ˆ situatia ˆ care timpul dus-ˆ ın ¸ ın ıntors ˆ ıntre emit˘tor ¸i receptor este ¸a s mult mai mare decˆt timpul necesar emiterii unui pachet. ar fi util ca emit˘torul s˘ poat˘ trimite s ¸ ¸a a a unul dup˘ altul mai multe pachete. Retransmiterea pachetelor pierdute 4.Un pachet de confirmare contine num˘rul de secvent˘ pˆn˘ la care ¸ a ¸a a a receptorul a primit toate pachetele. a Pentru cre¸terea eficientei. receptorul nu poate livra imediat acel pachet destinatiei. ın Trimiterea mai multor pachete ˆ avans schimb˘ cˆteva lucruri fat˘ ın a a ¸a de cazul trimiterii unui singur pachet: • Deoarece la un anumit moment pot exista mai multe pachete trimise de emit˘tor ¸i neconfirmate. Aceast˘ a strategie permite trimiterea unui singur pachet de confirmare pentru o serie de cˆteva pachete de date sosite imediat unul dup˘ altul. ˆ a permitem trimiterea mai multor pachete a a ıns˘ ˆ acest timp. continˆnd num˘rul de secvent˘ al pachetului confirmat. Acest lucru se a ˆ ampl˘ ˆ cazul transmiterii unor pachete mici prin leg˘turi de debit mare ıntˆ a ın a ˆ aceast˘ situatie. f˘r˘ a a¸tepta confirmarea primului pentru a aa s a-l trimite pe urm˘torul. .

¸a a t a s ¸ continˆnd pachete. a a . acest interval constituie s fereastra de receptie. ¸ nici transmis destinatiei. Spatiul numerelor de confirmare ¸ Evident. au o valoare maxim˘ dup˘ care se reiau de la 0. pachetele din fereastr˘. La primirea pachetu¸a a lui n + 1. ¸a a ¸ s ca urmare. Un pachet cu num˘r de secvent˘ mai mic sau egal ¸ a ¸a cu n este sigur un duplicat. este ¸ ın ilustrat˘ ˆ figurile 4. In ın ¸a avanseaz˘ pˆn˘ la urm˘torul pachet neconfirmat. numerele de secvent˘ nu pot cre¸te la infinit. numerele de secvent˘ sunt reprezentate pe un num˘r fixat de biti ¸i. fereastra emit˘torului ele. adic˘ un interval de numere de secvent˘ acceptabile. a a ¸ Emit˘torul trebuie s˘ ¸in˘ ¸i el evidenta unei ferestre de emisie. ce nu este nici memorat de receptor. decizia de-a memora ¸ sau de-a ignora pachetul poate fi luat˘ independent pentru fiecare pachet a primit de receptor. Dac˘ la un moa a ment dat toate pachetele pˆn˘ la num˘rul de secvent˘ n inclusiv au fost a a a ¸a receptionate ¸i livrate destinatiei. s˘ nu fie confirmat. fereastra este avansat˘ pˆn˘ la primul num˘r de secvent˘ ce a a a a ¸a nu a fost ˆ a primit. ın ¸ a ın O metod˘ utilizat˘ frecvent este ca receptorul s˘ fixeze o fereastr˘ a a a a de receptie.10. a a a a Din cauza ferestrelor emit˘torului ¸i receptorului. Nivelul legaturii de date 109 Alegerea uneia sau a celeilate variante prive¸te doar receptorul. receptorul accept˘ doar pachetele cu ¸ s ¸ a numere de secvent˘ situate ˆ ¸a ıntre n + 1 ¸i n + k. Notˆnd cu n primul num˘r de secvent˘ ınc˘ a a a ¸a neconfirmat ¸i cu k dimensiunea ferestrei emit˘torului. protocolul ferestrei glisante functioneaz˘ exact ca ¸i protocolul ¸ a s pas cu pas din paragraful precedent. Radu-Lucian Lup¸a s ˘ Capitolul 4. a ın 4. ˆ functie de memoria disponibil˘ ˆ acel moment. dar ¸ a a ın ˆ a neconfirmate de c˘tre receptor. ınc˘ Este esential ca un pachet. Pentru ¸ a ¸a aceasta. ˆ ın a ¸a s In general. ˆ cazul confirm˘rii unui ¸ a In a astfel de pachet.3. Emit˘torul trimite. pˆn˘ ce prime¸te confirm˘ri pentru ın a a a s a ˆ momentul ˆ care pachetul n este confirmat. receptorul fixeaz˘ la ˆ a ınceput un num˘r k. Functionarea protocolului ferestrei glisante. Mai mult.c 2008. ˆ diverse variante. protocolul acesta ¸a s se nume¸te protocolul ferestrei glisante. un pachet ˆ ıntre n + 1 ¸i n + k este memorat s (dac˘ nu a fost primit deja) ¸i confirmat. ˆ practic˘. nu s este parte a protocolului de comunicatie.8–4. ca urmare receptorul nu va putea s˘-l furnizeze destinatiei. ¸ ¸a ˆ mod repetat. este probabil ca emit˘torul s˘ nu-l mai retransmit˘ ¸a a a niciodat˘. primite de la surs˘ ˆ vederea trimiterii spre receptor. iar un pachet cu num˘r de a s a secvent˘ strict mai mare decˆt n + k este ignorat. Dac˘ fereastra emit˘torului este de s a ¸a dimensiune 1. fereastra emit˘torului s ¸a ¸a poate contine pachetele cu numere de la n la n + k − 1.3.

Retransmiterea pachetelor pierdute Surs˘ a Unu Emit˘tor ¸a 1 Unu Receptor Destinatie ¸ doi 2 doi ACK=1 Unu trei 3 trei patru 4 patru nu e pachetul a¸teptat. s se ignor˘ a 3 trei ACK=2 4 patru ACK=3 doi trei patru ACK=4 Figura 4. Radu-Lucian Lup¸a s 110 4. ¸ s ¸ .c 2008.3. s se ignor˘ a 2 doi nu e pachetul a¸teptat.8: Functionarea ferestrei glisante ˆ cazul ˆ care dimensiunea ferestrei de ¸ ın ın receptie este 1 ¸i dimensiunea ferestrei de emisie este cel putin 3.

a dar ˆ a nu-l livreaz˘ ınc˘ a destinatiei ¸ doi ACK=2 trei patru Figura 4.c 2008. ¸ ¸ s a .9: Functionarea ferestrei glisante ˆ cazul ˆ care dimensiunea ferestrei de ¸ ın ın receptie este cel putin 3 ¸i protocolul prevede confirmarea individual˘ a pachetelor. Nivelul legaturii de date 111 Surs˘ a Unu Emit˘tor ¸a 1 Unu Receptor Destinatie ¸ doi 2 doi ACK=1 Unu trei 3 trei patru 4 patru ACK=3 2 doi ACK=4 memoreaz˘ pachetul. a dar ˆ a nu-l livreaz˘ ınc˘ a destinatiei ¸ memoreaz˘ pachetul. Radu-Lucian Lup¸a s ˘ Capitolul 4.

3. De remarcat a a a ¸a ¸ ın posibilitatea de optimizare a num˘rului de pachete de confirmare prin combinarea a mai multor confirm˘ri ˆ a ıntr-un singur pachet (confirmarea cu num˘rul 2).10: Functionarea ferestrei glisante ˆ cazul ˆ care dimensiunea ferestrei ¸ ın ın de receptie este cel putin 2 ¸i protocolul prevede c˘ un pachet de confirmare confirm˘ ¸ ¸ s a a toate pachetele de date pˆn˘ la num˘rul de secvent˘ continut ˆ pachet.c 2008. a . Radu-Lucian Lup¸a s 112 4. Retransmiterea pachetelor pierdute Surs˘ a Unu Emit˘tor ¸a 1 Unu Receptor Destinatie ¸ doi 2 doi Unu trei 3 trei ACK=2 doi confirm˘ dou˘ pachete a a printr-o singur˘ confirmare a patru 4 patru memoreaz˘ pachetul. a dar ˆ a nu-l livreaz˘ ınc˘ a destinatiei ¸ 3 trei trei ACK=4 patru Figura 4.

n + k]. nici unul dintre pachetele cu numere de secvent˘ ¸a mai mici sau egale cu n − 2k nu a mai fost trimis ulterior primei trimiteri a . s a ¸a a Num˘rul de secvent˘ transmis are ca valoare num˘rul de secvent˘ teoretic a ¸a a ¸a modulo n. a ¸a Pentru ca mecanismele de confirmare ¸i retransmitere. Pentru aceasta. descrise ˆ s ın § 4. Radu-Lucian Lup¸a s ˘ Capitolul 4. deoarece pachetul n + 1 ˆ a nu a ajuns la a ınc˘ receptor. ˆ orice moment. calculabil cu datele receptorului. ¸a a Ca urmare. ˆ care se ˆ ın ıncadreaz˘ a num˘rul de secvent˘ al urm˘torului pachet primit de receptor. S˘ privim acum din perspectiva emitatorului. Fie n cel mai mare a ¸˘ num˘r de secvent˘ trimis. vom numi num˘r de secvent˘ teoretic a ¸a num˘rul de secvent˘ pe care l-ar avea un pachet dac˘ numerele de secvent˘ a ¸a a ¸a nu ar fi limitate ¸i num˘r de secvent˘ transmis num˘rul transmis efectiv. este necea ¸a sar ca. ın Presupunem c˘ cel mai mare num˘r de secvent˘ primit de c˘tre rea a ¸a a ceptor este n. atunci sunt neceaa as a sare ¸i suficiente 2k numere de secvent˘ distincte pentru identificarea univoc˘ s ¸a a a pachetelor.1 Dac˘ dimensiunea ferestrei emit˘torului este k ¸i dac˘ pa¸ a ¸a s a chetele se pot doar pierde. s˘ deduc˘ univoc num˘rul de secvent˘ teoretic din ¸ a a a ¸a num˘rul de secvent˘ transmis. rezult˘ c˘ ¸ a a pachetele pˆn˘ la n − k inclusiv au fost deja confirmate ¸i deci nu vor mai a a s fi trimise. pe baza ın a a s ¸a a a informatiilor pe care le au. pachetele pˆn˘ la n − 2k inclusiv erau deja a a confirmate.3. Trebuie s˘ ar˘t˘m trei lucruri: c˘ exist˘ ˆ ¸ a aa a a ıntotdeauna un interval de lungime 2k. unde n este num˘rul de numere de secvent˘ distincte disponibile. c˘ dac˘ utiliz˘m doar 2k − 1 numere de secvent˘ ¸a s ın a a a ¸a distincte putem da un exemplu ˆ care apare o ambiguitate. rezult˘ c˘ toate a ¸a a a pachetele pˆn˘ la n−k inclusiv au fost deja confirmate. urm˘torul num˘r de secvent˘ primit va fi ˆ intervalul a a ¸a ın [n − k − 1. atˆt receptorul cˆt ¸i emit˘torul s˘ poat˘. Deoarece emitatorul a trimis deja pachetul n. ˆ final.1 ¸i § 4. Nivelul legaturii de date 113 Pentru a preciza lucrurile. f˘r˘ s˘-¸i poat˘ schimba ordinea.2. Demonstratie. ele trebuie modificate ˆ a¸a fel ˆ at s a ¸ ın s ıncˆ s˘ compare efectiv numerele de secvent˘ teoretice. a ¸a Vom analiza ˆ continuare ce relatie trebuie s˘ existe ˆ ın ¸ a ıntre num˘rul a n de valori distincte pe care le poate lua num˘rul de secvent˘ transmis ¸i a ¸a s num˘rul de pachete trimise ˆ avans pentru a nu exista ambiguit˘¸i privitor a ın at la num˘rul de secvent˘ teoretic al unui pachet de date sau de confirmare.c 2008. ˆ momentul primei a a In transmiteri a pachetului n − k. Ca urmare. Deoarece n a fost deja trimis.3. dac˘ la un moment dat cel mai mare num˘r de secvent˘ primit a a ¸a de receptor este n. c˘ exist˘ un a ¸a a a a interval de lungime 2k ˆ care se ˆ ın ıncadreaz˘ urm˘toarea confirmare primit˘ a a a de emit˘tor ¸i. a ¸a Propozitia 4. s˘ functioneze corect. Pe de alt˘ parte. rezult˘ c˘ acest pachet nu a fost confimat ¸i deci receptorul nu a a s poate trimite pachete cu numere de secvent˘ strict mai mari decˆt n + k.

Pentru ca receptorul ın s s˘ poat˘ distinge aceste pachete. ¸ a ci doar permite destinatiei s˘ preia. o parte din date se pierd. ˆ lipsa controlului fluxului. Controlul fluxului Prin controlul fluxului (engl. emit˘torul transmite pachetele de la k + 1 la 2k. pe durat˘ scurt˘ de timp (pˆn˘ la umplerea ¸ a a a a a memoriei tampon). observ˘m c˘ ˆ ambele cazuri a ¸ a a ın acesta prime¸te pachetele de la 1 la k. num˘rul urm˘toarei confirm˘ri se va ˆ a a a ıncadra ˆ intervalul [n − 2k + 1. care ajunge la receptor. ˆ astfel de sisteme. ın S˘ ar˘t˘m acum c˘ 2k numere de secvent˘ distincte sunt ˆ a aa a ¸a ıntr-adev˘r a necesare. Ca urmare. Emit˘torul transmite pachetele de la 1 la k.c 2008. ˆ primul caz prime¸te s a ın s pachetul 1. dup˘ care. dar toate confirm˘rile se pierd. n]. este necesar ca acestea s˘ aib˘ numere a a a a de secvent˘ transmise distincte. Emit˘torul transmite pachetele de la 1 la k. iar ˆ al doilea caz prime¸te pachetul 2k. dup˘ primirea confirm˘rii pachetului n − k nu a a mai pot sosi la emit˘tor confirm˘ri ale pachetelor cu numere mai mici sau ¸a a egale cu n − 2k. dar toate se ¸a pierd cu exceptia pachetului 2k.3. 2. Vom presupune ˆ cele ce urmeaz˘ c˘ transmisia ˆ ın a a ıntre emit˘tor ¸i ¸a s receptor este sigur˘ (f˘r˘ erori ¸i f˘r˘ pierderi.♦ a ¸a 4. a In ¸ . duplic˘ri sau inversiuni de a aa s aa a pachete). Consider˘m dou˘ scenarii: a a 1. ˆ contin¸a In uare. ¸ Considerˆnd doar informatiile receptorului. acestea ajung la receptor. Radu-Lucian Lup¸a s 114 4. Emitatorul retransmite a ¸˘ pachetul 1. trebuie s˘ existe cel putin 2k ¸a a ¸ valori distincte pentru num˘rul de secvent˘ transmis. dac˘ sursa emite date mai rapid decˆt In a a este capabil˘ destinatia s˘ le prelucreze. De remarcat a ¸ a c˘ stocarea datelor ˆ a ıntr-o memorie tampon a destinatiei nu rezolv˘ problema. Retransmiterea pachetelor pierdute pachetului n − k. cum ar fi de exemplu a ın ın telefonia digital˘. Ca urmare. Prin urmare. ¸a sunt confirmate ¸i confirm˘rile ajung ˆ s a ınapoi la emit˘tor. flow control ) se ˆ ¸elege procesul (¸i ınt s mecanismul ce-l realizeaz˘) prin care o surs˘ de date este frˆnat˘ astfel ˆ at a a a a ıncˆ s˘ nu transmit˘ date cu debit mai mare decˆt este capabil˘ destinatia s˘ le a a a a ¸ a prelucreze.4. O astfel ¸ ın s ıncˆ a a de abordare poate fi adecvat˘ ˆ sisteme ˆ timp real. capacitatea de prelucrare a informatiei. Forma cea mai simpl˘ de control al fluxului este standardizarea unui a debit fix de transmitere a datelor ¸i proiectarea tuturor componentelor siss temului de comunicatie ˆ a¸a fel ˆ at s˘ poat˘ opera la acel debit. toate acestea ajung ¸a la receptor. un debit mai ridicat de date.

Radu-Lucian Lup¸a s ˘ Capitolul 4. Pentru aceasta este necesar un al doilea at canal de comunicatie. implementat putin diferit. ¸a 4. dup˘ ce cite¸te s s a s datele afi¸ate. avˆnd codul a ASCII 19. poate fi anticipat˘. receptorul trimite emit˘torului un a ¸a mesaj prin care cere acestuia s˘ suspende transmisia de date. Dac˘ memoria a a tampon a receptorului este aproape plin˘. De la un terminal text. ¸a a Acest mecanism este utilizat la transmisia prin linie serial˘. Dac˘ solutia unui debit fix de transmisie nu este satisf˘c˘toare. ˆ ¸ ınapoi. clasic. avˆnd codul 17. cu s acest mecanism de control al fluxului. Evident. Cereri de suspendare ¸i de continuare s Un mecanism primitiv de control al fluxului prevede ca receptorul s˘ poat˘ trimite emit˘torului cereri de suspendare a transmisiei ¸i cereri de a a ¸a s continuare a transmisiei.1. Mecanismul pas cu pas Un alt mecanism de control al fluxului presupune ca receptorul s˘ a semnalizeze emit˘torului cˆnd este preg˘tit s˘ accepte urm˘torul pachet. iar xon se transmite tastˆnd ctrl-Q. receptorul cere ¸ a emit˘torului s˘ continue transmisia. ˆ acest caz. un utilizator lucrˆnd la un terminal text poate tasta ctrl-S pentru a a cere calculatorului oprirea trimiterii de date spre afi¸are ¸i. dinspre receptor spre emit˘tor. receptorul este prev˘zut cu o memorie tampon. caracterele cu codurile 17 ¸i 19 nu pot s fi utilizate pentru a transmite informatie util˘. caracterul xoff a se transmite tastˆnd combinatia ctrl-S.c 2008.4. Deoarece din momentul ˆ care receptorul cere suspendarea transın misiei ¸i pˆn˘ ˆ momentul ˆ care receptorul nu mai prime¸te pachete trece o s a a ın ın s anumit˘ durat˘ de timp — egal˘ cu durata dus-ˆ a a a ıntors pe leg˘tur˘ — este necea a sar ca receptorul s˘ aib˘ o memorie tampon suficient de mare pentru primirea a a pachetelor trimise ˆ acest interval de timp. sub nua mele de software flow control sau de xon/xoff. este a ¸ a a necesar un mecanism prin care receptorul s˘ informeze emit˘torul asupra posia ¸a bilit˘¸ii sale de preluare a datelor. Cererea de suspendare a transmisiei se face prin trimiterea unui caracter. a ¸ a Astfel. Astfel. va tasta ctrl-Q pentru continuarea transmisiei. Reluarea transmisiei se cere prin transmiterea unui caracter. ¸ a Acela¸i principiu. numit uneori xon.2.4. ın 4. cˆnd a a destinatia consum˘ datele din memoria tampon a receptorului. iar surplusul de capacitate nu poate a a fi valorificat. numit uneori xoff. Nivelul legaturii de date 115 necesar˘ sistemului. este mecanismul numit s ¸ hardware flow control. semnalizarea de suspendare ¸i reluare a In s transmisiei se face printr-o pereche de conductoare separat˘ de cea utilizat˘ a a pentru transmiterea datelor. E¸a a a a a . Ulterior.

se poate stabili ca a In receptorul s˘ comunice periodic emit˘torului num˘rul de pachete pentru care a ¸a a mai are spatiu ˆ memoria tampon.4. Radu-Lucian Lup¸a s 116 4.3. s˘ nu-i confirme primirea). Pentru aceasta este necesar ca pachetele s˘ fie numerotate ¸i anuntul de disponibilitate s˘ a s ¸ a ˆ acest fel. ˆ a cu diferenta c˘ emit˘torul a¸teapt˘ primıns˘ ¸ a ¸a s a irea . a. ¸ 4. ˆ acest caz. Deoarece anuntul de disponibilitate al receptorului ajunge ¸ la emit˘tor cu o anumit˘ ˆ arziere. combinˆnd ˆ acela¸i pachet confirmarea unui pachet de a ın s date cu anuntul de disponibilitate ¸i utilizˆnd acela¸i num˘r de secvent˘ pen¸ s a s a ¸a . timp ˆ care emit˘torul a putut trimite ¸a a ıntˆ ın ¸a un num˘r de pachete. apoi a¸teapt˘ semnalizarea receptorului c˘ ¸a s a a este preg˘tit s˘ primeasc˘ urm˘torul pachet. m. Intr-adev˘r. receptorul va ¸ putea prelua noi pachete de la emit˘tor ¸i va confirma emit˘torului primirea ¸a s ¸a acestor pachete. In ¸ as a dac˘ emit˘torul prime¸te un anunt de disponibilitate prin care este informat a ¸a s ¸ c˘ receptorul tocmai a primit pachetul n ¸i are memorie pentru ˆ a k pachete. ˆ ıl ın a In acest fel. receptorul nu trebuie decˆt s˘ ignore complet orice a a a pachet pe care nu ˆ poate prelua (ˆ particular. contin˘ ¸i num˘rul de ordine al ultimului pachet de date primit. Mecanismul este asem˘n˘tor cu mecanismul de retransmitere a s a a pachetelor pierdute (§ 4. ¸i cu rolul de mecanism de control aa a s ˆ al fluxului. este necesar ca emit˘torul s˘ scad˘ din disponibilitatea a ¸a a a anuntat˘ de receptor num˘rul de pachete trimise ˆ ¸ a a ıntre timp. d. f˘r˘ modific˘ri.c 2008..3). pachetele trimise ˆ continuare de ın emit˘tor nu vor fi confirmate.confirm˘rii“ f˘r˘ a retransmite pachetul de date dac˘ aceast˘ a¸teptare a aa a a s dep˘¸e¸te o anumit˘ durat˘. la umplerea memoriei receptorului. apoi trimite urm˘torul pachet a a a a a ¸. Mecanismul este ˆ a destul de ineficient.4. trimiterea s a cˆte unui singur pachet urmat˘ de a¸teptarea permisiunii de a-l trimite pe a a s urm˘torul conduce la ineficient˘ dac˘ durata dus-ˆ a ¸a a ıntors este semnificativ mai mare decˆt durata de transfer a unui pachet. a Este posibil˘ combinarea controlului fluxului cu retransmiterea paa chetelor pierdute. Controlul fluxului mit˘torul trimite un singr pachet. ˆ consecint˘. deoarece emit˘torul ıns˘ ¸a repet˘ pachete care ajung corect la receptor. as s a a Ca ¸i la mecanismul de retransmitere a pachetelor pierdute. a s ınc˘ atunci emit˘torul poate trimite cel mult pachetul n + k ˆ ¸a ınainte de-a primi un nou anunt de la receptor. Emit˘torul poate trimite cel mult num˘rul ¸ ın ¸a a de pachete anuntat de receptor ˆ ¸ ınainte de-a primi un nou anunt de disponibil¸ itate de la acesta. Mecanism combinat cu retransmiterea pachetelor pierdute S˘ observ˘m acum c˘ orice mecanism de retransmitere a pachetelor a a a pierdute poate fi folosit. ele vor fi retransmise pˆn˘ cˆnd ¸a In ¸a a a a destinatia va consuma o parte dintre datele sosite la receptor.

¸ . De notat c˘. Prin canalul fizic se transmite.3 ¸i § 3. Un exemplu clasic de astfel de mecanism combinat este protocolul TCP.6. pachete sau ¸iruri de biti apartinˆnd fiec˘rui canal logic. s ˆ § 3. 4. La nivelul ¸a ın a leg˘turii de date se poate construi un al treilea mecanism de multiplexare: a multiplexarea ˆ timp. fiecare comunicatie ocup˘ deci cˆte un canal logic ¸i ¸ a a s toate canalele logice sunt construite pe acela¸i canal fizic. pe rˆnd. prin multiplexare se ˆ ¸elege un procedeu prin care printrIn ınt un acela¸i canal fizic de comunicatie se stabilesc mai multe comunicatii care s ¸ ¸ decurg relativ independent una de alta. De asemenea. respectiv ˆ lungime de und˘) construite la nivelul fizic. ın Ideea multiplex˘rii ˆ timp este de-a transmite intercalat. Multiplexarea ˆ timp ın ˆ general.3. • Se stabile¸te o ordine de succesiune ˆ s ıntre canalele logice.2. trebuie ca emit˘torul de la nivelul a a ¸a leg˘turii de date s˘ trimit˘ pachete vide ˆ contul acelui canal (pentru a a a ın a permite celorlalte canale logice s˘ transmit˘ pachete f˘r˘ a ˆ a a a a ıncurca evidentele receptorului). Nivelul legaturii de date 117 tru ambele mecanisme. Radu-Lucian Lup¸a s ˘ Capitolul 4.c 2008. Separarea datelor corespunz˘toare canalelor logice se poate face prin a dou˘ metode: a • Fiecare canal logic are asociat un identificator unic. prin canalul a ın fizic.3 am v˘zut mecanisme de multiplexare (ˆ frecIn s a ın vent˘. 4.5. pe rˆnd. intercalarea trebuie f˘cut˘ ˆ a¸a fel ˆ at receptorul s˘ poat˘ separa a a ın s ıncˆ a a datele corespunz˘toare fiec˘rui canal logic. Fiecare pachet are. ın 4.3. dac˘ sursa unui canal logic nu transmite a a pachete o perioad˘ mai lung˘ de timp. emit˘torul trebuie s˘ a a ¸a a asigure o ˆ artire echitabil˘ a capacit˘¸ii canalului fizic ˆ ımp˘ ¸ a at ıntre canalele logice. identificatorul canalului logic c˘ruia ˆ apartin datele utile ın a ıi ¸ (fig. descris pe larg ˆ § 10.11(b)).11(c)). cˆte un pachet apartinˆnd fiec˘rui canal a a ¸ a a logic (fig.1. ˆ antet. Eva s ¸ ¸ a a ident. Serviciul oferit fiec˘rei comunicatii a ¸ este numit canal logic.

11: Functionarea mecanismelor de multiplexare ˆ timp ¸ ın . Multiplexarea ˆ timp ın Surs˘ 1 a Surs˘ 2 a Multiplexor 1 D 3 Z 1 C 3 Y 2 N 1 B 3 X 2 M 1 A Demultiplexor Surs˘ 3 a Surs˘ 1 a D C B A Surs˘ 2 a Surs˘ 3 a Z N M Y X Destinatie 1 Destinatie 2 Destinatie 3 ¸ ¸ ¸ (a) Transmisie f˘r˘ multiplexare a a Destinatie 1 Destinatie 2 Destinatie 3 ¸ ¸ ¸ (b) Multiplexare cu etichetarea pachetelor Surs˘ 1 a Surs˘ 2 a Multiplexor D C Z B NY A MX Demultiplexor Surs˘ 3 a Destinatie 1 Destinatie 2 Destinatie 3 ¸ ¸ ¸ (c) Multiplexare cu ordine fix˘ a canalelor a logice Figura 4. Radu-Lucian Lup¸a s 118 4.5.c 2008.

dou˘ noduri ˆ ¸ a ıntre care exist˘ o leg˘tur˘ direct˘ se numesc vecini . host): un nod care este surs˘ sau destinatie ¸ a ¸ pentru date. a O retea de comunicatie este un ansamblu de dispozitive care permit ¸ ¸ stabilirea de comunicatii indirecte. Radu-Lucian Lup¸a s 119 Capitolul 5 Nivelul retea ¸i nivelul transport ¸ s Dac˘ ni¸te dispozitive. ˆ a ¸ ın mod incorect. a Not˘m c˘ ˆ unele retele exist˘ o distinctie net˘ ˆ a a ın ¸ a ¸ a ıntre nodurile finale ¸i nodurile intermediare: de exemplu ˆ reteaua telefonic˘. • nod intermediar sau ruter (engl. a a a a • nod final sau statie (engl. ¸ ˆ Intr-o retea de comunicatie numim: ¸ ¸ • nod: orice dispozitiv ce particip˘ activ ˆ retea. simplu. • drum sau rut˘ : o secvent˘ de noduri. relativ numeroase sau ˆ a s ıntinse pe distante mari. Este necesar a ˆ acest caz s˘ se poat˘ stabili comunicatii ˆ ın a a ¸ ıntre dispozitive ˆ ıntre care nu exist˘ a o leg˘tur˘ fizic˘ direct˘ dar exist˘ leg˘turi indirecte prin intermediul unui ¸ir a a a a a a s de dispozitive legate fizic fiecare cu urm˘torul. ˆ a ¸a a ımpreun˘ a cu leg˘turile directe dintre ele. server. nodurile intermediare nu au ˆ ¸ a ıntotdeauna adrese. ¸ trebuie s˘ poat˘ comunica fiecare cu fiecare. Fiecare nod terminal trebuie s˘ aib˘ a ¸ a a cel putin o adres˘. adres˘ : un identificator (un ¸ir de simboluri) a ¸ a s ce identific˘ unic un nod al retelei. router ): un nod ce poate fi tranzitat de trafic ce nu are ca surs˘ sau destinatie acel nod. fiecare vecin cu urm˘torul. aparatele telefonice s ın ¸ a . a ın ¸ • leg˘tur˘ direct˘: orice leg˘tur˘ ˆ a a a a a ıntre noduri. uneori este numit. utilizabil˘ de c˘tre nivelul a a retea.c 2008. este adesea prea costisitor s˘ se a a a construiasc˘ cˆte o leg˘tur˘ fizic˘ ˆ a a a a a ıntre fiecare dou˘ dispozitive. • adres˘ de retea sau.

Retransmiterea datelor de c˘tre nodurile intera mediare Vom studia ˆ cele ce urmeaz˘. s • Adaptarea spre aplicatie. ¸ a fiind responsabil de alegerea vecinului c˘ruia trebuie s˘-i fie transmise a a datele. unele sau toate nodurile sunt simultan noduri finale ¸i noduri interme¸ s diare. routing) ¸i va fi studiat˘ ˆ § 5. s a 5. este o component˘ care realizeaz˘ transmisia ¸i receptia datelor a a s ¸ prin acea leg˘tur˘. ¸ a modulul nivelului transport. Realizarea acestei functii va fi studiat˘ ˆ § 5. precum ¸i de transmiterea efectiv˘ a acestora c˘tre modulul de s a a adaptare spre mediul fizic (ˆ nodurile intermediare) sau. iar fiec˘rei leg˘turi directe i se asociaz˘ ¸ a a a a a o muchie (sau un arc. ˆ ıntr-un nod al unei retele trebuie s˘ existe urm˘toarele ¸ a a componente (vezi figura 5. Aceasta este. a ıncˆ a altfel. pentru nodurile terminale. Nivelul retea ¸i nivelul transport ¸ s sunt noduri finale iar centralele telefonice sunt noduri intermediare. activitatea nodurilor ˆ ın a ıntr-o retea. ¸ ın ¸ . ¸ a a a ın Constructiv. Pentru retrans¸ ¸ a ın miterea datelor spre destinatie. evident. c˘tre ın a modulul de adaptare spre aplicatie (ˆ nodul destinatie). Unei retele i se asociaz˘ un graf. pentru fiecare leg˘tur˘ fizic˘ ce pleac˘ din a a a a a a nod. este o component˘ ce ¸ a realizeaz˘ intermedierea ˆ a ıntre serviciile oferite direct de nivelul retea ¸i ¸ s nevoile aplicatiilor ce se execut˘ pe acel nod.c 2008. Aceasta este format˘ din modulul nivelului leg˘turii a a a a de date ¸i din modulul nivelului fizic.2. ˆ § 5. dac˘ leg˘turile sunt asimetrice). vor exista perechi de noduri ce nu vor putea comunica. • Modulul de retea este componenta care dirijeaz˘ fluxul de date prin nod. respectiv. ˆ alte In retele. Radu-Lucian Lup¸a s 120 Capitolul 5.1.3 vom studia problemele (engl. Functia principal˘ a nodurilor retelei este aceea de-a retransmite ¸ a ¸ datele.2. problema lu˘rii aceastei decizii se nume¸te problema dirij˘rii a a s a ˆ final.1. In s a ın ın ce apar atunci cˆnd solicitarea retelei este ridicat˘ (nu este neglijabil˘ fat˘ de a ¸ a a ¸a capacitatea nodurilor ¸i leg˘turilor utilizate). asigurˆnd continuitatea transportului lor de la nodul surs˘ la nodul a a destinatie. pe scurt. ˆ § 5.1): • Adaptarea spre leg˘tura fizic˘. Problema determin˘rii urm˘torului nod de pe drumul spre o anumit˘ ¸ a a a destinatie (problema dirij˘rii) va fi studiat˘ mai tˆrziu. construit astfel: fiec˘rui nod al ¸ a a retelei i se asociaz˘ un vˆrf al grafului. de principiu. fiecare nod trebuie s˘ decid˘ c˘rui vecin s˘ re¸ a a a a transmit˘ datele. Reteaua trebuie s˘ a a ¸ a fie astfel construit˘ ˆ at graful asociat ei s˘ fie conex (respectiv tare conex).

Sunt figurate doar modulele din trei ¸ noduri. a ¸ Un ansamblu de calculatoare constituie o retea dac˘ ¸i numai dac˘ ¸ as a graful nodurilor ¸i leg˘turilor directe este conex (tare conex. sa s s a • conexiune: ˆ Intr-o retea ce ofer˘ serviciu de tip conexiune.1. ¸i ˆ special protocolul a ¸ s ın utilizat de nivelul retea. de c˘tre retea. Datagrama este ¸ a a ¸ transmis˘ din aproape ˆ aproape pˆn˘ la nodul destinatie. de-a lungul traseului datelor ˆ ıntre dou˘ aplicatii. complet independent una de alta. Radu-Lucian Lup¸a s Capitolul 5. De remarcat c˘ dou˘ datagrame distincte a ¸ a a generate de acela¸i nod surs˘ ¸i adresate aceluia¸i nod destinatie sunt s a s s ¸ prelucrate. ¸ ¸ ¸ Nod final Aplicatie ¸ Adaptare aplicatie ¸ Modul de retea ¸ Adaptare legatur˘ a fizic˘ a Modulul de retea ¸ Adaptare Adaptare legatur˘ legatur˘ a a fizic˘ a fizic˘ a Nod intermediar Nod final Aplicatie ¸ Adaptare aplicatie ¸ Modul de retea ¸ Adaptare legatur˘ a fizic˘ a Nivelul aplicatie ¸ Nivelul transport Nivelul retea ¸ Nivelul leg˘turii a de date ¸i s nivelul fizic Legatur˘ fizic˘ a a Legatur˘ fizic˘ a a Figura 5. ¸ Dup˘ serviciul oferit.c 2008. f˘r˘ ca aa aplicatia client s˘ trebuiasc˘ s˘ aibe cuno¸tinte despre nodurile intermediare. aplicatia surs˘ ¸ a ¸ a creaz˘ o datagram˘ continˆnd datele de transmis ¸i o paseze modulului a a ¸ a s retea. o aplicatie ¸ a ¸ ce dore¸te s˘ comunice cu o aplicatie dintr-un alt nod ˆ s a ¸ ıncepe prin a so- . este liantul ˆ ¸ ıntregii retele. ˆ lipsa unui protocol comun ˆ In ıntre modulele de retea nu se poate sta¸ bili comunicatia ˆ ¸ ıntre oricare dou˘ noduri finale ˆ a ıntr-un mod uniform.1: Modulele nodurilor unei retele. ¸ a a a s ¸ Din acest punct de vedere spunem c˘ nivelul retea. dac˘ leg˘turile pot s a a a fi asimetrice). Functionaa ¸ ¸ rea retelelor ce ofer˘ servicii de tip datagrame este similar˘ sistemului ¸ a a de po¸t˘ (po¸ta obi¸nuit˘). ¸i ˆ plus modulele de retea ale tuturor nodurilor pot comunica s ın ¸ printr-un protocol comun.1). specificˆnd totodat˘ adresa nodului destinatie. o retea poate fi cu datagrame (numite uneori a ¸ pachete) sau cu conexiune: • datagrame: ˆ Intr-o retea ce ofer˘ serviciu tip datagrame. unde este a ın a a ¸ pasat˘ aplicatiei (vezi § 5. Nivelul retea ¸i nivelul transport ¸ s 121 Nivelul retea este ansamblul modulelor de retea ale nodurilor retelei.

dac˘ aplicatia destinatie accept˘. Se poate ˆ ampla ca memoria utilizabil˘ pentru coada de a¸teptare s ıntˆ a s s˘ se epuizeze. activitatea este ˆ artit˘ ˆ dou˘ ¸ a ımp˘ ¸ a ın a sarcini: stabilirea ¸i desfacerea conexiunilor. a ¸ Dac˘ leg˘tura prin care trebuie trimis˘ datagrama este ˆ a ocupat˘ cu transa a a ınc˘ a miterea unei datagrame anterioare.c 2008. una dintre a ¸ aplicatii solicit˘ nivelului retea ˆ ¸ a ¸ ınchiderea conexiunii. Ca efect. caz ˆ care este necesar˘ sacrificarea unora dintre datagramele a ın a din coad˘ sau refuzul primirii unor datagrame noi. datagrama trebuie pus ˆ ıntr-o coad˘ de a a¸teptare. Radu-Lucian Lup¸a s 122 ˘ 5. pe de o parte. de c˘tre nodul termia nal ce dore¸te initierea conexiunii. ¸ a a a Modulul de retea memoreaz˘ temporar datagrama primit˘. conexiunea este deschis˘ ¸i s a ¸ ¸ a as nodul initiator este informat de acest lucru. La terminarea comunicatiei. a 5.1. Dup˘ deschiderea cone¸ a xiunii.1. Detalii cu privire la opera area retelei ˆ acest caz sunt date ˆ § 5.1. a O datagram˘ este format dintr-un antet ¸i datele utile. a unei cereri c˘tre primul nod intermediar. Modulul de retea al nodului prime¸te o datagram˘ fie de la nivelul ¸ s a superior (dinspre aplicatie). a ¸ • s˘ initieze efectiv transmisia datagramei. ˆ continuare. Retransmiterea ˆ retele bazate pe datagrame ın ¸ Vom studia ˆ cele ce urmeaz˘ activitatea unui nod ˆ ın a ıntr-o retea ce ¸ ofer˘ transport de datagrame. Retransmiterea ˆ retele bazate pe conexiuni ın ¸ ˆ Intr-o retea bazat˘ pe conexiuni.2. a a a a care este urm˘torul vecin direct pe ruta spre destinatie. s ¸ a . el ¸ a a In are de f˘cut dou˘ lucruri: a a • s˘ determine dac˘ datagrama este destinat˘ nodului curent. nivelul retea informeaz˘ nodul partener cu privire la ˆ ¸ a ınchiderea conexiunii ¸i s elibereaz˘ resursele alocate conexiunii.1. ın ¸ unidirectional˘ sau bidirectional˘) poate transmite celuilalt pachete de ¸ a ¸ a date prin conexiunea deschis˘. unul sau ambele noduri (ˆ functie de tipul conexiunii deschise. Antetul a s cuprinde mai multe informatii utile ˆ vederea dirij˘rii. iar dac˘ nu.3. a a Deschiderea conexiunii ˆ ıncepe print trimiterea. Un model tipic de retea a ın ¸ ce ofer˘ conexiuni este sistemul telefonic. Informatia ce nu ¸ ın a ¸ poate lipsi din antet este adresa destinatarului. Retransmiterea datelor de catre nodurile intermediare licita modulului retea deschiderea unei conexiuni c˘tre acel nod. ¸ ın ın 5.1. ¸i transmiterea s s efectiv˘ a datelor pe conexiuni. fie de la nivelul inferior (de pe o leg˘tur˘ direct˘). Nivelul ¸ a retea informeaz˘ nodul destinatie despre cererea de deschidere a cone¸ a ¸ xiunii ¸i. pe de alt˘ parte. Functionarea retelelor ce ofer˘ a ¸ ¸ a serviciu de tip conexiune este descris˘ ˆ § 5.2.

o leg˘tur˘ ˆ a a a ın a a ıntre dou˘ noduri este a . Nivelul retea ¸i nivelul transport ¸ s 123 Fiecare nod intermediar. nodul curent a memoreaz˘ ˆ tabela conexiunilor deschise nodul astfel ales. a ın a ın ¸ analogice). iar liniile punctate reprezint˘ interconect˘rile mediilor fizice. Radu-Lucian Lup¸a s Capitolul 5. Dup˘ determinarea nodului vecin.2: O retea cu comutare de circuite fizice. Determinarea nodului urm˘tor se face la fel ca ¸i ˆ cazul retelelor bazate a s ın ¸ pe datagrame (vezi § 5. pe rˆnd. Conexiunea este a ın deschis˘ ˆ momentul ˆ care cererea de deschidere a conexiunii ajunge ¸i a ın ın s este acceptat˘ de nodul destinatie. amintit˘ aici doar pentru completudine. Aceasta metod˘. Odat˘ conexiunea deschis˘. drumul corea ¸ a a spunz˘tor ˆ a ıntre cele dou˘ noduri finale este fixat pe toat˘ durata conexiunii. exist˘ dou˘ metode prin care se In a a a poate realiza tranzitarea traficului prin fiecare nod intermediar: • Comutare de circuite fizice: ˆ acest caz. mediul prin care intr˘ datele In a ˆ nod este conectat fizic (de exemplu. determin˘ nodul urm˘tor prin care trebuie a a a s˘ treac˘ conexiunea ¸i-i trimite mai departe cererea de deschidere a conexiua a s nii.2). a a • Comutare de circuite virtuale: Fiecare pachet ce sose¸te printr-o leg˘tur˘ s a a de date este memorat temporar ¸i apoi retransmis prin leg˘tura spre s a urm˘torul nod. De remara a cat necesitatea mai multor leg˘turi fizice ˆ a ıntre cˆte dou˘ noduri.2).c 2008. nu a a se mai utilizeaz˘ ˆ prezent (a fost utilizat˘ ˆ retelele telefonice vechi. a S˘ remarc˘m c˘. cu ajutorul unui ˆ ın ıntrerup˘tor a electric) la mediul prin care trebuie trimise mai departe datele (vezi fig. Cercurile mari reprezint˘ nodurile ¸ a intermediare. 5. a a ˆ faza de comunicare prorpiu-zis˘. ˆ ambele cazuri. X A B C 1 2 1 2 1 2 3 Y A’ C’ Z B’ Figura 5.

3: O retea cu comutare de circuite virtuale. ın La utilizarea comut˘rii de circuite virtuale ˆ a ımpreun˘ cu multiplexarea a ˆ timp. Acest pachet urmeaz˘ aceea¸i rut˘ ca ¸i a s a s pachetele normale de date. la primirea pachetului. Comutarea de circuite virtuale seam˘n˘ la prima vedere cu transmisia a a . ˆ sistemul telefonic vechi. Radu-Lucian Lup¸a s 124 ˘ 5. fie la nivelul leg˘turii de date (multiplexare ˆ a a ın timp. se utilizeaz˘ mecanisme de multiplexare. X A B C XZ ZY C’ XY Y A’ Z B’ Figura 5. Fiecare nod de pe traseu.) Deoarece. Desf˘¸urarea ˆ timp a receptiei ¸ as ın ¸ ¸i transmitere mai departe a pachetelor.3. dou˘ conexiuni nu pot utiliza (direct) o aceea¸i a a s leg˘tur˘.4. ˆ a a ın ıntre dou˘ centrale a telefonice erau duse ˆ paralel mai multe perechi de conductoare. pentru nodul X. Mai remarc˘m c˘ multiplexarea ˆ timp poate fi utilizat˘ doar a a ın a ˆ sistemele cu comutare de circuite virtuale. num˘rul de ın a convorbiri simultane utilizˆnd o rut˘ trecˆnd prin cele dou˘ centrale fiind lima a a a itat la num˘rul de perechi de conductoare.1. a ın ˆ Inchiderea conexiunii se face prin transmiterea unui pachet special de cerere a ˆ ınchiderii conexiunii.2.3 — sau ˆ ın ¸a ın lungimea de und˘ — § 3.3). s a ın Leg˘turile directe ˆ a ıntre nodurile intermediare utilizeaz˘ multiplexare ˆ timp. vine rˆndul la transmisie canalului logic prin a ın a a s a care trebuie trimis pachetul. (Din acest motiv.c 2008. un nod care a primit un pachet trebuie s˘-l memoreze pˆn˘ cˆnd ˆ ın a a a a ıi vine rˆndul s˘ fie transmis mai departe prin leg˘tura de ie¸ire. ˆ leg˘tura fizic˘ de ie¸ire. adic˘ pˆn˘ a a a s a a a cˆnd. mediul fizic este scump. § 4. ¸terge conexiunea respectiv˘ din tabelul conexiunilor ¸i elibereaz˘ resursele s a s a alocate. Acesa tea pot lucra fie la nivel fizic (multiplexare ˆ frecvent˘ — § 3. este prezentat˘ ˆ figura 5.5). Retransmiterea datelor de catre nodurile intermediare asociat˘ unei singure conexiuni. ˆ special pe distante a ın ¸ mari.6.

respectiv X ¸i Z.2. ˆ cazul comut˘rii de circuite virtuale. Problema determin˘rii acestui ın ¸ a nod vecin se nume¸te problema dirij˘rii. care prime¸te un pachet ¸ ın s ¸i trebuie s˘-l trimit˘ mai departe. Algoritmi de dirijare Ne vom ocupa ˆ continuare de modul ˆ care un nod decide spre care ın ın dintre vecini s˘ trimit˘ o datagram˘ (ˆ cazul retelelor bazate pe datagrame). a a a ın ¸ respectiv spre care dintre vecini s˘ transmit˘ cererea de initiere a unei conea a ¸ xiuni (ˆ cazul retelelor bazate pe conexiuni). Diferenta vine din felul ˆ care un nod. s a . Decizia se ia pe baza tabelei de circuite ¸i este identic˘ pentru toate pachetele apartinˆnd aceluia¸i circuit.c 2008.3. ˆ cazul retelei bazate ¸ a In ¸ pe datagrame. ia decizia privind leg˘tura prin care s˘-l s a a a a trimit˘. 5. O urmare s a ¸ a s a acestui fapt este c˘ defectarea oric˘rui nod sau oric˘rei leg˘turi de-a lungul a a a a unei conexiuni duce la ˆ ınchiderea fortat˘ a conexiunii. Leg˘turile dintre canalele a a virtuale de intrare ¸i de ie¸ire sunt identice cu leg˘turile fizice din figura 5. XY ¸i XZ desemneaz˘ leg˘turile ¸ s a a fizice ˆ ıntre nodurile X ¸i Y . Dou˘ datagrame ˆ ın a a ıntre acelea¸i dou˘ statii pot fi dirijate pe rute s a ¸ diferite. continut˘ ın ¸ ¸ ¸ a ˆ datagram˘. Numerele de sub axe marcheaz˘ pes s a rioadele de timp alocate canalelor logice corespunz˘toare. pentru nodul X din reteaua din figura 5. informatie dedus˘ din leg˘tura a ıi ¸ ¸ a a de date prin care a intrat pachetul. Nivelul retea ¸i nivelul transport ¸ s A a1 1 125 a2 1 a3 1 B b1 1 b2 1 b3 1 C c1 1 c2 1 c3 1 XY a1 1 2 c1 a2 3 1 2 c2 a3 3 1 2 c3 3 XZ b1 1 2 b2 1 2 b3 1 2 timpul Figura 5.2 s s a de datagrame.4: Desf˘¸urarea ˆ timp a receptiei ¸i a transmiterii mai departe a paas ın ¸ s chetelor. decizia de dirijare se ia ˆ functie de adresa destinatie. decizia este luat˘ ˆ functie a In a a ın ¸ de circuitul virtual c˘ruia ˆ apartine pachetul. Radu-Lucian Lup¸a s Capitolul 5.

vj−1 . v1 . este necesar˘ distribuirea tabelelor de dirijare c˘tre toate a a nodurile retelei. o proprietate important˘ a drumurilor a de cost minim: Dac˘ v0 . . dac˘ exist˘ cel putin un drum de cost minim de la v0 la vk a a ¸ ce trece prin vj . atunci s v0 . ˆ ¸ ıntre destinatia vk ¸i nodul urm˘tor vj+1 ¸ s a poart˘ denumirea de tabel˘ de dirijare. . . vj . Ca urmare. . . ın ¸ a • ˆ functie de ˆ arcarea leg˘turii. • ˆ functie de lungimea fizic˘ a leg˘turii (cu cˆt o leg˘tur˘ este mai lung˘. este necesar˘ centralizarea datelor despre nodurile ¸i a s leg˘turile din retea.c 2008. vj+1 . ¸ ˆ Intr-o retea mic˘. pentru fiecare destinatie a a ¸ posibil˘ vk . . atunci v0 . a a a ¸ Corespondenta. pentru fiecare vj . de pe drumul de cost minim de la v0 spre a a vk depinde doar de vk . vj+1 . vj−1 . nodul urm˘tor. ˆ consecint˘. vj este un drum de cost minim de la a v0 la vj ¸i vj . vj+1 . . . vj . pentru a efectua retransmiterea s datelor. . Radu-Lucian Lup¸a s 126 5. . vj este un drum de cost minim de la v0 la vj ¸i vj . vk este un drum de cost a minim de la v0 la vk . de la nodul surs˘ la nodul destinatie al datagramei sau al a ¸ conexiunii. dup˘ vj . fiecare nod vj trebuie s˘ cunoasc˘ doar. . . . Dup˘ cala ¸ ın ¸ ¸ a culul drumurilor. s De asemenea. . Algoritmi de dirijare Rezolvarea problemei dirij˘rii se bazeaz˘ pe determinarea unui drum a a de cost minim. vk este un drum de cost minim de la vj la vk . v1 . . Aceast˘ a proprietate st˘ la baza algoritmilor de determinare a drumului minim ˆ a ıntr-un graf. . a a Pentru a putea aplica direct un algoritm clasic de determinare a drumurilor de cost minim. existˆnd urm˘toarele a a a a a posibilit˘¸i pentru definirea costului: at • toate costurile egale. ın ¸ a a a a a a cu atˆt costul asociat este mai mare). . .2. ın ¸ Graful asociat retelei de calculatoare este un graf ce are cˆte un vˆrf ¸ a a asociat fiec˘rui nod al retelei ¸i cˆte o muchie asociat˘ fiec˘rei leg˘turi directe a ¸ s a a a a ˆ ıntre dou˘ noduri. urm˘torul vˆrf vj+1 de pe drumul optim spre acea destinatie. din teoria grafelor. vj−1 . centralizarea informatiilor despre leg˘turi ¸i apoi ¸ a ¸ a s distribuirea informatiilor de dirijare c˘tre noduri se poate face manual. . . . . Fiec˘rei muchii i se asociaz˘ un cost. de ¸ a c˘tre administratorul retelei. ˆ vederea obtinerii efective a grafului retelei. ın ¸ ınc˘ a Remintim. vj+1 . . dac˘ v0 . . ˆ graful asociat retelei de calculatoare. nu ¸i de v0 . a • ˆ functie de capacitatea leg˘turii. . . . . vk este un drum de cost minim de la vj la vk . v1 . dac˘ un pachet de la un nod v0 spre un nod vk ajunge In ¸a a la un nod vj . v1 . . . vj−1 . . vk este drum de cost minim de la v0 la vk . a ¸ . .

at ın 5. de exemplu dac˘ graful asociat retelei de calculatoare are anumite a ¸ particularit˘¸i. un pachet ce contine numele nodului.2. Calculul drumurilor cu informatii complete despre graful ¸ retelei ¸ ˆ cadrul acestei metode. Acestea vor fi studiate ˆ § 5. ˆ trimite tuturor vecinilor (mai putin celui dinspre care a venit ıl ¸ pachetul) ¸i actualizeaz˘ reprezentarea proprie a grafului retelei. fiecare modificare a retelei trebuie anuntat˘ tuturor ¸ ¸ ¸ a nodurilor. ˆ astfel de cazuri se utilizeaz˘ dirijarea ierarhic˘ (§ 5. cum ar fi Internet-ul.2. centralizarea complet˘ a In ¸ a datelor nu este rezonabil˘. fiecare nod al retelei adun˘ toate informaIn ¸ a ¸iile despre graful asociat retelei. Radu-Lucian Lup¸a s Capitolul 5. s a a ın¸ ¸ ın a ¸ Transmisia informatiei respective se face astfel: ¸ • Fiecare nod creaz˘. oridecˆteori constat˘ o modificare. Dac˘ este mai a a recent. s . Pentru aceasta. ın s ˆ retelele foarte mari. Pentru ca fiecare nod s˘ dispun˘ ˆ permanent˘ de graful asociat a a ın ¸a retelei de calculatoare. Apoi transmite acest pachet tuturor vecinilor.1.3).1 ¸i § 5. ˆ ınseamn˘ c˘ este o copie ce a sosit pe alt˘ cale a a a ¸i este ignorat. s • Fiecare nod ce prime¸te un pachet descriind starea leg˘turilor verific˘ s a a dac˘ este sau nu mai recent (adic˘ cu num˘r de secvent˘ mai mare) a a a ¸a decˆt ultimul astfel de pachet primit de la acel nod.2. utilizate ˆ diverse situatii mai as ın ¸ deosebite. Nivelul retea ¸i nivelul transport ¸ s 127 ˆ retelele mai mari.c 2008. In a a Exist˘ ¸i metode ad-hoc de dirijare. starea a ¸ leg˘turilor cu vecinii (costurile actuale ale leg˘turilor). Metodele a s ¸ ¸ ın a a principale de calcul pentru tabelele de dirijare sunt descrise ˆ § 5. tabela de dirijare trebuie s˘ aib˘ a ¸ a a o reprezentare mai compact˘ decˆt cˆte un rˆnd pentru fiecare nod destinatie a a a a ¸ posibil.4. trebuie luate m˘suri ca timpul scurs de la modifia a a a carea leg˘turilor pˆn˘ la actualizarea a regulilor de dirijare pe toate nodurile a a a s˘ fie scurt ¸i functionarea retelei ˆ acest timp s˘ fie acceptabil˘. periodic. transmite o ˆ stiintare ˆ toat˘ reteaua. De asemenea. trebuie utilizati algoritmi de dirijare care s˘ permit˘ a ¸ a a fiec˘rui nod efectuarea dirij˘rii f˘r˘ a necesita decˆt putine informatii ¸i doar a a aa a ¸ ¸ s despre o mic˘ parte a retelei. fiecare nod testeaz˘ periodic leg˘turile cu vecinii s˘i a a a ¸i. precum ¸i un a a s num˘r de secvent˘ (num˘r care tot cre¸te de la un astfel de pachet la a ¸a a s urm˘torul). acest proces trebuie automatizat (total sau In ¸ partial).2.2.2. Dac˘ s a ¸ a pachetul este mai vechi. Deoarece nu este de dorit oprirea complet˘ a retelei oridecˆteori ¸ a ¸ a se modific˘ vreo leg˘tur˘. dup˘ care calculeaz˘ drumurile de la el la t ¸ a a toate celelalte noduri. printr-un a protocol sigur (cu confirmare ¸i retransmitere).

Algoritmul prevede c˘ fiecare nod detine o tabel˘ continˆnd.c 2008. ˆ calculul tabelei de distante a ¸ a ın ¸ unui nod. complexitatea algoritmului lui Dijkstra este timp O(m + n log n) ¸i s spatiu O(m + n). nu se utilizeaz˘ deloc tabela de distante a acelui nod de la iteratia a ¸ ¸ precedent˘. drumul op¸ ¸ a tim este calculat ca fiind cel mai putin costisitor dintre leg˘tura direct˘ ¸i ¸ a a s drumurile prin fiecare dintre vecinii directi. costul este initializat cu infinit. algoritmul se stabilizeaz˘ a a ¸ a (converge). a Dup˘ stabilizare. Algoritmi de dirijare Calculul drumurilor de cost minim de la un vˆrf la toate celelalte este a o problem˘ clasic˘ ˆ teoria grafelor. al drumului de la vecinul respectiv la nodul destinatie. tabelul este initializat astfel: pentru vecinii ¸ ¸ ¸ directi. a unor vectori reprezentˆnd distantele de la nodul curent a ¸ a ¸ la toate celelalte noduri. Apoi. costul drumului este pus ca fiind costul leg˘turii directe spre acel nod. a a ¸ Pentru fiecare nod. ¸ a iar primul nod spre acea destinatie este fixat chiar acel nod. Metoda se a a ¸ nume¸te cu vectori distanta deoarece prevede transmiterea. Radu-Lucian Lup¸a s 128 5. Calculul drumurilor optime prin schimb de informatii de ¸ distant˘ ¸a Aceast˘ metod˘ (vezi algoritmul 5. a Dup˘ cˆteva iteratii ale buclei principale. ˆ sensul c˘ tabelele calculate la fiecare iteratie sunt identice cu ın a ¸ cele calculate la iteratia precedent˘. pentru fiecare destinatie posibil˘. ¸ 5. de la fiecare nod s ¸˘ la vecinii s˘i directi.2. Dac˘ toate costurile sunt pozitive — a a ın a conditie ˆ ¸ ındeplinit˘ de graful asociat unei retele de calculatoare — algoritmul a ¸ cel mai eficient este algoritmul lui Dijkstra (algoritmul 5.2. pentru a ¸ a ¸ a fiecare destinatie posibil˘. algoritmul este l˘sat ˆ continuare s˘ se execute a a ın a . nodurile recalculeaz˘ periodic tabelele de distante. pentru nodurile ¸ ce nu sunt vecini directi. Costul drumului printr-un vecin ¸ direct este calculat ca fiind costul leg˘turii dintre nodul curent ¸i vecinul cona s siderat adunat cu costul. Initial.2) este inspirat˘ din algoritmul a a a Bellman-Ford de determinare a drumurilor de cost minim ˆ ıntr-un graf. conform tabelei vecinului. Calculul trebuie ref˘cut complet la fiecare modificare a ¸ a grafului asociat retelei de calculatoare. De remarcat c˘. ¸ ¸ Dup˘ initializare.2. Num˘rul de iteratii pˆn˘ la stabilizare ¸ a a ¸ a a este egal cu num˘rul cel mai mare de muchii de-a lungul vreunui drum optim. nodul cere vecinilor ıntˆ directi tabelele acestora. calculul se face astfel: mai ˆ ai. distanta pˆn˘ la ea ¸i primul nod de pe drumul ¸ a ¸ a a s optim spre acea destinatie.1). Notˆnd cu n a num˘rul de vˆrfuri (noduri ale retelei) ¸i cu m num˘rul de muchii (leg˘turi a a ¸ s a a directe). ˆ a ıns˘ calculele sunt repartizate ˆ ıntre nodurile retelei de calculatoare ˆ a¸a fel ˆ at ¸ ın s ıncˆ nici un nod s˘ nu aib˘ nevoie de informatii complete despre graf.

t(x) este leg˘tura direct˘ prin s a a care x0 trebuie s˘ trimit˘ pachetele destinate lui x. . y) < d[y] atunci a d[y]: = d[v] + c(v. ∞) costurile asociate arcelor x0 ∈ V vˆrful curent a ie¸irea: t : V → {(x0 . Radu-Lucian Lup¸a s Capitolul 5.c 2008. Nivelul retea ¸i nivelul transport ¸ s 129 Algoritmul Dijkstra intrarea: G = (V. y) dac˘ v = x0 atunci a t(y): = (x0 . a a algoritmul: pentru i ∈ V execut˘ a d[i]: = ∞ sfˆr¸it pentru as d[x0 ]: = 0 Q: = V cˆt timp Q = ∅ execut˘ a a fie v ∈ Q elementul din Q pentru care d[v] este minim Q: = Q \ {v} pentru y ∈ Q : (v. y) altfel t(y): = t(v) sfˆr¸it dac˘ as a sfˆr¸it dac˘ as a Q: = Q ∪ {y} sfˆr¸it pentru as sfˆr¸it cˆt timp as a sfˆr¸it algoritm as Algoritmul 5.1: Algoritmul lui Dijkstra cu ad˘ugirea pentru calculul tabelei de a dirijare. y) ∈ E} tabela de dirijare. y) ∈ E execut˘ a dac˘ d[v] + c(v. E) graf orientat (E ⊆ V × V ) c : E → [0.

j .j∈V primul nod. fiecare nod va calcula doar s (dx. N out (i) multimea vecinilor directi ai lui i.2: Algoritmul de dirijare cu vectori distant˘ ¸a .c 2008.j i∈N out (x) px.j )j∈V . pe drumul optim de la i la j.j .i :=cx. ¸ ¸ (ci. s ie¸irea: (di. pentru i ∈ N out (i) ¸ ¸ pentru j ∈ V execut˘ a dx. (pi.j )i. Radu-Lucian Lup¸a s 130 5. min )cx.j∈V costurile drumurilor optime.2.i + di. a algoritmul: pentru i ∈ V execut˘ a dx.j )i.j )j∈V .i := vecinul pentru care s-a obtinut minimul ¸ sfˆr¸it pentru as sfˆr¸it cˆt timp as a sfˆr¸it algoritm as Algoritmul 5.i sfˆr¸it pentru as cˆt timp adev˘rat execut˘ a a a obtine de la vecinii directi di. dup˘ i. ci.j :=min(cx.j = ∞ dac˘ i ∈ N out (i).j )i. Algoritmi de dirijare Algoritmul Vector dist intrarea: V multimea de noduri a retelei. ¸ ¸ x nodul curent. fiecare a a nod x cunoa¸te doar (cx.j∈V costurile leg˘turilor directe.

via cost dest. a nodul B ia ˆ considerare ca rute spre D: leg˘tura direct˘ de cost 20. via cost B B 2 A A 2 A – ∞ C – ∞ C C 5 B B 5 D D 21 D D 20 D D 3 Nodul D: dest. Dac˘ se a a elimin˘ o leg˘tur˘ direct˘ sau cre¸te costul unei leg˘turi directe.c 2008.5: Reteaua pentru exemplele 5. Nivelul retea ¸i nivelul transport ¸ s 131 pentru ca. con¸ form algoritmului 5. dac˘ un nod nu este accesibil direct. Costul a a a s ¸ leg˘turii directe este cunoscut.2.1 ¸i 5. via cost dest. Dac˘ apare ın a o leg˘tur˘ direct˘ nou˘ sau dac˘ scade costul unei leg˘turi directe existente. este destul de dificil de determinat. ruta pˆn˘ la acesta este a a a marcat˘ ca avˆnd cost infinit.2. a¸a cum se vede ˆ exemplul 5. s˘ actualizeze ˆ cona a a a ın tinuare tabelele de dirijare. s ın A 2 B 21 20 D 3 5 C Figura 5.2. via cost A A 21 B B 20 C C 3 • Iteratia 1: Pentru fiecare destinatie posibil˘. momentul ˆ care s-a produs stabilizarea. tabelele de a a a a s a dirijare se stabilizeaz˘ mult mai ˆ a ıncet.1: Fie reteaua din figura 5. iar costul rutei printr-un vecin este costul a leg˘turii spre acel vecin plus costul raportat de acel vecin. a Exemplul 5.5. Dealtfel. a a a a a a tabelele de dirijare se stabilizeaz˘ din nou dup˘ un num˘r de iteratii cel mult a a a ¸ egal cu num˘rul maxim de muchii de-a lungul unui drum optim. ın a a . a a Nodul B: Nodul C: Nodul A: dest. de la initializare pˆn˘ la stabilizare. Calculul tabelelor de dirijare. Radu-Lucian Lup¸a s Capitolul 5. se ia ˆ considerare leg˘tura ¸ ¸ a ın a direct˘ (dac˘ exist˘) ¸i rutele prin fiecare din vecinii directi. De exemplu. ˆ ın interiorul algoritmului. Numerele reprezint˘ costurile ¸ s a asociate leg˘turilor directe. sunt luate ˆ considerare doar leg˘turile ¸ In a a ın a directe. dac˘ ulterior se modific˘ leg˘turile directe. duce la urm˘toarele ¸ a a a tabele: • Initializarea: ˆ aceast˘ faz˘.

Radu-Lucian Lup¸a s 132 5. a ¸ Nodul A: Nodul B: Nodul C: dest.6. Ca alt exemplu. via cost B B 2 A A 2 A B 7 C B 7 C C 5 B B 5 D B 10 D C 8 D D 3 Nodul D: dest. Algoritmi de dirijare leg˘tura prin A de cost 2+21=23 ¸i leg˘tura prin C de cost 5+3=8. ¸ ın La prima iteratie. via cost A A 21 B C 8 C C 3 • Iteratia 2: S˘ urm˘rim ruta calculat˘ de A c˘tre D. Sunt luate ˆ con¸ a a a a ın siderare leg˘tura direct˘ de cost 21 ¸i leg˘tura prin B a c˘rui cost este a a s a a acum 2+8=10 ˆ ıntrucˆt se bazeaz˘ pe costul leg˘turii B→D calculat de a a a c˘tre B la iteratia 1.2. rezultˆnd reteaua din figura 5. via cost dest. Rutele optime g˘site sunt cele ın a prin A. via cost dest. la recalcularea rutelor nodului B spre C ¸i spre D. via cost A C 10 B C 8 C C 3 •ˆ Incepˆnd cu iteratia 3. a tabelelor de dirijare. ¸ s nodul B ia ˆ calcul rute prin A sau prin D. a a calculat de c˘tre B la initializare. via cost dest.2: Fie reteaua din figura 5. S˘ prea ¸a a supunem c˘ leg˘tura B–C cade. nodul B nu are cum s˘ determine a .c 2008. Exemplul 5. nodul A are urm˘toarele rute a a spre D: leg˘tura direct˘ de cost 21 ¸i leg˘tura prin B de cost 2+20=22. bazate pe vechile tabele ale lui A. cea a s a mai bun˘ este cea prin C.5 ¸i fie tabelele de dirijare rezultate ¸ s dup˘ stabilizarea algoritmului cu vectori distant˘ (vezi exemplul 5. a a s a de notat c˘ pentru leg˘tura prin B se ia costul B→D raportat de B. a ¸ Nodul A: Nodul B: Nodul C: dest.1). via cost B B 2 A A 2 A B 7 C B 7 C C 5 B B 5 D D 21 D C 8 D D 3 Nodul D: dest. S˘ urm˘rim a a a ¸ a a evolutia. tabelele calculate sunt identice cu cele de la itaretia a ¸ ¸ 2. via cost dest. ˆ continuare.

B C D Nodul dest. ¸ a a a ¸ c˘ aceste rute nu mai sunt valide deoarece se bazau pe leg˘tura B–C.6.c 2008. A C D B: via A A A cost 2 9 10 Nodul dest. as a a s Nodul dest. costurile aparente ale rutelor cresc de la o iteratie la In ¸ alta. A B D C: via D D D cost 13 11 3 ˆ continuare. A B C A: via B B B D: via C C C cost 2 11 14 cost 16 14 3 Nodul dest. La a 3-a iteratie de la a a a ¸ c˘derea leg˘turii B–C. Nivelul retea ¸i nivelul transport ¸ s A 2 B 21 20 D 3 C 133 Figura 5. tabelele ajung ˆ forma urm˘toare: a a ın a . A C D B: via A A A cost 2 9 12 Nodul dest. g˘sind c˘ rutele optime spre A ¸i B trec prin D. B C D Nodul dest. A B C A: via B B B D: via C C C cost 2 7 10 cost 10 8 3 Nodul dest. La fel a a procedeaz˘ ¸i nodul C. pˆn˘ cˆnd ajung la valorile rutelor reale optime. A B D C: via D D D cost 13 11 3 La urm˘toarea iteratie se vor modifica costurile rutelor din A spre C a ¸ ¸i D ¸i din D spre A ¸i B: s s s Nodul dest.6: Reteaua rezultat˘ prin c˘derea leg˘turii B–C din reteaua din figura 5. Radu-Lucian Lup¸a s Capitolul 5.

costul drumului optim de la B unei leg˘turi directe. B C D Nodul dest. a a ¸ Pentru a ˆ ımbun˘t˘¸i comportamentul ˆ cazul c˘derii sau cre¸terii a at ın a s costului leg˘turilor. de la 5 la 23. se poate modifica algoritmul astfel: tabelele vor ¸ine ruta a t complet˘ spre destinatie. In a la C cre¸te. via cost dest. Costul cel mai mic al unei leg˘turi directe este 2 (leg˘tura A–B).2. num˘rul de iteratii dup˘ care se stabilizeaz˘ tabelele dup˘ In a a a a c˘derea sau cre¸terea costului unei leg˘turi poate fi cel mult egal cu raportul a s a dintre cea mai mare cre¸tere de cost ˆ s ıntre dou˘ noduri ¸i cel mai mic cost al a s ˆ cazul exemplului 5. acest lucru nu va fi ın a a ¸ detectat niciodat˘. via cost dest.2. stabilizarea tabelelor poate lua cel mult 18 = 9 iteratii. ˆ cazul 2 ˆ care c˘derea unei leg˘turi duce la deconectarea retelei. at a a ¸ In Ca urmare. rutele ce trec de dou˘ ori a ¸ a prin acela¸i nod nu sunt luate ˆ considerare. cu memorarea ˆ a a ¸ ıntregului . o cre¸tere de s a a s 18 unit˘¸i. stabilizarea tabelelor s a survenind abia la a 8-a iteratie. prin c˘derea leg˘turii directe B–C. A B C ˆ general. num˘rul de iteratii necesar fiind infinit. iar la recalcularea rutelor.2. descoperirea de c˘tre D a rutelor reale a ¸ a spre A ¸i spre B: s Nodul A: Nodul B: Nodul C: dest. via cost A A 21 B B 20 C C 3 Restul rutelor reale sunt descoperite ¸i mai tˆrziu. Radu-Lucian Lup¸a s 134 5. la a 4-a iteratie.3: S˘ relu˘m reteaua din exemplul 5. ¸ Nodul dest. Algoritmi de dirijare Nodul B: Nodul C: A: via cost dest. via cost B B 2 A A 2 A D 19 C B 15 C A 13 B D 17 D B 18 D A 14 D D 3 Nodul D: dest. via cost B 2 A A 2 A D 19 B 11 C A 13 B D 17 B 14 D A 14 D D 3 D: via cost C 16 C 14 C 3 Urmeaz˘.c 2008. s ın Exemplul 5. via cost dest.

r˘mˆne s˘ fie aleas˘ doar leg˘tura direct˘ a s a a a a a a BD. ın ¸ a ¸ se obtin urm˘toarele tabele: ¸ a Nodul dest. Ca urmare. B C D Nodul dest. Prin urmare. ca urmare este ales ca rut˘ optim˘ de la B la C. A C D B: ruta A C C. ar exista o singur˘ posibilitate. 5.C 23 B – ∞ D B. A B D C: ruta B. prin a nodul D.C. A B C A: ruta B B. ruta cost dest. drumul prin A este BABC ¸i este respins datorit˘ s a repet˘rii vˆrfului B. Drumul de la B la C prin D este BDC. La calculul rutei de la C la A. a a a ¸ a din lipsa unor informatii globale.D Nodul dest.C.B. ˆ a aceasta conduce la drumul CDCBA care este respins din ıns˘ cauza repet˘rii nodului C. adic˘ drumul a ¸ a a ABC. ruta cost dest.6). ˆ calculul rutei de la B la D. ın este respins˘ ¸i.C 7 C D. nodul C marcheaz˘ lipsa rutei a a punˆnd costul ∞. a a Analog. de cost 20+3=23. Radu-Lucian Lup¸a s Capitolul 5.A B D cost 2 7 10 cost 10 8 3 cost 2 5 8 cost 7 5 3 Dup˘ c˘derea leg˘turii B–C (fig. se determin˘ inexistenta vreunei rute valide a a ¸ de la C la B. de la iteratia anterioar˘. ca urmare.C B. acesta este singurul candidat. Nivelul retea ¸i nivelul transport ¸ s 135 drum ˆ tabela de distante. De mentionat c˘ nu se face vreo verificare ˆ urma a a ¸ a ın c˘reia s˘ se observe c˘ drumul BABC contine muchia inexistent˘ BC. Drumul prin A ˆ a a a a ıncepe cu muchia AB ¸i cons tinu˘ cu ruta din tabela. ruta prin A. este imposibil de prins toate cazurile ¸ de utilizare a unor muchii inexistente.D D: ruta C. Dup˘ stabilizarea tabelelor pe reteaua din figura 5.D 10 D D 20 D D 3 . evolutia tabelelor de dirijare a a a ¸ are loc dup˘ cum urmeaz˘: a a • Iteratia 1: S˘ consider˘m drumurile posibile de la nodul B spre nodul C. ¸ a a Leg˘tur˘ direct˘ nu exist˘. Nodul B: Nodul C: Nodul A: dest. anume BABCD.A C.c 2008.5.B C Nodul dest. ruta cost B B 2 A A 2 A – ∞ C B. Analog. a lui A.

A B D C: ruta D. a. ruta cost A A 21 B B 20 C C 3 Nodul dest. unde a a a ın ¸ este imposibil ca fiecare nod s˘ aib˘ informatii despre toate celelalte noduri. ruta cost A A 21 B B 20 C C 3 • Iteratia 3: Se stabilizeaz˘ ¸ a Nodul A: dest. ruta cost B B 2 C D. a a ¸ Exemple clasice de astfel de retele sunt Internet-ul ¸i reteaua telefonic˘.A 10 B C. ¸. Radu-Lucian Lup¸a s 136 5. Algoritmi de dirijare Nodul D: dest. a ¸ a ımp˘ ¸ a ın ¸ Subretelele alc˘tuiesc o ierarhie arborescent˘: o subretea r˘d˘cin˘ (considerat˘ ¸ a a ¸ a a a a pe nivelul 0).c 2008. Dirijarea ierarhic˘ a Dirijarea ierarhic˘ se aplic˘ cu prec˘dere ˆ retelele foarte mari. d.3. ¸ s ¸ a Ideea dirij˘rii ierarhice este ca reteaua s˘ fie ˆ artit˘ ˆ subretele.B D cost 24 23 3 5. Fiecare a ¸ a s nod are informatii de dirijare: ¸ • c˘tre nodurile din subreteaua proprie.2. ruta cost B B 2 C D.A D.C D cost 2 23 20 Nodul dest. ruta A A C D. Nodul B: dest. a ¸ .B 8 C C 3 • Iteratia 2: ¸ Nodul A: dest. individual pentru fiecare nod. m.2. ruta cost A C. subretele subordoa ¸ ¸ nate cˆte unei subretele de pe nivelul 1 (alc˘tuind nivelul 2). cˆteva subretele subordonate ei (nivelul 1). A B D C: ruta – – D cost ∞ ∞ 3 tabelele.C 24 D D 21 Nodul D: dest.B.C D D cost 2 23 20 Nodul dest.C 24 D D 21 Nodul D: dest. A C D B: ruta A D.

3.1 are de trimis un pachet c˘tre nodul 3. Nivelul retea ¸i nivelul transport ¸ s 137 • c˘tre subreteaua imediat superioar˘ ierarhic: o singur˘ rut˘. Radu-Lucian Lup¸a s Capitolul 5.2 caut˘ drumul spre cel mai apropiat nod din subreteaua 3.7 este reprezentat˘ o retea cu dirijare ierarhic˘ pe In a ¸ a dou˘ nivele.1 trimite pachetul spre destinatia 3.4. prima ın ¸ component˘ identificˆnd subreteaua de nivel 1 din care face parte sau c˘reia ˆ a a ¸ a ıi este subordonat nodul.1. urmˆnd identificatorul subretelei de nivel 2. ¸. se a s a a poate lua drumul 1. 2. dirijarea ierarhic˘ nu conduce la drumul a ın a optim c˘tre destinatie. a a ¸ a • Nodul 1. Adresa fiec˘rui nod este format˘ din dou˘ componente. d. a.2.1). a ¸ Nodul g˘sit este 3. 2. ın ¸ De remarcat c˘.c 2008. este posibil s˘ se rateze optimul global ın ¸ s a (a se vedea exemplul 5. m.3. 3. caut˘ drumul spre cel mai apropiat nod ce are ınsu¸ a leg˘tur˘ cu reteaua ierarhic superioar˘. este 3. ˆ general. Nodul acesta este 1. a a a ıl a . adresele sunt formate din componente.5. 2. 3.2.. echivalent.2.2. calculul rutelor se face prin metode de dirijare .1 determin˘ c˘ destinatia 3.6. cˆte o rut˘ pentru a ¸ a a fiecare subretea.1.2.3. a ¸ s ˆ ıncheind cu identificatorul nodului ˆ cadrul subretelei din care face parte. ¸ anume 3. S˘ observ˘m c˘ drumul pe care ˆ urmeaz˘ pachetul.4 face parte din alt˘ subretea decˆt a a a ¸ a el ˆ si.4).1. prima idena a a tificˆnd subreteaua de nivel 1 din care face parte ¸i a doua identificˆnd nodul a ¸ s a ˆ cadrul subretelei respective. a ¸ s Pentru ca orice nod s˘ poat˘ determina din ce subretea face parte a a ¸ nodul destinatie a unui pachet.1 ¸i drumul pˆn˘ la el este 1. ruta conducˆnd spre cel mai ¸ a apropiat • c˘tre fiecare din subretelele imediat inferioare ierarhic.4 pe drumul cel mai scurt.1. 3. Exemplul 5. ın ¸ S˘ presupunem c˘ nodul 1. a a a Dirijarea decurge astfel: • Nodul 1.2. 3. ca urmare. 3.obi¸nuite“. ¸ Ruta de la un nod initial c˘tre o subretea vecin˘ subretelei nodului initial este ¸ a ¸ a ¸ ¸ ruta de la nodul initial c˘tre cel mai apropiat nod de la granita dintre cele ¸ a ¸ dou˘ subretele. Astfel. ca urmare. Reteaua este format˘ dintr-o subretea r˘d˘cin˘ ¸i patru subretele a ¸ a ¸ a a as ¸ subordonate ei. a ¸ Fiecare subretea este suficient de mic˘. precum ¸i localizarea subretelei respective ˆ ¸ s ¸ ın ierarhie. • Nodul 3. 3. 1.1 (echivalent..4). a ¸ a a a a pentru toate nodurile din acea subretea.3. Aceasta deoarece ˆ dirijarea ierarhic˘ se caut˘ optimul a ¸ ın a a local ˆ fiecare subretea ¸i. 3. 1. ˆ interiorul ¸ a ıncˆ ın fiec˘rei subretele.4 (alt drum.4: ˆ figura 5. 3. astfel ˆ at.1. 3.3. comun˘. adresa fiec˘rui nod este astfel construit˘ ˆ at s˘ descrie pozitia nodua a ıncˆ a ¸ lui ˆ ierarhia de retele. 3.

2.4 (a) Toat˘ reteaua.7: O retea cu dirijare ierarhic˘ pe dou˘ nivele.1 3.3 2.4 1. s .1 1. Algoritmi de dirijare 1.1 4.3 2. Radu-Lucian Lup¸a s 138 5.4 3. ¸ a a a Figura 5.2 3. Subretelele de pe nivelul 1 sunt ˆ a ¸ ¸ ıncercuite cu linie punctat˘.c 2008.3 3.3 3. Reteaua de pe nivelul ¸ a a ¸ r˘d˘cin˘ are nodurile reprezentate prin cercuri pline (mici) ¸i leg˘turile reprezentate a a a s a cu linii ˆ ıngro¸ate.3 4.2 2.3 1.2 2.1 1.1 (b) Reprezentarea (mic¸orat˘) s a doar a subretelei r˘d˘cin˘. a 1.3 4.2 4.1 3.5 3.5 1.2 2.1 3.6 2.

¸ Pe de alt˘ parte. metoda inund˘rii genereaz˘ prea mult trafic pentru a fi a a a ˆ general acceptabil˘.3. Nivelul retea ¸i nivelul transport ¸ s 139 3. a a ın ¸ Inundarea const˘ ˆ a trimite c´pii ale unei datagrame prin toate leg˘turile a ın o a directe. atunci o datagram˘. Pentru ca inundarea s˘ fie utilizabil˘ ˆ a a a ın retele cu cicluri. Cu aceast˘ modificare. considerˆnd nodul surs˘ a a ¸ a a datagramei ca r˘d˘cin˘. 1. a 3. ın a Dac˘ graful retelei este un arbore. Radu-Lucian Lup¸a s Capitolul 5. la fiecare nod ¸ ajung toate pachetele care circul˘ prin retea. a datagrama nu mai este trimis˘ mai departe. ¸ ¸a inundarea nu necesit˘ ca nodurile s˘ adune nici un fel de informatie despre a a ¸ retea. inundarea face ca fiecare datagram˘ s˘ ajung˘ la a a a a fiecare nod al retelei.1. 3. Metode particulare de dirijare 5.2.2. Ca urmare. copiile datagramei circul˘ ˆ arbore de la fiecare nod a a a a ın la fii s˘i. ¸ Inundarea garanteaz˘ c˘. inundarea a a transmite datagramele pe toate drumurile (nu neap˘rat simple) de la sursa a datagramei ¸i de lungime dat˘. La un num˘r de noduri mai a ¸ a mare de cˆteva zeci. Graful unei retelele Etha ın ¸ ¸ ernet trebuie s˘ fie ˆ a ıntotdeauna un arbore. ¸ Dac˘ ˆ a graful retelei contine cicluri. La atingerea unei anumite valori prestabilite.4 are lungimea 5. Inundarea Inundarea este o metod˘ aplicabil˘ ˆ retele bazate pe datagrame. s a O alt˘ solutie. trebuie f˘cut˘ o modificare pentru prevenirea cicl˘rii infinite.3. 4. nu doar la destinatarul dorit. atunci.4. transmisia se opre¸te la frunze. iar drumul 1. datagrama ajunge la destinatie. 5. cicleaz˘ la infinit. dac˘ destinatia este accesibil˘ ¸i nodurile nu a a a ¸ as sunt prea ˆ arcate (astfel ˆ at s˘ se sacrifice datagrame din lips˘ de spatiu de ınc˘ ıncˆ a a ¸ memorare).4 nu este optim. Ca avantaj fat˘ de alte metode. prin mentinerea unor numere de secvent˘) duplicatele ¸ ¸a unui pachet ¸i s˘ trimit˘ mai departe un pachet doar la prima lui sosire. ˆ ıntrucˆt lungimea lui este 6. s a a Inundarea se utilizeaz˘ ˆ retelele Ethernet. cu avantajul suplimentar c˘ asigur˘ ca fiecare pachet a ¸ a a s˘ ajung˘ ˆ a a ıntr-un singur exemplar la destinatie.1. cu exceptia celei prin care a intrat datagrama.1. este ca fiecare nod al retelei s˘ ¸ ¸ a identifice (de exemplu.c 2008. o dat˘ a ıns˘ ¸ ¸ a a ajuns˘ ˆ a ıntr-un ciclu. . De notat ˆ a c˘ o retea al c˘rei graf a s ıns˘ a ¸ a ata¸at este un arbore este extrem de vulnerabil˘ la pene: defectarea oric˘rui s a a nod intern duce la deconectarea retelei. ¸ a a a O posibil˘ solutie — utilizat˘ ¸i pentru alte metode de dirijare — este a ¸ as aceea de-a asocia fiec˘rei datagrame un contor de salturi care marcheaz˘ prin a a cˆte noduri a trecut datagrama.4. 1.5.

se poate folosi ınc˘ a inundarea. s˘ se a a introduc˘ sau s˘ se actualizeze ˆ tabela de dirijare regula pentru destinatia a a ın ¸ S prev˘zˆnd ca urm˘tor nod pe V .4.5. ¸ a Desigur. datagramele c˘l˘toresc a aa reunite ˆ ıntr-o singur˘ datagram˘ cu mai multe adrese destinatie. cˆt timp a a a ¸ ıns˘ a drumul a dou˘ sau mai multe datagrame este comun.2. a ın ¸ 5. Metoda este utilizat˘ ˆ retelele Ethernet. Distingem o ¸ dou˘ posibile cerinte. De asemenea. Metoda const˘ ˆ a trimite ˆ datagram˘ multimea adreselor a ın ın a destinatie. util˘ ˆ special ˆ situatia ˆ care s a ın ın ¸ ın destinatarii sunt putini ¸i nu se trimit multe datagrame aceleia¸i multimi de ¸ s s ¸ destinatari. mai trebuie un mecanism pentru dirijarea pachetelor ¸ pentru care ˆ a nu exist˘ reguli de dirijare — de exemplu. ˆ a. ˆ ıntotdeauna este posibil˘ difuzarea prin transmiterea sepaa rat˘ a unei datagrame spre fiecare nod.2. difuziune complet˘ (engl.2. la a a ¸ primirea unui pachet de la un nod surs˘ S dinspre un nod vecin V . Metode de difuziune Ne vom ocupa ˆ continuare de metodele de dirijare aplicabile ˆ vedın ın erea trimiterii c´piilor unei datagrame spre mai multe destinatii. multicast) — trim¸ s a iterea datagramei spre o submultime dat˘ a multimii nodurilor. O astfel de metod˘ este ˆ a neecoa a ıns˘ nomic˘. broadcast) — trimiterea spre a ¸ a toate nodurile unei retele — ¸i difuziune selectiv˘ (engl. iar apoi s˘ se a a aplice metoda inund˘rii ˆ acest arbore. Intuitiv. Regulile astfel introduse trebuie s˘ aib˘ a a a a a valabilitate limitat˘ ˆ timp — altfel apar probleme la modificarea leg˘turilor a ın a din retea. Datorit˘ necesit˘¸ii a a s ¸ a a at calculului arborelui partial. metoda ar putea fi privit˘ a a a a astfel: se trimite cˆte o datagram˘ c˘tre fiecare nod destinatie.c 2008.1). a a ¸ .2. ˆ a¸area rutelor din adresele surs˘ ale pachetelor Inv˘t a O metod˘ simpl˘ de constructie a tabelelor de dirijare este ca.4. Radu-Lucian Lup¸a s 140 5. Fiecare nod determin˘ leg˘tura de ie¸ire pentru fiecare destinatie ¸ a a s ¸ din lista din datagram˘. s ¸ Descriem ¸i o a treia posibilitate. Aceast˘ metod˘ este utilizabil˘ atˆt a ın a a a a pentru difuzare complet˘ cˆt ¸i pentru difuzare partial˘. Datagrama trimis˘ a ¸ ¸ a prin fiecare leg˘tur˘ direct˘ va avea ˆ lista de destinatii doar acele noduri c˘tre a a a ın ¸ a care ruta trece prin acea leg˘tur˘ direct˘. Apoi trimite cˆte o datagram˘ pe fiecare leg˘tur˘ a a a a a direct˘ ce apare pe ruta spre cel putin una dintre destinatii. Algoritmi de dirijare 5. este favorabil˘ ˆ cazul ˆ care trebuie trimise ¸ a ın ın multe datagrame aceleia¸i multimi de destinatari.2. O alt˘ posibilitate este s˘ se construiasc˘ ˆ ai un arbore partial a a a ıntˆ ¸ (preferabil de cost minim) de acoperire a vˆrfurilor destinatie. a O posibilitate simpl˘ de realizare a difuziunii complete este inuna darea. (§ 5.

coada cre¸te pˆn˘ cˆnd a a s a a a memoria alocabil˘ cozii de a¸teptare este epuizat˘. de unde le extrage pe m˘sur˘ ce pot fi a a a a transmise prin leg˘tura de ie¸ire. ˆ acel moment. Principalele probleme ce apar ˆ cazul ˆ care capacitatea nodurilor ın ın sau leg˘turilor directe este dep˘¸it˘ sunt urm˘toarele: a as a a •ˆ Intr-o retea aglomerat˘. ¸inut˘ sub control.3. as s fie capacitatea leg˘turii prin care pachetele trebuie s˘ ias˘. Functionarea la trafic ridicat ¸ Pˆn˘ aici am studiat comportamentul unei retele doar pentru cazul ˆ a a ¸ ın care debitul fluxului de date care intr˘ ˆ a ıntr-un nod nu dep˘¸e¸te niciodat˘ nici as s a capacitatea leg˘turilor prin care trebuie trimis mai departe. ın s ınc˘ a s s a cel putin. ˆ extremis. O astfel de situatie. nodul va a s a ın trebui fie s˘ sacrifice pachete.c 2008. dac˘ datagramele apartin unei aplicatii de tip videoconferint˘. din cauza station˘rii pachetelor ˆ coada de a¸teptare. se nume¸te congestie ¸i trebuie evitat˘ sau. De exemplu. mic¸orarea debitului de a s intrare. un nod supraaglomerat poate t a at s˘ fie nevoit s˘ arunce o parte dintre datagramele aflate ˆ tranzit. fie s˘ solicite. este posibil ca destinatarul s˘ nu a a a aib˘ ce face cu cele mai noi ¸i s˘ trebuiasc˘ retransmise toate). ¸ t a • Capacitatea disponibil˘ a retelei trebuie ˆ artit˘ ˆ mod echitabil ˆ a ¸ ımp˘ ¸ a ın ıntre utilzatori. pachetele sau datagramele ˆ arzie mult sau chiar ¸ a ıntˆ se pierd. De notat c˘ reducerea ¸i. de degradare suplimentar˘ a performantelor a a ¸ ˆ urma cre¸terii ˆ arc˘rii. blocarea fluxului de date la a s ın intrarea ˆ ıntr-un nod poate duce la acumularea de date de transmis ˆ nodului ın vecin dinspre care vine acel flux. Dac˘ a a ın a datagramele apartin unei aplicatii de transfer de fi¸iere. Dac˘ debitul cu care ¸ a a intr˘ pachete ˆ a ıntr-un nod dep˘¸e¸te fie capacitatea de prelucrare a nodului. Reactia unei retele aglomerate trebuie s˘ ¸ ¸ ¸ a ¸in˘ cont de aceste priorit˘¸i. Nivelul retea ¸i nivelul transport ¸ s 141 5. Un efect imediat este cre¸terea timpului a s s de propagare. a a dac˘ se arunc˘ datagramele mai vechi. nici capacitatea a modulului de retea de-a efectua prelucr˘rile necesare. ducˆnd mai departe la blocarea reciproc˘ a a a unui grup de noduri. Radu-Lucian Lup¸a s Capitolul 5. este preferabil ¸ ¸ s s˘ fie aruncate cele mai recente (acestea fiind retransmise mai tˆrziu. Dac˘ ¸ a ın s a excesul de debit de intrare se p˘streaz˘ mai mult timp. Dima s a a potriv˘. a a ¸ ¸ ¸a . lucru care poate declan¸a retrimiteri intempestive de pachete. nodul memoreaz˘ a a a a pachetele ˆ ıntr-o structur˘ de coad˘. prin intermediul mecanismului a a de control al fluxului de la nivelul leg˘turii de date. • Diferite aplicatii au diferite priorit˘¸i cu privire la caracteristicile necesare ¸ at ale serviciului oferit de retea. s ducˆnd la aglomerare ¸i mai mare a retelei ¸i la performante ¸i mai a s ¸ s ¸ s sc˘zute.

Metoda se nume¸te ¸ ¸ s s ¸a a a a s a¸teptare echitabil˘ ponderat˘ (engl. Astfel. ¸ O distribuire mai echitabil˘ a capacit˘¸ii este de-a construi cˆte o a at a coad˘ pentru fiecare nod surs˘.3. ˆ In a s a ımpreun˘ cu a ele — se poate pune ˆ aplicare ¸i un sistem de priorit˘¸i. Vom analiza ˆ continuare modul ˆ care el poate alege. s s a O variant˘ a metodei anterioare este de a oferi fiec˘rei intr˘ri nu a a a un num˘r egal de pachete preluate ci un num˘r egal de biti preluati. dup˘ caz. cˆte un pachet din fiecare coad˘. fiec˘rui pachet ın s at a i se poate asocia un nivel de prioritate: pachetele pentru aplicatii ˆ timp real ¸ ın ¸i pachetelor asociate sesiunilor interactive li se asociaz˘ nivele de prioritate s a mai ridicate. fair queueing). a a a O posibilitate simpl˘ este de a mentine o singur˘ coad˘ ¸i de a accepta a ¸ a as un pachet proasp˘t sosit dac˘ are loc ˆ coad˘ ¸i de a-l distruge dac˘ nu are a a ın as a loc. adesea.c 2008. Pentru a a ¸ ¸ aceasta. iar aplicatiilor care transfer˘ fi¸iere mari li se asociaz˘ nivele de ¸ a s a prioritate coborˆt˘. Ca urmare. fiec˘rui nivel de prioritate i se asociaz˘ o a a coad˘ separat˘. ın a a a ˆ acest fel. circuit virtual In a a obtine trimiterea aceluia¸i num˘r de pachete ˆ unitatea de timp. un num˘r dublu de a biti preluati ¸i retransmi¸i fat˘ de o leg˘tur˘ secundar˘.1. dintre at ın ın pachetele primite. cu spatiu de memorare rezervat. Atunci cˆnd linia de ie¸ire a a ¸ a s este liber˘ ¸i ruterul trebuie s˘ decid˘ care este urm˘torul pachet. ¸ s 5. a a ¸ s Pe lˆng˘ posibilitatea de a oferi intr˘rilor transmiterea aceluia¸i nua a a s m˘r de biti sau de pachete. care va fi urm˘torul pachet pe care s˘-l retransmit˘. Nodul a a a a extrage. se poate oferi unei leg˘turi mai a importante.3. Metoda se ¸ s a ın nume¸te a¸teptare echitabil˘ (engl. ˆ vederea retransmiterii. weighted fair queueing). pe rˆnd. se poate asocia fiec˘rei cozi num˘rul total de biti ai pachetelor preluate a a ¸ din acea coad˘ ¸i retransmise mai departe. solutia duce la a accepta primul a ¸ pachet ce sose¸te dup˘ eliberarea unei pozitii ˆ coad˘. rezolvarea problemelor de mai sus necesit˘ o colaborare a a ˆ ıntre nivelul retea ¸i nivelele superioare. ˆ a a Intr-un ruter. Alegerea pachetelor de transmis Consider˘m un ruter ale c˘rui linii de ie¸ire sunt utilizate la maximul a a s capacit˘¸ii. se poate oferi numere de biti sau pachete transmise a ¸ ¸ proportionale cu anumite valori. a De notat c˘. leg˘tur˘ de intrare sau cicruit virtual. Atunci cˆnd debitul de intrare este mare. Functionarea la trafic ridicat ¸ este preferabil s˘ fie aruncate datagramele mai vechi. s a a ˆ afar˘ de metodele de a¸teptare echitabil˘ — eventual. un emit˘tor s a ¸ ın a ¸a care produce multe pachete este avantajat fat˘ de un emit˘tor care produce ¸a ¸a putine pachete. dinspre un grup mai mare de calculatoare. Radu-Lucian Lup¸a s 142 5. De fiecare dat˘ nodul intermediar as a extrage urm˘torul pachet din coada cu cel mai mic num˘r de biti transmi¸i. De exemplu. examineaz˘ as a a a a . fiecare surs˘ fiecare linie de intrare sau.

Evident.4). este datorat˘ unei function˘ri a a ¸ a defectuoase a retelei. ¸ ¸ Descriem ˆ continuare. pentru fiecare pachet ınc˘ at de date primit spre livrare s˘ trimit˘ sursei pachetului de date un pachet de a a control prin care s˘-i cear˘ s˘ reduc˘ traficul. este c˘ nu semnalizeaz˘ sursei traficului. Sc˘derea debitului util.5. Radu-Lucian Lup¸a s Capitolul 5. a at a s a fiec˘rui nivel i se asociaz˘ un set de cozi. prin intermediul protocolului de control a ¸ al fluxului.2. Dezavantajul.2.3. a a a sub forma unui bit din antetul fiec˘rui pachet. a ¸ ınc˘ a nodurile terminale s˘ ˆ a ıncerce s˘ reduc˘ frecventa ¸i m˘rimea pachetelor transa a ¸ s a mise. este necesar un mecanism care s˘ semnaleze a nodurilor finale asupra prezentei sau iminentei congestiei. Nivelul retea ¸i nivelul transport ¸ s 143 cozile ˆ ordine descresc˘toare a nivelelor de prioritate pˆn˘ g˘se¸te o coad˘ ın a a a a s a nevid˘. Controlul congestiei Prin congestie se ˆ ¸elege sc˘derea debitului traficului util ˆ retea ˆ ınt a ın ¸ ın situatia ˆ care cererea de trafic printr-o leg˘tur˘ sau printr-un nod dep˘¸e¸te ¸ ın a a as s capacitatea acesteia. ˆ interiorul setului functionˆnd a a ın ¸ a regulile de la a¸teptarea echitabil˘. ˆ opozitie cu limitarea traficului a ın ¸ la capacitatea leg˘turii sau nodului respectiv. fat˘ de metoda a ¸a precedent˘. pentru acest lucru.c 2008. A doua posibilitate este ca nodul ˆ arcat s˘ semnalizeze destinatiei ınc˘ a ¸ fiec˘rui pachet de date faptul c˘ reteaua este ˆ arcat˘. dac˘ reteaua este foarte ˆ arcat˘. atunci cˆnd un a nod intermediar este ˆ arcat la limita capacit˘¸ii sale. Metoda semnaliz˘rii destinatiei este a a a ¸ utilizat˘ ˆ Internet. destinatia cere sursei. mecanisme utilizate pentru semın nalarea congestiei. Aceast˘ semnalizare a a ¸ ınc˘ a a este mai u¸or de f˘cut ˆ s a ıntrucˆt poate fi transmis˘ odat˘ cu pachetul de date. precum ¸i mecanismele prin care nodurile finale pot reactiona s ¸ la astfel de semnale. pe scurt. a a a a Dac˘ metoda priorit˘¸ilor este combinat˘ cu a¸teptarea echitabil˘. sub numele de explicit congestion notification. r˘mˆne a a a ¸ a a deci necesar de elaborat un protocol de informare a sursei. Prima posibilitate de semnalizare a congestiei este ca. este bine ca. pentru a ın . Pachetul urm˘tor ce va fi transmis este extras din prima coad˘ nevid˘. ˆ special datorit˘ pierderii ¸i retransmiterii unui num˘r ¸ ın a s a mare de pachete. s˘ reduc˘ debitul transmisiei. Ca principiu general. ci destinatiei. ın a a a 5. existˆnd un tip de ¸ ınc˘ a a ın a pachete ICMP pentru acest scop (vezi § 10. Informarea sursei poate fi f˘cut˘ simplu dac˘ ˆ a a a ıntre surs˘ ¸i destinatie se utilizeaz˘ un protocol de as ¸ a control al fluxului: ˆ cazul ˆ care destinatiei ˆ este semnalizat c˘ reteaua este ın ın ¸ ıi a ¸ congestionat˘. Metoda este utilizabil˘ ˆ Internet. Cusurul metodei const˘ ˆ a a a a a ın faptul c˘ pachetele de cerere de reducere a traficului ˆ a ıncarc˘ suplimentar o a retea deja ˆ arcat˘. Urm˘torul pachet trimis este extras din s a a setul de cozi cel mai prioritar ˆ care exist˘ cel putin o coad˘ nevid˘.

asupra fluxului printr-un a ¸ circuit virtual sau asupra fluxului ce intr˘ sau iese printr-o anumit˘ leg˘tur˘ a a a a direct˘. Functionarea la trafic ridicat ¸ informarea. fie a unui protocol a de confirmare ¸i retransmitere .3. s Indiferent de metoda de semnalizare utilizat˘.8). a nodus a a lui intermediar considerat. asupra fluxulul ˆ a ıntre dou˘ statii date. Dup˘ un timp. Rezult˘. necesitatea utiliz˘rii. pˆn˘ la congestionarea. a ınc˘ 5. s a a a a dac˘ g˘leata este plin˘. O semnalizare implicit˘ a faptului c˘ reteaua este ˆ arcat˘ const˘ a a ¸ ınc˘ a a ˆ ˆ a¸i pierderea pachetelor. § 4.3. Formarea (limitarea) traficului Prin formarea traficului se ˆ ¸eleg metode de uniformizare a debitului ınt unui flux de date. o parte din apa ce intr˘ se revars˘ ˆ afar˘ (surplusul a a a a a ın a . Pierderea poate fi observat˘ de nodul surs˘ ın ıns˘s a a prin aceea c˘ nu prime¸te confirm˘ri (ˆ cazul utiliz˘rii unui protocol cu cona s a ın a firmare ¸i retransmitere. leg˘turi radio). Reactia este diminuarea traficului prin toate leg˘turile ¸i ca ur¸ a s mare sc˘derea traficului mult sub maximul admis. Radu-Lucian Lup¸a s 144 5. Mecanismele de limitare pot fi plasate ˆ nodul surs˘ sau ın a ˆ ıntr-un ruter ¸i pot actiona asupra fluxului de pachete provenit de la un anumit s ¸ nod surs˘. o implementare simpl˘ a a risc˘ s˘ duc˘ la oscilatii: dac˘ un nod intermediar ajunge congestionat. Debitul apei care curge (debitul fluxului as a de ie¸ire) este constant atˆt timp cˆt g˘leata nu este goal˘. a a ın a a la nivelul leg˘turii de date. a Cel mai simplu mecanism de formare a traficului este limitarea debitului de date la o anumit˘ valoare fixat˘. G˘leata are o gaur˘ prin care curge ap˘ (pachete ce sunt preluate din a a a coad˘ ¸i retransmise de c˘tre ruter). fie a unui cod corector de erori. prin analogie cu urm˘torul mecanism fizic: ˆ a a a ıntr-o g˘leat˘ (reprezentˆnd a a a coada de a¸teptare a ruterului) se toarn˘ ap˘ (reprezentˆnd pachetele unui s a a a flux). din nou. De asemenea. Pentru ca pierderea pachetelor s˘ poat˘ fi utilizat˘ ca a a a a a semnalizare a congestiei.3. Mecanismul se nume¸te g˘leat˘ a a s a a g˘urit˘. a sursei se poate utiliza dimensiunea ferestrei TCP (§ 10.c 2008. mai este necesar ca pierderea unui pachet din alte cauze decˆt congestia s˘ fie putin probabil˘. nodurile a a terminale vor cre¸te din nou traficul.3) sau r˘spuns la mesajele trimise (ˆ cazul unei s a ın aplicatii care trimite o datagram˘ de cerere ¸i a¸teapt˘ o datagram˘ care s˘ ¸ a s s a a a r˘spund˘ la cerere). sema a a ¸ a nalizeaz˘ tuturor nodurilor terminale ale leg˘turilor stabilite prin el despre a a congestie.3. mai departe. Solutionarea problemei oscilatiilor se face punˆnd ¸ ¸ a nodul intermediar s˘ trimit˘ semnale c˘ este supraˆ arcat cu putin ˆ a a a ınc˘ ¸ ınainte de-a ajunge la limita capacit˘¸ii sale ¸i de-a alege aleator leg˘turile c˘rora li at s a a se semnalizeaz˘ ˆ arcarea. pentru leg˘turile directe a a ¸ a a a cu rat˘ a erorilor ridicat˘ (ˆ principal.1.

cu p˘strarea capacit˘¸ii In at a a at garantate prin rezervarea resurselor. o anumit˘ capacitate ¸i un anumit ın a s timp de propagare oferite unui flux de date. Mecanismul se nume¸te g˘leata cu jeton. Nivelul retea ¸i nivelul transport ¸ s 145 de pachete se pierd). Dac˘ debitul efectiv utilizat de un flux de date este adesea a sub debitul alocat fluxului sau dac˘ o parte din capacitatea unei leg˘turi dia a recte r˘mˆne adesea nealocat˘ complet conexiunilor ce trec prin ea. ruterul ¸ine evidenta capacit˘¸ii nefolosite (diferenta dintre debitul maxim acceptat t ¸ at ¸ ¸i debitul fluxului) ¸i permite. Dac˘ a a ıns˘ as a a exist˘ un pachet ˆ coad˘ ¸i num˘rul de jetoane este mai mare sau egal cu a ın a s a num˘rul de biti ai pachetului. ¸ a a Avantajul unui debit garantat se pl˘te¸te prin limitarea drastic˘ a a s a debitului permis. este necesar s˘ fie rezervate fluxului a resursele necesare — capacitatea de prelucrare ˆ noduri ¸i capacitatea de ın s transfer prin leg˘turile directe. a ˆ acest caz. pachetul este preluat din coad˘ ¸i retransmis. Radu-Lucian Lup¸a s Capitolul 5. f˘r˘ ˆ a a dep˘¸i o valoare maxim˘. Ca idee. ruterul asociaz˘ cozii un num˘r de jetoane. ˆ contul acesteia. conexiunea este refuzat˘ sau se a a negociaz˘ o capacitate mai mic˘. se poate face astfel: Datelor ce apartin ¸ conexiunilor cu trafic garantat li se asociaz˘ un nivel de prioritate ridicat. a a Asociat conexiunii se plaseaz˘. num˘rul de a a a jetoane este crescut cu o unitate. un exces de debit. valorificarea capacit˘¸ii r˘mase. ˆ timpul stabilirii rutei conexiunii se staın bile¸te ¸i capacitatea pe care o va garanta conexiunea ¸i fiecare nod se asigur˘ s s s a c˘ dispune de capacit˘¸ile necesare (c˘ suma capacit˘¸ilor alocate conexiunilor a at a at ce partajeaz˘ o leg˘tur˘ direct˘ nu dep˘¸e¸te capacitatea leg˘turii directe). a ın ¸ ın Reteaua telefonic˘ utilizeaz˘ astfel de mecanisme. Un mecanism mai elaborat permite scurte rafale. ¸ s a 5. ˆ mod garantat.4.3. un mecanism de lima a itare a debitului de date. Periodic. la nodul surs˘. a Rezervarea resurselor se poate face doar ˆ retele ce ofer˘ servicii de ın ¸ a tip conexiune — utilizarea rezerv˘rii ˆ retele cu datagrame duce la necesitatea a ın ¸ implement˘rii unui mecanism de ¸inerea evidentei fluxurilor de datagrame a t ¸ similar celui din retelele cu circuite virtuale. a . Rezervarea resurselor este util˘ ˆ special aplicatiilor ˆ timp real. a ¸ as iar num˘rul de jetoane asociat cozii este sc˘zut cu o valoare egal˘ cu num˘rul a a a a de biti ai pachetului. reteaua a a a ¸ nu este folosit˘ la maximul de capacitate. Rezervarea resurselor Pentru a avea. a a a a as s a Dac˘ resursele necesare nu sunt disponibile.c 2008. ¸ La deschiderea conexiunii. astfel ˆ at operarea conexiunii s˘ se ˆ ıncˆ a ıncadreze ˆ ın resursele alocate. Mai ˆ s s ın ın detaliu.

O diferent˘ important˘ fat˘ de transportul sigur la nivelul ¸a a ¸a leg˘turii de date este c˘ nivelul retea poate inversa ordinea unor dataa a ¸ grame. ˆ plus. ˆ acest fel. pentru a asigura transport sigur la nivelul a transport. ¸ a a a s 5.3) pot a s fi utilizate. ˆ a ¸ In ıntr-o retea ce ofer˘ transport de ¸ a datagrame este posibil ca dou˘ datagrame s˘ ajung˘ la destinatie ˆ ora a a ¸ ın dine invers˘ fat˘ de cea ˆ care au fost emise.3. ¸a a • Controlul fluxului: Controlul fluxului are acela¸i rol ¸i se implementeaz˘ s s a ˆ acela¸i mod la nivelul transport ca ¸i la nivelul leg˘turii de date. Nivelul transport Rolul nivelului transport este de-a face o adaptare ˆ ıntre serviciile oferite de nivelul retea ¸i nevoile aplicatiilor. dac˘ mai r˘mˆn resurse ¸i pentru ele. iar restul datelor sunt transmise.4. cu mici modific˘ri. fluxurile ce au rezervat a at In resurse au capacitate garantat˘. Radu-Lucian Lup¸a s 146 5. De aceea. pe de o parte trebuie luate m˘suri ın a pentru a fixa o durat˘ maxim˘ de viat˘ a unei datagrame ˆ retea. s aa ˆ a acestora li se asociaz˘ un nivel de prioritate sc˘zut. ˆ vreme ce nivelul fizic nu inverseaz˘ pachete. iar a a ¸a ın ¸ pe de alt˘ parte algoritmul de confirmare ¸i retransmitere trebuie s˘ se a s a a¸tepte s˘ primeasc˘ astfel de datagrame ˆ arziate ¸i s˘ nu le confunde s a a ıntˆ s a cu datagrame noi — aceasta din urm˘ ˆ a ınseamn˘ c˘ spatiul numerelor a a ¸ de secvent˘ trebuie s˘ fie suficient de mare. iar ˆ anumite cazuri este a ¸a ın ın posibil ca o datagram˘ s˘ ajung˘ ˆ mai multe exemplare la destinatie a a a ın ¸ (de exemplu dac˘ se utilizeaz˘ dirijare prin inundare ¸i reteaua nu este un a a s ¸ arbore). . f˘r˘ vreo a aa garantie. ın s s a • Multiplexarea: Multiplexarea poate fi util˘ ˆ mai multe scopuri: pentru a ın a permite mai multor aplicatii care se execut˘ pe acela¸i calculator s˘ ¸ a s a comunice independent una de alta ¸i pentru a permite unei perechi de s aplicatii care comunic˘ s˘-¸i transmit˘ independent mai multe fluxuri ¸ a as a de date.c 2008. prin conexiuni f˘r˘ trafic garantat). ˆ fiecare ruter se ıns˘ a a In utilizeaz˘ un mecanism bazat pe priorit˘¸i. Functiile ˆ ¸ s ¸ ¸ ındeplinite de nivelul transport sunt similare cu unele dintre functiile nivelului leg˘turii de date: ¸ a • Transport sigur : O retea congestionat˘ se poate s˘ distrug˘ pachete din ¸ a a a lips˘ de spatiu de memorare. Functionarea la trafic ridicat ¸ Sunt permise ¸i alte date (de exemplu. O alt˘ diferent˘ ın a a ¸a este c˘ la nivelul retea timpul de propagare al unei datagrame variaz˘ a ¸ a ˆ limite foarte largi. Metodele bazate pe confirm˘ri ¸i retransmiteri (vezi § 4.

c 2008. a a s a adaptate nevoilor de interoperabilitate ¸i particularit˘¸ilor retelelor de inters at ¸ conectat. a Reteaua A ¸ 2 1 4 3 5 8 4 10 6 7 (a) Reteaua A. Interconectarea retelelor ¸ Probleme privind interconectarea retelelor se pun ˆ situatia ˆ care ¸ ın ¸ ın se dore¸te ca dou˘ sau mai multe retele ce nu pot functiona unitar ca o singur˘ s a ¸ ¸ a retea s˘ ofere totu¸i servicii de comunicare similare unei retele unitare. sunt obtinute apelˆnd la serviciile retelei B. Nivelul retea ¸i nivelul transport ¸ s 147 5. dar exist˘ ¸ ¸ a s a suprapuneri ˆ ıntre adresele alocate ˆ aceste retele. prin datagrame a ale primei retele. ¸ a s ¸ Motivele de existent˘ a retelelor distincte pot fi: retele ce utilizeaz˘ ¸a ¸ ¸ a protocoale diferite la nivel retea. dorinta unor administratori ın ¸ ¸ de-a nu divulga informatii despre leg˘turile din retea sau de-a filtra pachetele a ¸ care intr˘ sau ies ¸i altele. realizat˘ prin intermediul unei retele. dup˘ caz. Leg˘tura 4–5 a ¸ a ¸ a apare ca leg˘tur˘ direct˘ pentru reteaua A. Exist˘ ˆ a cˆteva metode generale. dintre care vom analiza aici a ıns˘ a metoda tunel˘rii. dar este construit˘ de reteaua B prin a a a ¸ a ¸ intermediul nodului 6. avˆnd leg˘turi directe proprii ¸ a a (reprezentate prin linii continue) ¸i leg˘turi res a alizate ca tunele prin reteaua B ¸ (b) Reteaua B ¸ 9 5 8 Reteaua B ¸ Figura 5. Un tunel este o leg˘tur˘. incluzˆnd antetele specifice acesteia. care a a a ¸ este utilizat˘ de o alt˘ retea ca ¸i cˆnd ar fi o leg˘tur˘ direct˘ (vezi fig. 5. ¸ . O parte dintre leg˘turile directe din reteaua A.8). retele ce utilizeaz˘ acela¸i protocol. sunt ¸ a transportate ca date utile printr-o conexiune sau. Radu-Lucian Lup¸a s Capitolul 5.8: Leg˘turi prin tunel.5. a a ¸ figurate cu linie punctat˘. a a ¸ s a a a a Pachetele celei de-a doua retele. a s Problema interconect˘rii este complex˘ ¸i necesit˘ solutii ad-hoc.

Nivelul retea ¸i nivelul transport ¸ s .c 2008. Radu-Lucian Lup¸a s 148 Capitolul 5.

c 2008, Radu-Lucian Lup¸a s
149

Capitolul 6

Metode ¸i protocoale criptografice s

Vom studia ˆ acest capitol cum se poate proteja comunicatia dintre ın ¸ dou˘ entit˘¸i contra actiunilor unui tert, numit adversar sau intrus, care intera at ¸ ¸ cepteaz˘ sau altereaz˘ comunicatia ˆ a a ¸ ıntre ele. Protectia comunicatiei ˆ ¸ ¸ ımpotriva actiunilor unui adversar se nume¸te securizarea comunicatiei. ¸ s ¸ Adversarul poate fi: • adversar pasiv , care doar intercepteaz˘ mesajele transmise; a • adversar activ , care ¸i intercepteaz˘ ¸i modific˘ mesajele. s as a Protectia comunicatiei fat˘ de actiunile adversarului cuprinde: ¸ ¸ ¸a ¸ Asigurarea confidentialit˘¸ii are ca obiectiv s˘ impiedice un adversar ¸ at a pasiv s˘ ˆ ¸eleag˘ un mesaj interceptat sau s˘ extrag˘ vreo informatie a ınt a a a ¸ din el. Verificarea autenticit˘¸ii mesajelor, numit˘ ¸i autentificarea mesajelor, at as are ca obiectiv detectarea, de c˘tre receptor, a falsurilor, adic˘ a mesajelor a a create sau modificate de un adversar activ. Verificarea autenticit˘¸ii at mesajelor se aseam˘n˘ cu detectarea erorilor. Spre deosebire ˆ a de a a ıns˘ detectarea erorilor, unde modific˘rile produse de mediul de transmisie a sunt aleatoare, la verificarea autenticit˘¸ii mesajelor avem un adversar at care ˆ ıncearc˘ ˆ mod deliberat s˘ produc˘ modific˘ri nedetectabile. a ın a a a Asigurarea non-repudiabilit˘¸ii mesajelor are ca obiectiv s˘ permit˘ at a a receptorului s˘ dovedeasc˘ autenticitatea unui mesaj ˆ fata unui tert, a a ın ¸ ¸ altfel spus, emit˘torul s˘ nu poat˘ nega faptul c˘ a transmis un anumit ¸a a a a mesaj. Asigurarea non-repudiabilit˘¸ii este similar˘ cu autentificarea at a mesajelor, dar ˆ plus trebuie s˘ nu permit˘ nici m˘car receptorului s˘ ın a a a a creeze un mesaj care s˘ par˘ autentic. a a

c 2008, Radu-Lucian Lup¸a s
150 Capitolul 6. Metode ¸i protocoale criptografice s

Verificarea prospetimii are ca obiectiv detectarea, de c˘tre receptor, a ¸ a eventualelor copii ale unui mesaj (autentic) mai vechi. Este posibil ca un adversar s˘ intercepteze, de exemplu, un ordin de transfer de bani a ˆ favoarea sa ¸i apoi s˘ transmit˘ b˘ncii multiple copii ale ordinului ın s a a a de transfer de bani. ˆ lipsa verific˘rii prospetimii, banca va efectua de In a ¸ mai multe ori transferul de bani. Verificarea autenticit˘¸ii mesajelor, at singur˘, nu rezolv˘ problema, deoarece fiecare copie este identic˘ cu a a a originalul ¸i, ca atare, este autentic˘. s a Autentificarea entit˘¸ilor are ca obiectiv verificarea, de c˘tre o entitate, at a a identit˘¸ii entit˘¸ii cu care comunic˘. Mai exact, exist˘ un server ¸i at at a a s unul sau mai multi clienti legitimi care deschid conexiuni c˘tre server. ¸ ¸ a Modelul adversarului, ˆ acest caz, este putin diferit: adversarul poate s˘ ın ¸ a deschid˘ o conexiune spre server ¸i s˘ ˆ a s a ıncerce s˘ se dea drept un client lea gitim. Eventual, adversarul poate s˘ intercepteze comunicatiile clientilor a ¸ ¸ legitimi, pentru a obtine informatii ˆ vederea p˘c˘lirii serverului, dar ¸ ¸ ın a a nu poate altera comunicatia printr-o conexiune deschis˘ de altcineva. ¸ a ˆ prezenta unui adversar activ, autentificarea entit˘¸ilor nu este prea In ¸ at util˘, deoarece adversarul poate s˘ lase protocolul de autentificare s˘ a a a se desf˘¸oare normal ¸i apoi s˘ trimit˘ orice ˆ numele clientului. ˆ as s a a ın In prezenta unui adversar activ, este mai degrab˘ necesar un mecanism de ¸ a stabilirea cheii (vezi mai jos). Stabilirea cheii are ca obiectiv obtinerea, de c˘tre partenerii de comu¸ a nicatie legitimi, a unui ¸ir de biti, numit cheie, ce urmeaz˘ a fi utilizat˘ ¸ s ¸ a a la asigurarea confidentialit˘¸ii ¸i la verificarea autenticit˘¸ii mesajelor. ¸ at s at Cheia obtinut˘ trebuie s˘ fie cunoscut˘ doar de c˘tre cei doi parteneri ¸ a a a a care doresc s˘ comunice. a ˆ multe lucr˘ri, ˆ loc de autentificarea mesajelor se pune problema In a ın verific˘rii integrit˘¸ii mesajelor — verificarea de c˘tre receptor c˘ mesajul a at a a este identic cu cel emis de emit˘tor (c˘ nu a fost modificat pe traseu) — ¸i ¸a a s a autentific˘rii sursei mesajului — verificarea de c˘tre receptor a identit˘¸ii a a at autorului unui mesajului. Cele dou˘ operatii — verificarea integrit˘¸ii ¸i aua ¸ at s tentificarea sursei — nu au sens decˆt ˆ a ımpreun˘. Aceasta deoarece, dac˘ a a un mesaj a fost alterat de c˘tre adversar (lucru care se constat˘ cu ocazia a a verific˘rii integrit˘¸ii), mesajul poate fi v˘zut ca un mesaj produs de adversar a at a ¸i pretinzˆnd c˘ provine de la autorul mesajului original; acest din urm˘ mesaj s a a a nu a fost modificat ˆ timpul transportului (de la adversar spre destinatar), ın dar sursa sa nu este autentic˘ (mesajul provine de la altcineva decˆt autorul a a indicat ˆ mesaj). ın

c 2008, Radu-Lucian Lup¸a s
Capitolul 6. Metode ¸i protocoale criptografice s 151

6.1. Asigurarea confidentialit˘¸ii ¸ at
6.1.1. Introducere
Problema asigur˘rii confidentialit˘¸ii unui mesaj const˘ ˆ a transa ¸ at a ın mite informatii ˆ a¸a fel ˆ at doar destinatarul dorit s˘ le poat˘ obtine; un ¸ ın s ıncˆ a a ¸ adversar care ar intercepta comunicatia nu trebuie s˘ fie capabil s˘ obtin˘ ¸ a a ¸ a informatia transmis˘. ¸ a Formal, presupunem c˘ emit˘torul are un mesaj de transmis, nua ¸a mit text clar (engl. plaintext). Emit˘torul va genera, printr-un algoritm, ¸a plecˆnd de la textul clar, un a¸a-zis text cifrat (engl. ciphertext). Receptorul a s autorizat trebuie s˘ poat˘ recupera textul clar aplicˆnd un algoritm asupra a a a textului cifrat. Adversarul, care dispune de textul cifrat dar nu cunoa¸te ans umite detalii ale algoritmului aplicat de emit˘tor, trebuie s˘ nu fie capabil ¸a a s˘ reconstituie textul clar. Operatia prin care emit˘torul transform˘ textul a ¸ ¸a a clar ˆ text cifrat se nume¸te criptare sau, uneori, cifrare (engl. encryption). ın s Operatia prin care receptorul obtine textul clar din textul cifrat se nume¸te ¸ ¸ s ˆ decriptare sau descifrare (engl. decryption). Impreun˘, algoritmii de criptare a ¸i decriptare constituie un cifru. s Pentru a formaliza notatiile, vom nota cu T multimea mesajelor posi¸ ¸ bile de transmis; fiecare text clar posibil este un element t ∈ T . Criptarea este o functie c : T → M , unde M este multimea textelor cifrate posibile. m = c(t) ¸ ¸ este textul cifrat corespunz˘tor textului clar t. Textul cifrat este trimis pe a canalul nesigur ¸i este presupus accesibil adversarului. Decriptarea o vom s nota cu d, unde d : M → T . Spunem c˘ (c, d) formeaz˘ o pereche criptare-decriptare dac˘ ˆ a a a ındeplinesc simultan conditiile: ¸ • orice text cifrat poate fi decriptat corect prin d, adic˘ d ◦ c = 1T ; a • un adversar care cunoa¸te textul cifrat m = c(t) dar nu cunoa¸te c sau d s s nu poate deduce t sau afla informatii despre t. ¸ ˆ practic˘, este necesar ca producerea unei perechi de functii (c, d) In a ¸ s˘ fie u¸or de f˘cut, inclusiv de c˘tre persoane f˘r˘ preg˘tire deosebit˘. Acest a s a a aa a a lucru este necesar deoarece dac˘ perechea (c, d) utilizat˘ de dou˘ entit˘¸i care a a a at comunic˘ este aflat˘, sau se b˘nuie¸te c˘ a fost aflat˘, de c˘tre cineva din a a a s a a a afar˘, ea trebuie schimbat˘ repede. De asemenea, este bine ca persoanele ce a a nu au preg˘tire de matematic˘ ¸i informatic˘ s˘ poat˘ utiliza singure metode a as a a a criptografice. Pentru acest scop, algoritmii de criptare ¸i decriptare sunt f˘cuti s˘ s a ¸ a primeasc˘, pe lˆng˘ textul clar ¸i respectiv textul cifrat, ˆ a un argument a a a s ınc˘

c 2008, Radu-Lucian Lup¸a s
152 ˘¸ 6.1. Asigurarea confidentialitatii ¸

numit cheie. Fiecare valoare a cheii produce o pereche criptare-decriptare distinct˘. Cheia se presupune a fi u¸or de generat la nevoie. a s Multimea cheilor posibile se nume¸te spatiul cheilor ¸i o vom nota ˆ ¸ s ¸ s ın continuare cu K. Functiile de criptare ¸i decriptare sunt de forma c : T × K → ¸ s M ¸i respectiv d : M × K → T . Cheia este scris˘ ca parametru. Pentru o s a valoare fixat˘ a cheii k ∈ K, criptarea devine ck : T → M , iar decriptarea a dk : M → T , cu dk ◦ ck = 1T . Pentru fiecare k ∈ K, (ck , dk ) formeaz˘ o a pereche criptare-decriptare. Algoritmii propriu-zi¸i, adic˘ functiile c : T ×K → M ¸i d : M ×K → s a ¸ s T , se presupune c˘ sunt cunoscuti adversarului; dac˘ merit˘ s˘ puteti schimba a ¸ a a a ¸ cheia, ˆ ınseamn˘ c˘ deja aveti ˆ a a ¸ ındoieli privitoare la cˆt de secret puteti ¸ine a ¸ t algoritmul fat˘ de adversar. . . Ca urmare, pentru o aplicatie, un algoritm ¸a ¸ public nu este mai nesigur decˆt un algoritm ,,secret“, necunoscut publicului a dar posibil cunoscut adversarului. Un algoritm foarte cunoscut, dar f˘r˘ vulaa nerabilit˘¸i cunoscute, este preferabil fat˘ de un algoritm ,,secret“ deoarece at ¸a exist˘ ¸anse mult mai mari ca autorul ¸i utilizatorul aplicatiei s˘ afle despre as s ¸ a vulnerabilit˘¸i ˆ at ınainte ca vulnerabilit˘¸ile s˘ fie exploatate ˆ at a ımpotriva lor. Adesea avem T = M ; ˆ acest caz ck este o functie bijectiv˘ (o ın ¸ a ˆ aceste conditii, uneori rolurile functiilor c ¸i d pot fi permutare pe T ). In ¸ ¸ s interschimbate, adic˘ dk s˘ se foloseasc˘ ca functie de criptare ¸i ck pentru a a a ¸ s decriptare. Exemplul 6.1 (Substitutia monoalfabetic˘ ): Consider˘m un alfabet (finit) S ¸ a a ¸i not˘m cu n num˘rul de litere (n = |S|). De exemplu, s a a S = {a, b, c, . . . , z}; ˆ acest caz n = 26. Textele clare sunt ¸iruri de litere din alfabet: T = S ∗ . ın s Multimea textelor cifrate este identic˘ cu multimea textelor clare: M = T . ¸ a ¸ Cheile posibile sunt permut˘rile lui S; |K| = n!. Pentru un text clar p = a (s1 , s2 , . . . , sl ), textul cifrat este ck (p) = (k(s1 ), k(s2 ), . . . , k(sl )). Decriptarea se calculeaz˘ a dk ((m1 , m2 , . . . , ml )) = (k −1 (m1 ), k −1 (m2 ), . . . , k−1 (ml )). Criptarea ¸i decriptarea sunt simplu de executat, chiar ¸i manual. s s Cheile sunt u¸or de reprezentat. Dac˘ alfabetul are o ordine cunoscut˘, s a a

c 2008, Radu-Lucian Lup¸a s
Capitolul 6. Metode ¸i protocoale criptografice s 153

reprezentarea cheii poate consta ˆ ˆ siruirea literelor ˆ ordinea dat˘ de perın ın¸ ın a mutare. De exemplu qwertyuiopasdfghjklzxcvbnm ˆ ınseamn˘ k(a) = q, k(b) = w, etc. Cu aceast˘ cheie, cuvˆntul ,,criptic“ devine, a a a prin criptare, ,,ekohzoe“. S˘ examin˘m putin siguranta. S˘ presupunem c˘ un adversar ˆ a a ¸ ¸ a a ıncearc˘ decriptarea textului cifrat cu fiecare cheie posibil˘. O astfel de ˆ a a ıncercare se nume¸te atac prin fort˘ brut˘. S˘ mai presupunem c˘ adversarul reu¸e¸te s˘ s ¸a a a a s s a verifice un miliard de chei ˆ fiecare secund˘. Deoarece num˘rul de chei este ın a a 26! ≈ 4 · 1026 , adversarul ar avea nevoie ˆ medie de 6,5 miliarde de ani pentru ın a g˘si cheia corect˘. a a Pe de alt˘ parte, ˆ a ıntr-un text ˆ limba romˆna, anumite litere (de ın a exemplu e, a, t, s) apar mai frecvent decˆt altele. Ca urmare, permut˘rile a a primelor prin functia k vor apare ˆ textul cifrat cu frecvent˘ mai mare decˆt ¸ ın ¸a a permut˘rile celorlalte. Un adversar, care dispune de suficient text cifrat, va a ˆ ıncerca doar acele chei care fac s˘ corespund˘ unei litere din textul cifrat doar a a litere a c˘ror frecvent˘ normal˘ de aparitie este apropiat˘ de frecventa de a ¸a a ¸ a ¸ aparitie a literei considerate ˆ textul cifrat. ˆ acest fel, num˘rul de ˆ ¸ ın In a ıncerc˘ri a se reduce considerabil, astfel ˆ at un astfel de cifru poate fi spart u¸or ˆ ıncˆ s ın cˆteva minute. a Exemplul 6.2 (Cifrul Vernam, numit ¸i cheia acoperitoare, engl. One time s ∗ : |t| ≤ n} (multimea ¸irurilor de biti pad ): La acest cifru, T = {t ∈ {0, 1} ¸ s ¸ de lungime mai mic˘ sau egal˘ cu un n ∈ I fixat), M = T ¸i K = {0, 1}n . a a N s Functia de criptare este ¸ ck (t1 , t2 , . . . , tl ) = (t1 ⊕ k1 , t2 ⊕ k2 , . . . , tl ⊕ kl ), unde ⊕ este operatia sau exclusiv. ¸ Decriptarea coincide cu criptarea, dk = ck . Din punctul de vedere al sigurantei, criptarea cu cheie acoperitoare ¸ este un mecanism perfect de criptare: adversarul nu poate deduce nimic din mesajul criptat (ˆ afar˘ de lungimea textului clar), deoarece orice text clar ın a putea fi, cu egal˘ probabilitate, originea textului cifrat receptionat. a ¸ Criptarea cu cheie acoperitoare este dificil de utilizat practic deoarece necesit˘ o cheie la fel de lung˘ ca ¸i mesajul de transmis ¸i, ˆ plus, cheia nu a a s s ın poate fi refolosit˘ (dac˘ se transmit dou˘ mesaje folosind aceea¸i cheie, se a a a s pierde siguranta metodei). ¸

c 2008, Radu-Lucian Lup¸a s
154 ˘¸ 6.1. Asigurarea confidentialitatii ¸

6.1.2. Refolosirea cheilor
Pˆn˘ aici am considerat problema cript˘rii unui singur mesaj. Utia a a lizarea aceleia¸i chei pentru mai multe mesaje aduce adversarului noi posis bilit˘¸i de actiune: at ¸ 1. Dou˘ mesaje identice vor fi criptate identic; adversarul poate detecta a astfel repetarea unui mesaj. 2. Anumite informatii transmise criptat la un moment dat pot deveni ¸ publice ulterior. Adversarul poate obtine astfel perechi (ti , mi ) cu mi = ¸ ˆ ck (ti ). Incerc˘rile de determinare a cheii de criptare sau de decriptare a a unui text cifrat, pe baza informatiilor aduse de astfel de perechi text ¸ clar, text cifrat, se nume¸te atac cu text clar cunoscut. s 3. ˆ anumite cazuri, adversarul poate determina emit˘torul s˘ trimit˘ In ¸a a a mesaje continˆnd p˘rti generate de adversar. Acest lucru poate ajuta ¸ a a¸ mult tentativelor de spargere de la punctul precedent. Atacul se nume¸te s cu text clar ales. De asemenea, ¸inˆnd cont ¸i de posibilit˘¸ile de la t a s at punctul 1, dac˘ adversarul b˘nuie¸te textul clar al unui mesaj, poate s˘ a a s a ˆ ıncerce s˘-¸i confirme sau infirme b˘nuiala. as a 4. Anumite cifruri, de exemplu cifrul cu cheie acoperitoare, sunt u¸or de s atacat de un adversar dispunˆnd de dou˘ texte cifrate cu aceea¸i cheie. a a s Punctele 2 ¸i 3 pot fi contracarate prin anumite propriet˘¸i ale cifrului s at (vezi § 6.1.3). Pentru punctele 1 ¸i 4, orice cifru, ˆ forma ˆ care este folosit ˆ s ın ın ın practic˘, mai prime¸te ˆ functia de criptare un argument aleator. O parte a s ın ¸ din acest argument, numit˘ vector de initializare, are rolul de-a face ca acela¸i a ¸ s text clar s˘ fie cifrat ˆ mod diferit ˆ mesaje diferite. a ın ın ˆ acest caz, criptarea are forma c : T × K × R → M ¸i decriptarea In s d : M × K → T , cu: dk (ck (t, r)) = t , ∀t ∈ T, k ∈ K, r ∈ R. Evident, pentru ca decriptarea s˘ fie posibil˘, informatia corespunz˘a a ¸ a toare argumentului aleator trebuie s˘ se reg˘seasc˘ ˆ textul cifrat. Ca urmare, a a a ın lungimea textului cifrat trebuie s˘ fie cel putin egal˘ cu lungimea textului clar a ¸ a plus lungimea argumentului aleator. Adesea, argumentul aleator nu este secret; ca urmare, poate fi transmis ˆ clar. Trebuie ˆ a ca adversarul s˘ nu poat˘ s˘ controleze generarea ın ıns˘ a a a argumentului aleator utilizat de emit˘tor. De asemenea, nu este permis ca ¸a adversarul s˘ mai aib˘ vreun control asupra continutului textului clar dup˘ a a ¸ a ce obtine informatii despre argumentul aleator ce urmeaz˘ a fi folosit. ¸ ¸ a

c 2008, Radu-Lucian Lup¸a s
Capitolul 6. Metode ¸i protocoale criptografice s 155

6.1.3. Problema spargerii unui cifru
Un cifru este complet spart dac˘ un adversar care nu cunoa¸te dia s nainte cheia poate decripta orice text cifrat. Dac˘ adversarul obtine cheia, a ¸ ˆ ınseamn˘ c˘ cifrul este complet spart. a a Un cifru este partial spart dac˘ un adversar care nu cunoa¸te initial ¸ a s ¸ cheia poate dobˆndi informatii despre textul clar prin observarea textului a ¸ cifrat. Dac˘ adversarul poate decripta o parte din textul clar sau poate s˘ a a verifice dac˘ un anumit ¸ir apare ˆ textul clar, ˆ a s ın ınseamn˘ c˘ cifrul este partial a a ¸ spart. Se poate presupune c˘ un adversar poate estima textele clare ce ar a putea fi transmise ¸i eventual probabilit˘¸ile lor; exist˘ cazuri ˆ care textul s at a ın clar transmis este dintr-o multime mic˘, de exemplu poate fi doar da sau ¸ a nu. Dac˘ un adversar ce a interceptat textul cifrat poate elimina anumite a texte clare, sau, estimˆnd probabilit˘¸ile diverselor chei de cifrare, poate esa at tima probabilit˘¸i, pentru textele clare, diferite fat˘ de estim˘rile sale initiale, at ¸a a ¸ ˆ ınseamn˘ de asemenea c˘ adversarul a extras informatie din textul cifrat ¸i ˆ a a ¸ s ın consecint˘ cifrul este partial spart. ¸a ¸ Exemplul 6.3: Consider˘m c˘, din informatiile adversarului, textul clar este a a ¸ este cu probabilitate de 30% ION, cu probabilitate de 40% ANA ¸i cu probs abilitate de 30% DAN. De asemenea, presupunem c˘ adversarul ¸tie c˘ se a s a utilizeaz˘ substitutie monoalfabetic˘. a ¸ a ˆ momentul ˆ care adversarul interceptez˘ textul cifrat AZF, el calIn ın a culeaz˘ probabilit˘¸ile diverselor texte clare cunoscˆnd textul cifrat ¸i g˘se¸te a at a s a s 50% ION, 0% ANA ¸i 50% DAN (exclude ANA deoarece ar da aceea¸i liter˘ pe s s a prima ¸i pe ultima pozitie ˆ textul cifrat). Adversarul a dobˆndit o informatie s ¸ ın a ¸ asupra textului clar, ceea ce ˆ ınseamn˘ c˘ cifrul a fost spart partial. a a ¸ Cu privire la informatiile de care dispune adversarul ce ˆ ¸ ıncearc˘ a spargerea cifurlui, exist˘ trei nivele posibile: a atac cu text cifrat: adversarul dispune doar de o anumit˘ cantitate de a text cifrat; atac cu text clar cunoscut: adversarul dispune, pe lˆng˘ textul cifrat a a de spart, de un num˘r de perechi (ti , mi ), cu mi = ck (ti ); a atac cu text clar ales: adversarul dispune de perechi (ti , mi ) ˆ care ti ın este la alegerea adversarului. Afar˘ de cazul ˆ care cheia se schimb˘ la fiecare mesaj, este necesar a ın a ca cifrul s˘ nu poat˘ fi spart printr-un atac cu text clar ales. a a

c 2008, Radu-Lucian Lup¸a s
156 ˘¸ 6.1. Asigurarea confidentialitatii ¸

Dificultatea spargerii unui cifru este de dou˘ feluri: a • dificultatea probabilistic˘ sau informational˘, a ¸ a • dificultate computational˘. ¸ a Dificultatea informational˘ const˘ ˆ faptul c˘ pot exista mai multe ¸ a a ın a perechi text clar, cheie, care ar fi putut produce textul cifrat interceptat m. Presupunˆnd |T | = |M | ¸i c˘ orice bijectie c : T → M putea fi aleas˘, a s a ¸ a cu egal˘ probabilitate, ca functie de criptare, adversarul care receptioneaz˘ un a ¸ ¸ a text cifrat m nu poate deduce nimic cu privire la textul clar t — orice text clar avea aceea¸i probabilitate de a genera m. Un astfel de cifru este perfect s — textul cifrat nu aduce nici o informatie adversarului. ¸ Deoarece exist˘ (|T |)! bijectii posibile, lungimea necesar˘ a cheii este a ¸ a log2 ((|T |)!). Presupunˆnd c˘ T este multimea ¸irurilor de n biti, avem |T | = 2n a a ¸ s ¸ ¸i lungimea cheii este log2 ((2n )!) biti, lungime a c˘rei comportament asimptotic s ¸ a n ). Pentru n = 20, cheia are cˆ¸iva megabiti. este de forma Θ(n2 at ¸ De notat c˘ un algoritm de criptare secret nu este un cifru perfect, a deoarece nu toate cele (2n )! functii de criptare posibile au aceea¸i probabilitate ¸ s de a fi alese. Cifrul Vernam (vezi exemplul 6.2) este de asemenea un cifru perfect, cˆt˘ vreme cheia nu este refolosit˘. aa a ˆ exemplul 6.3, dificultatea informational˘ const˘ ˆ imposibilitatea In ¸ a a ın adversarului de a distinge ˆ ıntre DAN ¸i ION s Incertitudinea adversarului asupra textului clar este cel mult egal˘ cu a incertitudinea asupra cheii. De aici rezult˘ c˘, pentru a obtinerea unui cifru a a ¸ perfect, num˘rul de biti ai cheii trebuie s˘ fie mai mare sau egal cu num˘rul a ¸ a a de biti de informatie din mesaj. Cifrul Vernam este ˆ acela¸i timp perfect ¸ ¸ ın s (sub aspectul dificult˘¸ii informationale a spargerii) ¸i optim din punctul de at ¸ s vedere al lungimii cheii. Dificultatea computational˘ const˘ ˆ imposibilitatea adversarului de ¸ a a ın a deduce informatii asupra textului clar cu un efort computational rezonabil. ¸ ¸ Un prim lucru care se cere de la un cifru este ca, dˆndu-se un num˘r a a de perechi text clar – text cifrat, s˘ nu existe o metod˘ rapid˘ de a determina a a a cheia. Un atac prin fort˘ brut˘ (engl. brute force attack ) const˘ ˆ a decripta ¸a a a ın textul cifrat folosind toate cheile posibile ¸i a verifica dac˘ se obtine textul s a ¸ clar (sau un text clar inteligibil, dac˘ textul clar adev˘rat nu este cunoscut a a dinainte). Fezabilitatea unui atac prin fort˘ brut˘ depinde direct de lungimea ¸a a cheii (de fapt, de num˘rul de chei posibile). Pentru o cheie de 56 de biti a ¸ (exemplu cifrul DES), un atac prin fort˘ brut˘ este perfect posibil, la viteza ¸a a

Metode ¸i protocoale criptografice s 157 actual˘ necesitˆnd un efort ˆ jur de un an-calculator.4. care cripteaz˘ mesaje ¸ s a . problemele de matematic˘ sunt de exemplu descompunerea a ˆ factori primi a unui num˘r mare — de ordinul sutelor de cifre — sau logın a aritmul discret — rezolvarea ˆ x ∈ {0. ın ¸ cu p num˘r prim mare. a a ¸a a Un cifru se consider˘ a fi vulnerabil ˆ momentul ˆ care se descoper˘ a ın ın a o metod˘ de decriptare a unui mesaj semnificativ mai eficient˘ decˆt un atac a a a prin fort˘ brut˘. adic˘ 32 GiB. un ¸ir de 2n/2 blocuri are ¸ a ¸ a s probabilitate cam 1/2 s˘ aib˘ cel putin dou˘ blocuri cu continut identic. ¸ a a ın Ca o consecint˘. Considerˆnd ¸ a at ¸ a o distributie uniform˘ a continutului fiec˘rui bloc. . Un atac prin fort˘ brut˘ a a ın ¸a a este nefezabil deocamdat˘ de la 80 de biti ˆ sus. problem˘ cunoscut˘ de mult˘ vreme dar f˘r˘ rezolvare eficient˘ cunosa a a a aa a cut˘. se consider˘ c˘ va fi fezabil a ¸ ın a a ˆ jurul anului 2015. ¸i cifru flux (engl. Algoritmi de criptare utilizati ˆ practic˘ ¸ ın a Cifrurile mai cunoscute ¸i utilizate pe scar˘ mai larg˘ ˆ practic˘ sunt s a a ın a date ˆ tabela 6. probabilitatea ca cel putin dou˘ s˘ fie egale este ˆ jur de 1/2). . ˆ majoritatea a a a In cazurilor. Acest din urm˘ tip de demonstratie se aplic˘ mai mult la cifrurile asia a ¸ a metrice din § 6. a Pentru un cifru bloc (un cifru care cripteaz˘ independent blocuri de a text clar de o anumit˘ lungime fix˘). block cipher ). valoarea minim˘ rezonabil˘ pentru n este 64 de biti. probabilitatea s˘ existe dou˘ dintre ele n˘scute ˆ aceea¸i zi din an este a a a ın s √ a peste 50%. ın a a care cripteaz˘ cˆte un bloc de date de lungime fixat˘ (de obicei 64. La aceast˘ a a ¸ a lungime. p − 1} a ecuatiei ax = b (mod p). Dac˘ dimensiunea blocului a a este de n biti. astfel ˆ at num˘rul de s a a ıncˆ a blocuri criptate cu o cheie dat˘ s˘ fie mult mai mic decˆt 2n/2 . a a a eventual. (Acest a a ¸ a ¸ fapt este cunoscut ca paradoxul zilei de na¸tere: ˆ s ıntr-un grup de 23 de persoane. ˆ cel mai bun caz se demonstreaz˘ c˘ spargerea unui cifru a a ın a a este cel putin la fel de dificil˘ ca rezolvarea unei anumite probleme de matem¸ a atic˘. o astfel de cheie este putin probabil c˘ va ¸ a a ¸ a putea fi spart˘ vreodat˘ prin fort˘ brut˘. De la 128 de biti ˆ sus atacul prin fort˘ brut˘ necesit˘.1. 128 sau. repetarea unui bloc de text cifrat este probabil s˘ apar˘ ˆ a a ıncepˆnd de a la 232 blocuri. Inexistenta unei metode eficiente de spargere nu este nicio¸a a ¸ dat˘ demonstrat˘.c 2008. a 6. . ın ¸ ın ¸a a a din cauza unor limit˘ri fizice teoretice.1. Exist˘ dou˘ tipuri de cifruri: cifru bloc (engl. Radu-Lucian Lup¸a s Capitolul 6.5. . ˆ general. 256 de biti). exist˘ 2n posibilit˘¸i pentru continutul unui bloc. ˆ ın ıntr-un grup de k numere aleatoare avˆnd k valori posibile. dimensiunea blocului trebuie s˘ fie mare a a a pentru a face repet˘rile blocurilor suficient de rare. o cantitate de energie comparabil˘ cu a a productia mondial˘ pe cˆteva luni.1. stream cipher ). dimensiunea n a blocului trebuie s˘ fie suficient ¸a a de mare ¸i cheia s˘ fie schimbat˘ suficient de des.

1. cu ajutorul unui cifru a bloc.1). ¸i rezultatul se cifreaz˘ s s a ¸i se transmite destinatarului. textul s clar se ˆ ımparte ˆ blocuri ¸i ultimul bloc se completeaz˘ cu biti aleatori. rezultatul se cifreaz˘ ¸i se trimite. chiar dac˘ nu ˆ ¸elege nimic din textul cifrat. ın s a ¸ ˆ plus. exist˘ cˆteva metode standard. Apoi. Vectorul de initializare se transmite de obicei separat. Ultimul bloc se completeaz˘ la lungimea n. ˆ biti. metoda CBC face ca un acela¸i bloc de text clar s˘ ¸a s a se cripteze diferit. Dac˘ ın ¸ ¸ a . s Fat˘ de ECB. se face xor ˆ as ıntre fiecare bloc de text clar ¸i blocul precedent de text cifrat. critica este nefondat˘ ˆ a a a ıntrucˆt un cifru nu are ca scop a protejarea integrit˘¸ii mesajelor. biti aleatori sau se pot utiliza alte scheme de completare.2. a a ın ¸ ECB — Electronic Code Book: Textul clar se ˆ ımparte ˆ blocuri de ın lungime n. a ın s O alt˘ critic˘ citat˘ frecvent este c˘ un adversar care permut˘ a a a a a blocurile de text cifrat va obtine permutarea blocurilor corespunz˘toare ¸ a de text clar. acesta se nume¸te vector de In s ¸ s initializare. not˘m cu n lungimea blocului. 6. se alege un ¸ir de n biti aleatori.1: Criptarea ˆ mod ECB ın Metoda ECB nu se recomand˘ deoarece pentru o cheie fix˘ acela¸i a a s text clar se transform˘ ˆ acela¸i text cifrat. a Pentru a cripta un text de lungime arbitrar˘. De¸i afirmatia a ınt s ¸ este adev˘rat˘. a Text clar 1 0 1 0 1 0 C 1111 111 111 0000 000 000 1111 111 111 0000 000 000 1111 111 111 0000 000 000 D D D Text cifrat C C 1111 111 111 0000 000 000 1111 111 111 0000 000 000 1111 111 111 0000 000 000 Text cifrat (a) Criptarea Text clar (b) Decriptarea 1 0 1 0 1 0 Figura 6. Se ¸ ¸ efectueaz˘ xor pe biti ˆ a ¸ ıntre vectorul de initializare ¸i primul bloc de text ¸ s clar. ˆ a a ın In cele ce urmeaz˘.c 2008. bitii ad˘ugati a ¸ a ¸ pot fi zerouri. at CBC — Cipher Block Chaining: (Vezi fig. ¸ Fiecare bloc se cripteaz˘ apoi independent de celelalte (vezi fig.) Ca ¸i la ECB. 6. Radu-Lucian Lup¸a s 158 ˘¸ 6. pe care le vom descrie ˆ continuare. Asigurarea confidentialitatii ¸ de lungime arbitrar˘ ¸i produc bitii textului cifrat pe m˘sur˘ ce primesc bitii as ¸ a a ¸ corespunz˘tori din textul clar. ˆ functie de vectorul de initializare utilizat.

candidat pentru AES. Creat de Ronald Rivest. 192 sau 256 flux pˆn˘ la a a 256 biti ¸ RC4 Tabelul 6. candidat pentru AES. Joan Daemen ¸i Vincent Rijmen ¸i publicat sub numele s s rijndael.c 2008. Creat de Ross Anderson. 192 sau 256 CAST-128 Blowfish Twofish Serpent RC6 64 ˆ ıntre 40 ¸i 128 s biti ¸ 64 pˆn˘ la a a 448 biti ¸ 128 pˆn˘ la a a 256 biti ¸ 128 128. s Const˘ ˆ aplicarea de 3 ori succesiv a a ın cifrului DES. Creat de Carlisle Adams ¸i Stafford s Tavares ˆ 1996. foarte ın rapid. Proiectat de doi belgieni. 3DES 64 112 sau 168 AES 128 128. Au existat ¸i speculatii cum c˘ a s ¸ a ar fi fost proiectat astfel ˆ at s˘ fie u¸or ıncˆ a s de spart de c˘tre cei care ar cunoa¸te a s ni¸te detalii de proiectare. Radu-Lucian Lup¸a s Capitolul 6. A fost creat pentru a nu inventa un cifru total nou. ¸a a Desemnat. are cˆteva sl˘biciuni. 192 sau 256 128 128. ın Creat de Bruce Schneier ¸i altii ¸i a pars ¸ s ticipat la concursul pentru AES. ca nou ın standard utilizat de guvernul american. ˆ urma unui concurs. . care pot a a fi contracarate prin artificii legate de modul de utilizare. cu 2 sau toate 3 cheile distincte. ın Creat de Bruce Schneier ˆ 1993. Eli Biham ¸i s Lars Knudsen.1: Cifruri mai cunoscute. a a fiind sustinut ca standard de c˘tre gu¸ a vernul Statelor Unite ale Americii. Creat de Ronald Rivest ˆ 1987. Metode ¸i protocoale criptografice s 159 Nume DES lungime bloc 64 lungime cheie 56 observatii ¸ A fost utilizat pe scar˘ destul de larg˘. patentat ˆ favoarea firmei RSA ın Security. dar f˘cˆnd imposibil˘ a a a spargerea prin fort˘ brut˘. ˆ In prezent este nesigur datorit˘ lungimii a mici a cheii (a fost deja spart prin fort˘ ¸a brut˘).

2: Criptarea ˆ mod CBC ın . Asigurarea confidentialitatii ¸ 1111 0000 1111 0000 1111 0000 C C Vector initia¸ lizare Text clar 11 00 11 00 11 00 11 00 C 1111 111 111 0000 000 000 1111 111 111 0000 000 000 1111 111 111 0000 000 000 1111 111 111 0000 000 000 Text cifrat (a) Criptarea Vector Text cifrat initia¸ 111111111 000000000 lizare 111111111111 000000000000 111111111111 000000000000 111 000 111 000 D D D Text clar (b) Decriptarea 1 0 1 0 1 0 1 0 Figura 6. Radu-Lucian Lup¸a s 160 ˘¸ 6.1.c 2008.

pentru a ˆ ımpiedica un atac cu text clar ales. . de exemplu. Dia a mensiunea m a fragmentului trebuie s˘ ˆ a ındeplineasc˘ o singur˘ restrictie. ˆ a emit˘torul transmite aceluia¸i receptor o secvent˘ mai ıns˘ ¸a s ¸a lung˘ de mesaje (presupunem c˘ un mesaj nu poate fi grupat ˆ a a ımpreun˘ a cu urm˘torul deoarece. s CFB cripteaz˘ fragmente de text clar de dimensiune fix˘ m.s˘ fie distribuit uniform ¸i necorelat cu textul clar sau alti vectori a s ¸ de initializare.se stabile¸te prin metode asem˘n˘toare cu stabilirea cheii (vezi s a a § 6. OFB. Radu-Lucian Lup¸a s Capitolul 6. .se genereaz˘ cu un generator de numere aleatoare criptografic (vezi a § 6. 6. Apoi. Metode ¸i protocoale criptografice s 161 vectorul de initializare este ales aleator. Se s a poate lua m = 8 ¸i atunci cifrul cripteaz˘ cˆte un caracter.s˘ nu poat˘ fi controlat de adversar. un mesaj nu este disponibil pentru criptare ˆ ınainte ca mesajul precedent s˘ fie criptat ˆ totalitate a ın ¸i trimis). pe care ˆ transmite receptorului ¸i ˆ ˆ ¸ ¸ ıl s ıl ıncarc˘ a totodat˘ ˆ a ıntr-un registru de deplasare.dac˘ se transmit mai multe mesaje unul dup˘ altul.3).c 2008. a a . un mesaj depinde de r˘spunsul rea a ceptorului la mesajul precedent. Vectorul de initializare se construie¸te utilizˆnd una din urm˘toa¸ s a a rele variante: . CFB s a a functioneaz˘ astfel (vezi fig. ¸ . dac˘ textul clar al a unui mesaj este format dup˘ expedierea mesajului precedent este a necesar trimiterea unui mesaj care s˘ fie ignorat de destinatar ¸i a s cu continut aleator. ¸ CFB — Cipher Feedback: CFB ¸i urm˘torul mod. pentru fiecare caracter de . ınl˘ ¸ ın s Pentru a ˆ ımpiedica un atac cu text clar ales. vectorul de a a initializare pentru un mesaj se ia ca fiind ultimul bloc al mesajului ¸ precedent (ca la ˆ antiurea blocurilor ˆ cadrul aceluia¸i mesaj). prin urmare. a a ¸ ¸i anume s˘ fie un divizor al dimensiunii n a blocului cifrului. repet˘rile unui bloc de text ¸ a cifrat vor fi extrem de rare (imposibil de exploatat de adversar).3): Emit˘torul genereaz˘ aleator un vec¸ a ¸a a tor de initializare de n biti.s˘ nu poat˘ fi aflat de adversar cˆt timp adversarul ar putea influenta a a a ¸ textul clar.4) ¸i se transmite ˆ clar ˆ s ın ınaintea mesajului. sunt utilizate s a ˆ special acolo unde mesajele sunt mult mai scurte decˆt dimensiunea ın a blocului. Vectorul de initializare trebuie ales satisf˘cˆnd : ¸ a a .

de asemenea. c˘ decriptarea CFB utilizeaz˘ tot funca a ¸ia de criptare a cifrului bloc. ¸ CFB are o proprietate interesant˘ de autosincronizare: dac˘ la un a a moment dat.1. a ¸ a a . sincronismul se reface automat dup˘ n biti. se pierde sincronismul dintre emit˘tor ¸i receptor.3: Criptarea ˆ mod CFB ın criptat. Asigurarea confidentialitatii ¸ registru de deplasare registru de deplasare C C Se ignor˘ a Se ignor˘ a + Text clar (a) Criptarea Text cifrat 1 0 1 0 1 0 11 00 11 00 11 00 + Text clar (b) Decriptarea Text cifrat Figura 6. a ¸ ¸ a . ¸a s a ¸ De remarcat. urm˘torii n biti ¸ a ¸ a ¸ . m biti de text cifrat produs.deplaseaz˘ continutul registrului de deplasare cu m biti spre stˆnga. t OFB — Output Feedback: OFB este un mecanism asem˘n˘tor cu cifrul a a Vernam (cu cheie acoperitoare) (exemplul 6. ¸ a . din cauza unor erori de transmisie.cripteaz˘ continutul registrului de deplasare utilizˆnd cheia secret˘.c 2008.2). ˆ a cheia este un ¸ir ıns˘ s pseudoaleator generat cu un algoritm de criptare.transmite ca text cifrat rezultatul pasului precedent. .introduce. Radu-Lucian Lup¸a s 162 ˘¸ 6. pe pozitiile cele mai din dreapta ale registrului de de¸ plasare. Primii n biti din ¸irul ¸ s pseudoaleator se obtin criptˆnd vectorul de initializare. emit˘torul: ¸a .execut˘ xor pe biti ˆ a ¸ ıntre urm˘torii m biti din textul clar ¸i primii a ¸ s m biti din rezultatul cript˘rii.

Modul CTR este foarte asemn˘n˘tor cu ¸ a a OFB. a . ¸. a a s ın Pentru aceasta. ¸ a s 6. reprezentate pe n biti. destinatarul mesajului este chiar ın autorul acestei informatii secrete ¸i a functiei de criptare. Acest fapt aa a a ˆ face potrivit pentru criptarea fi¸ierelor pe disc. ideea a s ın In ¸a este c˘. ¸ a ¸ ¸ s La OFB utilizarea unui vector de initializare aleator este chiar mai ¸ important˘ decˆt la celelalte moduri de criptare. deoarece cifrul ıl s s Vernam aflat la baz˘ este vulnerabil unui adversar avˆnd la dispozitie a a ¸ dou˘ texte clare criptate cu aceea¸i cheie. de¸i m = c(t) este rezonabil de u¸or de calculat. s-ar putea crede c˘. a Pentru decriptare. ˆ a ¸irul pseudoaleator s ıns˘ s se obtine criptˆnd numerele v. Totu¸i. numit˘ cheie de criptare sau cheie public˘. se cere ca functia de criptare c s˘ poat˘ fi inversat˘ u¸or ¸ a a a s de c˘tre cineva care cunoa¸te o anumit˘ informatie. a s a ¸ Aceast˘ informatie va fi f˘cut˘ cunoscut˘ doar destinatarului mesajului cripa ¸ a a a tat. dac˘ functia de criptare este complet a a ¸ cunoscut˘ (inclusiv cheia). v + 1. Metode ¸i protocoale criptografice s 163 se obtin criptˆnd precedentii n biti pseudoaleatori. Fiecare cheie secret˘ a a kd este asociat˘ unei anumite chei publice kc .5. kd o numim cheie de decriptare sau cheie secret˘. Astfel. trebuie ca desa a a tinatarul autorizat al mesajului s˘-l poat˘ totu¸i decripta ˆ timp rezonabil. ˆ esent˘. a s CTR — Counter: Se construie¸te similar cu OFB. ¸ s ¸ Ca ¸i ˆ cazul criptografiei simetrice. ¸ a ¸ v fiind vectorul de initializare. a a criptarea se calculeaz˘ m = ckc (t).1. metoda este vulnerabil˘ dac˘ a s a a adversarul are posibilitatea de-a obtine dou˘ variante ale unui fi¸ier. cheia kc .c 2008. De fapt. etc. Decriptarea o scriem t = ¸ ın dkd (m). exist˘ functii de criptare (injective) a ın In a ¸ a c˘ror cunoa¸tere nu permite decriptarea ˆ timp rezonabil. ˆ a are avantajul c˘ destinatarul poate decripta un fragment de ıns˘ a mesaj f˘r˘ a decripta tot mesajul pˆn˘ la fragmentul dorit. functia de criptare c prime¸te s ın ¸ s un parametru.. putˆnd servi la decriptarea a a mesajelor criptate doar cu cheia public˘ pereche. rezultˆnd un cifru relativ u¸or de spart. Pentru ca o astfel de metod˘ de criptare s˘ fie util˘. Criptografie asimetric˘ (cu cheie public˘) a a Intuitiv. functia invers˘ — decriptarea — este de asemenea a ¸ a calculabil˘ ˆ mod rezonabil. ˆ realitate. d. vom nota cu d algoritmul general ¸i cu kd infors matia care permite decriptarea ˆ timp rezonabil. v + 2. dificil de dedus din c. determinarea lui t a s s din ecuatia c(t) = m nu se poate face mult mai rapid decˆt prin ˆ ¸ a ıncercarea tuturor valorilor posibile pentru t. ˆ cazul criptografiei asimetrice. ˆ a a ıntrucˆt refolosirea unui a vector de initializare conduce la repetarea ¸irului pseudoaleator (cheia ¸ s Vernam). a. Radu-Lucian Lup¸a s Capitolul 6. m.

. 1. ˆ a trebuie s˘ fie a a ıns˘ a dificil computational. ¸ a a ¸ determinarea cheii secrete kd corespunz˘toare unei chei publice kc trebuie de a asemenea s˘ fie dificil˘ computational.c 2008. 3. . Criptarea ¸i decriptarea sunt: s ckc (p) = pe dkd (m) = m d (mod n) (mod n) (6. a a ¸ Exemplul 6. folosind s a ¸a kc . a . a a • se calculeaz˘ d cu proprietatea c˘ ed ≡ 1 (mod φ) (utilizˆnd algoritmul a a a lui Euclid). φ − 1}. ¸i numai posesorul lui kd ˆ va putea decripta. receptorul genereaz˘ o pereche de a ¸ a chei (kc . ¸ Un sistem criptografic asimetric (sau cifru asimetric sau cifru cu cheie public˘ ) este un ansamblu format din algoritmii de criptare c ¸i decriptare a s d ¸i un algoritm de generare aleatoare a perechilor de chei (kc . . a a Spatiul textelor clare ¸i spatiul textelor cifrate sunt ¸ s ¸ P = M = {0.1) (6. Asigurarea confidentialitatii ¸ Evident. acesta nu mai poate fi decriptat nici m˘car de autorul s˘u (de¸i autorul a a s — ¸i dealtfel oricine — poate verifica dac˘ un text cifrat dat corespunde sau s a nu unui text clar dat). a s • se calculeaz˘ n = pq ¸i φ = (p − 1)(q − 1). . kd ) aleatoare. d). relativ prim cu φ. Pentru ¸ a a a ca sistemul de criptare s˘ fie util mai este necesar s˘ existe un procedeu eficient a a (computational) de generare a unei perechi de chei (kc . Shamir ¸i Adelman ˆ 1977. kd ) distinct˘ pentru fiecare sens. Numele s ın RSA vine de la initialele autorilor. Radu-Lucian Lup¸a s 164 ˘¸ 6. Not˘m c˘ odat˘ criptat un s ıl a a a mesaj. s˘ se calculeze cheia secret˘ kd corespunz˘toare.5. kd ) ¸i face public˘ kc . cunoscˆnd cheia public˘ kc este posibil.1.1. e).4 (Cifrul RSA): Generarea cheilor se face astfel: • se genereaz˘ numerele prime p ¸i q (de ordinul a 500 cifre zecimale fiecare). Implicit. Utilizarea criptografiei asimetrice Pentru preg˘tirea comunicatiei. n − 1}. iar cheia secret˘ este kd = (n. ¸ 6. . s Pentru ca sistemul criptografic s˘ fie sigur trebuie ca rezolvarea ea cuatiei ckc (t) = m cu necunoscuta t s˘ fie dificil˘ computational.1. Dac˘ se dore¸te comunicatie bidirectional˘. . kd ).2) Cifrul a fost inventat de Rivest. . se utilizeaz˘ cˆte o pereche a s ¸ ¸ a a a de chei (kc . Cheia public˘ este kc = (n. . Emit˘torul poate cripta un mesaj. a s • se genereaz˘ aleator un num˘r e ∈ {2.

Astfel. Metode ¸i protocoale criptografice s 165 O aceea¸i pereche de chei poate fi utilizat˘ de o entitate pentru toate s a mesajele pe care le prime¸te. datele propriu-zise se cripteaz˘ de obicei cu algoritmi a simetrici. Autentificarea mesajelor Autentificarea mesajelor este un mecanism prin care destinatarul unui mesaj poate verifica faptul c˘ autorul mesajului este o anumit˘ entitate ¸i c˘ a a s a mesajul nu a fost modificat de altcineva. se pot utiliza modurile ECB sau a CBC. un mesaj.3). Verificarea autenticit˘¸ii unui mesaj const˘ ˆ aplicarea de c˘tre reat a ın a ceptor a unui test de autenticitate asupra mesajului primit. ˆ criptografia ¸ a ¸ ın simetric˘. ¸ probabilitatea ca mesajul s˘ treac˘ testul s˘ fie extrem de mic˘. Pentru ın ¸a a cripta o cantitate arbitrar˘ de text clar.. a Un sistem criptografic asimetric este ˆ esent˘ un cifru bloc. OFB ¸i CTR nu sunt utilizabile deoarece utilizeaz˘ doar s a functia de criptare. Evident. a a • pentru un mesaj neautentic. Prevenirea unor atacuri bazate pe s ın a . Un test de autenticitate trebuie s˘ ˆ a ındeplineasc˘ dou˘ propriet˘¸i: a a at • orice mesaj autentic s˘ treac˘ testul. fiecare pereche de parteneri ce comunic˘ trebuie s˘ aib˘ propria a a a a cheie secret˘. produs cu un efort computational rezonabil. a a a a Exist˘ dou˘ nivele distincte de .c 2008. a s 6. indiferent cu cˆ¸i parteneri comunic˘. ¸ ın a Algoritmii criptografici asimetrici sunt mult mai lenti decˆt cei si¸ a metrici. a a Mesajul astfel produs nu trebuie s˘ aib˘ un continut inteligibil. continutul ın ¸a ¸ mesajului neautentic este (total sau ˆ mare parte) la alegerea adversaruın lui. a • fals ales (engl. Modurile CFB. s at a fiecare entitate ˆsi stabile¸te o pereche de chei din care cheia public˘ o transı¸ s a mite tuturor partenerilor de comunicatie ¸i cheia secret˘ o folose¸te pentru a ¸ s a s decripta mesajele trimise de toti c˘tre ea. Din acest motiv. existential forgery): posibilitatea ca un adversar s˘ a genereze un mesaj neautentic care s˘ treac˘ testul de autenticitate.2. iar cheia de criptare pentru date se transmite utilizˆnd criptografie a asimetric˘ (vezi ¸i § 6. va fi acceptat ca a autentic ¸i ˆ cazul unei repet˘ri ulterioare.spargere“ a unui test de autenticitate: a a • fals existent (engl. care ˆ cazul criptografiei asimetrice este public˘. Radu-Lucian Lup¸a s Capitolul 6. choosen forgery): ˆ plus fat˘ de falsul existent. acceptat ca autentic o dat˘. Pentru comparatie. trebuie a a ¸ doar s˘ fie acceptat de algoritmul de autentificare.

ˆ studiul metodelor de autentificare a mesajelor. as s ıncˆ De remarcat c˘ cele trei conditii sunt diferite. a pentru unele metode de criptare. collision resistence): s˘ fie dificil de g˘sit ¸ a a dou˘ ¸iruri distincte t1 ¸i t2 (t1 = t2 ). Radu-Lucian Lup¸a s 166 6. rezistenta la coliziuni (engl. De asemenea. at 6. a un adversar poate opera modific˘ri asupra textului cifrat cu efecte previzibile a asupra textului clar. a s s s O functie de dispersie criptografic˘ este o functie de dispersie care ¸ a ¸ are anumite propriet˘¸i suplimentare. dar un at ¸ a cet˘¸ean ar trebui s˘ poat˘ verifica dac˘ textul ce i-a parvenit este textul at a a a autentic emis de autoritatea abilitat˘. rezistenta la a doua preimagine (engl. Functii de dispersie criptografice ¸ ˆ general (nu neap˘rat ˆ criptografie). dificultatea s˘ se p˘streze chiar ˆ cazul a a a ın cunoa¸terii unei p˘rti din t. Autentificarea mesajelor repetarea unor mesaje anterioare este o problem˘ separat˘ ¸i va fi studiat˘ ˆ a as a ın § 6. hash function) se ˆ ¸elege o functie h care asociaz˘ unui ¸ir de biti ınt ¸ a s ¸ t. dintre cele enumerate ˆ continuare: at ın 1. Din acest a s motiv. presupunem c˘ In a mesajul de transmis nu este secret. Aceasta deoarece ˆ practic˘ apare frecvent ın a necesitatea ca un mesaj public s˘ poat˘ fi testat de oricine ˆ privinta auta a ın ¸ enticit˘¸ii.4. second preimage resistence): ¸ dˆndu-se un ¸ir t. ıncˆ 3. dou˘ ¸iruri distincte s˘ nu aib˘ aceea¸i valoare a functiei de dispersie as a a s ¸ cu probabilitate semnificativ mai mare de 2−n .c 2008. s a¸ 2.2. cum ar fi modul OFB al oric˘rui cifru bloc. Totu¸i. astfel a s a a s ˆ at h(t) = h(t ). Eventual. ¸a a ¸ . pentru ¸irurile care apar in problema unde se folose¸te functia de ¸ a s s ¸ dispersie. textul unei legi este o informatie public˘. rezistenta la preimagine (engl. cu t = t. De exemplu. conditia de a ¸ s ¸ rezistent˘ la coliziuni implic˘ rezistenta la a doua preimagine. preimage resistence): dˆndu-se h(t). chiar dac˘ nu cunoa¸te efectiv textul clar. s˘ fie dificil de g˘sit un al doilea ¸ir t . s˘ ¸ a a fie dificil de reg˘sit t. Valoarea functiei de dispersie ¸ aplicat˘ unui ¸ir se nume¸te dispersia acelui ¸ir. ˆ s ¸ Intr-adev˘r. astfel ˆ at h(t1 ) = h(t2 ). de lungime oricˆt de mare. metodele de asigurare a confidentialit˘¸ii se separ˘ de metodele de ¸ at a control a autenticit˘¸ii.2.1.2. a Remarc˘m de asemenea c˘ faptul c˘ un mesaj criptat utilizˆnd un a a a a algoritm simetric poate fi decriptat de c˘tre receptor (utilizˆnd cheia secret˘) a a a ¸i este inteligibil nu e o garantie privind autenticitatea mesajului. 2n ) cu n fixat (sau echivalent. satisf˘cˆnd s ¸ a a conditia c˘. prin functie de dispersie In a ın ¸ (engl. un ¸ir de biti de lungime n). o valoare ˆ a ıntreag˘ ˆ a ıntr-un interval de forma [0.

2: Functii de dispersie criptografice. Deocamdat˘ este mai sigur˘ decˆt MD5.2. Receptorul testeaz˘ dac˘ s a a h(t) = s. a a s ¸a Dac˘ adversarul este secretara.c 2008. a Dezvoltat˘ de NSA (National Security Agency. Pentru a face impractic un atac prin fort˘ brut˘. Radu-Lucian Lup¸a s Capitolul 6. Un adversar care ar modifica t ˆ t ar trebui s˘ g˘seasc˘ un t cu ın a a a h(t ) = h(t) pentru a p˘c˘li receptorul. Este extrem a ın de r˘spˆndit˘. ¸ ın Nume MD5 lungime 128 observatii ¸ Creat˘ de Ronald Rivest ˆ 1991. Num˘rul de biti n ai dispersiei trebuie s˘ fie suficient de mare pentru a ¸ a aˆ ımpiedica c˘utarea unei coliziuni prin fort˘ brut˘. presupunem c˘ secretara redacteaz˘ un mesaj t la cererea a a ¸efului. ea nu se g˘se¸te ˆ situatia de-a crea un t sata a s ın ¸ isf˘cˆnd h(t ) = h(t) pentru t fixat (adic˘ de-a crea a doua preimagine) ci a a a .1. a a a dar are deja cˆteva sl˘biciuni. a iar canalul sigur este un bilet scris sau o convorbire telefonic˘. Ca exemplu practic. ˆ a cˆteva sl˘biciuni descoperite a a a ıns˘ a a recent o fac destul de nesigur˘. a SUA). de unde n ≥ 128 sau mai bine n ≥ 160. trebuie ca n/2 ≥ 64 a ¸a a (¸i mai bine n/2 ≥ 80). secretara putˆnd alege formularea exact˘ a mesajului t. acest lucru este nefezabil ˆ virtutea a a ın propriet˘¸ii de rezistent˘ la a doua preimagine a functiei de dispersie h. Seful ˆsi exs a a ¸ ı¸ prim˘ acordul asupra mesajului calculˆnd ¸i trimitˆnd destinatarului s = h(t). at ¸a ¸ Exist˘ situatii practice ˆ care t este (partial) la dispozitia adversarua ¸ ın ¸ ¸ lui. ¸ 6. s a Emit˘torul unui mesaj t calculeaz˘ s = h(t).2. transmite t prin ¸a a canalul principal ¸i transmite s prin canalul sigur. a Presupunem de asemenea c˘ h este o functie de dispersie rezistent˘ a ¸ a la a doua preimagine ¸i preferabil rezistent˘ la coliziuni. De exemplu. Conform paradoxului zilei a ¸a a de na¸tere. Metode ¸i protocoale criptografice s 167 majoritatea functiilor rezistente la coliziuni satisfac ¸i conditia de rezistent˘ ¸ s ¸ ¸a la preimagine. s Functiile de dispersie mai cunoscute sunt descrise ˆ tabelul 6. SHA1 160 RIPEMD-160 160 Tabelul 6. exist˘ ¸anse mari de g˘sire a unei coliziuni ˆ s as a ıntr-o multime de 2n/2 ¸ intr˘ri. canalul nesigur este Internet-ul. a a Dezvoltat˘ la Katholieke Universiteit Leuven ˆ a ın 1996.1. Utilizarea functiilor de dispersie ¸ Presupunem existenta ˆ ¸ ıntre emit˘tor ¸i receptor a dou˘ canale de ¸a s a transmitere a informatiei: un canal principal nesigur ¸i un canal sigur dar cu ¸ s capacitate foarte redus˘. Apoi.

Eventual.2. pentru cineva care nu a a a cunoa¸te dinainte cheia k. Not˘m cu A ¸i ın a s B cele dou˘ p˘rti care comunic˘ ¸i cu k cheia de dispersie utilizat˘ pentru a a¸ a s a autentificarea mesajelor. putem controla ulterior dac˘ fi¸ierul a fost sau nu modificat ˆ s a s ıntre timp. ti ) cu si = hk (ti ).3). emit˘torul calculeaz˘ s = ¸a a hk (t) ¸i trimite ˆ s ımpreun˘ perechea (s.2. chiar dac˘ cunoa¸te un num˘r de perechi ın a s a (si . o functie de dispersie utilizat˘ pentru controlul ¸ a autenticit˘¸ii mesajelor se cere s˘ fie rezistent˘ la coliziuni. preferabil 80 de biti. as ¸ parametrizat˘ cu o cheie k. 6. at a a Exist˘ pe sistemele Linux comenzile md5sum ¸i sha1sum care cala s culeaz˘ ¸i afi¸eaz˘ dispersia md5 respectiv sha1 a continutului unui fi¸ier. nu¸ mit˘ ¸i MAC (message authentication code). s). O functie de dispersie cu cheie se utilizeaz˘ astfel: Mai ˆ ai. numele ¸ at ¸a entit˘¸ii nu apare efectiv ˆ mesajul transmis. a s s a ¸ s Dispersia este afi¸at˘ ˆ hexa. emit˘¸ a ıntˆ ¸a torul ¸i receptorul se ˆ ¸eleg asupra unei chei secrete k (de exemplu conform s ınt metodelor din § 6. keyed hash function). ¸ ¸ O constructie uzual˘ pentru functii de dispersie cu cheie pornind de ¸ a ¸ la functii de dispersie rezistente la coliziuni ¸i rezistente la preimagine este ¸ s . descris ˆ continuare. ¸i de ¸ s s la B la A) ¸i dac˘ mesajele au acela¸i format. t) ˆ care s = hk (t).c 2008. este nefezabil computational s˘ obtin˘ o (nou˘) s ¸ a ¸ a a pereche (s. Receptorul testeaz˘ dac˘ s = hk (t). Autentificarea mesajelor este ˆ situatia de-a crea t ¸i t distincte cu h(t) = h(t ) (adic˘ de-a g˘si o ın ¸ s a a coliziune). Dac˘ aceea¸i cheie k este utilizat˘ a s a pentru autentificarea ambelor sensuri de comunicatie (¸i de la A la B. Functii de dispersie cu cheie ¸ O functie de dispersie cu cheie (engl. atunci A accept˘ mesajul ca s a s a venind de la B. avˆnd proprietatea c˘. a a • Fiecare mesaj contine numele entit˘¸ii emit˘toare. La trimiterea unui mesaj t. Radu-Lucian Lup¸a s 168 6. dar particip˘ la calculul at ın a dispersiei: s = hk (t · A) ¸i A trimite spre B perechea (t. este o functie de dispersie hk (t). Un adversar activ poate intercepta un mesaj trimis de A c˘tre B ¸i s˘-l trimit˘ ˆ a s a a ınapoi lui A. a a a Orice autentificare prin dispersie cu cheie este a priori vulnerabil˘ a la un atac numit atac prin reflexie. Dac˘ not˘m ˆ s a ın a a ıntr-un loc sigur dispersia unui fi¸ier. t). Din acest motiv.2. s Argumente similare cu cele privind dimensiunea blocurilor la cifrurile bloc ¸i dimensiunea cheii de cifrare conduc la cerinte pentru ˆ s ¸ ımpiedicarea atacurilor prin fort˘ brut˘: dimesiunea cheii ¸i dimensiunea dispersiei de minim ¸a a s 64 de biti. exist˘ dou˘ solutii: a a ¸ • Se utilizeaz˘ chei distincte pentru cele dou˘ sensuri. Pentru a preveni un atac prin reflexie.

utilizˆnd chei a ın ¸ ıns˘ a a diferite pentru crearea dispersiei (numit˘.3. Metode ¸i protocoale criptografice s 169 (conform [RFC 2104. ¸ • hash este functia de dispersie criptografic˘ (de exemplu md5 sau sha1 ). ˆ acest caz. stua a ¸ a diat˘ ˆ paragraful precedent. pentru md5 ¸i sha1. • se execut˘ o criptare ˆ mod CBC cu un vector de initializare zero (sau a ın ¸ initializat cu dispersia mesajului precedent). Rezultatul functiei hash se poate trunchia la lungime mai mic˘ (not˘m ¸ a a c˘ functia de dispersie hash d˘ 128–160 biti. unde ks este cheia secret˘ sau cheia de semn˘tur˘. iar kv este cheia a a a public˘ sau cheia de verificare. respeca ın a a s tiv. 1997]): hk (m) = hash(K ⊕ opad · hash(K ⊕ ipad · m)) unde: • · reprezint˘ concatenarea. ¸ a • K este cheia k completat˘ la o lungime B aleas˘ ˆ functie de anumite a a ın ¸ particularit˘¸i ale functiei de dispersie de la baz˘.2.c 2008. Radu-Lucian Lup¸a s Capitolul 6. Trunchierea are ca avantaj mic¸orarea cantit˘¸ii ¸ ¸ s at de informatie pus˘ la dispozitia adversarului. a . a a 6. a O schem˘ de semn˘tur˘ digital˘ are urm˘toarele elemente: a a a a a • un algoritm prin care se poate genera aleator o pereche de chei (ks . pentru verificare dispersiei. rezultˆnd valoarea dispersiei. ¸ • ipad ¸i opad sunt ¸iruri obtinute prin repetarea de B ori a octetului cu s s ¸ valoarea (hexa) 36. ¸ • rezultatul cript˘rii ultimului bloc se cripteaz˘ utilizˆnd o a doua cheie a a a (cheia functiei de dispersie este considerat˘ ca fiind concatenarea celor ¸ a dou˘ chei de criptare). ¸ a ¸ O constructie uzual˘ pentru functii de dispersie cu cheie pornind de ¸ a ¸ la un cifru bloc este urm˘toarea: a • se completeaz˘ mesajul la un num˘r ˆ a a ıntreg de blocuri. relatia dintre semn˘tura digital˘ ¸i ¸ a a s dispersia cu cheie este similar˘ cu cea dintre criptografia asimetric˘ ¸i cripa a s tografia simetric˘. semn˘tur˘) ¸i. a • ⊕ este operatia sau exclusiv. iar pentru o dispersie cu cheie a ¸ a ¸ sunt suficienti 64–80 de biti). kv ). respectiv 5C. at ¸ a s B se ia de 64 de octeti. Constructia este ˆ a asimetric˘. Astfel. Semn˘tura digital˘ a a Semn˘tura digital˘ este o constructie similar˘ dispersiei cu cheie.

¸ • o functie de verificare v. Acest lucru se ˆ ampl˘ deoarece cheia de ıntˆ a semn˘tur˘ este cunoscut˘ doar de c˘tre emit˘tor. trebuie utilizat un canal sigur. a a A¸a cum se vede. Functiile de dispersie a a ¸a ¸ cu cheie nu realizeaz˘ (direct) mesaje nerepudiabile deoarece receptorul poate a produce mesaje semnate la fel de bine ca ¸i emit˘torul. s a La transmiterea cheii publice. t). Constructia simplificat˘ este: a ¸ a hks (t) = dks (t) vkv (t. ¸ a a a a ˆ acest caz exist˘ mai multe semn˘turi valide pentru un acela¸i mesaj. Receptorul verific˘ dac˘ vkv (t. se aplic˘ asupra dispersiei ¸i nu asupra ˆ a s ıntregului mesaj (dispersia se calculeaz˘ mai repede decˆt criptarea asimetric˘).c 2008. Autentificarea mesajelor • o functie de semnare h. Radu-Lucian Lup¸a s 170 6. pe de o parte c˘ algoritmul s a a de criptare asimetric. semn˘tura s depinde ¸i de mesajul de semnat t ¸i s a s s de semnatarul acestuia (mai exact de cheia ks ). ¸ ˆ faza preg˘titoare. o semn˘tur˘ nu a a poate fi t˘iat˘ de pe un mesaj ¸i plasat˘ pe alt mesaj. a a Semn˘tura digital˘ asigur˘ nu doar autentificarea mesajelor. autorul de mesaje semnate genereaz˘ o pereche In a a de chei (ks . s) = (ckv (s) = t) Constructia de mai sus se bazeaz˘ pe nefezabilitatea calculului lui s = ¸ a dks (t) f˘r˘ cunoa¸terea lui ks . s ¸a . constructia aceasta permite adversarului aa s s ¸ s˘ produc˘ un fals existent: un adversar poate alege aleator un s ¸i calcula a a s t = ckv (s). Oˆ ımbun˘t˘¸ire a semn˘turii electronice de mai sus este s˘ nu se a at a a aplice dks direct asupra lui t ci asupra unei dispersii rezistente la preimagine ¸i la coliziuni a lui t. acest argument trebuie s˘ fie un num˘r aleator. Ca urmare. prezenta unei semn˘turi verificabile a ¸ a atest˘ faptul c˘ documentul a fost produs de emit˘tor. kv ) ¸i transmite cheia public˘ kv receptorului sau receptoarelor. iar pe de a a a alt˘ parte se ˆ a ımpiedic˘ falsul existent deoarece chiar dac˘ adversarul calculeaz˘ a a a ckv (s) nu poate g˘si un mesaj t cu dispersia astfel fixat˘. a a a ın Autorul mesajului t creaz˘ semn˘tura s = hks (t) ¸i transmite perechea a a s (s. a a s a Unii algoritmi de semn˘tur˘ digital˘ necesit˘ un al treilea argument a a a a pentru functia de semn˘tur˘. doar emit˘torul a a a a ¸a ¸a poate genera semn˘tura. lent. In a a s O posibilitate de constructie pentru semn˘tur˘ este pe baza unui ¸ a a mecanism de criptare asimetric ˆ care criptarea este bijectiv˘. Ca urmare. Totu¸i. Prin urmare. s) = true. astfel ˆ at cheia ıncˆ s˘ nu poat˘ fi modificat˘ ˆ timpul transmisiei.2. de exemplu ın a RSA are aceast˘ proprietate. Metoda are dou˘ avantaje. ci ¸i a a a s nonrepudiabilitatea mesajelor.

De exemplu.nou“ ¸i o copie a unui mesaj mai vechi. a Solutiile problemei verific˘rii prospetimii sunt similare cu metodele ¸ a ¸ de transmisie sigur˘ (§ 4. el trebuie doar s˘ participe a la calculul semn˘turii mesajului. se poate cere un nou transfer. pe de o parte. verific˘ ¸ a a dac˘ num˘rul din mesaj coincide cu num˘rul curent de ordine. Pentru fiecare mesaj.. Remarc˘m c˘ num˘rul de ordine a a a poate fi omis din mesajul transmis efectiv. Radu-Lucian Lup¸a s Capitolul 6.vechi“ este identic˘ cu originalul din momentul a cˆnd acesta era . ora curent˘. Dup˘ acceptarea unui mesaj. memorarea s a a s a tuturor mesajelor deja primite nu este fezabil˘.2. ¸ ora curent˘: Emit˘torul scrie. Aceasta a deoarece. emit˘torul scrie num˘rul curent ˆ mesaj ¸a a ın ¸i incrementeaz˘ apoi num˘rul curent. Din p˘cate. Rea ¸a ın a ceptorul consider˘ mesajul proasp˘t dac˘ ora din mesaj coincide cu ora a a a curent˘ a receptorului. constˆnd ˆ a a ın aceea¸i sum˘ de bani c˘tre acela¸i destinatar). Receptorul ¸ine de asemenea s a a t evidenta num˘rului curent de ordine.. cum ar fi s˘ transfere a ¸ a a o sum˘ de bani dintr-un cont ˆ altul. La fiecare mesaj primit.identificator de a ın mesaj“ care s˘ fie diferit de la un mesaj la altul ¸i asupra c˘ruia s˘ se execute a s a a de fapt testul de prospetime. dac˘ mesajul s a cere destinatarului s˘ execute o operatie neidempotent˘. ¸ at ıntˆ a Ideea este s˘ introducem ˆ mesajul autentificat un . ˆ mesajul autentificat. Un astfel de element se nume¸te num˘r unic ¸ s a (engl.nou“. a Not˘m c˘ testul de prospetime nu poate consta ˆ simpla verificare a a ¸ ın dac˘ un mesaj este identic cu vreunul dintre mesajele anterioare. a ¸ a a nu numai la disfunctionalit˘¸i ˆ ampl˘toare.. num˘rul a a curent de ordine este incrementat. Num˘rul unic poate fi: a un num˘r de ordine: Emit˘torul ¸ine evidenta unui num˘r curent de a ¸a t ¸ a ordine.c 2008. Ca urmare. un test de autenticitate nu detecteaz˘ a a niciodat˘ vechimea mesajului. ˆ caz a a a ın contrar mesajul nu este acceptat. cu diferenta c˘ trebuie s˘ reziste la atacuri voite. Metode ¸i protocoale criptografice s 171 6. a Metoda are dou˘ neajunsuri: necesit˘ mentinerea pe termen lung a a ¸ a numerelor de ordine curente ¸i necesit˘ un contor separat de num˘r s a a de ordine pentru fiecare partener de comunicatie.4. producerea unui mesaj identic cu un mesaj anterior este perfect legitim˘ (de exemplu.3). Verificarea prospetimii mesajelor ¸ Este adesea necesar ca receptorul s˘ poat˘ distinge ˆ a a ıntre un mesaj (autentic) . este necesar ca destinatarul s˘ accepte a ın a mesajul doar o singur˘ dat˘. nonce. de la number (used) once).. a a O copie a unui mesaj . iar pe de alt˘ parte. deoarece ceasurile nu sunt ¸ a a . receptorul este nevoit s˘ accepte un a a a decalaj de cel putin cˆteva zecimi de secund˘.

ceea ce necesit˘ a s a a a a a adesea ˆ a un mesaj (emit˘torul spune vezi c˘ vreau s˘-ti spun ceva. copii ce vor fi acceptate ca proaspete de destinatar. In ale mesajului. ınc˘ ¸a a a¸ receptorul r˘spunde trimitˆnd num˘rul aleator ¸i. Pentru aceasta. adversarul poate trimite copii neu.c 2008. este necesar ca a ¸a In receptorul s˘ ¸tie c˘ urmeaz˘ s˘ primeasc˘ un mesaj. a a a ın este suficient s˘ participe la calculul semn˘turii mesajului.2. Utilizarea orei la verificarea prospetimii necesit˘ un mecanism ¸ a sigur care s˘ mentin˘ sincronismul ceasurilor dispozitivelor care comua ¸ a nic˘. La primirea unui mesaj. ˆ cazul unui schimb de mai multe mesaje. ˆ plus. a pe durata cˆt marcajul de timp din mesaj este acceptabil de c˘tre testul a a de prospetime (de exemplu. fie rezolutia marcajului de timp se face mai ¸ fin˘ decˆt timpul necesar emiterii unui mesaj. num˘rul unic al ¸ a a mesajului va fi p˘strat pˆn˘ la ora 08:12:55). ˆ final. Emit˘torul adaug˘ num˘rul la mesajul trimis. dac˘ mesajul este trimis la ora 08:12:45 ¸i ¸ a s testul de prospetime accept˘ un decalaj de 10 secunde. Recepa ¸a a a torul accept˘ un mesaj ca proasp˘t doar dac˘ num˘rul aleator din mesaj a a a a coincide cu num˘rul aleator tocmai trimis. a a a receptorul verific˘ dac˘ marcajul de timp este actual (ˆ interiorul intera a ın valului acceptabil) ¸i dac˘ num˘rul unic nu este identic cu cel al unuia s a a dintre mesajele memorate. fie emit˘torul mai ¸ine un a a ¸a t contor care se incrementeaz˘ la fiecare mesaj trimis ¸i f˘cut astfel ˆ at a s a ıncˆ s˘ nu se reseteze ˆ a ınainte ca marcajul de timp s˘ treac˘ la urm˘toarea a a a valoare. a a Neajunsul principal al metodei este necesitatea de-a transfera num˘rul aleator dinspre receptor spre emit˘tor. Pentru corectarea acestei probleme. Ca ¸i pentru varianta cu a s num˘r de ordine. num˘rul aleator nu este necesar s˘ fie inclus ˆ mesaj. Receptorul memoreaz˘ numerele unice ale mesajelor primite. a un num˘r (aleator) ales de receptor: Receptorul care a¸teapt˘ un a s a mesaj trimite emit˘torului un num˘r aleator proasp˘t generat. pentru ca s˘ nu se repete a a ¸ ¸ a (decˆt cu probabilitate neglijabil de mic˘) ¸i s˘ nu poat˘ fi prezis de a a s a a c˘tre adversar. de exemplu o sesiune In . mecanismul se face astfel: Emit˘torul se asigur˘ c˘ dou˘ mesaje distincte vor avea num˘rul unic ¸a a a a a distinct. Num˘rul ¸a a a a aleator trebuie s˘ aib˘ cel putin 64–80 biti. emit˘torul a ¸a a s ın ¸a trimite mesajul propriu-zis). Radu-Lucian Lup¸a s 172 6. Acest lucru face aplicarea metodei scump˘ a ¸i ˆ anumite cazuri imposibil˘ — de exemplu metoda nu este aplicabil˘ s ın a a pentru securizarea po¸tei electronice sau pentru protocoale de difuziune s (broadcast). Autentificarea mesajelor perfect sincronizate ¸i deoarece transportul mesajului nu este instantas ˆ interiorul acestui decalaj admis.

receptorul trimite num˘rul aleator. Metode ¸i protocoale criptografice s 173 ssh. Stabilirea cheilor ˆ paragrafele precedente. ˆ a. num˘r unic pe care receptorul ˆ verific˘ la primirea mesajului. unii criptografi sustin c˘ prezenta dispera a a ¸ a ¸ siei ˆ mesajul criptat ar putea oferi unui adversar o posibilitate de-a ın sparge criptarea [Rogaway 1995]. rezult˘ un alt text clar decˆt cel ın a a a original (vulnerabilitate de tip fals existent). a s a a a 6. ˆ caz contrar. am presupus c˘ partenerii de comunicatie In a ¸ dispun deja de cheile necesare cript˘rii ¸i autentific˘rii mesajelor transmise. ın a ıl a Dac˘ num˘rul unic are o singur˘ valoare valid˘. s a 6. este necesar ca o a a a anumit˘ cheie pentru semn˘tur˘ sau dispersie s˘ nu se utilizeze decˆt a a a a a cu o singur˘ cheie de criptare.3. ˆ a s a In . iar apoi se cripteaz˘ rezula ıntˆ a a tatul concaten˘rii datelor utile cu dispersia sau semn˘tura. iar apoi la textul cifrat rezultat se adaug˘ a a semn˘tura sau dispersia textului clar. Mesajul trece testul de autenticitate. se poate conveni c˘ num˘rul a a a a a a nu se transmite efectiv. este posibil ca un mesaj a In criptat cu o cheie s˘ fie copiat de adversar ¸i trimis destinatarului dup˘ a s a schimbarea cheii de criptare. iar apoi se calculeaz˘ dispersia sau sema ıntˆ a n˘tura mesajului criptat. Emit˘torul a ¸a include ˆ fiecare pachet al conexiunii num˘rul aleator primit la deın a schiderea conexiunii ¸i num˘rul de ordine al pachetului. metoda nu prezint˘ vulnerabilit˘¸i (ˆ caz contrar. autentific˘rii ¸i verific˘rii prospea a s a ¸imii t Verificarea prospetimii unui mesaj se face pe baza unui num˘r unic ¸ a inclus ˆ mesaj. Dac˘ autentificarea se face prin semn˘tur˘ a a a digital˘. • Se cripteaz˘ mai ˆ ai mesajul.2. Pentru aceast˘ metod˘.c 2008. La dea a schiderea conexiunii. se poate combina num˘rul aleator cu un num˘r de ordine. metoda nu este corect˘ deoarece permite unui adversar care a a b˘nuie¸te textul clar s˘ verifice dac˘ textul clar este cel b˘nuit de el. Combinarea cript˘rii. ıns˘ ˆ urma decript˘rii cu noua cheie. a Combinarea cript˘rii cu autentificarea se poate face ˆ trei moduri: a ın • Se calculeaz˘ ˆ ai semn˘tura sau dispersia. ˆ a dispersia sau semn˘tura se calculeaz˘ ca ¸i cˆnd ıns˘ a a s a num˘rul ar fi parte a mesajului. • Se cripteaz˘ doar textul clar. a at ın se poate ar˘ta c˘ functia de dispersie este vulnerabil˘ la fals existent). Dac˘ autentificarea se face prin a a dispersie cu cheie. De¸i nu a a s exist˘ o sl˘biciune cunoscut˘.5. Radu-Lucian Lup¸a s Capitolul 6. a a ¸ a Acest mod de combinare a cript˘rii cu dispersia cu cheie este utilizat de a protocolul ssh versiunea 2.

c 2008. eventual. Transmiterea celor dou˘ tipuri de chei au cerinte distincte. • Cheia stabilit˘ s˘ fie proasp˘t˘ ¸i. a ˆ cazul unei chei publice. a a a a ¸ ˆ cazul unei chei simetrice. ˆ anumite cazuri. a doua entitate este un server public). iar confirmarea ¸ a cheii ˆ ımpreun˘ cu autentificarea cheii poart˘ denumirea de autentificarea a a explicit˘ a cheii. actiunea prin care cheia este f˘cut˘ disponiIn ¸ a a bil˘ partenerilor se nume¸te certificarea cheii. sau pot fi chei publice pentru criptografie asimetric˘ sau pentru a semn˘tur˘ digital˘. vom studia cum se poate face ca aceste chei s˘ fie disponibile a a partenerilor. Stabilirea cheilor cele ce urmeaz˘.3. actiunea prin care cheia este generat˘ ¸i In ¸ as f˘cut˘ disponibil˘ partenerilor de comunicatie se nume¸te stabilirea cheii . ˆ cazul cheilor publice se ˆ ampl˘ a a ın ıntˆ a frecvent ca o aceea¸i cheie public˘ s˘ fie transmis˘ de mai multe ori c˘tre o s a a a a aceea¸i entitate. a fie utilizeaz˘ un mecanism de autentificare a utilizatorilor (§ 6. Actiunea de satisfacere a acestei cerinte poart˘ a ¸ ¸ a denumirea de autentificarea cheilor ¸i este obligatorie ˆ orice proces de s ın stabilire a cheilor. a a ¸ • Receptorul cheii s˘ poat˘ verifica dac˘ cheia mai este valid˘. Certificarea unei chei are urm˘toarele cerinte: s a ¸ • Receptorul unei chei publice s˘ poat˘ verifica dac˘ cheia primit˘ este a a a a ˆ ıntr-adev˘r cheia public˘ a partenerului de comunicatie. Este posibil s˘ nu se prevad˘ confirmarea cheii ca parte a a a a protocolului de stabilire a cheii. care reu¸e¸te s˘ obtin˘ o cheie mai veche. Radu-Lucian Lup¸a s 174 6. ˆ astfel de cazuri. Not˘m c˘. Aceast˘ cerint˘ este util˘ pentru a preˆ ampina a ¸a a ıntˆ situatia ˆ care un adversar. ¸ ın s s a ¸ a ar putea determina entit˘¸ile care comunic˘ s˘ refoloseasc˘ acea cheie. a doua entitate fie nu are nevoie s a In s˘ o autentifice pe prima (de exemplu. ˆ ın ınceperea comunicatiei ¸ propriu-zise cu ajutorul cheii respective constituie confirmarea cheii.5). caz ˆ care cheile le vom numi ın chei simetrice. Cheile respective pot fi chei pentru criptografie simetric˘ sau a pentru autentificare prin dispersie cu cheie. Actiunea care verific˘ satisfacerea ¸ ¸ a aceastei cerinte poart˘ denumirea de confirmarea cheii. autentificarea cheii stabilite se face a a ın unilateral (adic˘ doar una dintre entit˘¸i ¸tie cu certitudine ce entitate mai a at s cunoa¸te cheia negociat˘). Un a a a ¸ s protocol de stabilire a cheii trebuie s˘ ˆ a ındeplineasc˘ urm˘toarele cerinte: a a ¸ • Cheia stabilit˘ s˘ nu poat˘ fi cunoscut˘ de altcineva decˆt de entit˘¸ile a a a a a at ce doresc s˘ comunice. Spre deosebire de cazul cheilor a s simetrice. O cheie a a a a . s˘ nu poat˘ fi impus˘ unilata a a as a a a eral de vreuna dintre p˘rti ci s˘ fie calculat˘ din elemente generate de a¸ a a fiecare dintre parteneri. unde transmisia unei chei ˆ ıntre partenerii de comunicatie se face ¸ doar pentru o cheie proasp˘t generat˘. ˆ acest caz. at a a a • Fiecare entitate ce comunic˘ s˘ aib˘ confirmarea c˘ partenerul de coa a a a municatie a primit efectiv cheia.

Mai d˘m cˆteva considerente practice legate de stabilirea sau certifia a carea cheilor: • Num˘rul de chei pe care trebuie s˘ le posede o entitate pentru a putea a a comunica trebuie s˘ fie cˆt mai mic. • chei de lung˘ durat˘ (engl. prin dispersie cu cheie. uneori. fiecare entitate dispune de o a a singur˘ cheie de lung˘ durat˘. stabilirea cheilor simetrice ¸i certificarea In ¸ s cheilor publice necesit˘ mecanisme de securizare a comunicatiei (criptare ¸i a ¸ s autentificare). Radu-Lucian Lup¸a s Capitolul 6. Atunci cˆnd entitatea are nevoie s˘ comunice cu o alt˘ a a a entitate. Deoarece. Cheile de lung˘ durat˘ pot fi a a chei simetrice sau chei asimetrice. ephemeral key) sau chei de sesiune (engl.3. comunicatia propriu-zis˘ este protejat˘ prin cripa ¸ a a tografie simetric˘ ¸i. cheia necesar˘ a comunic˘rii cu partenerul dorit. de exemplu pe durata unei a a a a conexiuni sau pentru a cripta un singur mesaj. prin intermediul tertului de ˆ ¸ ¸ ıncredere. session key). cheia respectiv˘ poate a a a fi ¸tears˘. utilizate pentru comunicatia propriu-zis˘ ˆ ¸ a ıntre dou˘ entit˘¸i. . Dup˘ utilizare. Dup˘ rolul lor fat˘ de un mecanism de stabilire a cheilor. O a at cheie efemer˘ se utilizeaz˘ pe durat˘ scurt˘. a a a ˆ prezenta unui adversar. utilizate ˆ cadrul mecanisa a ın melor de stabilire sau certificare a cheilor. cheile efemere sunt as chei simetrice. Stabilirea cheilor sau certificarea cheilor ˆ ıntre dou˘ entit˘¸i care nu a at au deja chei care s˘ le permit˘ o comunicatie securizat˘ ˆ a a ¸ a ıntre ele se poate face prin dou˘ metode: a • cu ajutorul unui tert de ˆ ¸ ıncredere: Aceast˘ metod˘ necesit˘ existenta a a a ¸ unei a treia entit˘¸i care s˘ poat˘ deja comunica securizat cu fiecare din at a a primele dou˘ ¸i care s˘ prezinte ˆ as a ıncredere acestora. Metode ¸i protocoale criptografice s 175 public˘ trebuie s˘ poat˘ fi invalidat˘ dac˘ se suspecteaz˘ c˘ a fost coma a a a a a a promis˘ cheia secret˘ corespunz˘toare. ¸ a ın a a s un prim transport manual al unei chei este ˆ ıntotdeauna necesar. • prin intermediul unui utilizator uman (§ 6.5).c 2008. cheile se a ¸a numesc: • chei efemere (engl. long-term key). Ea este creat˘ special a pentru o anumit˘ ocazie ¸i este distrus˘ imediat dup˘ aceea. permitˆnd o comunicatie securizat˘ cu un a a a ¸a ¸ a tert de ˆ ¸ ıncredere. Ideal. Totu¸i. obtine. s a • Interventia manual˘ ˆ stabilirea cheilor trebuie s˘ fie minim˘. a s a a din motive de vitez˘.

obtine o cheie de lung˘ durat˘ utilizat˘ ˆ stabilirea acelei chei ¸ a a a ın de sesiune. dintre care cea mai cunoscut˘ este metoda Diffie-Hellman.3. ˆ prezenta unui adversar pasiv ¸i ˆ lipsa vreunei chei a at s ın ¸ s ın deja disponibile.3. perechea de chei) de lung˘ durat˘. o a doua pereche de chei pentru cripa a tografie asimetric˘ care s˘ fie regenerat˘ periodic. problema este ca A ¸i B s˘ ajung˘ la un s a a secret partajat printr-o comunicatie integral la vedere. a a a cheia secret˘ este cheia sa de lung˘ durat˘. este bine s˘ nu poat˘ s˘ obtin˘ cheia de sesiune.1.c 2008. pentru a nu a a a ¸ a putea mai departe decripta sesiunea. cheile trea a buie s˘ poat˘ fi schimbate periodic. ¸ ˆ acest paragraf nu ne vom ocupa de situatia ˆ care un adversar ar In ¸ ın putea participa activ ˆ schimbul de mesaje. A transmite lui B ambele a a a chei publice (cheia de lung˘ durat˘ ¸i cheia public˘ proasp˘t˘). 6.1. iar B cripteaz˘ a as a aa a cheia de sesiune cu cheia proasp˘t˘ iar rezultatul ˆ cripteaz˘ cu cheia de lung˘ aa ıl a a . a a a • Stabilirea cheii de sesiune: a) A trimite lui B cheia public˘ a lui A.1.3. Stabilirea cheilor prin criptografie asimetric˘ a Protocolul este urm˘torul: a • Preg˘tirea: A genereaz˘ o pereche de chei pentru criptografie asimetric˘.3. Radu-Lucian Lup¸a s 176 6. Cu alte cuvinte. ın Exist˘ dou˘ metode utilizabile ˆ acest scop: a a ın • utilizarea criptografiei asimetrice. De asemenea. Stabilirea cheilor • Deoarece cheile de lung˘ durat˘ pot fi aflate de adversari. a b) B genereaz˘ aleator o cheie de sesiune k a c) B trimite lui A cheia de sesiune k criptat˘ cu cheia public˘ primit˘ a a a de la A d) A decripteaz˘ cheia transmis˘ de B a a O variant˘ ˆ a ımbun˘t˘¸it˘ este ca A s˘ aib˘. A ¸i B.1. ula ¸ a s terior. Aplicarea metodelor din acest ın paragraf ˆ prezenta unui adversar activ permite atacul omului din mijloc ın ¸ descris ˆ § 6. pe lˆng˘ cheia (mai bine a at a a a a a zis. dac˘ un adversar a a a ˆ ınregistreaz˘ comunicatia legat˘ de stabilirea unei chei de sesiune ¸i. Stabilirea cheilor ˆ prezenta unui adversar pasiv ın ¸ Ne vom ocupa ˆ continuare de stabilirea unei chei de sesiune ˆ ın ıntre dou˘ entit˘¸i. a 6.3. • alte metode.

Avantajul obtinut este c˘ dac˘ un adversar obtine cheia secret˘ de a ¸ a a ¸ a lung˘ durat˘ a lui A.2. ¸ Solutia ˆ varianta simpl˘ este utilizat˘ de PGP/GPG. A alege un num˘r aleator x ¸i calculeaz˘ ¸i-i transmite lui B num˘rul a s as a nA = g x mod p.3. 2. g x mod p ¸i g y mod p este a s foarte dificil˘. generˆnd perechile de chei ¸i transmitˆnd a s ¸a clientului cele dou˘ chei publice. a a a 6. aplicarea metodei Diffie-Hellman este a a . aa s a adversarul nu mai poate decripta comunicatiile vechi. cripteaz˘ mesajul folosind cheia de sesiune ¸i cripteaz˘ cheia a s a de sesiune folosind cheia public˘ a destinatarului. Aici emit˘to¸ ın a a ¸a rul mesajului are rolul lui B ¸i receptorul are rolul lui A.1. A ¸i B calculeaz˘ cheia de sesiune k astfel: A calculeaz˘ s a a k = (nB )x mod p. 3. 4. Clientul genereaz˘ cheia de sesiune ¸i i-o a a s trimite serverului criptat˘ pe rˆnd cu cele dou˘ chei. Cheia de sesiune calculat˘ de cei doi este aceea¸i: a s (g x mod p)y mod p = (g y mod p)x mod p = g xy mod p. Serverul are rolul lui A. B alege un num˘r aleator y ¸i calculeaz˘ ¸i-i transmite lui A num˘rul a s as a nB = g y mod p. nu este necesar˘ ¸a ¸ a o cheie de lung˘ durat˘. a Ca avantaj fat˘ de solutia din paragraful precedent.c 2008. a Solutia ˆ varianta ˆ ¸ ın ımbun˘t˘¸it˘ este aplicat˘ de protocolul ssh vera at a a siunea 1. De asemenea. Se genenereaz˘ (pe o cale oarecare) un num˘r prim p mare ¸i un num˘r a a s a g. iar calcularea lui g xy mod p cunoscˆnd doar g. iar la trimiterea unui mesaj genereaz˘ aleator o a a cheie de sesiune. n. dar ˆ a a ıntre timp cheia proasp˘t˘ a expirat ¸i a fost distrus˘. Metode ¸i protocoale criptografice s 177 durat˘. Stabilirea cheii prin metoda Diffie-Hellman Protocolul este urm˘torul: a 1. Emit˘torul obtine s ¸a ¸ cheia public˘ a receptorului. Mesajul transmis contine a ¸ cele dou˘ elemente criptate. Radu-Lucian Lup¸a s Capitolul 6. iar B calculeaz˘ a k = (nA )y mod p.

a le cite¸te. ˆ orice comunicatie sigur˘ trebuie s˘ existe cel putin un ın ¸ a a ¸ pas din initializare ˆ care s˘ se transfere o cheie ˆ ¸ ın a ıntre B ¸i A. Ca dezavantaj. a ¸ a protocolul Diffie-Hellman nu este aplicabil transmiterii mesajelor prin po¸t˘ sa electronic˘. simetrice sau asimetrice. bazate pe transmiterea ˆ fragmente a mesajelor. ˆ a ın a ¸ In general. A ¸i B. ˆ prezenta unui adversar activ. o astfel de caracteristic˘ este cunoa¸terea unei chei a a a s secrete. sau ˆ s ıntre B ¸i s un tert de ˆ ¸ ıncredere ¸i ˆ s ıntre tert ¸i A. Fie una dintre p˘rti genereaz˘ aleator o cheie ¸i o transmite criptat a¸ a s partenerului. a . presupunem c˘ A ¸i B ¸i-au stabilit anterioar˘ a protocolului). Stabilirea cheilor ˆ prezenta unui adversar activ ın ¸ Vom studia ˆ continuare problema stabilirii unei chei de sesiune ˆ ın ıntre dou˘ entit˘¸i. a a Exist˘ metode. a 6. pentru criptare ¸i autentificare.3. a a • decripteaz˘ mesajele trimise de A lui B (acestea fiind criptate cu k1 ). pentru a a s ın ca A s˘-l disting˘ pe B de un adversar este necesar ca B s˘ aib˘ o caracteristic˘ a a a a a distinctiv˘ inimitabil˘. eventual le modific˘.2 sunt aplicabile ın s doar ˆ absenta unui adversar activ.1. In a a s s chei de lung˘ durat˘. fie se aplic˘ un protocol de tipul Diffie-Hellman. dup˘ care le cripteaz˘ (¸i eventual le s a a a s autentific˘) utilizˆnd cheia k2 . a a s Exist˘ multe protocoale de stabilire a cheilor ˆ aceast˘ situatie.3.c 2008.3. aceste protocoale se construiesc astfel: 1. care a ın ˆ ımpiedic˘ forma pur˘ a atacului man-in-the-middle. totu¸i.3. a at s ın ¸ In cheia de sesiune trebuie s˘ fie cunoscut˘ doar de A ¸i de B ¸i s˘ fie proasp˘t˘ a a s s a aa (un adversar s˘ nu poat˘ impune alegerea unei chei stabilite la o executie a a ¸ ˆ acest scop. a 2.1. Stabilirea cheilor mai rapid˘ decˆt regenerarea la fiecare mesaj a unei perechi de chei pentru a a un cifru asimetric. Atacul man-in-the-middle Protocoalele descrise ˆ paragrafele 6. ˆ urma protocolului. Radu-Lucian Lup¸a s 178 6. ˆ general. este necesar˘ o comunicatie interactiv˘. Ca urmare. a a Rezultatul atacului este c˘ A ¸i B cred c˘ comunic˘ fiecare cu cel˘lalt a s a a a cˆnd de fapt ei comunic˘ cu I. Fiecare parte trimite celeilalte un nonce (de exemplu un num˘r aleator).2.3. ¸s 6.1. a a • comunic˘ cu B jucˆnd rolul lui A pentru a stabili o cheie de sesiune k2 . Un adversar activ I se poate interpune ın ¸ ˆ ıntre A ¸i B astfel: s • comunic˘ cu A jucˆnd rolul lui B pentru a stabili o cheie de sesiune k1 .1 ¸i 6.3.

utilizat pentru asigurarea prospetimii a ¸ schimbului de chei. ˆ s a ınseamn˘ c˘ protocolul a fost influentat de un adversar a a ¸ activ ¸i. A decripteaz˘ x obtinˆnd k ¸i verific˘ dispersia s. not˘m a In a a cu A ¸i B cele dou˘ entit˘¸i. de asemenea cunoscut˘ doar de A ¸i de B. Protocolul este. a a Exemplul 6. atunci adversarul poate decripta cheia de sesiune ¸i ˆ s ıntreaga sesiune protejat˘ cu aceast˘ cheie. s ın ¸a a a ¸ pˆn˘ ˆ momentul ˆ care verificarea auenticit˘¸ii mesajelor transmise a fost a a ın ın at efectuat˘ cu succes. Este esential deci ca. Apoi calculeaz˘ ¸i transmite x = cKc (k) ¸i as s s = hKh (rA · k). alegˆnd rB ¸i xB ¸i transmitˆnd rB ¸i nB = a a s s ¸a s xB mod p. B alege cheia de sesiune k. a a a a Exemplul 6. A alege un num˘r aleator rA ¸i-l transmite lui B. s a 1. a . Al doilea punct are rolul de-a asigura c˘ negocierea ¸i. Not˘m cu A ¸i B cele dou˘ entit˘¸i care comunic˘. ¸ s Primul punct are ca scop obtinerea unei chei pe care s˘ o cunoasc˘ doar p˘rtile ¸ a a a¸ ˆ ıntre care a avut loc schimbul de mesaje. rA . Radu-Lucian Lup¸a s Capitolul 6.6: Stabilirea cheii de sesiune prin schimb Diffie-Hellman ¸i auts entificare prin semn˘tur˘ digital˘ se face dup˘ cum urmeaz˘. Fiecare parte trimite celeilalte o semn˘tur˘ sau o dispersie calculat˘ din a a a informatiile de la punctele 1 ¸i 2. ¸i xA utilizat pentru derivarea cheii prin metoda s Diffie-Hellman. s 2. cu KsA ¸i KsB cheile (secrete) de semn˘tur˘ ale lui A ¸i B ¸i cu KvA s a a s s ¸i KvB cheile (publice) de verificare corespunz˘toare. cu g ¸i p baza ¸i modulul din schimbul Diffies a at s s Hellman. cel utilizat de ssh versiunea 2. B procedeaz˘ similar. Dac˘ verificarea semn˘turii sau dispersiei de a a la punctul 3 e¸ueaz˘. cheia negociat˘ s˘ nu fie utilizat˘. Al treilea punct a s ın ¸a a aa are rolul de-a asigura fiecare parte c˘ mesajele de la punctele 1 ¸i 2 au fost a s schimbate cu partenerul dorit. Metode ¸i protocoale criptografice s 179 3. a s 1.5: Transmiterea unei chei prin criptare simetric˘ se poate face a dup˘ cum urmeaz˘. 3. cheia rezultat˘ este proasp˘t˘. ˆ consecint˘. a a a a a cu mici modific˘ri. iar adversarul obtine a a a ¸ ulterior cheia Kc . a ¸ a s a De remarcat c˘. cheia negociat˘ este compromis˘. dac˘ transmisia continˆnd cheia de sesiune k criptat˘ cu cheia a a ¸ a a de lung˘ durat˘ Kc este interceptat˘ de un adversar. cunoscut˘ doar de A ¸i de B ¸i cu Kh o a a s s cheie pentru dispersie. ˆ cele ce urmeaz˘. A alege dou˘ numere aleatoare. Apoi A transmite lui B numerele rA ¸i nA = g xA mod p s (unde g ¸i p sunt parametrii pentru Diffie-Hellman). g 3.c 2008. cu a a a s a at a Kc o cheie pentru criptare simetric˘. A transmite lui B semn˘tura sA = hKsA (rA · nA · rB · nB ). a s 2. ˆ consecint˘.

ˆ prezenta at s a ın ın ¸ unui adversar activ. 6. pe care o transmite lui A ¸i lui B. s Deoarece este de presupus c˘ T face acest serviciu pentru mai multe a entit˘¸i. calculeaz˘ cheia de sesiune a a s a s a xB k = nA mod p. engl. Radu-Lucian Lup¸a s 180 6. T . Mai presupunem c˘ protocolul de stabilire a cheii este initiat de c˘tre a ¸ a A. A transmite spre T o cerere ˆ clar prin care cere o cheie de sesiune ın pentru B. ˆ schimb. dac˘ se potrive¸te.c 2008. satisf˘cˆnd conditiile: a a ¸ • A ¸i T partajeaz˘ chei pentru criptare ¸i autentificare (KcA . a 5. Transmisia c˘tre A este criptat˘ s a a ¸i autentificat˘ cu cheia partajat˘ ˆ s a a ıntre A ¸i T . 2. hKcA (k · A · B)) . A verific˘ semn˘tura sB ¸i. a Simplificat. a 3. A ¸i B s˘ ¸tie cine este partenerul cu care ıncˆ s as comunic˘. protocolul ar fi urm˘torul: a 1.3.3. ın T se mai nume¸te server de distribuire a cheilor (engl. B verific˘ semn˘tura sA ¸i.3. T genereaz˘ o cheie de sesiune k. respectiv s a s KhA ). la primirea pachetului. • B ¸i T partajeaz˘ chei pentru criptare ¸i autentificare. existenta unei a treia entit˘¸i ın ¸ at (un tert de ˆ ¸ ıncredere. respectiv s a s KhB ). B transmite lui A semn˘tura sB = hKsB (rB · nB · rA · nA ). analog. Key Distribution Center s ¸ — KDC). calculeaz˘ cheia de sesiune a a s a s a k = nxA mod p. T transmite spre A un pachet (A. Ideea solutiei este urm˘toarea: serverul T genereaz˘ aleator o cheie ¸ a a de sesiune. B 6. iar transmisia c˘tre B este s a criptat˘ ¸i autentificat˘ cu cheia partajat˘ ˆ as a a ıntre B ¸i T . Stabilirea cheilor cu ajutorul unui tert de ˆ ¸ ıncredere Vom studia ˆ continuare problema stabilirii unei chei ˆ ın ıntre dou˘ a entit˘¸i A ¸i B care nu partajeaz˘ ˆ prealabil nici un fel de cheie. cKcA (k). Presupunem. • A ¸i B au ˆ s ıncredere ˆ serviciile oferite de T . at a s a ¸ a s astfel ˆ at. dac˘ se potrive¸te. pachetele transmise c˘tre A ¸i B trebuie s˘ contin˘ ¸i numele lor. B. (KcB . trusted third party). Stabilirea cheilor 4.

T partajeaz˘ o cheie simetric˘ (de fapt. cealalt˘ pentru autetificare) cu fiecare dintre entit˘¸ile din a at retea. T transmite spre B un pachet (A. compromise. precum ¸i numele a s a s A ¸i B. Perioada de valabilitate este ad˘ugat˘ a a ˆ mesajele transmise ˆ pa¸ii 1. Vulnerabilitatea introdus˘ este dat˘ de faptul c˘ un ¸ a a a adversar poate trimite mesajele de la pa¸ii 3 ¸i 4 ˆ locul serverului T pentru a s s ın forta stabilirea unei chei vechi. 3 ¸i 4. exploatat˘ de protocolul Otway-Rees. Radu-Lucian Lup¸a s Capitolul 6. respectiv 6.c 2008. Acesta prevede c˘ A ¸i B transmit c˘tre T cˆte un num˘r a s a a a aleator. Pentru stabilirea de chei ˆ ıntre orice dou˘ entit˘¸i ˆ aceste a at ın . Metode ¸i protocoale criptografice s 181 4. nu verific˘ ¸i a a s prospetimea acesteia. el poate forta astfel stabilirea aceleia¸i chei. Dac˘ adversarul reu¸e¸te s˘ obtin˘ o cheie de ¸ a s s a ¸ a sesiune. ¸ O prim˘ posibilitate. este ad˘ua a a garea unei perioade de valabilitate. s 6. A decripteaz˘ cheia de sesiune k ¸i verific˘ dispersia. urmˆnd ca A s˘-l transmit˘ a a a a c˘tre B la deschiderea conexiunii c˘tre acesta. cheia de sesiune dac˘ timpul curent este ˆ afara perioadei de valabilitate s a ın ˆ ınscrise ˆ pachete lˆng˘ cheie. trebuie introduse ˆ mesaje ni¸te ele¸ ın s mente de control al prospetimii. c˘ numerele aleatoare incluse ˆ mesajul autens a ın tificat de la T sunt ˆ ıntr-adev˘r numerele trimise de ele. ¸ ˆ Intr-o retea mare. B. a s Protocolul de mai sus ofer˘ doar autentificarea cheii. dou˘: at ¸ a a a una pentru criptare. a Utilizarea practic˘ a stabilirii cheilor cu ajutorul unui tert de ˆ a ¸ ıncredere se face construind un server T care creaz˘ chei de sesiune. A ¸i B verific˘. pentru a toate entit˘¸ile din retea. ˆ cadrul pa¸ilor 5 ın ın s s s ın s ¸i 6. exploatat˘ de protocolul Kerberos. a Pentru verificarea prospetimii. se bazeaz˘ a a pe numere aleatoare. nu mai este posibil s˘ se lucreze cu un singur ¸ a server T . la cerere. A ¸i B resping. ˆ s a ın s a ın cadrul pa¸ilor 5. iar T include num˘rul aleator transmis de A ˆ mesajul de la pasul 3 a ın ¸i num˘rul aleator transmis de B ˆ mesajul de la pasul 4. a a O a doua posibilitate. Astfel. una dintre ele fiind aceea c˘ mesajul de la pasul 4 este trimis a de T lui A ˆ ımpreun˘ cu mesajul de la pasul 3. ˆ sesiunile ¸ s ın urm˘toare. ın a a Protocolul Kerberos mai aduce cˆteva modific˘ri fat˘ de protocolul a a ¸a descris mai sus. B procedeaz˘ la fel ca ¸i A. hKcB (k · A · B)) 5. cKcB (k). deoarece aceasta ar cere tuturor s˘ aib˘ ˆ a a ıncredere ˆ administraın torul serverului T .

Acest lucru nu este ˆ a fezabil decˆt ıns˘ a pentru un num˘r mic de chei. O solutie aplicabil˘ ˆ retele mari const˘ ˆ a ¸ a ın ¸ a ın utilizarea certificatelor. m. . ıns˘ a a Solutia imediat˘ este transportul cheii lui B de c˘tre un utilizator ¸ a a uman (vezi § 6. cu ajutorul lui T2 se stabile¸te o cheie ˆ s s ıntre A ¸i T3 s ¸. Aceste chei partajate formeaz˘ leg˘turi securizate ˆ a a ıntre servere. a a a a a ˆ a trebuie ca autenticitatea ei s˘ fie verificabil˘. un nume a a de entitate ¸i o semn˘tur˘ a unui tert pe ansamblul celor dou˘.5 pentru detalii). a a s s o cheie ˆ ıntre A ¸i T2 . a a • Se configureaz˘ chei partajate ˆ a ıntre cˆte dou˘ servere de distribuire a a a cheilor. Prin semn˘tur˘. atunci A poate verifica semn˘tura lui C pe certificatul lui B ¸i. a a • are ˆ ıncredere ˆ C c˘ a verificat corect identitatea lui B ˆ ın a ınainte de a-i semna certificatul. fiecare entitate a avˆnd o cheie partajat˘ cu unul dintre aceste servere. Graful format de serverele de distribuire a cheilor ¸i de leg˘turile securs a izate trebuie s˘ fie conex.Tn . Certificarea cheilor publice Presupunˆnd c˘ fiecare entitate are o pereche cheie secret˘ – cheie a a a public˘. pˆn˘ la obtinerea unei chei ˆ s a a ¸ ıntre A ¸i B. dintr-o surs˘ nesigur˘. a Atunci cˆnd o entitate A dore¸te s˘ comunice cu o entitate B. T1 s˘ ¸ ıncˆ a a a a aib˘ cheie partajat˘ cu T2 .c 2008. dar: • are cheia public˘ a lui C dintr-o surs˘ sigur˘. se construie¸te un sistem astfel: ¸ s • Se configureaz˘ mai multe servere de distribuire a cheilor. . poate prelua cheia lui B de pe certificat. d. se caut˘ un a s a a lant de servere. m. Radu-Lucian Lup¸a s 182 6. Un certificat este un ansamblu cuprinzˆnd o cheie public˘. Tertul sems a a ¸ a ¸ natar se nume¸te autoritate de certificare. a. se stabile¸te. ¸.4. autoritatea de s a a certificare atest˘ c˘ cheia public˘ din certificat apartine entit˘¸ii al c˘rei nume a a a ¸ at a figureaz˘ ˆ certificat. a ın Utilizarea certificatelor se face astfel. ˆ loc s˘ aib˘ toat˘ lumea ˆ In ın a a a ıncredere ˆ ıntr-un singur server.3. . astfel ˆ at A s˘ aib˘ cheie partajat˘ cu T1 . o entitate A care dore¸te s˘ comunice cu o entitate B ˆsi pune proba s a ı¸ lema s˘ dobˆndeasc˘ cheia public˘ a lui B. Dac˘ A nu are cheia public˘ a a a lui B. Cheia public˘ nu este un secret. a. fiecare pereche de entit˘¸i care doresc s˘ comunice trebuie s˘ aib˘ at a a a ˆ ıncredere ˆ lantul de servere ce particip˘ la stabilirea cheii.3. T1 . a . ın ¸ a 6.3. a a a • are un certificat pentru B semnat de C. d. cu ajutorul lui T1 . Stabilirea cheilor conditii. dac˘ este a s a corect˘.. Apoi. s ˆ acest sistem.

c 2008, Radu-Lucian Lup¸a s
Capitolul 6. Metode ¸i protocoale criptografice s 183

Schema de mai sus poate cuprinde mai multe autorit˘¸i de certificare, at din care o prim˘ autoritate a c˘rei cheie se obtine prin transport de c˘tre om a a ¸ a ¸i un lant de autorit˘¸i din care fiecare semneaz˘ certificatul urm˘toareia. s ¸ at a a Pentru schimbarea cheilor, ˆ cazul compromiterii unei chei secrete, ın se prev˘d dou˘ mecanisme: a a expirarea cheilor. Un certificat are durat˘ de valabilitate limitat˘; data a a creerii ¸i data expir˘rii sunt de asemenea ˆ s a ınscrise ˆ certificat ¸i semnate ın s de autoritatea de certificare. O entitate a c˘rui certificat se apropie a de expirare va crea o nou˘ pereche de chei ¸i va solicita autorit˘¸ii de a s at certificare eliberarea unui nou certificat pentru noua cheie public˘. Dup˘ a a expirare, un certificat nu mai este recunoscut de nimeni ca valid ¸i nu s mai este folosit. revocarea certificatelor. Se ¸in, pe servere accesibile public, a¸a-zise t s certificate de revocare ale certificatelor ale c˘ror chei secrete se consider˘ a a compromise. Un certificat de revocare al unui certificat este un ansamblu cuprinzˆnd datele de identificare ale certificatului revocat ¸i semn˘tura a s a autorit˘¸ii de certificare a certificatului revocat asupra acelor date de at identificare. Publicarea unui certificat de revocare pentru un certificat anunt˘ ¸a invalid˘rii certificatului original. O entitate care utilizeaz˘ un certificat a a va verifica ˆ ınainte, de fiecare utilizare, dac˘ nu exist˘ un certificat de a a revocare al certificatului respectiv. Certificatul de revocare poate fi produs doar de c˘tre autoritatea a de certificare emitent˘ sau de posesorul certificatului. a

6.3.5. Transportul prin utilizatori umani
Orice protocol sigur de stabilire a cheilor are nevoie cel putin o dat˘ ¸ a de un canal sigur bazat pe alte mijloace decˆt cele criptografice. Acest canal a este necesar pentru transportul unei prime chei criptografice, utilizabil˘ pena tru transportul sigur al altor chei. Acest canal sigur implic˘ ˆ a ıntotdeauna interventia omului, ¸i se prezint˘ sub una din urm˘toarele forme: ¸ s a a 1. Omul transport˘, pe un suport amovibil (dischet˘, CD, DVD, memorie a a flash) sau printr-o leg˘tur˘ ad-hoc securizat˘ (cablu direct), o cheie de a a a pe sistemul surs˘ pe sistemul destinatie. Eventual aceast˘ cheie poate a ¸ a fi cheia public˘ a unei autorit˘¸i recunoscute, cheie ˆ a at ınglobat˘ ˆ a ıntr-un produs soft (de regul˘ browserele web au ˆ a ınglobate astfel de chei); 2. Omul cite¸te o informatie de pe sistemul surs˘ ¸i o introduce sau o s ¸ a s verific˘ pe sistemul destinatie. Cantitatea de informatie astfel transa ¸ ¸

c 2008, Radu-Lucian Lup¸a s
184 6.3. Stabilirea cheilor

portabil˘ este mic˘, de ordinul cˆtorva sute de biti cel mult. Metoda a a a ¸ este greu de aplicat pentru informatii secrete, deoarece informatia este ¸ ¸ afi¸at˘ pe ecranul sistemului surs˘ ¸i ca urmare este vizibil˘ persoanelor s a as a din apropiere. Informatiile astfel transportate sunt de obicei dispersiile ¸ criptografice ale unor chei publice. 3. Omul inventeaz˘ o parol˘ ¸i o introduce pe ambele sisteme. Parola este a as utilizat˘ pe post de cheie secret˘. Omul este utilizat atˆt cu rolul de a a a canal sigur de transport, cˆt ¸i ca generator de ,,numere“ aleatoare. a s Ne vom ocupa ˆ continuare de aspecte privind implementarea metodeın lor 2 ¸i 3. s Metoda 2 necesit˘ o scriere a unui ¸ir de biti ˆ a s ¸ ıntr-o form˘ u¸or de a s citit de c˘tre un om. Trebuie ¸inut cont de faptul c˘ omul nu poate fi atent a t a simultan la un ansamblu prea mare de obiecte diferite (simboluri, grupuri de simboluri, cuvinte). ˆ Intre citirile unor astfel de grupuri, omul trebuie s˘a ¸i poat˘ lua puncte de reper pentru a ¸ti unde a r˘mas. Ca urmare, un s a s a grup de cifre sau simboluri f˘r˘ leg˘tur˘ intre ele (adic˘ care nu constituie aa a a a un cuvˆ din vocabularul utilizatorului) nu trebuie s˘ fie mai mare de 6–8 ınt a simboluri. O dispersie md5 scris˘ direct ˆ hexa cuprinde 32 simboluri (cifre a ın hexa); utilizatorul va avea nevoie s˘ pun˘ degetul pe ecran pentru a o citi. a a Dac˘ aceea¸i dispersie md5 este scris˘ ca 8 grupuri de cˆte 4 cifre, cu spatiu a s a a ¸ sau alt separator ˆ ıntre grupuri, devine mult mai u¸or de citit. Pentru ¸iruri s s mai lungi, devine necesar un al doilea nivel de grupare. O alt˘ metod˘, mai dificil de pus ˆ practic˘, este transformarea a a ın a ¸irului de biti ˆ s ¸ ıntr-un ¸ir de cuvinte dintr-un dictionar standard sau ˆ s ¸ ıntr-un ¸ir s de silabe ce alc˘tuiesc cuvinte, probabil f˘r˘ sens, dar pronuntabile. Pentru un a aa ¸ dictionar de 4096 cuvinte, un cuvˆnt codific˘ 12 biti. O dispersie md5 poate ¸ a a ¸ fi scris˘ ca un ¸ir de 11 cuvinte. Un astfel de ¸ir de cuvinte poate fi memorat a s s mai u¸or decˆt secvanta de 32 cifre hexa echivalent˘. s a ¸ a Pentru a aplica metoda 3, remarc˘m pentru ˆ a ınceput c˘ o parol˘ ina a ventat˘ ¸i memorat˘ de om nu poate fi utilizat˘ direct pe post de cheie. Ideal, as a a dac˘ caracterele utilizate pentru parol˘ sunt cele 94 caractere ASCII imprimaa a bile, parola ar avea o entropie de 6,44 biti pe caracter. Se estimeaz˘ c˘ un ¸ a a text ˆ limbaj natural nu are mai mult de 1–2 biti pe caracter. O parol˘ ce ın ¸ a poate fi memorat˘ rezonabil va avea o entropie cuprins˘ undeva ˆ a a ıntre aceste dou˘ limite. Pe de alt˘ parte, securitatea unui sistem criptografic se bazeaz˘ a a a pe faptul c˘ entropia cheii este de 1 bit pe cifr˘ binar˘ (vezi § 6.1.3). Rezult˘ a a a a de aici dou˘ lucruri: a • Parola trebuie trecut˘ printr-un ,,concentrator de entropie“ ˆ a ınainte de-a fi

c 2008, Radu-Lucian Lup¸a s
Capitolul 6. Metode ¸i protocoale criptografice s 185

utilizat˘ ca ¸i cheie. Acest ,,concentrator de entropie“ poate fi o functie a s ¸ de dispersie (nu neap˘rat criptografic˘). a a • Parola trebuie s˘ fie suficient de lung˘ (¸i de aleator aleas˘) ca s˘ furnizeze a a s a a efectiv bitii de entropie necesari. O fraz˘ ˆ limbaj natural, utilizat˘ ¸ a ın a pentru derivarea unei chei de 128 biti, trebuie s˘ aib˘ cam 85 litere (ˆ ¸ a a ın jur de 20 de cuvinte). De obicei este nerezonabil s˘ cerem unui om s˘ utilizeze o parol˘ cu a a a entropie suficient de mare. ˆ acest caz, mic¸orarea lungimii efective a cheii In s derivate din parol˘ trebuie compensat˘ prin ˆ a a ıngreunarea ˆ ıncerc˘rii cheilor de a c˘tre adversar. Mai exact, protocolul ce utilizeaz˘ cheia derivat˘ din parol˘ a a a a trebuie modificat ˆ a¸a fel ˆ at s˘ nu permit˘ unui adversar s˘ fac˘ ˆ ın s ıncˆ a a a a ıncercarea exhaustiv˘ a cheilor pe ma¸ina lui (unde poate dispune de putere mare de a s calcul ¸i nu las˘ urme) ci s˘ trebuiasc˘ s˘ contacteze una din ma¸inile care s a a a a s cunosc cheia (ma¸ini care ˆ s ınregistreaz˘ tentativa ¸i pot refuza un num˘r prea a s a mare de tentative ˆ timp scurt). ın Ca terminologie, distingem tentative de spargere off-line, ˆ care adın versarul poate verifica dac˘ o parol˘ este corect˘ utilizˆnd doar echipamentele a a a a proprii, ¸i tentative de spargere on-line, ˆ care adversarul contacteaz˘ serverul s ın a atacat, ˆ ıncercˆnd s˘ deschid˘ o conexiune cu parola supus˘ verific˘rii. Dac˘ o a a a a a a cheie nu poate fi spart˘ off-line, o lungime efectiv˘ (entropie) de 30–40 biti este a a ¸ suficient˘. O parol˘ bun˘, ˆ acest context, trebuie s˘ aib˘ doar 5–6 cuvinte, a a a ın a a sau, dac˘ contine cifre ¸i punctuatie, 10–12 caractere. a ¸ s ¸

6.4. Numere aleatoare
Un sistem criptografic utilizeaz˘ numere aleatoare, ˆ diverse scopuri: a ın • generarea cheilor, • generarea vectorilor de initializare sau a salt-urilor, ¸ • generarea numerelor unice (nonce). Numerele aleatoare generate trebuie s˘ fie uniform distribuite ¸i ina s ˆ plus fat˘ de alte aplicatii, numerele aleatoare dependente unul de altul. In ¸a ¸ pentru scopuri criptografice trebuie s˘ nu poat˘ fi prev˘zute sau influentate a a a ¸ de un eventual adversar. (Conditii similare trebuie ˆ ¸ ındeplinite de numerele aleatoare utilizate pentru jocuri de noroc cu miz˘ serioas˘.) a a Exist˘ dou˘ metode utilizabile pentru generarea numerelor aleatoare: a a • generatoare fizice, care functioneaz˘ pe baza unor fenomene fizice suficient ¸ a de aleatoare;

c 2008, Radu-Lucian Lup¸a s
186 6.4. Numere aleatoare

• generatoare de numere pseudoaleatoare, care produc numerele prin calcule (prin urmare, numerele generate sunt deterministe), dar algoritmul de generare ,,amestec˘“ suficient de bine numerele pentru ca ¸irul de numere a s rezultat s˘ par˘ aleator. a a

6.4.1. Generatoare fizice
Generatoarele fizice se ˆ ımpart mai departe ˆ generatoare fizice dedın icate, pe de o parte, ¸i dispozitive avˆnd alte scopuri, dar utilizabile pentru s a producerea de numere aleatoare, pe de alt˘ parte. a Dispozitivele dedicate se pot baza pe zgomotul termic al unui rezistor, dezintegrarea unei substante radioactive sau curentii de aer din interiorul ¸ ¸ carcasei unui harddisc. Dispozitivele dedicate sunt cele mai sigure ¸i relativ s rapide. Pe de alt˘ parte, utilizatorul este nevoit s˘ aib˘ ˆ a a a ıncredere c˘ proa duc˘torul dispozitivului l-a construit corect ¸i nu a instalat o ,,u¸˘ dosnic˘“, a s sa a permitˆndu-i acestuia s˘ prevad˘ numerele generate. ˆ plus, fiind produse ˆ ¸a a a In ın serie mai mic˘, dispozitivele sunt relativ scumpe. a Orice dispozitiv periferic prezint˘ un anumit grad de nedeterminism a ˆ comportamentul s˘u. De exemplu, s˘ m˘sur˘m timpul scurs ˆ ın a a a a ıntre momentele ˆ care sunt ap˘sate dou˘ taste consecutive ¸i s˘ exprim˘m printr-un ın a a s a a num˘r durata respectiv˘. Vom constata c˘ cifrele cele mai putin semnificative a a a ¸ ale num˘rului respectiv sunt destul de aleatoare. Prin anumite prelucr˘ri, a a se poate extrage de aici un ¸ir de numere aleatoare de calitate bun˘. Alte s a dispozitive utilizabile ˆ acest scop sunt: mausul, o videocamer˘ (eventual ın a ˆ ındreptat˘ spre o flac˘r˘ sau spre o ,,lamp˘ cu lav˘“), placa de retea (ˆ a aici a aa a a ¸ ıns˘ trebuie mult˘ grij˘, deoarece pachetele primite de placa de retea pot fi supravea a ¸ gheate de adversar), un ceas (de fapt, dou˘ ceasuri independente, exploatˆnd a a fluctuatia derivei relative a celor dou˘ ceasuri). ¸ a Dispozitivele nededicate au ca avantaj pretul mai redus ¸i riscul mai ¸ s mic de-a fi ,,m˘sluite“ de c˘tre fabricant. Debitul de biti aleatori produ¸i a a ¸ s variaz˘ ˆ a ˆ functie de utilizarea sistemului; ˆ particular, pentru un server a ıns˘ ın ¸ ın care nu admite utilizatori locali este dificil de obtinut un debit satisf˘c˘tor de ¸ a a biti aleatori. ¸

6.4.2. Generatoare de numere pseudoaleatoare
Un generator de numere pseudoaleatoare functioneaz˘ astfel: ¸ a ˆ fiecare moment t, generatorul are asociat˘ o stare intern˘ st . Starea • In a a intern˘ este o valoare dintr-o multime arbitrar˘ suficient de mare. a ¸ a • Atunci cˆnd este nevoie de un num˘r aleator, acest num˘r este obtinut a a a ¸ aplicˆnd o functie asupra st˘rii interne. Num˘rul produs este deci xt = a ¸ a a

c 2008, Radu-Lucian Lup¸a s
Capitolul 6. Metode ¸i protocoale criptografice s 187

f (st ), unde f este o functie fixat˘. ¸ a • Dup˘ producerea unui num˘r aleator, starea intern˘ este modificat˘, a a a a pentru ca urm˘torul num˘r s˘ nu mai aib˘ aceea¸i valoare. Actua a a a s alizarea st˘rii interne se face pe baza unei a doua functii, g. Avem a ¸ deci st+1 = g(st ). Dac˘ functiile f ¸i g ,,amestec˘“ suficient de bine bitii, ¸irul pseua ¸ s a ¸ s doaleator produs, (xt )t∈IN are propriet˘¸i statistice suficient de apropiate de at numerele cu adev˘rat aleatoare. a De remarcat c˘ ˆ a ıntregul ¸ir depinde de valoarea st˘rii initiale s0 a s a ¸ generatorului; pentru aplicatii non-criptografice ¸i pentru teste, acest lucru ¸ s este bun deoarece face comportamentul programelor reproductibil. De asemenea, trebuie remarcat c˘, deoarece, ˆ practic˘, multimea a ın a ¸ st˘rilor interne posibile este finit˘, mai devreme sau mai tˆrziu starea intern˘ a a a a se repet˘ ¸i, ca urmare, ˆ a s ıntregul ¸ir pseudoaleator este periodic. Perioada s ¸irului pseudoaleator este cel mult egal˘ cu num˘rul de st˘ri interne posibile. s a a a Pentru o functie g cu comportament apropiat de o functie aleatoare sau de ¸ ¸ o permutare aleatoare, perioada ¸irului este de ordinul r˘d˘cinii p˘trate din s a a a num˘rul de st˘ri interne posibile. a a Pentru scopuri criptografice, sunt necesare cˆteva propriet˘¸i suplia at mentare: • Un adversar care cunoa¸te functiile f ¸i g utilizate ¸i cunoa¸te o parte s ¸ s s s dintre elementele ¸irului pseudoaleator (xt ) s˘ nu poat˘ calcula alte eles a a mente ale ¸irului pseudoaleator. O conditie necesar˘ pentru aceasta este s ¸ a ca functia f s˘ fie rezistent˘ la preimagine. O alt˘ conditie necesar˘ este ¸ a a a ¸ a ca multimea st˘rilor interne posibile s˘ fie suficient de mare pentru ca ¸ a a explorarea ei prin fort˘ brut˘ s˘ nu fie posibil˘ practic. ¸a a a a • Starea initial˘ s0 trebuie s˘ fie creat˘ pornind de la un generator fizic. ¸ a a a ˆ caz contrar, starea initial˘ este previzibil˘ pentru un adversar ¸i, ca In ¸ a a s urmare, ˆ ıntregul ¸ir este previzibil. s • Este bine ca, dac˘ un adversar reu¸e¸te s˘ obtin˘ starea intern˘ st , s˘ nu a s s a ¸ a a a poat˘ calcula numerele pseudoaleatoare deja generate (adic˘ x0 . . . xt−1 ). a a Aceast lucru este util pentru ca, dac˘ un adversar reu¸e¸te s˘ spagr˘ a s s a a un calculator, s˘ nu poat˘ decripta comunicatiile anterioare. Pentru a a a ¸ ˆ ındeplini aceast˘ cerint˘, este necesar ca ¸i g s˘ fie rezistent˘ la preimaga ¸a s a a ine. Generatoarele de numere pseudoaleatoare utilizate ˆ practic˘ nu se ın a bazeaz˘ pe generatoare fizice doar pentru starea initial˘ s0 , ci modific˘ starea a ¸ a a

c 2008, Radu-Lucian Lup¸a s
188 6.4. Numere aleatoare

intern˘ ¸i ˆ timpul function˘rii generatorului, pe m˘sur˘ ce obtin biti aleatori a s ın ¸ a a a ¸ ¸ de la generatorul fizic. Acest lucru are scopul ca, dac˘ un adversar reu¸e¸te s˘ a s s a obtin˘ starea intern˘ la un moment dat sau s˘ afle starea intern˘ initial˘, s˘ ¸ a a a a ¸ a a nu poat˘ prevedea decˆt o mic˘ parte dintre numerele aleatoare produse ultea a a rior. De asemenea, starea initial˘ nu este generat˘ la pornirea calculatorului, ¸ a a ˆ ıntrucˆt, de obicei, ˆ acel moment nu sunt disponibili prea multi biti aleatori a ın ¸ ¸ de la generatoarele fizice. Starea intern˘ este salvat˘ la oprirea calculatorua a lui, ˆ ıntr-un fi¸ier ce nu poate fi citit de utilizatorii obi¸nuiti, ¸i reˆ arcat˘ la s s ¸ s ınc˘ a pornirea calculatorului.

6.4.3. Generatoare utilizate ˆ practic˘ ın a
Sistemele de operare moderne ofer˘ utilizatorului generatoare cripa tografice de numere aleatoare gata implementate. Acestea sunt disponibile astfel: • Pe unele sisteme de tip unix, fi¸ierul special /dev/random ofer˘ numere s a aleatoare de la un generator fizic bazat pe actiunile utilizatorului. De ¸ asemenea, fi¸ierul special /dev/urandom ofer˘ numere pseudoaleatoare s a utilizabile pentru aplicatii criptografice. ¸ • Sistemul Windows ofer˘ functia CryptGenRandom(), declarat˘ ˆ fi¸ierul a ¸ a ın s antet wincrypt.h. De remarcat c˘ utilizarea unor functii non-criptografice pentru genera ¸ area numerelor aleatoare, cum ar fi rand() sau random() din biblioteca C standard este extrem de riscant˘. a

6.5. Autentificarea utilizatorilor
Prezent˘m ˆ continuare cˆteva utiliz˘ri ale metodelor criptografice a ın a a ˆ autentificarea utilizatorilor. ın

6.5.1. Stocarea parolelor
Un sistem de operare are nevoie s˘ verifice parolele utilizatorilor ce a doresc s˘ se conecteze. Solutia trivial˘ este ¸inerea unei baze de date cu a ¸ a t corespondenta nume, parol˘. Aceast˘ solutie (stocarea parolelor ˆ clar) are un ¸ a a ¸ ın dezavantaj: un adversar care reu¸e¸te s˘ sparg˘ sistemul sau un administrator s s a a indiscret poate obtine direct parolele tuturor utilizatorilor. ,,Recolta“ este ¸ valoroas˘ dac˘ utilizatorii folosesc acelea¸i parole ¸i pe alte sisteme. a a s s Oˆ ımbun˘t˘¸ire a securit˘¸ii se face prin ,,criptarea“ parolelor. De a at at fapt, nu este vorba de criptare, ci de transformarea parolei printr-o dispersie

c 2008, Radu-Lucian Lup¸a s
Capitolul 6. Metode ¸i protocoale criptografice s 189

criptografic˘ h rezistent˘ la preimagine. ˆ baza de date este stocat˘ ˆ locul a a In a ın parolei p transformata parolei s = h(p). La conectarea unui utilizator, sistemul cere parola utilizatorului ¸i s verific˘, pentru parola introdus˘ p , dac˘ h(p ) = s. Deoarece h este rezistent˘ a a a a la preimagine, probabilitatea ca un adversar, care nu cunoa¸te parola p, s˘ s a g˘seasc˘ o parol˘ p satisf˘cˆnd h(p ) = s este neglijabil de mic˘. a a a a a a Solutia are ˆ continuare o sl˘biciune, legat˘ de faptul c˘ un adversar ¸ ın a a a care obtine s poate obtine p printr-un dictionar creat off-line: adversarul ia o ¸ ¸ ¸ multime de parole ¸i, pentru fiecare parol˘, calculeaz˘ ¸i memoreaz˘ dispersia, ¸ s a as a obtinˆnd astfel un dictionar care asociaz˘ dispersiei parola corespunz˘toare. ¸ a ¸ a a ˆ Inarmat cu un astfel de dictionar, un adversar care obtine s poate reg˘si foarte ¸ ¸ a rapid p dac˘ p era ˆ dictionarul ˆ a ın ¸ ıncercat. Metoda de mai sus poate fi ˆ ımbun˘t˘¸it˘, ˆ a at a ımpiedicˆnd crearea unui a dictionar de dispersii ¸i obligˆnd adversarul s˘ fac˘ toat˘ munca de spargere ¸ s a a a a a parolelor dup˘ obtinerea lui s. Conform noii metode, la initializarea parolei, a ¸ ¸ sistemul genereaz˘ un num˘r aleator r ¸i scrie ˆ fi¸ierul de parole perechea a a s ın s (r, s) unde s = h(p · r). Verificarea parolei p dat˘ de utilizator se face testˆnd a a dac˘ s = h(p · r). Un adversar care ar dori s˘ fac˘ un dictionar ar avea nevoie a a a ¸ de un num˘r de dispersii egal cu produsul dintre num˘rul de parole de ˆ a a ıncercat ¸i num˘rul de valori posibile pentru r. s a Not˘m c˘, indiferent de mecanismul folosit la stocarea parolelor, a a un adversar ce a spart un sistem, sau un administrator indiscret, va putea ˆ ıntotdeauna s˘ obtin˘ parola cu care se conecteaz˘ un utilizator la acel sistem. a ¸ a a De exemplu, adversarul poate ˆ ınlocui programul obi¸nuit de login cu un pros gram care scrie undeva parola ˆ clar. Schemele de mai sus protejeaz˘ doar ın a parolele neutilizate dup˘ momentul spargerii sistemului. a Mai not˘m c˘, ˆ vederea transmiterii parolei prin retea, transform˘a a ın ¸ a rile descrise mai sus nu pot ˆ ınlocui criptarea ,,adev˘rat˘“. Dac˘, ˆ vederea a a a ın autentific˘rii utilizatorului, serverul cere h(p) (ˆ loc de p), atunci h(p) devine a ın efectiv parola de conectare prin retea ¸i orice adversar care cunoa¸te h(p) poate ¸ s s impersona utilizatorul, f˘r˘ a avea nevoie de p aa

6.5.2. Parole de unic˘ folosint˘ a ¸a
O parol˘ de unic˘ folosint˘ (engl. One Time Password ) este o parol˘ a a ¸a a care este acceptat˘ de sistem ca fiind parol˘ valid˘ cel mult o dat˘. a a a a Una din aplicatiile parolelor de unic˘ folosint˘ este conectarea la un ¸ a ¸a sistem, ˆ prezenta unui adversar pasiv, f˘r˘ a recurge la criptare. Not˘m c˘ ın ¸ aa a a aplicativitatea este foarte limitat˘: a • comunicatia nefiind criptat˘, metoda este inaplicabil˘ dac˘ datele trans¸ a a a

c 2008, Radu-Lucian Lup¸a s
190 6.5. Autentificarea utilizatorilor

mise trebuie s˘ r˘mˆn˘ secrete; a a a a • un adversar activ poate ,,deturna“ conexiunea dup˘ deschidere ¸i poate a s da orice comenzi ˆ numele utilizatorului conectat. ın Unul dintre sistemele de parole de unic˘ folosint˘ este descris ˆ cona ¸a ın tinuare. ˆ cele ce urmeaz˘, h este o dispersie rezistent˘ la preimagine, iar In a a hn (x) = h(h(. . . h(x) . . .)). 1. Utilizatorul alege o parol˘ primar˘, de lung˘ durat˘, p. a a a a 2. La initializarea parolei pe sistem, sistemul genereaz˘ ¸i afi¸eaz˘ un num˘r ¸ as s a a aleator, nesecret, r. De asemenea, sistemul afi¸eaz˘ un num˘r de iteratii, s a a ¸ n, preconfigurat (uzual n = 10000). 3. Utilizatorul calculeaz˘, cu ajutorul unui dispozitiv de calcul de ˆ a ıncredere, pn = hn (p · r). Apoi transmite pn sistemului pe care dore¸te s˘-¸i cons as figureze autentificarea. 4. Sistemul memoreaz˘ ˆ baza de date ansamblul (pn , n, r). a ın 5. La prima conectare, sistemul afi¸eaz˘ r ¸i n − 1 ¸i cere utilizatorului s a s s s˘ calculeze ¸i s˘ introduc˘ parola de unic˘ folosint˘ pn−1 = hn−1 (p · r). a s a a a ¸a Sistemul verific˘ parola de unic˘ folosint˘ testˆnd dac˘ h(pn−1 ) = pn . a a ¸a a a Apoi sistemul ˆ ınlocuie¸te ˆ baza de date (pn , n, r) cu (pn−1 , n − 1, r). s ın Un avantaj al sistemului este faptul c˘ parola primar˘ p este cunosa a cut˘ doar de c˘tre dispozitivul utilizat pentru calculul parolelor de unic˘ a a a ˆ particular, calculatorul care autentific˘ utilizatorul nu obtine folosint˘. In ¸a a ¸ niciodat˘ ¸i nici nu poate deduce parola primar˘. Administratorul unui astas a fel de calculator nu poate impersona utilizatorul pe un alt calculator pe care utilizatorul utilizeaz˘ aceea¸i parol˘ primar˘. a s a a Dezavantajul sistemului, fat˘ de parola clasic˘, este c˘ utilizatorul ¸a a a are nevoie de un dispozitiv de calcul ˆ vederea calcul˘rii parolelor de unic˘ ın a a folosint˘. Proceduri de lucru pentru utilizator pot fi: ¸a • Utilizatorul ruleaz˘ local un program pentru calculul parolelor de unic˘ a a folosint˘. Aceast˘ metod˘ este aplicabil˘ doar dac˘ utilizatorul are ¸a a a a a deplin˘ ˆ a ıncredere ˆ calculatorul local. ın • Utilizatorul calculeaz˘, cu ajutorul unui calculator de ˆ a ıncredere, urm˘toaa rele 4–5 parole de unic˘ folosint˘ ¸i le noteaz˘ pe hˆrtie. Ca de obicei, a ¸a s a a scrierea parolelor pe hˆrtie implic˘ un risc, ˆ a aflarea parolelor de c˘tre a a ıns˘ a un adversar nu permite decˆt deschiderea unui num˘r mic de sesiuni ¸i a a s mai ales nu permite aflarea, de c˘tre adversar, a parolei primare. a • Utilizatorul folose¸te un dispozitiv de calcul dedicat. Aceasta este metoda s cea mai sigur˘, dar ¸i cea mai scump˘. a s a

Retele de calculatoare ¸ Protocoale Radu-Lucian Lup¸a s .

¸ s Subsemnatul. Radu-Lucian Lup¸a. publicat˘ la ¸ a a¸ ¸ a Casa C˘rtii de Stiint˘. cu conditia atribuirii corecte autorului ¸i ¸ a¸ ¸ ¸ s a p˘str˘rii acestei notite. ISBN: 978-973-133-377-9.cs. Radu-Lucian Lup¸a. acord oricui dore¸te dreptul de a copia s s continutul acestei c˘rti. ˆ 2008. integral sau partial. a a ¸ Cartea poate fi desc˘rcat˘ gratuit de la adresa a a http://www.c 2008.ro/~rlupsa/works/retele.pdf .ubbcluj. Radu-Lucian Lup¸a s 192 Aceasta este editia electronic˘ a c˘rtii Retele de calculatoare. a¸ ¸ ¸a ın Drepturile de autor apartin subsemnatului.

.

.

. . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . .2. . a 2. . . a 2.1 Problema codific˘rii informatiei pentru un canal discret .3 Lungimile cuvintelor unui cod prefix . ın 2. . . . . . . .2 Coduri cu proprietatea de prefix . s 2. . . . . . .3. ¸ 1. . . . . . 2. . .3. . . . . . . . . . . . . . .2 Lungimea medie a cuvintelor de cod .4. . . . . .2 Principalele elemente ale unei retele de calculatoare . . . . . 2. . . .4. . . . . . . . . . . . . . . . . . . . . . . . . . .c 2008. . . . . . .4. . . . . . . 2. . . . . . . . .2 Principiile codurilor detectoare ¸i corectoare de erori . . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . s 2. . . . . . . .1 Reprezentarea arborescent˘ a codurilor prefix . . ¸ 2. . . . . . . . . . . . .3 Cˆteva coduri detectoare sau corectoare de erori . . . . . . . s 2. . . . .2 Decodificarea ˆ cazul codurilor prefix .1 Serviciile oferite de retea . . . . . . . . . . . . . . . . . . . . . .4 Coduri detectoare ¸i corectoare de erori . . . . . . . . . .3. . .3 Coduri optime . .3 Generarea codului optim prin algoritmul lui Huffman 2. . .2 Paritate pe linii ¸i coloane . . . . . . . . . . . . . . . . . . . .3. . . . . . . . . . . . ¸ 1. .4. . . 2.4. . . . .1 Modelul erorilor . . . . . 2. . . . . . . . . . . . . . . . . . . . . . . . .4 Coduri detectoare ¸i corectoare de erori ˆ alte domenii s ın 5 13 15 15 20 22 25 26 29 29 31 33 39 40 41 44 50 51 52 53 55 55 55 56 57 2 . .3 Premise generale ˆ elaborarea ¸i implementarea protocoalelor ˆ retele ın s ın ¸ . . .1 Cantitatea de informatie . . . .3 Coduri polinomiale . .2. 2. . . .3. . .1 Bitul de paritate . Notiuni de teoria informatiei ¸ ¸ 2. . a ¸ 2. . . .3. . . . . . s 2. . Radu-Lucian Lup¸a s 195 Cuprins Principii Cuprins Prefat˘ ¸a 1 Introducere 1. . .4 Compresia fi¸ierelor . . . . . 2. . . . . .4. . . . . . .

. . . . . . . . . .5. . . . . .2. . . . . . . . 3. . . . a ¸ 3. . . . . . .5. . . .5.4 Zgomotul . s 3. . . . . . . . . . . . . . . . . . .c 2008. . . . . . . . . . . . . .5 Sc˘derea puterii cu distanta . . . . . . . . . . . . . .3. . .1 Constructia cablului . . . . .4 Transmisia prin perechi de conductoare . .4 Capacitatea maxim˘ a unui canal de comunicatie . . . . . . .5.3 Codificarea informatiei prin semnale continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ¸ a a 3. . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . .3 Tipuri de antene . . . . . . . .1.6 Transmisia optic˘ . . . ¸ as a 3. . . . . .5. . . . . . . .2 Fiabilitatea .2 Analiza transmiterii semnalelor cu ajutorul transformatei . . . . . . . . . . . . . . .5. . . . . . . . . . . . . . . . . . .6 Emisia directionat˘ ¸i polarizat˘ . . . . . . .5.2 Polarizarea . . . . . . . . . . . . . . . . . . a 3. . . . . . 3. . . . . . 3. . . . . . . . . . . . . . .5.2 Propagarea semnalului optic . .1 Constructia mediului .5. . . . . . . . . . 3.1 Obstacolele . . . . .2. . . . . . . . . . .5 Particularit˘¸i ale sistemelor de comunicatie prin radio at ¸ 3. . . . ¸ 3. . . .6. . . . . . . . . . . . . . . . . .5 Divergenta undelor . . .5.2 Transmiterea semnalelor . . . . . . 3. . . . . . . . . ¸ 3. Cuprins 59 59 60 60 62 65 65 68 71 71 72 72 74 75 76 77 78 78 79 79 80 80 80 81 83 83 83 83 84 84 85 86 86 86 88 88 89 89 89 90 91 91 91 . . . . . . . . . . .4 Interferenta undelor . . . . . . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . .6. . . . .3 Difractia . . . . . .1 Modific˘rile suferite de semnale . . . . . . . . . . . . . .5. . . . . . . . .5. . . . . . . . . . . . . . . 3. . . . .1 Polarizarea . . . . . .1 Problema transmisiei informatiei la nivelul fizic . . . . . . . . . . .2. . .3. .3. . . . . . . . . . . . . . . . . ın ¸a 3. . . . . . . . . . . . . . . . . . . . . . . . . . ¸ 3. ¸ s 3.6. . . . . . .2. . . .6. . . . . .2 Modulatia . . . . . . . . . . ¸ 3. . . . . . . . . . .5. . . . . . . . . .1 Conectarea fibrelor optice . . . . ¸ 3. . . . . 3. . . ¸ 3.2 Antene . . . . 3. . 3. . . . .5. . . .3. ¸ a 3. . . . . . . a 3. . .4. . . . . . . . .5. 3. . . . . a 3. . . . . . ¸ 3. .5.3 Raza de actiune a unei leg˘turi radio . . . . . . . . . . . . 3. . . . . . . . . . . . .3 Leg˘tur˘ magistral˘ . . . . . . . Fourier . . .2.2 Propriet˘¸i ale mediului . . . . . . . . . . . . . . . . . . . . . . . . .3. . . . . 3. . . . . . . . . . . . . . . . . .5. . . . . . . . . . 3. . . . . . .5. . . . . . . . . . . . . . . . . . . . .4. . . . . .1 Moduri de propagare . . . .3. . . .2 Absorbtia ¸i reflexia . . . . . . . . . at 3. .3. . . . . . . . . . . . . . . . . .5 Transmisia prin unde radio .5. . . . . .3. . .1. a a a 3. . . .3.1 Scheme de codificare . .1 Propagarea undelor . . . . . . . . . . . . .5. 3. . . . . . . . 3. . . . . . . . . . . . . .1.3 Securitatea . . . . . . Radu-Lucian Lup¸a s 196 3 Nivelul fizic 3. . . .5. . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Spectrul radio ¸i alocarea lui . . .2 Linia orizontului .3 Multiplexarea ˆ frecvent˘ .5. . . . . . . . . . . . . . .4 Considerente practice . . . a ¸ 3. . . . . . . . . . . . . . .5. . . . . . . . .4. . ¸ 3. 3. . 3. . . . . . . . . . . . 3. . . . .3 Utilizarea satelitilor artificiali ai P˘mˆntului . . . . . . .1. . . . . . . . . . .1 Directivitatea . . .1.5. . . .4. .2. . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. . . . . . .1 Topologia leg˘turii . . . . . .

. . . . . .3 Formarea (limitarea) traficului . . . . 4. . . . . . ın ¸ 5.1 Asigurarea confidentialit˘¸ii . . . . . . . . . . . . . . .2 Calculul drumurilor optime prin schimb de informatii de distant˘ ¸ ¸a 5. .1. . . . . . . . . . . .5 Multiplexarea ˆ timp . . . a 5. . . . . 4. . . .1 Calculul drumurilor cu informatii complete despre graful retelei ¸ ¸ 5. . . . . . . . . . . . . . .4 Controlul fluxului . .1 Principiul confirm˘rilor pozitive ¸i retransmiterilor .4. . . . . . . .4 Rezervarea resurselor .1 Protocoale bazate pe asigurarea unui interval exclusiv de emisie 4. .1 Alegerea pachetelor de transmis . . . a 5. . .2 Caracteristici ale mediului . . . . ın ¸ 5. . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . .2. . . ın Nivelul retea ¸i nivelul transport ¸ s 5. . . s 4. . 5. .4 Metode particulare de dirijare . . . . . . . . . .2.3 Considerente practice . . . . .1. . . . . .2. .1 Retransmiterea ˆ retele bazate pe datagrame . . . . . . . . . . . . . . . . 5 . . . . . . . . . . . . . . . . . . . . . . s 4. . ın 4. . . . . . . . . . . . . . . . . . . . . .2 Refolosirea cheilor .1 Detectarea ¸i corectarea erorilor .3 Functionarea la trafic ridicat . . . Radu-Lucian Lup¸a s Cuprins 3.3 Mecanism combinat cu retransmiterea pachetelor pierdute . . . . . . . . . . . . . . s 4. . . . . .4. . . . . . . .5 Metode de difuziune . . . . . . . . . . . . . . . . . 5. .1 Retransmiterea datelor de c˘tre nodurile intermediare . . . . . . . . . . . . . . . 5. . . . . . . . . . . . . . . . . .3. . . . .2 Controlul congestiei . . . . . . . . . . . . . 5. .3. . . . . . . . . . . . .4. . . .1 Introducere . . ¸ 5. . . . . . .3. . . . . . . . . 4. . . . . . .3 Dirijarea ierarhic˘ . . . . . . . . . . .3 Retransmiterea pachetelor pierdute . . . . . . . . . . . . . . . . 5. . . . . Inv˘t a 5. . . . . . . ın a 3. .6. ¸ at 6. 5. . . . . . . .2 Trimiterea ˆ avans a mai multor pachete .3. . . 6. . . .2. . . .2. . . . .3 Problema spargerii unui cifru 197 92 92 93 95 96 97 98 99 101 102 103 108 109 114 115 115 116 117 119 120 122 122 125 127 128 136 139 139 140 140 141 142 143 144 145 146 147 149 151 151 154 155 . ¸ 4. . . . . . . .1 Cereri de suspendare ¸i de continuare . .4. . . . .2. .4. . . . . . . . . . . . . . . . . . . 5. . . . . . .2.6. . . . . . . .1 Inundarea . .2 Algoritmi de dirijare . . . 5. . 5. . . .3 Multiplexarea ˆ lungimea de und˘ . . . . . . . . . . . 4 Nivelul leg˘turii de date a 4. . .1. . 6. . . . .4 Nivelul transport . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . . . . . .2. . . . . . . . . .3 Protocoale mixte . . . . . . . . . . . .3 Spatiul numerelor de confirmare . . . . .2. . . .1. . . . . . . . . . . . 3.2 Controlul accesului la mediu . . . . . . . .2. . . . . .3. . . . . ¸ Metode ¸i protocoale criptografice s 6. . . . . . . . .2. . . . . . . . . . . a s 4. . . .2 Retransmiterea ˆ retele bazate pe conexiuni . . . . . . . . .c 2008. . . . . . . . . .3. . . . . . . . . . . . . . . . .2 Protocoale bazate pe coliziuni ¸i retransmitere . . . .3. . .5 Interconectarea retelelor . . . . . .2. . . . . . .2 ˆ a¸area rutelor din adresele surs˘ ale pachetelor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4. . . . . . . . . . . . . . .6. . . . . 6 . .2 Mecanismul pas cu pas . . . . . . . . . .

. . . . . . . . . . . .3.2 Autentificarea mesajelor . . . . . .3 Atacul man-in-the-middle . 6. .3 Reprezentarea pe biti a numerelor ˆ ¸ ıntregi . . . . . .2. . . . . . .3. . . . . . . . . . . . . . . . 6. . . . ¸ 7. . .2 Reprezent˘ri pe octeti . . . . . . . .5. . . . . . . . . . . . . .1. . . . . . .2. . . . . . .1 Functii de dispersie criptografice .3. . . . . . . . . .3. . . . . . . . . . . . .5 Combinarea cript˘rii. . . . . . . . . .2 Functii de dispersie cu cheie . .2 Parole de unic˘ folosint˘ . .1. . . 6. . . . . . . . . s 7. . . . . . . . . . . . . ¸ ¸ 7. .1. . . . . . . . .2. . . . . . . . .5. . . . . 195 203 203 203 204 204 205 206 206 208 208 210 212 214 . . . . . .1 Bitul .1. . . . .1. . . . . . . .c 2008. . . . . . . . . . . . . . .1 Utilizarea functiilor de dispersie . . . . . . . . . . . . . . .2 Stabilirea cheilor ˆ prezenta unui adversar activ .2. a ¸a Cuprins . . . . . .4. . . . . . . . . . .1 Probleme privind reprezentarea numerelor ˆ ıntregi . . . .3. . . . ın ¸ 6. . .3. . . . . . . . . 6. . . . . . . . .4 Numere aleatoare . . . . . . . . 7. . . . . . . . . . . . . . . . . . . . . 7. .1. . ¸ 6. . . . . 7. . . ¸ 6. . . . . . .4. . . a a 6. .1 Octeti . 157 163 164 165 166 167 168 169 171 173 173 176 176 177 178 178 180 182 183 185 186 186 188 188 188 189 Protocoale Cuprins 7 Codific˘ri de interes practic a 7. . .3 Stabilirea cheilor . . . .2. . . . ¸ ın a 6. . . . . . . . Radu-Lucian Lup¸a s 198 6.1. . . .1. . . . . .3 Generatoare utilizate ˆ practic˘ . . . . .1. . . . . . . .5 Criptografie asimetric˘ (cu cheie public˘) . .1 Stabilirea cheilor ˆ prezenta unui adversar pasiv . . . . . .3 Reprezentarea numerelor pe un num˘r ˆ a ıntreg de octeti ¸ 7. . . . . . . . . . . . . . . . . . . . . . autentific˘rii ¸i verific˘rii prospetimii a a s a ¸ 6. .1. . . . ¸ ¸ 7. . . . . . . . . . . . . . . .3 Stabilirea cheilor cu ajutorul unui tert de ˆ ¸ ıncredere . a 6.1. . . . ın a 6. . . . . . . .2. . . .2. . . . .1.3 Semn˘tura digital˘ . . . .1. .4 Certificarea cheilor publice . .1 Reprezent˘ri pe biti . . . . . . . . . . . . . . . . 6. . . 6. . . 6. . . . .5 Autentificarea utilizatorilor . . 6. . ¸ 6.4.1. . . . . . . . . . . . .4 Reprezentarea numerelor pe un ¸ir arbitar de biti . .2 Siruri de biti . . 6. . .2. . . . . . . .2 Generatoare de numere pseudoaleatoare . . . . .2. .1. . . . . . . . . .1 Generatoare fizice . .1 Stocarea parolelor . . . . . . . . . . . . . .3 Probleme privind reprezentarea lungimii ¸irurilor . . ¸ 6. . . . . . . . . . . . . . . . 6. .3. . a ¸ 7. . . . . . . . . . .4 Algoritmi de criptare utilizati ˆ practic˘ .2 Siruri de octeti . . . . . . . 6. . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ın ¸ 6. . .1 Stabilirea cheilor prin criptografie asimetric˘ . . . . . . . . s ¸ 7. . . . . .2.5 Transportul prin utilizatori umani . .5. . . . . . . . . . . . . . .1.1 Utilizarea criptografiei asimetrice .4 Alte metode de reprezentare a numerelor ˆ ıntregi . . . . . . . 6. . . . . . . . . . .1. . . . 6. . a ¸ 7. .1. . . . . . . . . .3. . . . . . . . . . . . .1.1. . . . . .2 Stabilirea cheii prin metoda Diffie-Hellman . . . . . . . . a a 6. . . . . .4 Verificarea prospetimii mesajelor . . . . . . . . . . . .

. . . . . . . . . . . . .3 Codific˘rile UTF-32 . . . s 7.3. . . . . ¸ 8. . . . .3. . . . . . . . . . .3. . . . . . . . . . 8. . ¸ 8.1. . . . . . . . . .3. . . .3. . . . . . . . . . . . . . . . . . . . . . . . . ¸ 8. . . . . . . . .8 Functiile getsockname() ¸i getpeername() ¸ s 8. .1 Comunicatia prin conexiuni . . . Radu-Lucian Lup¸a s Cuprins 7. . . . . . . . . . . . . . .3. .1.2 ISO-8601 ¸i RFC-3339 .1 Functia socket() . a 7. . . . . . . .2. . . . . . a 7. . . . . . .4 Exemple .2 Obiectivele ˆ alegerea reprezent˘rii timpului ˆ calculator ın a ın 7. . . . . . . . . . . . . . . . . ¸ 8. . .4.4. . . . .3. . . . .3. . . . . .1 M˘surarea timpului . . . . . . . . . . .2. . . ¸ s 8.1. . . .1. . .3 Functia bind() . . a 8. . .1. . . . . . . . . . . . . . . .3 Codific˘ri bazate pe secvente de evitare . . . . . . . . . . . . . . . . .3.1. . . . ın 7. . . . . . . . . . . . . ¸ 8. . .3. . a 8. . . . . . . a 7. . .6 Formatul adreselor . . . . . . . . . . . . ¸ 8. . . . . . . . . . ¸ 8. . . . . . . . . . . . .1 Codificarea ASCII . . . . . . . ¸ s 8.2 Comunicatia prin datagrame . 7. . . ¸ a 8. . . . . . . . . . . . . . . . . . . . .1. . .c 2008. . . . . . . . . . . .3. . . . . . .3. . . . . . .3 Comunicatia propriu-zis˘ . . . . . . . .3. . . . . . . . .1. . . . .3. . . . . .2. . . . a 7. . . . . . . . . .1.3 Codific˘rile Unicode . . . . . . . . . . . . . . . . . . .1. . a ¸ 8 Programarea ˆ retea — introducere ın ¸ 8. . . . . . . 7. . . . . . 199 215 216 217 218 220 220 221 221 222 224 225 225 226 227 227 228 228 229 229 231 231 232 233 233 234 234 235 237 237 237 238 239 239 240 242 242 243 245 245 246 246 249 252 . . . . . . .1 Codificarea UTF-8 . . . .2 Formatarea datelor . . . . . . . . . . . .10 Functiile shutdown() ¸i close() . . . . . . . . . . . . . . . . . . . . . . . . ın a 7. . . . .1. . .1. . . . . . . . . . . . . .1 Comunicare prin conexiune .1 Codificarea hexazecimal˘ . .2 Codific˘rile ISO-8859 . .4 TAI 64 . . .2 Deschiderea conexiunii de c˘tre server . . . . a 7. . s a 7. . . . .3.1 Formatul utilizat de po¸ta electronic˘ . .4. . . . . . . . 8. .2 Functia connect() . .3. . . . . . . . . . s 7. . accept() . . . . .3. . . . . . . . . . . . . . . . . . .2 Codific˘rile UTF-16 . . . . . . . . . . .1. . . . . . . . . . . .1. . . . . . . ¸ s 8. .1. . . . . . . . . . . . . .3. . .3. . . . . . .3. . . . . . . . . .2 Comunicare prin datagrame . . . . . . . . . . . . . . . . a 7. . . . . . .3 Principalele apeluri sistem . . . . . . . . . . .5 Functia accept() . . . . . . . . . . . . . . . 8. .2 Codificarea textelor . . . . . . . . . . . .3.1. . . . . . . . . . . . . . .1. . .3. . . . . . . . . .1. . .2 Codificarea ˆ baza 64 . .4. . . . . . .4 ˆ Inchiderea conexiunii . . . . . . . . . . .1. . . . . . . . . . . . .1 Deschiderea conexiunii de c˘tre client . . . . . 8. .1. .1 Interfata de programare socket BSD . . .3 Timpul POSIX . . . . . a 7. . 7. . . . . . . . . . . . . . . . . . . .2. . .3. . . . . .1. . . . 7. ¸ 8. . . . . .4 Recodific˘ri . . . . . . .3. 7. . 8. . . . . . . .1. . .1. . 8. . . . . .2. . . . . . . . .1. . . . . . . . .3. . . . .3 Reprezentarea datei ¸i orei . . . . . . . .4 Functia listen() . . . .7 Interactiunea dintre connect(). . . . . . . . . . listen() ¸i ¸ s 8. . . . . . . .1. . . . . . . . .9 Functiile send() ¸i recv() . . . . . . . . . . . . .3 Formate utilizate ˆ practic˘ . . . . . . . . . .2. . . .11 Functiile sendto() ¸i recvfrom() . . . . . . . .4. . . .

. . ¸ 10. . . . . 10 Internetul 10. . .2. . . . .2. . .2. . . . . . .1. . . . . . . . . . . . s 9.3 Probleme de concurent˘ ˆ comunicatie . . . . . . . . . . .2. .4 Pointeri . . . . . . . . . . . . . . . . 10. . .3 Trunking . .2. . . . . . . . . . . . . . . . . . 8. . .1. . . . .1.1. . . . . ¸ s 8. . . . .5 Retele virtuale (VLAN) . . . . . . . Radu-Lucian Lup¸a s 200 8. . . . . .3 Generarea pachetelor beacon . . . . .2. . . . . . . . . . . . .2 Bazele dirij˘rii pachetelor IP . . . . . .1. . . . . . .1 Retele IEEE 802. . .2.2. . . . . . . . .4 Repetoarele ¸i comutatoarele . . . . . . . . . ¸ 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . ¸ s ¸ 10.2. . . . .1. . . . . . . . . . . . . . .3 Tabela de dirijare . . . ¸ 9. . . . . . . . . . .6. . . . . . 9. .1. . . . . . . 252 252 254 255 257 257 257 258 260 263 263 266 272 274 277 279 279 279 280 280 281 281 282 283 283 285 286 286 291 291 292 293 294 294 295 296 298 298 300 300 301 301 Retele IEEE 802 ¸ 9.1 Leg˘turi punct la punct prin perechi de conductoare a 9. .1. . . . . .4 Leg˘turi redundante . . . . . . . . . . . . . . . . . . . . . . .2 Accesul la mediu .2 Retele IEEE 802.2 Scrierea prefixelor de retea .1. . . . . . . . . . . . . .3.6 Facilit˘¸i avansate ale switch-urilor . . . . . . . . .4.1. . . . . . . . . . . . .1. . . . . . .11 (Wireless) . . . 8. . . . . . . . . . . . . .2 Leg˘turi prin fibre optice .2. . . . . . . . . . . . .2. . a a 9. . .11 .1.2. . . . .2. . . . . . . . . . . . . .2 Protocolul IP . . . . . .2. . . . . . . . . . . . . . . . . . .2. . .2. . . . . . a 9. . . . . . . . . .1 Scrierea adreselor IP . . . .1 Arhitectura retelei . . 8.6. . . . .3 Probleme de robustete ¸i securitate . . . . . 10. . . . . . .3 (Ethernet) . . . . . . . . .1. . . .1 Structura pachetului IP . . . . . . . . . . . . . . . . .4 Probleme privind costul apelurilor sistem 8. . . . .1. 9. . . . . . . . . . 10. . . . . . . . .2. . .2. . . . . . . . . . .1 Switch-uri configurabile . . . . . .6. . 9. .2. . . 8. . . . . a 10. . . . . . . . . . . .1. . . . . a 9. . . . . . . Cuprins . . . .3 Scrierea ca text a adreselor ¸i prefixelor . . . . . . . . . ¸ 10.2. . . . . . .6. . . . . . . a 9. . . . . . . . . . .3 Variabile compuse (struct-uri) . . ¸ 9.3 Leg˘turi prin cablu magistral˘ . . . . . . . . . . . . . . .1 Alocarea pe utiliz˘ri . . . s 10. . .2.1 Arhitectura retelei . . . . .4 Securitatea retelelor 802. . . .c 2008. . . . . 10. . . ¸a ın ¸ 9 . . . . . . . . . . . . . . .2. . . .4 Alocarea adreselor IP ¸i prefixelor de retea s ¸ 10. . . . ¸ . . . . . . . . . ¸ 10. . . . . .2. . . . . . . . . . .1 Formate binare . . . .2. . . . . . . . . . . . . . . . . . . . . . . ¸ s 8. . . . . . . . . . . . a 9. . . . . . . . . . . ¸ 9. . 9.6. . . . . . . . .2 Formate text . . . . . . .2. . . . . . . . . . .2 Filtrare pe baz˘ de adrese MAC . . . . . . . . . . . . . .2 Prefixul de retea . . . . . . . . . . . . . . .1 Subretele ¸i interfete . . . . . . . . ¸ 9. . . . . 8. . . . . . . . . . . . . . . . . . . . . . . . . .2 Alocarea adreselor ¸i dirijarea ierarhic˘ s a .2 Siruri de caractere ¸i tablouri . . . . at 9. . .1. .1 Tipuri ˆ ıntregi . . . . . . . a 10. . . . . . . . . . . . . .7 Considerente privind proiectarea unei retele . . . . . . . . . .3. .2. . . . .5 Dirijarea efectuat˘ de comutatoare (switch-uri) . .

. . . . . . . a ¸ 10. . . . . . . . . . . . . .7.2. . ¸ ın 10. . 10. . . . . . . . . . . . . .3 Testarea ¸i depanarea retelelor . .9 Stabilirea time-out-ului pentru retransmiterea pachetelor . . . . ¸ 10.4. . . .4. . . . . . . a 10. . 10. . . . . . . . . . . . . . . . . .1. 10. s ¸ 10. . . . . . . . . . . . . . .4 Mecanismul de interogare a serverelor . . . . . . . . . . .1 Alegerea parametrilor . . . . . . .3. . . . . . .7. . . . 10.3. . . . . . . . . . 10. . a a 10.3.2. .5 Redirectionarea . . . .2. . . . . 10. . . . . . 10. . . . .2. . . . . . . .5. . . .1 Rezolvarea adresei — ARP . .4. . .2. . . . . . . . . . .1. . . .3.3. . . . .7 Corespondenta ˆ ¸ ıntre functiile socket() ¸i actiunile modulu¸ s ¸ lui TCP . . . . . . . . . . . . . . . .7. . . 10. . . . . . . . .2 Retele private . . . . . . . . . . . . . . .1 Dimensiunea maxim˘ a pachetelor ¸i fragmentarea . . . . . 10. . . . . . . . . . . . . . . . . . . .2 Calitatea serviciului . . s ¸ 10. . . . . . . . . . . . . . . .3. . .1. .2. a 10. . . .7. . 10. . . . . . . . . . ¸ ¸ 10. .11Trimiterea datelor speciale (out of band) . . .1 Conexiuni cu livrare garantat˘: protocolul TCP . . . . . . .3.5. . . . . . .3 ˆ artirea ˆ domenii de autoritate . . . .1. . . . .3 Ciclarea pachetelor IP . . . . . . . . . . . 10. . . . . . . . . .2. . . . . . . . . . . . .3. . . . . . . . . . . . . . . . a 10. . . . . . . . . . . . . . . .2.7. .3. . .2. . ¸ a 201 302 303 305 305 306 306 307 307 308 309 309 312 313 314 314 315 320 320 323 324 325 326 327 327 328 328 329 330 330 332 333 334 335 336 337 337 339 341 341 346 347 347 . .4. . . . . . .1 Translatia adresei surs˘ . . . . . . . . . . . . . . . . .c 2008. . . . . . . . . . . . . . . . .3 Deschiderea ¸i ˆ s ınchiderea conexiunii .3.2 Diagnosticarea function˘rii rutelor . . . . 10. . . . . . . . . . . . . . . . . . . . . . .4. . . . .7. . . . . . . 10. . . . . . .1. . . . . . . . . . . . .5. . . . . . .4 Identificarea nodurilor dup˘ nume: sistemul DNS . . . . . .1. . . . . . . . .2. . .2. . . 10. . . . . . . . . . . . . . . .4. . 10. . . . .6. . .5 Leg˘turile directe ˆ a ıntre nodurile IP . . . . . . . . . . . . . . . . . .2 Structura logic˘ a bazei de date DNS . . .5 Sincronizarea serverelor pentru un domeniu . . . . . .3 Translatia adreselor (NAT) . . . . .1.5. .3. . . . . .4 Alegerea num˘rului initial de secvent˘ .2 Datagrame nesigure: UDP . 10. .5. . . a s 10. . . ¸ 10. . . . . . . . . Radu-Lucian Lup¸a s Cuprins 10. . . . . . . . . .6 C˘utarea numelui dup˘ IP .7.1 Principiul conexiunii TCP . . . . .4 Congestia . . . . .3. . . . . . .1. 10.1. . . .5 ˆ Inchiderea fortat˘ a conexiunii . . .3 Nivelul transport .6 Configurarea automat˘ a statiilor — DHCP . . . . . .1 Pachete nelivrabile . .2 Configurarea parametrilor de retea pe diverse sisteme de op¸ erare . . . . . . . . . . . . . . . . . . .6 Alte chestiuni privind dirijarea pachetelor . . . . . s a 10.8 Controlul fluxului . . . . 10. . . . . .2. . . . . . .5. . . . . . . . . . . . . . . . . . . .2 Comunicatia bidirectional˘ . . . . . . . . . ¸ a 10. . . . . . . . . . ¸ 10. . . . Imp˘ ¸ ın 10. . . .2. . . .1 Numele de domeniu . s 10. . . . . . .6. . . . . . .1 Filtre de pachete (firewall) . . . . . 10. .10Algoritmul lui Nagle ¸i optimizarea num˘rului de pachete . .7 Configurarea ¸i testarea unei retele IP locale . a ¸ ¸a 10. .5 Erori la dirijare ¸i protocolul ICMP . . . . . . .7 Situatii speciale ˆ dirijarea pachetelor .6 Identificarea aplicatiei destinatie . . . . . . . . . ¸ ¸ a 10. . . . . . . . .3. . . 10. . .1. . . . ¸ a 10. . 10. .3. . . . . . .1. .

. . . . . . . . . . . . . . . .1. . . . . . . . . . . s 11.3 Transmiterea mesajelor criptate sau semnate .2. . .4. . . . 11. . .4 PGP/GPG . . . . . . 11. . . . .1. . . . . . 11. . . . . . . .3 Multiplexarea conexiunii. . . . . . . . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . .3 Alte facilit˘¸i HTTP . . . . . . . . . . . . s a 11. . . . . . . . .4 Controlul perioadei de valabilitate a cheilor . .2. . . . . . . . .2. . . . 11. . . .1 Conexiunea ssh protejat˘ criptografic . . . . . . . .6 Utilizarea TLS pentru web . . 11. .2 Extensii MIME . . . . . . .2 Metode de autentificare ˆ ssh . . . .2 Determinarea urm˘torului MTA . . . . .2. . .4. . . . . . . . . . . . . . . at 11. . . . . . . . . 11. . . .4 Codificarea corpului mesajului ¸i a ata¸amentelor s s 11. . . . . . . . . . . . . . . . . .2 Translatia adresei destinatie . . .1. . . . . .2. . . .1. . . . . . . . . . . . . . s ¸ 11. . . .2.3. . 350 ¸ ¸ 10. . . . . . . . . .4. . . . . . . . .1 Po¸ta electronic˘ . . .3. . . . . . . . . . . . . . .3.7. . a 11.2. . . .1 Structura cheilor GnuPG .3 Configurarea unui MTA . . 11. . . . . . . . . . s 11. . . . . . . .2. . . . . . . . . . . .2 Protocolul HTTP . . . 11. .1.2 URL-urile . . . . . . . . . . . . . .2 Transmiterea ¸i certificarea cheilor publice . . . .3. . . . . . 11. .2. . . . . . . . . . . .1. . .1.3 Ata¸area fi¸ierelor ¸i mesaje din mai multe p˘rti s s s a¸ 11. . . . . . . . . . . .3.4. . a 11. . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . ¸a 11. . . . . . . . .2 Transmiterea mesajelor . . .1 Formatul mesajelor .2. . .1. 11. . . . . . . . . . . . . . .3. . . . Radu-Lucian Lup¸a s 202 Cuprins 10. .1 Protocolul SMTP . . . . . . . . . . . 11. . .1. .2 Verificarea autenticit˘¸ii cheilor .2. . . . . . . . . . . . . . . . . . . . . . . . . .1 Antetul mesajelor . Bibliografie Index 353 353 354 355 358 359 360 362 362 365 366 368 371 373 373 376 379 379 380 381 382 383 384 385 386 387 389 390 390 391 392 392 393 395 395 395 397 399 401 405 . s ın ¸ 11. . . . . . . . . s at 11. . . .3 Securitatea po¸tei electronice . .4. . . . . . . . .2 Sesiuni interactive la distant˘ .2. . . . . . . . . . . .3 Generarea ¸i modificarea cheilor . . . . .5 Gestiunea cheilor secrete . . . 11.5 Conexiuni securizate: SSL/TLS . . . . . . .1.1. . . . . . . . . . . . . . . . . . 11. . . . . . . . .1 Protocolul ftp . . . . . . . . . . . . . . . .1. .1. . . . . . . . . . 11. . . . . . . . . . . . . . . . . . .2. . . . . . . s 11. . . . . . .1. . . . . . .3 Transferul fi¸ierelor ˆ retea . . . . . . . . . .4 Tunelarea . . . . . . .1. . . .1.3. . . . . . . . . . . . . . . . . . . . 351 11 Aplicatii ˆ retele ¸ ın ¸ 11. . . . . . . . . .3. . . . . . . . . . . . . . . . .7. .2 Sistemul X-Window . . . . . . . . . . . . . . .4. .1 Protocolul ssh .1. . . .1 Chei primare ¸i subchei . . . . ın 11.1. . . . . . . . . . . .4 Proxy HTTP . . . . . . . . . . . . .3. 11. .1 Transmiterea cheilor publice . . . s 11.2 Utilizatori ¸i identit˘¸i . . tunelarea ¸i aplicatii . . . . .4. . . . . 11.2. . 11. . at 11. . . . . . . . . . . .1. . . . . . . .1 Structura cererilor ¸i a r˘spunsurilor . . .1. . . . . . . . s a 11. . . . . . 11. .1. .c 2008.2. . . . . . .4. 11. . .4. . . . . . . . . . . . . .

a ın a ¸ s ¸ Ca urmare. inspirat˘ a a a din [Cohen 1980] ¸i mai putin ˆ alnit˘ ˆ alte lucr˘ri. Transmisia elea s mentelor se face ˆ ordinea ˆ care apar ele ˆ ¸ir. Radu-Lucian Lup¸a s 203 Capitolul 7 Codific˘ri de interes practic a 7. primul simbol transmis fiind ın ın ın s cel care ocup˘ prima pozitie din ¸ir. un al doilea. Probleme privind reprezentarea numerelor ˆ ıntregi Pˆn˘ aici am privit un mesaj transmis printr-o retea ca un ¸ir de sima a ¸ s boluri dintr-un alfabet finit. vom examIn a ina interferentele ˆ ¸ ıntre reprezentarea numerelor ˆ calculator ¸i ordinea simın s bolurilor ce alc˘tuiesc un mesaj. notiunea de octet a a ¸ (byte). A¸a cum vom vedea ˆ a ˆ paragraful de fat˘. Reprezent˘ri pe biti a ¸ ˆ paragraful de fat˘ vom face abstractie de anumite complicatii conIn ¸a ¸ ¸ structive ale sistemelor de calcul reale. ¸ ¸ s 7.1. din ratiuni legate s ıns˘ ın ¸a ¸ de standardizarea reprezent˘rii numerelor ˆ a ıntregi. transmiterea unui ¸ir nu s conserv˘ ˆ a ıntotdeauna ordinea elementelor. etc. existˆnd un prim element al ¸irului. octeti ¸i reprezentarea numerelor. adresele identific˘ octeti ¸i nu biti. asupra relatiilor dintre s ¸ ıntˆ a ın a ¸ biti. Pˆn˘ aici am considerat c˘ transmisia a ¸ s a a a unui ¸ir de la un dispozitiv la altul conserv˘ ordinea ˆ s a ıntre elemente. rug˘m cititorul s˘ uite. ˆ cele ce urmeaz˘. . a ¸ ignorˆnd deocamdat˘ aspectele legate de gruparea bitilor ˆ octeti ¸i de faptul a a ¸ ın ¸ s c˘. ˆ Intre simbolurile ce alc˘tuiesc ¸irul se stabile¸te o a s s ordine. Vom oferi cititorului o perspectiv˘.c 2008.1. ˆ memoria calculatorului. pentru moment. Vom considera reprezent˘ri pe biti.1.

ın ¸ s ın s ¸ eventual. La a a a s ¸ memorarea unui ¸ir ˆ s ıntr-o memorie cu acces direct (memorie RAM sau fi¸ier s pe disc).1. avem nevoie s˘ identific˘m fiecare bit al In s ¸ a a ¸irului. s a s ¸ In primul bit al unui ¸ir ˆ s ınseamn˘. La transmiterea unui ¸ir de biti. se stabile¸te o ordine a bitilor: avem un prim bit. ın ¸ • Numai ˆ unele cazuri simbolurile au rol de cifr˘. poate fi f˘cut˘ oricum.1.1. dintre celulele alocate ın a ¸irului. aceasta trebuie respectat˘ de toate entit˘¸ile a ıns˘ a a a at implicate ˆ comunicatie. Numerotarea pozitiilor se face de ¸ obicei ˆ ıncepˆnd de la 0 sau de la 1. s˘ fie plasat primul bit al ¸irului (bitul de pe pozitia 0). a ˆ scris. ˆ restul cazurilor. simultan.1. s a a Odat˘ ˆ a f˘cut˘ o alegere. s ¸ considerˆnd ordinea cronologic˘. a s ¸ ¸ a din punct de vedere practic. a ¸ a ˆ cadrul acestei ordini conventionale. este natural ca primul bit transmis.1. ˆ cele ce urmeaz˘ vom utiliza numerotarea a ın a de la 0. ca urmare alegerea unui alfabet cu dou˘ elemente aduce o a anumit˘ simplitate ¸i naturalete constructiei matematice. dispozitive ¸ cu dou˘ st˘ri stabile sunt mult mai u¸or de construit decˆt dispozitive cu mai a a s a multe st˘ri. s a . Trebuie remarcat ˆ a c˘ ordinea este o conventie: nu exist˘ o ıns˘ a ¸ a leg˘tur˘ direct˘ ˆ a a a ıntre ordinea conventional˘ a unui ¸ir de biti ¸i amplasamentul ¸ a s ¸ s dispozitivelor fizice care memoreaz˘ acei biti.c 2008. este natural ca ˆ celula cu adresa cea mai mic˘. a a 7. Valoarea numeric˘ a unui simbol este important˘ doar a a dac˘ simbolul este interpretat ca num˘r sau intr˘ ˆ reprezentarea unui a a a ın num˘r. Pe de alt˘ parte. este cel mai mic a a alfabet posibil. Siruri de biti ¸ ¸ ˆ cadrul unui ¸ir de biti.1. precum ¸i a corespondentei dintre a s ¸ starea dispozitivului fizic ¸i simbolul asociat. alegerea unui alfabet cu dou˘ a simboluri este avantajoas˘ din dou˘ motive. Num˘rul de ordine al unui bit. bitul transmis primul (cronologic) ¸i bitul memorat la adresa cea mai mic˘. un s s ¸ al doilea bit. Radu-Lucian Lup¸a s 204 7. este important doar s˘ existe simboluri disa In a tincte. etc. cifr˘ binar˘ ). Probleme privind reprezentarea numerelor ˆ ıntregi 7. Bitul Pentru reprezentarea diverselor date. adic˘ au asociate valın a a ori numerice. de la a s binary digit (rom. s˘ fie primul bit al ¸irului (pozitia 0). se nume¸te ˆ mod obi¸nuit pozitia (sau. al constructiei echipamentelor fizice.2. adresa sau deplasamentul ) bitului. cele dou˘ simboluri sunt notate ˆ mod obi¸nuit cu 0 ¸i 1. Pentru aceasta. Un simbol dintr-un alfabet cu dou˘ elemente se nume¸te bit. Pe de o parte. ˆ acest fel. In a ın s s Atragem atentia c˘: ¸ a • Alegerea celor dou˘ simboluri utilizate. bitul de pe pozitia (conventional˘) a ¸ ¸ a 0.

etc.1.ˆ ¸elege“ ınt alt num˘r decˆt cel transmis de emit˘tor. cu a a ın s scriere de la dreapta spre stˆnga ¸i unde numerele sunt scrise tot cu cifra a s unit˘¸ilor ˆ dreapta).2) pe pozitia cea mai din stˆnga. . + bn−1 · 2n−1 . cu scriere de la stˆnga spre dreapta.. .obi¸nuite“ a ın ın s (indo-europene). Dac˘ reprezentarea a fost f˘cut˘ ˆ format little endian. num˘rul a s a a respectiv este 25. Aceast˘ reprezentare este s a asem˘n˘toare scrierii numerelor ˆ limbile semite (araba ¸i ebraica.3. Reprezentarea pe biti a numerelor ˆ ¸ ıntregi Reprezentarea numerelor naturale prin ¸iruri de biti se bazeaz˘ pe s ¸ a ceea ce matematicienii numesc reprezentare pozitional˘ ˆ baza 2. ˆ reprezentarea ˆ a In ıntr-o baz˘ de numeratie. orice protocol care spea a ¸a cific˘ transmitere binar˘ a numerelor trebuie s˘ precizeze dac˘ se utilizeaz˘ o a a a a a reprezentare little endian sau una big endian. Exemplul 7.1: Fie ¸irul de biti 11001. a a a ın num˘rul este 19.. + bn−1 · 20 . 2. Aceasta alegere s a este identic˘ celei utilizate ˆ scrierea numerelor ˆ limbile . receptorul . Se mai nume¸te little endian.1. Exist˘ dou˘ alegeri posibile cu privire la leg˘tura dintre ponderile a a a cifrelor ˆ num˘r ¸i pozitiile lor ˆ ¸ir: ın a s ¸ ın s 1. . dac˘ un sistem transa a mite un num˘r ˆ reprezentare little endian.c 2008.1. Codificari de interes practic 205 7. pentru baza 2 nu avem un nume). bn−1 In a a s ¸ reprezint˘ num˘rul a a b0 · 2n−1 + b1 · 2n−2 + . ¸ a Dac˘ acest ¸ir este reprezentarea big endian a unui num˘r.1. a . . cifra de pondere 22 = 4. Primul bit al ¸irului este cifra de pondere maxim˘. at ın s Aceast˘ alegere are avantajul unei scrieri mai simple a relatiei dina ¸ tre valoarea num˘rului ¸i ¸irul de biti: valoarea unui num˘r reprezentat a s s ¸ a pe n biti este ¸ b0 · 20 + b1 · 21 + . Fiind dou˘ scheme de reprezentare distincte. Se mai nume¸te a s big endian. cifra de pondere 21 = 2 (ˆ baza zece at a ın s-ar numi cifra zecilor. Radu-Lucian Lup¸a s ˘ Capitolul 7. iar cel˘lalt sistem interpreteaz˘ a ın a a ¸irul de biti primit ca fiind ˆ s ¸ ıntr-o reprezentare big endian. avˆnd ponderea 20 = 1. ˆ aceast˘ schem˘ de reprezentare. . . un ¸ir de biti b0 b1 . distingem a ¸ cifra unit˘¸ilor. pe care o ¸ a ın presupunem cunoscut˘. ˆ care am scris primul bit (ˆ sensul s ¸ ın ın din § 7. Primul bit al ¸irului este cifra de pondere 1. Ca urmare.

2.1. respectiv deplasare la dreapta (engl. little endian sau eventual o corespondent˘ ın s s ¸a mai complicat˘). bitul 1. . Octeti ¸ ˆ memoria calculatoarelor. ˆ continuare. am ignorat ˆ mod deliberat notiunea de In ın ¸ octet (byte) ¸i am presupus c˘.spre stˆnga“ ¸i . shift right) a pot fi descrise ˆ termeni de operatii aritmetice: deplasarea la stˆnga ın ¸ a este o ˆ ınmultire cu 2. ˆ general. shift left). Probleme privind reprezentarea numerelor ˆ ıntregi Este important de remarcat c˘ distinctia dintre schema de reprezentare a ¸ big endian si schema little endian exist˘ numai acolo unde pe de o parte avem a o ordine a a bitilor dat˘ de adresele lor ˆ memorie sau de ordinea cronologic˘ ¸ a ın a la transmiterea lor prin mediul fizic. ¸ ın ¸ a 7. Dac˘ ˆ a identific˘m bitii dup˘ pozitia lor ˆ ¸irul de 8 biti s a ıns˘ a ¸ a ¸ ın s ¸ (bitul 0.1. ˆ cadrul a ın ın sistemelor de calcul reale.1. Un astfel de grup se nume¸te octet a ın s a ¸ s (denumire intrat˘ pe filier˘ francez˘) sau bait (adaptare a englezescului byte). Dac˘ identific˘m bitii dup˘ ponderile lor. s Echivalenta ˆ ¸ ıntre aceste dou˘ moduri de-a privi un octet este o problem˘ ce a a necesit˘ mult˘ atentie. 7. . exist˘ o a a ¸ a a ¸ a a corespondent˘ biunivoc˘ ˆ ¸a a ıntre un astfel de grup de 8 biti ¸i un num˘r ˆ ¸ s a ıntreg ˆ ıntre 0 ¸i 255.. ¸ ¸ a a octetul este privit ca num˘r. Aici se ˆ a ıncadreaz˘ operatiile aritmetice ¸i a ¸ s operatiile de deplasare pe biti. De remarcat c˘ operatiile deplasare la ¸ ¸ a ¸ stˆnga (engl. a a a Un octet poate fi privit ˆ dou˘ moduri distincte: ın a • ca un ¸ir de 8 biti. Operatii pentru care bitii se identific˘ dup˘ pondere sau. ˆ mod obi¸nuit cˆte 8 biti. echivalent.. problemele legate de gruparea.c 2008. fiecare bit ar avea o adres˘ indis a ın a vidual˘. Reprezent˘ri pe octeti a ¸ ˆ paragraful precedent. Radu-Lucian Lup¸a s 206 7.. bitul 7). s ¸ • ca un num˘r ˆ a ıntreg cuprins ˆ ıntre 0 ¸i 255. Vom studia. iar pe de alt˘ parte fiecare bit are o a anumit˘ pondere ˆ reprezentarea unui num˘r ˆ a ın a ıntreg. a bitilor ˆ octeti ¸i de faptul c˘. neavˆnd nici o leg˘tur˘ cu a a a a . a Dup˘ modul ˆ care se identific˘ bitii unui octet ˆ definitia operatiilor a ın a ¸ ın ¸ ¸ efectuate de diverse componente ale unui sistem de calcul. operatiile se pot ¸ ˆ arti ˆ trei categorii: ımp˘ ¸ ın 1.spre dreapta“ ˆ In a s ınseamn˘ spre pozitiile a ¸ cu pondere mai mare. bitii sunt grupati ˆ grupuri de dimenIn ¸ ¸ ın siune fix˘. . iar deplasarea la dreapta este o ˆ artire la 2.1. ˆ memorie. ¸ ımp˘ ¸ ˆ acest context. ordinea ¸ ın ¸ s a ın bitilor ˆ octeti nu este vizibil˘ programatorului. . respectiv mai mic˘.2. atunci corespondenta biunivoc˘ ˆ ¸ a ıntre num˘r ¸i a s ¸ir de biti exist˘ doar dup˘ ce am stabilit o corespondent˘ ˆ s ¸ a a ¸a ıntre pozitia unui ¸ bit ˆ ¸ir ¸i ponderea sa (big endian.

s˘ ajung˘ a a a a acolo pe o pozitie cu aceea¸i pondere. sau. Aici intr˘ transmiterea bit cu bit (transa a a mitere serial˘) a unui octet. bitii unui a ¸ ¸ s ¸ ¸ octet sunt aici identificati prin num˘rul lor de ordine in cadrul transmisiei. ˆ a a a ıntr-un modul al calculatorului. ¸ s La transmisia unui octet ˆ ıntre dou˘ sisteme de calcul. ˆ mod normal. 12 ¸ a ¸ biti. a ın ¸ corespondenta dintre num˘rul de ordine al unui bit ¸i ponderea sa (little en¸ a s dian sau big endian) trebuie s˘ fac˘ parte din specificatiile protocolului de a a ¸ nivel fizic al retelei. bitii din cadrul unui In ¸ ın ¸ octet sunt identificati dup˘ ponderea lor. Codificari de interes practic 207 primele sau cu ultimele pozitii. Operatii care pot fi definite fie identificˆnd bitii dup˘ ponderea lor. echivalent. Aceste operatii sunt efectuate de uni¸ ¸ tatea aritmetic˘ din microprocesorul calculatorului. Radu-Lucian Lup¸a s ˘ Capitolul 7. ¸ Numerotarea bitilor unui octet intervine. ¸ s ¸ s s ¸ Pentru oricare dintre aceste operatii. 3. O asemea a nea operatie nu este oferit˘. Tot ¸ s aici s-ar ˆ ıncadra. de exemplu. prin mediul fizic al retelei. o operatie de obtinere sau de modificare a ¸ ¸ a unui bit (al octetului) identificat prin num˘rul s˘u de ordine. verificarea egalit˘¸ii a at a doi octeti ¸i operatiile logice pe bit (¸i. a 2. octetul este privit ca un ¸ir arbitrar de biti. ˆ constructia calculatorului. proiec¸ a In ¸ tantul are grij˘ ca atunci cˆnd un bit avˆnd. ˆ aceast˘ categorie se a ¸ a a In a ˆ ıncadreaz˘ transmiterea unui octet ca un tot unitar. bitul num˘rul 5 a ¸ a a a dintr-un octet. ˆ aceste conditii. ıncˆ a a ˆ Intrucˆt. adaptoarele USB). Aceast˘ operatie este efectuat˘ de placa de a a ¸ a retea ¸i de alte adaptoare seriale (de exemplu. o anumit˘ pondere este transferat c˘tre alt modul al calculatorului.c 2008. de asemenea. ˆ ¸ a ın ıntr-un sistem de calcul — nu exist˘ o instructiune care s˘ extrag˘. ¸ a Pentru a p˘stra valoarea octetului ˆ timpul transmisiei prin mediul retelei. mecanismele a de transmisie sunt astfel construite ˆ at s˘ transmit˘ valoarea octetului. etc. dac˘ ar exista. ˆ interiorul unui calculator. 2 biti. bitii sunt transmi¸i secvential. sau exclusiv ¸i negatia). Este cazul schemelor ¸ de reprezentare pentru structuri de date ce contin cˆmpuri de 1 bit. dac˘ definim operatia identi¸ a ¸ ficˆnd bitii dup˘ num˘rul lor de ordine. ˆ descrierea ¸ ın unor scheme de reprezentare a datelor unde un num˘r este reprezentat pe un a grup de biti ce nu formeaz˘ un num˘r ˆ ¸ a a ıntreg de octeti. efectul ei asupra valorii numerice a ¸ a a a octetului nu depinde de corespondenta aleas˘ ˆ ¸ a ıntre pozitiile bitilor ¸i ¸ ¸ s ponderile lor. Operatii pentru care bitii sunt identificati dup˘ num˘rul lor de ordine ¸ ¸ ¸ a a sau. Si aici este necesar s˘ se specifice dac˘ numerotarea bitilor este little ¸ ¸ a a ¸ . f˘r˘ a avea s ¸ aa asociat˘ o valoare numeric˘. fie ¸ a ¸ a identificˆnd bitii dup˘ num˘rul lor de ordine.

¸ a Transmiterea unui ¸ir de octeti printr-o conexiune.2. ın p˘streaz˘ ordinea ¸i valorile octetilor din ¸ir. fiecare cuprins ˆ s ıntre 0 ¸i 255. sunt necesare scheme de reprezentare pe mai mult de 8 biti. primul octet al ¸irului este. la rˆndul lui. privit ca: a • un ¸ir de 8n biti. pentru numerotarea de la 1. a bitilor ˆ cadrul unui octet. Radu-Lucian Lup¸a s 208 7.2). un ¸ir de n octeti In a s ¸ poate fi. precum ¸i mems ¸ s orarea ¸irului ˆ s ıntr-un fi¸ier pe disc urmat˘ de citirea lui ˆ s a ınapoi ˆ memorie.1. al doilea octet (pozitia 1). Valorile octetilor sunt p˘strate a a s ¸ s ¸ a dac˘ privim octetii ca numere ˆ a ¸ ıntre 0 ¸i 255.1. pozitia pBO ¸ ın s ¸ ¸ a bitului ˆ cadrul octetului ˆ care se g˘se¸te ¸i pozitia pO a acelui octet ˆ ın ın a s s ¸ ın ¸irul de octeti are loc relatia: s ¸ ¸ pB = 8 · pO + pBO .1. bine definit˘. Schemele de ¸ ın reprezentare ce utilizeaz˘ ¸iruri de biti ce nu formeaz˘ neap˘rat un num˘r a s ¸ a a a ˆ ıntreg de octeti vor fi studiate ˆ § 7.3. ın 7.1. a a ın ¸ s primul octet transmis. octetii sunt a¸ezati ˆ s In s ¸ ¸ s ¸ ıntr-o ordine. este necesar s ¸ s ¸ s˘ avem o numerotare. (7.1) Relatia de mai sus are aceast˘ form˘ simpl˘ dac˘ se utilizeaz˘ numerotare de ¸ a a a a a la 0. La memorare. s ¸ 7. Schemele cele mai simple sunt cele care utilizeaz˘ un ¸ a num˘r ˆ a ıntreg de octeti. a ceea ce este mult prea putin pentru majoritatea aplicatiilor. acestea vor fi prezentate ˆ continuare.4.2. ¸ ın . Siruri de octeti ¸ ¸ Ca ¸i ˆ cazul bitilor (vezi § 7.2. etc.4. s ¸ • un ¸ir de n numere. existˆnd a un prim octet (numerotat ca octetul 0). Pentru a putea ¸ ¸ reprezenta numere din intervale mai largi. primul octet este cel memorat la adresa cea mai mic˘. forma relatiei e mai complicat˘. ¸i cu octetii putem construi s ın ¸ s ¸ ¸iruri.2.1. ˆ cadrul unui ¸ir de octeti.1.c 2008.2. dac˘ privim octetii ca ¸iruri de s a ¸ s 8 biti. Rezult˘ un a a ¸ ın a ¸ir de biti ˆ care ˆ s ¸ ın ıntre pozitia pB a unui bit ˆ ¸irul de 8n biti.1. cronologic. Probleme privind reprezentarea numerelor ˆ ıntregi endian sau big endian. La ¸ transmisia printr-o leg˘tur˘ ˆ retea. valorile octetilor se p˘streaz˘ numai dac˘ pe ambele sisteme utiliz˘m ¸ ¸ a a a a aceea¸i corespondent˘ ˆ s ¸a ıntre numerele de ordine ¸i ponderile bitilor. Reprezentarea numerelor pe un num˘r ˆ a ıntreg de octeti ¸ Cel mai mare num˘r ce poate fi reprezentat pe un octet este 255. Mai multe detalii despre astfel de reprezent˘ri vor fi a studiate ˆ § 7. s Pentru a putea privi un ¸ir de n octeti ca un ¸ir de 8n biti. a ˆ virtutea celor dou˘ moduri de-a privi un octet.

Exist˘ dou˘ reprezent˘ri ¸ ¸ a ın a a a posibile: • little endian: primul octet are ponderea 1. putem considera fiecare s octet ca fiind o cifr˘ ˆ baza 256. pe 2 ¸i pe 4 octeti. unitatea aritmetic˘ lucreaz˘ cu nu¸ a a mere reprezentate dup˘ sistemul big endian. octeti ai reprezent˘rii). anume: 1 · 256 + 44 = 300. pe alte calculatoate. ˆ cadrul reprezent˘rii pe 2 octeti ˆ format big endian. iar ultimul octet are ponderea 1. a Exemplul 7. Radu-Lucian Lup¸a s ˘ Capitolul 7. octetul memorat ın a s a la adresa cea mai mic˘. este dat ¸irul de octeti ce reprezint˘ s ¸ a num˘rul 300. • big endian: primul octet are ponderea 256n−1 (unde n este num˘rul de a n−2 ¸. d. Pentru fiecare s s ¸ dintre aceste patru scheme de codificare. Codificari de interes practic 209 Deoarece un octet are valoarea ˆ ıntre 0 ¸i 255. al doilea octet are ponderea 256. octetul 0 are ponderea 2560 = a ¸ ın 1. Reprezentarea unui num˘r printr-un ¸ir de a ın a s octeti se face ca reprezentare pozitional˘ ˆ baza 256. ordine) 0 1 2 3 Valorile octetilor pentru diverse reprezent˘ri ¸ a 2 octeti ¸ 2 octeti ¸ 4 octeti ¸ 4 octeti ¸ big endian little endian big endian little endian 1 44 0 44 44 1 0 1 — — 1 0 — — 44 0 De exemplu. ¸ pe 4 sau 8 octeti.c 2008. pentru unele calculatoare. al treilea octet are ponderea 2562 = 65536.. Valoarea num˘rului reprezentat a este 44 · 1 + 1 · 256 + 0 · 2562 + 0 · 2563 = 300 Unitatea aritmetic˘ a calculatorului poate efectua operatii aritmeta ¸ ice asupra numerelor reprezentate pe 2 octeti sau. iar octetul 3 are ponderea 2563 = 16218368. a ınt ˆ ordine cronologic˘. In reprezent˘rii pe 4 octeti ˆ format little endian. al doilea octet are ponderea 256 ¸ a s penultimul octet are ponderea 256. Pe unele calculatoare. a pozitie ¸ octet (nr. ın a ¸ ın valoarea num˘rului reprezentat se reg˘se¸te ca valoarea octetului 0 ˆ a a s ınmultit˘ ¸ a ˆ cadrul cu 256 plus valoarea octetului 1. Reamintim c˘ prin primul octet ˆ ¸elegem octetul care este transmis primul. de la un dispozitiv la altul ¸i. totodat˘. unitatea a .2: Descriem mai jos reprezentarea num˘rului 300 ˆ schemele a ın de reprezentare little endian ¸i big endian. etc. octetul 1 are ponderea 2561 = 256. m. octetul 2 are ponderea 2562 = 65536. a.

Radu-Lucian Lup¸a s 210 7.. 7. Dup˘ acest criteriu. ˆ care bitii ce intr˘ ˆ reprezentarea unui num˘r nu formeaz˘ ın ¸ a ın a a neap˘rat un num˘r ˆ a a ıntreg de octeti. a Astfel de numere se manipuleaz˘. precum ¸i imediat dup˘ citirea de pe disc sau receptionarea de pe s a ¸ conexiune. trebuie stabilit printr-un standard dac˘ se utilizeaz˘ un format little endian sau big a a endian. formatele UTF-16 ¸i UTF-32 pentru texte) care s permit emit˘torului s˘ aleag˘ formatul dorit ¸i prev˘d un mecanism prin care ¸a a a s a emit˘torul informeaz˘ receptorului despre alegerea f˘cut˘. O astfel de schem˘ este o generalizare a ¸ a schemei prezentate ˆ paragraful precedent. Dac˘ formatul de pe disc sau de pe conexiune este a a invers fat˘ de cel local. fie nu se efectueaz˘ corect asupra lor. un program poate transfera direct ¸iruri de octeti at s ¸ ˆ ıntre o variabil˘ ˆ a ıntreag˘ local˘ ¸i fi¸ierul de pe disc sau. Pentru ca o astfel de schem˘ s˘ fie ın s a a complet definit˘. prelucrˆnd separat fiecare octet. transmis. Reprezentarea numerelor pe un ¸ir arbitar de biti s ¸ Ne vom ocupa ˆ continuare de metode de reprezentare. La manipularea aces¸ ¸ a a tor variabile.2. respectiv. pentru nuın mere ˆ ıntregi. programatorul trebuie s˘ aib˘ ˆ vedere c˘ operatiile aritmetice a a ın a ¸ . ¸ ın a a Este posibil˘ utilizarea. pentru anumite variabile ˆ a ıntregi. Exist˘ ¸i formate (de exemplu. a unei reprezent˘ri a diferite de cea a unit˘¸ii aritmetice. Multe dintre formatele de fi¸iere prev˘d formate little endian.1. de obicei.1. a a La memorarea pe disc sau la transmiterea printr-o conexiune. 4 sau 8 octeti.1. Probleme privind reprezentarea numerelor ˆ ıntregi aritmetic˘ cere reprezentare little endian. precum ¸i num˘rul de octeti pe care se reprezint˘ fiecare num˘r memos a ¸ a a rat sau. Majoritatea protocoalelor pentru Internet prev˘d a formate big endian pentru numerele ˆ ıntregi transmise. ın O astfel de metod˘ de reprezentare se bazeaz˘ pe reprezentarea nua a merelor ˆ baza 2 (vezi ¸i § 7. un program care transfer˘ date trebuie s˘ inverseze ¸a a a ordinea octetilor imediat ˆ ¸ ınainte de scrierea pe disc sau de trimiterea pe conexiune. fors a a s matul TIFF pentru imagini. se pot utiliza reprezent˘ri at a pe mai multi octeti decˆt permite unitatea aritmetic˘. este necesar s˘ fie stabilit˘ (standardizat˘) corespondenta a a a a ¸ ˆ descrierea dintre pozitia fiec˘rui bit din reprezentare ¸i ponderea asociat˘. calculatoarele a a ale c˘ror unit˘¸i aritmetice lucreaz˘ cu numere reprezentate pe mai mult de a at a un octet se ˆ ımpart ˆ calculatoare little endian ¸i calculatoare big endian. ¸a a a a Dac˘ formatul de pe disc sau de pe conexiune coincide cu formatul a unit˘¸ii aritmetice locale. respectiv.3).1. ın sunt reprezentate pe 2. conexiunea a as s spre cel˘lalt calculator.4.c 2008. In ¸ a s a . ın s Variabilele de tip ˆ ıntreg. ˆ majoritatea limbajelor de programare. De asemenea. ˆ ordinea fixat˘ de unitatea aritmetic˘.normale“ fie nu pot fi executate deloc.

dac˘ reprezent˘m un num˘r folosind un ¸ir de In a a a a s biti ce formeaz˘ un num˘r ˆ ¸ a a ıntreg de octeti. In a a ¸ ıncepe cu cel mai semnificativ bit al primului octet. a a a ¸ Rezult˘ astfel dou˘ metode coerente: a a ˆ aceast˘ metod˘. indiferent pe cˆ¸i biti s-ar reprezenta.c 2008. la primele dou˘ puncte se utilizeaz˘ a ¸ a a a fie formatul big endian pentru amˆndou˘. ¸ a ¸ Dac˘ alegem metoda big endian. ceilalti ¸ ¸ 4 biti ai primului octet vor fi cei mai semnificativi 4 biti ai lui b. iar la punctul al treilea se utilizeaz˘ relatia (7. adic˘ 2 octeti. • dac˘ numerotarea bitilor ˆ cadrul fiec˘rui octet se face ˆ a ¸ ın a ıncepˆnd de a la bitul de pondere 1 (adic˘ valoarea octetului este reprezentat˘ dup˘ a a a schema little endian) sau ˆ ıncepˆnd de la bitul de pondere 128 (adic˘ a a valoarea octetului este reprezentat˘ dup˘ schema big endian). se reprezint˘ a at ¸ a ˆ format big endian. Codificari de interes practic 211 unei astfel de scheme de reprezentare. numerotarea bitilor ˆ In a a ¸ ıncepe cu cel mai putin semnificativ bit al primului octet. ˆ s ın a ¸ s a ¸ In total avem 4 + 12 = 16 biti. iar dup˘ cel mai putin semnificativ a ¸ bit al primului octet urmeaz˘ cel mai semnificativ bit al celui de-al doilea a octet. schema de reprezentare va utiliza a cei mai putin semnificativi 4 biti ai primului octet pentru a-l reprezenta pe a. se a at ¸ reprezint˘ ˆ format little endian..rational˘“. a ın ˆ cadrul acestor dou˘ metode. indiferent pe cˆ¸i biti s-ar reprezenta. a a • dac˘ numerotarea bitilor ˆ cadrul ¸irului de biti se face dup˘ relatia (7. ¸ ¸ ¸ ¸ . cu valori concrete a = 11 ¸i b = 300. a ¸i b. schema de reprezentare va utiliza cei a mai semnificativi 4 biti ai primului octet pentru a-l reprezenta pe a. iar dup˘ cel mai semnificativ ¸ a bit al primului octet urmeaz˘ cel mai putin semnificativ bit al celui dea ¸ al doilea octet. Orice num˘r. ¸ ın Exemplul 7. ın • little endian. Orice num˘r. ˆ aceast˘ metod˘.3: Consider˘m o schem˘ de reprezentare pentru dou˘ numere a a a ˆ ıntregi. ¸ ¸ ceilalti 4 biti ai primului octet vor fi cei mai putin semnificativi 4 biti ai lui b. fie formatul little endian pentru a a amˆndou˘. ˆ care a se reprezint˘ pe 4 biti ¸i b se reprezint˘ pe 12 biti. trebuie precizate trei lucruri: • dac˘ reprezentarea num˘rului prin ¸irul de biti se face dup˘ metoda big a a s ¸ a endian sau little endian. a ın s Dac˘ alegem metoda little endian. numerotarea bitilor ˆ • big endian.1) a ¸ ın s ¸ a ¸ sau dup˘ o alt˘ metod˘.1).1. iar cel de-al ¸ ¸ doilea octet va contine cei mai putin semnificativi 8 biti din b. Radu-Lucian Lup¸a s ˘ Capitolul 7. formatele de reprezentare rezultate ¸ coincid cu formatele de reprezentare pe octeti studiate ˆ paragraful precedent. Aceast˘ schem˘ ¸ ¸ ¸ a a de reprezentare este ilustrat˘ ˆ figura 7. a a a ˆ Intr-o schem˘ de reprezentare .

a ¸ b0 1 b1 1 b2 0 b3 1 Nr. Radu-Lucian Lup¸a s 212 7. octet 0 1 c0 1 0 c1 0 0 c2 1 1 b4 0 b5 0 b6 0 b7 1 b8 0 b9 0 b10 1 b11 0 b12 1 b13 1 b14 0 b15 0 (a) Reprezentarea privit˘ ca ¸ir de biti a s ¸ Valoare (binar) c3 c4 1 0 0 1 Valoare (zecimal) c5 0 1 c6 0 0 c7 1 0 177 44 (b) Valorile octetilor.3).1. La scrierea valorilor bitilor ˆ octet ¸ ¸ ın (coloana din mijloc) s-a utilizat conventia obi¸nuit˘. 7. Probleme privind reprezentarea numerelor ˆ ıntregi iar cel de-al doilea octet va contine cei mai semnificativi 8 biti din b.2. este necesar ca receptorul a s s˘ poat˘ determina num˘rul de obiecte transmise.c 2008. s b0 1 b1 0 b2 1 b3 1 Nr. de-a scrie ¸ s a cifrele mai semnificative ˆ stˆnga.1.2: Reprezentare little endian pentru num˘rul 11 pe 4 biti urmat de a ¸ num˘rul 300 reprezentat pe 12 biti (exemplul 7.3. La scrierea valorilor bitilor ˆ octet ¸ ¸ ın (coloana din mijloc) s-a utilizat conventia obi¸nuit˘. ın a Figura 7. descris˘ ˆ s ¸ s ın a ın § 7.2. cu valori concrete a = 11 a a ın ¸i b = 300. ın a Figura 7.4. Aceast˘ ¸ ¸ a schem˘ de reprezentare este ilustrat˘ ˆ figura 7. Acest lucru este valabil a a a .1: Reprezentare big endian pentru num˘rul 11 pe 4 biti urmat de a ¸ num˘rul 300 reprezentat pe 12 biti (exemplul 7.3). de-a scrie ¸ s a cifrele mai semnificative ˆ stˆnga. a ¸ Un alt exemplu ˆ care avem de-a face cu numere reprezentate pe ın ¸iruri arbitrare de biti este legat de a¸a-zisa codificare ˆ baza 64. octet 0 1 b4 0 b5 0 b6 1 b7 1 b8 0 b9 1 b10 0 b11 0 b12 1 b13 0 b14 0 b15 0 (a) Reprezentarea privit˘ ca ¸ir de biti a s ¸ c7 1 0 c6 1 0 c5 0 0 Valoare (binar) c4 c3 0 1 1 0 Valoare (zecimal) c2 0 0 c1 1 1 c0 1 0 203 18 (b) Valorile octetilor. Probleme privind reprezentarea lungimii ¸irurilor s Oridecˆteori se transmite un ¸ir de obiecte.

caracterului as a . caractere ale unui ¸ ¸ text. indiferent de valorile datelor a In ce se transmit. dar care nu a a ın apare niciodat˘ ca valoare a unui element valid. a continutului paginii cerute de client. s as ın ¸ Dezavantajul principal al metodei este acela c˘ dimensiunea fixat˘ trea a buie astfel aleas˘ ˆ at s˘ fie suficient˘ ˆ orice caz ce poate s˘ apar˘ a ıncˆ a a ın a a la executie. Acest fapt face metoda inaplicabil˘ ˆ anua s a ın mite situatii. Codificari de interes practic 213 indiferent de natura obiectelor: biti.2) la transmiterea. a a • Num˘rul de obiecte este transmis separat. Aceast˘ metod˘ u¸ureaz˘ munca emit˘torului. ¸ Transmiterea de la ˆ ınceput a num˘rului de obiecte este utilizat˘.c 2008. trebuie s˘ existe o valoare potrivit˘ pentru ¸ a a pozitiile . metoda este a a ¸ putin utilizat˘ ˆ transmisia datelor prin retea. ˆ acest caz. ˆ schimb. a ¸ s s ¸ a • Dup˘ ultimul obiect din ¸irul propriu-zis. care ¸tie exact ce s˘ astepte ¸i poate aloca s a s a s memorie pentru receptionarea datelor. octeti. care trebuie a s˘ fie o valoare reprezentabil˘ ˆ formatul pentru element. num˘rul de obiecte transmise este acela¸i. ¸ s ın pozitiile cele mai semnificative se completeaz˘ cu zerouri. a s ın deoarece permite alocarea de la ˆ ınceput a memoriei pentru reprezentarea lui ¸i permite accesul direct la datele memorate dup˘ ¸irul ˆ discutie. a s a cu rol de terminator. ˆ schimb ˆ ın ıngreuneaz˘ munca receptorului. Siruri de lungime fix˘ ¸ a ın ¸ ¸ a se utilizeaz˘ la reprezentarea binar˘ a numerelor. ¸ a Deoarece la transmisia printr-o conexiune nu se poate pune problema accesului direct (adic˘ altfel decˆt secvential) la date. Aceast˘ metod˘ a ın ¸ s a a u¸ureaz˘ munca receptorului. de exemplu. caracterului newline (sfˆr¸it de rˆnd). numere ˆ cadrul unui ¸ir de numere. a a s a ¸a care poate s˘ ˆ a ınceap˘ transmiterea ¸irului ˆ a s ınainte de-a ¸ti cˆte elemente s a are. de c˘tre a server. se transmite o valoare special˘. Metoda este a s utilizat˘ frecvent la memorarea unui ¸ir ˆ memoria RAM sau pe disc.. a Metoda este utilizat˘ frecvent ˆ transmiterea unui ¸ir de caraca ın s tere. a a de exemplu.neutilizate“ din ¸ir. De asemenea. ˆ fata ¸irului. trebuie fixat˘ valoarea terminatorului. munca emit˘torului ¸ In ¸a este complicat˘ prin faptul c˘ acesta trebuie s˘ cunoasc˘ de la ˆ a a a a ınceput num˘rul de obiecte din ¸ir. Radu-Lucian Lup¸a s ˘ Capitolul 7. De asemenea. ın s Exist˘ trei metode de a face ca receptorul s˘ poat˘ determina num˘rul a a a a de obiecte ce-i sunt transmise: • Num˘rul de obiecte este fixat. cifre zecimale.3. de protocolul HTTP (§ 11. ˆ reprezentarea numerelor. Rolul de terminator poate fi acordat caracterului null (caracterul cu codul ASCII zero). care trebuie s˘ citeasc˘ a a a elementele ¸irului unu cˆte unu ¸i s˘ verifice dac˘ nu a ˆ alnit terminas a s a a ıntˆ torul. Serverul transmite ˆ ai ¸ ıntˆ num˘rul de octeti ai paginii ¸i apoi ¸irul de octeti ce formeaz˘ pagina.

2. caractere tab.3 ¸i § 7. reprezentarea num˘rului este un In a text format din caracterele corespunz˘toare cifrelor reprezent˘rii zecia a male (obi¸nuite) a num˘rului. iar a ıntˆ ın apoi fiecare cifr˘ zecimal˘ este reprezentat˘ pe 4 biti conform metodelor a a a ¸ din § 7.2). Pe lˆng˘ formatele binare. fiind necesar˘ mai departe a a a ˆ cazul codific˘rii ASCII. ˆ acest a a ıns˘ a ın caz. este necesar s˘ fie a a a transmis˘ sub o form˘ sau alta informatia privind lungimea reprezent˘rii a a ¸ a num˘rului (num˘rul de cifre).. 3016 ). ¸ .2. as s a a ın s Ca urmare. s s a s s ˆ format text. a a Fiecare cifr˘ se reprezint˘ ca un caracter.1. ˆ cadrul acestui format.1.4. num˘rul de cifre este a a variabil (depinde de valoarea num˘rului) ¸i prima cifr˘ (cea mai semnificativ˘) a s a a scris˘ nu este zero. ˆ acest scop.c 2008. Probleme privind reprezentarea numerelor ˆ ıntregi spatiu.1. a ın ın ¸ Motivul principal al utiliz˘rii formatului text este u¸urinta depan˘rii aplicatiia s ¸ a ¸ lor ce utilizeaza astfel de protocoale: comunicatia poate fi ˆ ¸ ınregistrat˘ ˆ a ıntr-un fi¸ier ¸i examinat˘ cu un program obi¸nuit pentru vizualizarea fi¸ierelor text. ¸ ın deoarece o astfel de reprezentare se utilizeaz˘ frecvent ˆ protocoalele ˆ retea. ci ca un octet avˆnd a a ca valoare codul ASCII pentru caracterul .0“. caractere newline etc. De remarcat ˆ a c˘. caracterul sau caracterele astfel alese ¸ pentru a marca sfˆr¸itul unui ¸ir nu pot s˘ apar˘ ˆ ¸irul propriu-zis. acesta este 48 (sau. Deoarece lungimea reprezent˘rii este variabil˘.4. In a a reprezentarea fiec˘rei cifre ocup˘ exact un octet. Alte metode de reprezentare a numerelor ˆ ıntregi Schemele de reprezentare (formatele) pentru numere ˆ ıntregi. ˆ reprezent˘rile text. num˘rul este reprezentat mai ˆ ai ˆ baza 10. ın s a a pentru reprezentarea numerelor ˆ ıntregi se mai utilizeaz˘ urm˘toarele tipuri de a a formate: • Formatul text. studiate ˆ § 7. Descriem putin mai pe larg reprezentarea numerelor ˆ format text. se numesc formate binare. etc. Orice alegere s-ar face. s a • Formatul binar-zecimal. o schem˘ de reprezentare a textelor (vezi § 7.1. ˆ s In cadrul acestui format. cifra 0 nu se reprezint˘ ca un octet cu valoarea 0. cu exceptia cazului num˘rului 0 care se reprezint˘ ca o a ¸ a a singur˘ cifr˘ zero. numit ¸i BCD din engl. se utilizeaz˘ conventiile de reprezentare a numerelor In a ¸ ˆ textele scrise: se ˆ ın ıncepe cu cifra cea mai semnificativ˘. binary coded decimal.1. a s a ¸ 7. numerele a a In ın a sunt separate de obicei prin spatii. transmiterea unui fi¸ier cu continut arbitrar (¸ir de octeti s ¸ s ¸ cu valori arbitrare) nu se poate face prin metoda cu terminator (decˆt a dac˘ un octet al fi¸ierului se codific˘ pe mai mult de 8 biti). echivalent.2.4. Radu-Lucian Lup¸a s 214 7.

Codificari de interes practic 215 Exemplul 7. descrise mai sus. care trebuie s˘ fie permise de ¸ a codificarea aleas˘. Nu se face distinctie ¸ s ¸ ˆ ıntre diferitele variante de-a scrie o aceea¸i liter˘ (litere . ın a pozitie ¸ octet (nr.2. ¸ a .normale“. trecerea a la rˆnd nou sau interzicerea trecerii la rˆnd nou (ruperea rˆndului) ˆ a a a ıntr-un anumit punct. bitul cel mai semnificativ fiind ¸ ın scris ˆ stˆnga. ın ın semne de punctuatie.bold“). ordine) 0 1 2 3 Valorile octetilor ¸ BCD BCD big endian little endian 00000000 00000000 00000000 00000011 00000011 00000000 00000000 00000000 text ASCII 00110011 00110000 00110000 00100000 7. pentru num˘rul ¸ s ¸ a 300. Codificarea textelor Prin text ˆ ¸elegem aici un text scris ˆ limbaj natural sau ˆ ınt ın ıntr-un limbaj de programare.. Operatiile efectuate asupra textelor. f˘r˘ formatare avansat˘.. Valorile octetilor sunt scrise ˆ baza 2.italice“). ˆ aceea¸i idee. Caraca ın terele sunt ˆ principal literele din alfabetul limbii ˆ care este scris textul. Radu-Lucian Lup¸a s ˘ Capitolul 7.4: Red˘m mai jos reprezent˘rile text ASCII terminat cu spatiu. cursive s a (. s-ar putea face ¸i distinctia dintre a In s s ¸ literele mari (majuscule) ¸i literele mici (minuscule) corespunz˘toare tot pe s a baza unor caractere de control cu rol de modificator. s • concatenarea unor texte sau alte operatii de sintez˘. Pe lˆng˘ caracterele grafice. etc). sunt definite caractere a a de control. a a ¸ BCD big endian pe 4 octeti ¸i BCD little endian pe 4 octeti. Un aspect discutabil legat de alegerea setului de caractere este dac˘ a o liter˘ cu un semn diacritic este cazul s˘ fie caracter distinct fat˘ de litera a a ¸a simpl˘ din care provine sau s˘ fie format din caracterul corespunz˘tor literei a a a respective f˘r˘ semne diacritice ¸i un caracter de control care s˘ marcheze aa s a semnul diacritic ad˘ugat. aa a Un text este v˘zut ˆ general ca o succesiune de caractere. adline (.c 2008.. cifre ¸i diferite alte semne grafice. sunt ˆ principal urm˘toarele: a ın a • afi¸area textului. de exemplu. avˆnd rolul de a marca puncte (locuri) ˆ cadrul textului sau fraga ın mente din text. Utiliz˘ri ale caracterelor de control sunt.

Urm˘toarele cuvinte sunt sortate a aa a alfabetic: sac. • reprezentarea pe biti sau pe octeti a codurilor caracterelor. a Codific˘rile caracterelor sunt de obicei descrise ˆ dou˘ etape.2. ˆtre. extragerea unor cuvinte sau unor fragmente de text a a ¸i diverse alte operatii de analiz˘ a textului. s ¸ a • sortarea alfabetic˘. ˆ limba romˆn˘. ˆ prima faz˘. s a ¸ s Codurile asociate caracterelor ASCII sunt cuprinse ˆ ıntre 0 ¸i 127. s caracterele de control primind codurile 0–31 ¸i 127. majuscule ¸i minuscule) cele 10 cifre a s zecimale ¸i un num˘r de 32 de semne de punctuatie ¸i alte simboluri. ¸iret. ´tude. Radu-Lucian Lup¸a s 216 7. Codificarea ASCII Codificarea (codul) ASCII este codificarea cea mai des ˆ alnit˘ penıntˆ a tru texte. ¸ • 94 de caractere imprimabile. iar s ¸ . ˆ a doua etap˘. e Majoritatea codific˘rilor sunt bazate pe reprezentarea una dup˘ alta a a a literelor (caracterelor) ce formeaz˘ cuvintele textului. literele cu diacritice sunt dup˘ toate cuvintele ce ˆ a ıncep cu s. de notat c˘ apar amestecate cuvinte ce ˆ ee e e a ıncep cu ´ ¸i e s ˆ. ¸ ¸ 7. intervenind ˆ ın a aa ın ordinea alfabetic˘ doar pentru cuvinte care difer˘ doar prin diacritice. fiec˘rui cod de caracter ˆ este asociat˘ o In a a ıi a codificare ca ¸ir de biti sau ca ¸ir de octeti. numit codul caracterului. De exemplu. ˆ a ın a In prima etap˘. Exa a emplu: ´t´.1. cu cele dou˘ forme. spatiul are codul 32. • caracterul spatiu (considerat de unii ca fiind caracter imprimabil ¸i de ¸ s altii ca fiind caracter de control). In a ıns˘ considerate. ˆ a. Codificarea textelor • c˘utarea unui cuvˆnt. echivalente cu cele f˘r˘ diacritice. s ¸ s ¸ Pentru o schem˘ de codificare trebuie a¸adar specificate trei elemente: a s • setul de caractere. Setul de caractere cuprinde 128 caractere dintre care: • 33 de caractere de control. a De notat c˘ regulile de sortare alfabetic˘ sunt complexe ¸i depind a a s de limb˘.c 2008. cuprinzˆnd: 52 de litere (cele 26 litere ale a alfabetului latin.2. suc. • numerotarea (codificarea) caracterelor. literele cu diacritice sunt consida ın a a erate imediat dup˘ literele f˘r˘ diacritice. de notat c˘ orice cuvˆnt ce ˆ s a a ıncepe cu ¸ este sortat s ˆ francez˘. fiec˘rui caracter ˆ este asociat un num˘r ˆ a a ıi a ıntreg pozitiv.

Codurile asociate caracterelor sunt codurile din codificarea ASCII pentru cele 128 de caractere din setul ASCII ¸i numere de la 128 la 255 pentru s caracterele suplimentare. • cifrele de la 48 (30 hexa) pentru 0 la 57 (39 hexa) pentru 9. iar pe de alt˘ parte c˘ dintre caracterele de control multe nu sunt a a utilizate deloc ˆ majoritatea aplicatiilor. Codificari de interes practic 217 (celelalte) caractere imprimabile au codurile cuprinse ˆ ıntre 33 ¸i 126. Datorit˘ faptului c˘ pe de o parte caracterele ASCII se reprezint˘ pe a a a un octet. • ISO-8859-8. 140) care nu sunt utilizate. Radu-Lucian Lup¸a s ˘ Capitolul 7. Toate aceste codific˘ri rezultate se a a numesc generic seturi ASCII extinse. alfabetul arab. ¸ ˆ a cel mai adesea un caracter ASCII se reprezint˘ pe un octet. 7. Pentru s a u¸ura sortarea alfabetic˘. a Fiecare cod din familie cuprinde cˆte 256 caractere: cele 128 caractere a ASCII. Codific˘rile ISO-8859 a ISO-8859 este o familie de coduri. alfabetul latin pentru limbile din estul Europei. alfabetul ebraic.2. Limbile acoperite de cˆteva dintre codific˘rile ISO-8859 sunt: a a • ISO-8859-1. • ISO-8859-6. codurile sunt grupate astfel: s a • literele mari de la 65 (41 hexa) pentru A la 90 (5A hexa) pentru Z. ¸ a Fiecare cod din familie este extensie a codului ASCII ˆ sensul c˘ ın a multimea caracterelor din fiecare astfel de cod include multimea caracterelor ¸ ¸ . plus 128 de caractere alese pentru a acoperi alfabetul cˆte unui grup a de limbi.c 2008. • ISO-8859-2. • literele mici de la 97 (61 hexa) pentru a la 122 (7A hexa) pentru z. De remarcat ¸i c˘ diferenta dintre codul oric˘rei litere mici ¸i codul literei mari s a ¸ a s corespunz˘toare este 32 (20 hexa). alfabetul latin pentru limbile din vestul Europei. a Pentru reprezentarea unui caracter ASCII sunt necesari doar 7 biti. • ISO-8859-5. Se poate extinde setul de caractere. • ISO-8859-7. alfabetul grecesc. al c˘rui cel ıns˘ a a mai semnificativ bit este ˆ ıntotdeauna 0.2. octetul continˆnd codul caracterului. alfabetul chirilic. r˘mˆn multe coduri reprezentabile ın ¸ a a (cca. construite toate ca extensii (alternative) ale codific˘rii ASCII. Reprezentarea pe octeti pentru un text ISO-8859-n se face cu cˆte ¸ a un octet pentru fiecare caracter. asociind noilor caractere coduri ˆ ıntre 128 ¸i 255 sau coduri ˆ s ıntre 0 ¸i 31 a c˘ror caractere s a corespunz˘toare nu sunt folosite efectiv.

¸ • UTF-32. • UTF-16. de 4 a a octeti pentru fiecare caracter. Codific˘rile Unicode a Unicode este un set de caractere ce se dore¸te s˘ cuprind˘ litere din s a a toate scrierile de pe P˘mˆnt.2. coın durile ˆ a nedefinite putˆnd fi definite ˆ versiuni urm˘toare ale standardului. ınc˘ a ın a Codurile unicode sunt numere de la 0 la 220 + 216 − 1.2. literele a a In ın a cu diacritice ˆsi au locul imediat lˆng˘ literele similare f˘r˘ diacritice.c 2008. Codificarea textelor Caracter ˘ A ˆ A ˆ I S ¸ T ¸ Cod (hexa) Caracter C3 ˘ a C2 ˆ a CE ˆ ı AA ¸ s DE ¸ t Cod (hexa) E3 E2 EE BA FE Tabelul 7. ¸ . ˆ general. de exemplu. un text scris ˆ ISO-8859-n ¸i interpretat a ın s ca ISO-8859-m va fi evident interpretat gre¸it. ˆ ordinea alfabetic˘. UTF-16LE. 2 a a sau 4 octeti pentru un caracter. s s ın Reprezentarea codurilor unicode ca ¸iruri de octeti poate fi f˘cut˘ ˆ s ¸ a a ın mai multe moduri. ˆ ı¸ a a aa ın codific˘rile ISO-8859-1 sau ISO-8859-2. la aproximativ un milion (mai exact. Codurile de la 0 la 127 corespund acelora¸i caractere ca ¸i ˆ codificarea ASCII. s Ordinea numeric˘ a codurilor din oricare dintre codific˘rile ISO-8859 a a este diferit˘ de ordinea alfabetic˘. UTF-32LE. UTF-32BE sunt codific˘ri de lungime fix˘. ˆ a ıntre 1 ¸i 4 octeti pentru s ¸ un caracter. Ca urmare. UTF-16BE sunt codific˘ri de lungime variabil˘. Radu-Lucian Lup¸a s 218 7. Nu toate aceste coduri sunt definite ˆ prezent. a la 11000016 = 1114112). literele cu diacritice au a codurile mai mari de 128 ˆ vreme ce literele f˘r˘ diacritice au coduri ˆ ın aa ıntre 65 ¸i 123.1: Caracterele cu diacritice din alfabetul limbii romˆne ¸i codific˘rile a s a ISO-8859-2 corespunz˘toare a ASCII ¸i codurile asociate caracterelor comune cu setul ASCII coincid cu cos durile ASCII. un text ASCII este ˆ ıntotdeauna interpretat corect ca text ISO-8859-n. s 7. Num˘rul de caractere din unicode este limitat. Pe de alt˘ parte.3. a a a datorit˘ modurilor de codificare definite. Cele mai r˘spˆndite codific˘ri sunt: a a a • UTF-8 este o codificare de lungime variabil˘.

Conform normelor stabilite de Academia a a a Romˆn˘. a . S ¸ ¸ s T ¸ ¸ t Cod unicode (hexa) 102 103 C2 E2 CE EE 218 219 21A 21B 15E 15F 162 163 Cod unicode (zecimal) 258 259 194 226 206 238 536 537 538 539 350 351 354 355 UTF-8 (hexa) C4 C4 C3 C3 C3 C3 C8 C8 C8 C8 C5 C5 C5 C5 82 83 82 A2 8E AE 98 99 9A 9B 9E 9F A2 A3 Tabelul 7. T .c 2008. s . Codificarea formei cu virgul˘ a fost a a a a a standardizat˘ mai recent. ¸. t . T ¸i ¸ au cˆte dou˘ forme utilizate: a a ¸ s ¸ s t a a una cu virgul˘ dedesupt. forma corect˘ este cea cu virgul˘. Not˘: caracterele S. Radu-Lucian Lup¸a s ˘ Capitolul 7. Codificari de interes practic 219 Caracter ˘ A ˘ a ˆ A ˆ a ˆ I ˆ ı S .2: Caracterele cu diacritice din alfabetul limbii romˆne ¸i codific˘rile a s a unicode corespunz˘toare. motiv pentru care multe documente utilizeaz˘ ˆ a forma a a ınc˘ cu sedil˘. cealalt˘ cu sedil˘.

Al a a ¸ doilea ˆ ıntreg se formeaz˘ punˆnd cifrele 110111 urmate de ultimii 10 din cei a a 20 de biti.3.2. c reprezint˘ codul unicode al caracterului. Valorile lui c (ˆ baza 16) ın 0–7F 80–7FF 800–FFFF 10000–1FFFFF reprezentarea UTF-8 (ˆ baza 2) ın 0c7 c6 c5 c4 c3 c2 c1 c0 110c10 c9 c8 c7 c6 10c5 c4 c3 c2 c1 c0 1110c15 c14 c13 c12 10c11 c10 c9 c8 c7 c6 10c5 c4 c3 c2 c1 c0 11110c20 c19 c18 10c17 c16 c15 c14 c13 c12 10c11 c10 c9 c8 c7 c6 10c5 c4 c3 c2 c1 c0 Tabelul 7.3: Codificarea UTF-8. De exemplu. Codific˘rile UTF-16 a Codificarea UTF-16 este descris˘ ˆ dou˘ etape: ˆ a ın a ıntr-o prim˘ etap˘.1. a Codificarea UTF-8 permite recuperarea sincronismului (dac˘ recepa torul pierde cˆ¸iva octeti poate reg˘si unde ˆ at ¸ a ıncepe un caracter nou). ın a a ¸ Caracterele cu codul unicode ˆ ıntre 0 ¸i D7FF16 sau ˆ s ıntre E00016 ¸i s FFFF16 se scriu ca un singur ˆ ıntreg pe 16 biti. cu c20 reprezentˆnd cifra cea mai semnia a a ficativ˘ ¸i c0 cea mai putin semnificativ˘. iar a a ¸ ˆ a doua etap˘ fiecare astfel de num˘r este scris ca 2 octeti consecutivi. C116 urmat de 8116 ).2. .3. . Codificarea textelor 7. O alt˘ proprietate este c˘ lungimea codific˘rii UTF-8 a unui caracter s a a a poate fi determinat˘ dup˘ citirea primului octet. codul unicode 1030216 se scrie ca doi ˆ ¸ ıntregi astfel: D83C16 DF0216 . Radu-Lucian Lup¸a s 220 7. c0 a reprezint˘ cifrele reprezent˘rii binare a lui c. pentru c = 4116 . Primul ˆ s ¸ ıntreg de 16 biti se ¸ formeaz˘ punˆnd cifrele 110110 urmate de primii 10 din cei 20 de biti.3. schema pena tru c ˆ ıntre 8016 ¸i 7FF16 ) poate fi principial aplicat˘ ¸i la coduri mai mici (de s as exemplu. Codificarea exist˘ doar pentru 0 ≤ c < 221 .2.2. O asta ¸ fel de codificare este ˆ a interzis˘ de standard pentru a asigura unicitatea ıns˘ a codific˘rii UTF-8. Codificarea UTF-8 Corespondenta de la codul caracterului la ¸irul de octeti este dat˘ ˆ ¸ s ¸ a ın tabelul 7. a ¸ ıntˆ rezultˆnd o valoare ˆ a ıntre 0 ¸i FFFFF16 (20 biti).c 2008. as ¸ a a De remarcat c˘ schema pentru coduri mari (de exemplu. ¸ Caracterele cu codul unicode ˆ ıntre 1000016 ¸i 10FFFF16 se scriu ca s doi ˆ ıntregi de cˆte 16 biti astfel: Mai ˆ ai. din codul unicode se scade 1000016 . . rezultˆnd doi octeti. iar ceilalti octet din codificarea unui caracter sunt cuprin¸i ˆ s ¸ ¸ s ıntre 128 ¸i 191. c20 . a a 7. a a codul unicode este transformat ˆ ıntr-unul sau dou˘ numere de cˆte 16 biti. deoarece fiecare caracter nou ˆ ıncepe cu un octet cuprins ˆ ıntre 0 ¸i 127 sau ˆ s ıntre 192 ¸i 255.

vom ˆ ıncepe prin a studia ce se poate ˆ ¸elege ınt . Ca ¸i ˆ cazul ¸ a s ¸ s ın codific˘rilor UTF-16. 7. dar este utilizat ˆ prezent doar ın a ın ın ca marcaj pentru identificarea ordinii octetilor).3. exist˘ trei codific˘ri UTF-32 : a a a • UTF-32LE : Primul octet este cel mai putin semnificativ (little endian). Pentru a reflecta aceste variante a ¸ diferite de alegere. Primul caracter codificat trebuie s˘ fie caracterul ¸a a cu codul FEFF16 (definit initial ca fiind un caracter de control ce in¸ terzice ruperea ˆ rˆnduri ˆ acel punct. ˆ ınseamn˘ c˘ ordinea octetilor este big ena a ¸ dian. F F16 . la ¸ alegerea emit˘torului. fie little endian. Problema reprezent˘rii datei ¸i orei este mult mai dificil˘ decˆt pare a s a a la prima vedere. precum ¸i mems s orarea sau transmiterea acestora. ¸ • UTF-16BE : Primul octet este cel mai semnificativ (big endian). Ordinea octetilor este dedus˘ de receptor prin ex¸ a aminarea primilor patru octeti: dac˘ ace¸tia sunt 0.3. dac˘ este FF16 urmat de FE16 . la ¸ alegerea emit˘torului. a a ¸ 7. F E16 . • UTF-16 : Ordinea octetilor poate fi fie big endian. Codificari de interes practic 221 ˆ Intr-o a doua etap˘ este definit˘ scrierea fiec˘rui ˆ a a a ıntreg de 16 biti ¸ ca un ¸ir de doi octeti. Din acest motiv. ˆ a ınseamn˘ c˘ ordinea octetilor este a a ¸ little endian. ˆ ınseamn˘ c˘ ordinea octetilor este little endian. F E16 . fie little endian. Exist˘ dou˘ modalit˘¸i de a reprezenta fiecare astfel s ¸ a a at de ˆ ıntreg. Ordinea octetilor este ¸ ¸ dedus˘ de receptor prin examinarea primilor doi octeti: dac˘ ace¸tia a ¸ a s sunt FE16 urmat de FF16 .3. Radu-Lucian Lup¸a s ˘ Capitolul 7. reprezentat la rˆndul lui ca un ¸ir de 4 octeti. ¸ a s ˆ ınseamn˘ c˘ ordinea octetilor este big endian. 0. ¸ • UTF-32BE : Primul octet este cel mai semnificativ (big endian).2. exist˘ trei codific˘ri distincte numite generic UTF-16 : a a • UTF-16LE : Primul octet este cel mai putin semnificativ (little endian).c 2008. 0. ˆ ıncepˆnd de la octetul mai semnificativ (de rang mai mare) sau a ˆ ıncepˆnd de la octetul mai putin semnificativ. Primul caracter codificat trebuie s˘ fie caracterul ¸a a cu codul F EF F16 . Reprezentarea datei ¸i orei s Determinarea datei ¸i orei producerii unui eveniment. sunt operatii frecvente ˆ ¸ ıntr-o retea de calcu¸ latoare. dac˘ este F F16 . • UTF-32 : Ordinea octetilor poate fi fie big endian. a a ¸ a 0. Codific˘rile UTF-32 a Codificarea UTF-32 const˘ ˆ codificarea fiec˘rui caracter ca un ˆ a ın a ıntreg pe 32 de biti.

M˘surarea timpului a Exist˘ dou˘ metode utilizate pentru indicarea timpului curent (datei a a ¸i orei curente): s • pe baza unor fenomene astronomice..3. ¸ ¸ Prima variant˘ este de interes practic imediat pentru sincronizarea a activit˘¸ilor umane. legat a de rotatia P˘mˆntului. ziua solar˘ mijlocie). mai precise decˆt mi¸c˘rile P˘mˆntului. exist˘ mai multe standarde de m˘¸ a a surare ¸i reprezentare a timpului: s Timpul atomic international (TAI) este dat de num˘rul de secunde SI ¸ a scurse de la un anumit moment ales ca reper. s a • pe baza unui fenomen fizic repetabil. de exemplu oscilatia unui pendul ¸ sau vibratia unui cristal de cuart. ˆ a s a a a ıncepˆnd a cu anii 1950. luna ¸i ziua sunt incomensurabile (rapoartele duratelor lor sunt s numere irationale). ın a a A doua variant˘ m˘soar˘ direct timpul ca m˘rime fizic˘ ¸i ofer˘ avana a a a as a taje atunci cˆnd avem de determinat ordinea cronologic˘ a unor evenimente a a sau de calculat duratele de timp dintre ele. a ceasurilor atomice. a a Ca urmare a acestor complicatii. alternanta anotimpurilor (anul a ¸ tropic) ¸i. Timpul (fizic) a ajuns s˘ poat˘ fi a a definit independent˘ de mi¸carea P˘mˆntului doar dup˘ dezvoltarea. Are ˆ a complicatii inerente legate de urm˘toarele fapte: at ıns˘ ¸ a • alternanta zi-noapte nu este simultan˘ pe tot P˘mˆntul ci este decalat˘ ¸ a a a a pe longitudine.3. Reprezentarea datei ¸i orei s prin . Radu-Lucian Lup¸a s 222 7. (Unghiul respectiv este unghiul orar. as s 7. zile. iar apoi vom vedea ce scheme de reprezentare ale datei ¸i a s orei exist˘ ¸i ce avantaje ¸i dezavantaje aduce fiecare dintre ele. eventual. ın Timpul universal UT1 este de fapt m˘sura unui anumit unghi. anume alternanta zi-noapte (ˆ ter¸ ın meni astronomici. etc. Secundele TAI se grupeaz˘ a ˆ minute. a s a a a M˘surarea timpului se face pe baza secundei definite ˆ Sistemul International a ın ¸ de unit˘¸i (SI) ca 9192631770 de perioade ale oscilatiei corespunz˘toare tranzitiei at ¸ a ¸ ˆ ıntre cele dou˘ nivele hiperfine ale st˘rii fundamentale a atomului de cesiu 133. pentru un observator aflat 360 .1. fazele lunii (luna sinodic˘ ). ore. • anul. exprimat˘ ˆ unit˘¸i de timp (24 h ˆ loc de ¸ a a a ın at ın ◦ ). luna ¸i ziua nu au durate constante (fenomenele corespunz˘toare nu s a sunt perfect periodice) ¸i nici m˘car previzibile exact (ˆ special rotatia s a ın ¸ P˘mˆntului are neuniformit˘¸i imprevizibile datorate redistribuirii maa a at sei ˆ interiorul P˘mˆntului).ora curent˘“. ¸ • anul.c 2008.

Exemplu: dac˘ prin trecerea de la ora de var˘ la cea de iarn˘ ora a a a a 4:00:00 devine 3:00:00. In ın 60. 24 h UT1 este aproximativ 86400.c 2008. diferenta TAI−UTC este ˆ s ¸ ın prezent de 33 s. astfel ˆ at acea zi UTC a ¸ ıncˆ are 86401 s. leap second ) la o zi. Dac˘ UT1−UTC se apropie de −1 s. a a a a ora legal˘ ˆ Romˆnia este UTC+2 h ˆ timpul iernii (din ultima dua ın a ın minic˘ din octombrie pˆn˘ ˆ ultima duminic˘ din martie) ¸i UTC+3 h a a a ın a s ˆ timpul verii. se elimin˘ o secund˘ din ultimul minut al unei zile. proces aproape echivalent cu a muta UTC cu o secund˘ a ˆ acest scop. dup˘ media ultimilor cˆ¸iva at s a ¸ a a a at ani. astfel a ¸ a as ˆ at ziua de 31 decembrie 2008 va avea 86401 secunde. Codificari de interes practic 223 pe meridianul 0◦ . dup˘ ora 23:59:59 urmeaz˘. ca fiind UTC (sau UT1) ¸ a plus sau minus un anumit num˘r de ore ¸i uneori ¸i fractiuni de or˘ a s s ¸ a (exemplu. o zi UTC normal˘ are 24 ore a 60 minute a 60 secunde SI a fiecare. s a a . s a Astfel. la trecerea de la ora de iarn˘ la In ta ın a a a a cea de var˘ ¸i invers. la trecerea de la ora de var˘ la ora de iarn˘. astfel c˘ la a a a o secund˘ dup˘ 23:59:58 urmeaz˘ ora 0:00:00 a zilei urm˘toare. ın Ora suplimentar˘ introdus˘ la trecerea de la ora de var˘ la cea de a a a iarn˘ nu are notatie distinct˘. la o secund˘. diferenta dintre ora legal˘ ¸i UTC cre¸te.002 s SI. Datorit˘ unei ıncˆ a diferente initiale de 10 s ˆ ¸ ¸ ıntre TAI ¸i UTC. se adaug˘ o a a a secund˘ de corectie (engl. atunci notatia 3:30:00 poate corespunde la dou˘ ¸ a momente de timp. a ¸ a ¸ Ca urmare. fie pe baza UTC ın t a (diferenta este neglijabil˘ pentru uzul practic). De exemplu. Timpul legal ˆ fiecare ¸ar˘ este definit fie pe baza UT1. al soarelui mijlociu. respectiv as ¸ as s scade. exist˘ perechi de a a a momente de timp care sunt notate la fel ¸i ca urmare ora legal˘ este ams a bigu˘. India are ora legal˘ UTC+5h30min). Dac˘ UT1−UTC se apropie a a a de 1 s. de tipul secundelor de corectie din UTC. ora de var˘ 3:30:00 (la 30 min ˆ a ınaintea schimb˘rii a orei) ¸i ora de iarn˘ 3:30:00 (la 30 min dup˘ schimbarea orei). Din a a a a anul 1972 (de la introducerea UTC ˆ forma actual˘) pˆn˘ ˆ 2008 au ın a a a ın fost ad˘ugate 23 de secunde de corectie ¸i nu a fost eliminat˘ nici una. cu o or˘ (de notat c˘ UTC nu are or˘ de var˘). ultimul minut al zilei are 61 de secunde ˆ loc de ˆ ınapoi. 23:59:60 ¸i abia dup˘ ˆ a a a a s a ınc˘ o secund˘ ora 0:00:00 a zilei urm˘toare. adic˘ 86400 s. a ˆ ¸˘rile ˆ care exist˘ or˘ de var˘.) Curge neuniform datorit˘ neunia formit˘¸ii mi¸c˘rii de rotatie a P˘mˆntului. Radu-Lucian Lup¸a s ˘ Capitolul 7. a ¸ s a A 24-a secund˘ de corectie se va ad˘uga la sfˆr¸itul anului 2008. dar gruparea secundelor ˆ zile este modificat˘ pentru a mentine diferenta ın a ¸ ¸ dintre UT1 ¸i UTC la sub o secund˘. Timpul universal coordonat (UTC) este bazat pe secunda SI.

a a ın a Ziua iulian˘ este un simplu num˘r ce arat˘ num˘rul de zile scurse de la a a a a o dat˘ de referint˘.. la amiaza UT1. precum ¸i efectuarea de operatii aritmetice de genul ın s s ¸ adun˘rii sau sc˘derii unei durate formale (exemplu: mˆine la aceea¸i or˘. MJD (modified julian day). Durata ¸ medie a anului gregorian este 365.2425 zile.e. a 3.n. introdus ˆ anul ın 45 ˆ ı.5. Cealalt˘. JD (julian day).n. Obiectivele ˆ alegerea reprezent˘rii timpului ˆ calculaın a ın tor De obicei. conform calendarului iulian proleptic. miezul noptii urm˘toare ¸ a este JD 0.0. Exist˘ ˆ dou˘ variante. 2000. Anii bisecti (de 366 de zile) sunt ¸ anii cu num˘rul anului divizibil cu 4. este calendarul actual. 1900.2422 zile. Acest sistem este utilizat frecvent ˆ astronomie a ¸a ın deoarece permite u¸or calculul duratelor dintre dou˘ date.25 zile. a 7. cu exceptia celor divizibili cu 100 a ¸ f˘r˘ a fi divizibili cu 400. ¸i avˆnd regula mai simpl˘ cum c˘ sunt bisecti toti anii cu s a a a ¸ ¸ num˘r divizibil cu 4. a a a s a aceasta ˆ ınseamn˘ ˆ mod obi¸nuit peste 24 de ore.n. introdus ˆ anul 1582 ¸i ˆ vigoare ˆ Romˆnia ın s ın ın a din anul 1924. a duratei ˆ a ıntre dou˘ momente de a timp. Reprezentarea datei ¸i orei s Pentru gruparea zilelor ˆ unit˘¸i mai mari. 2100. sunt ın at ın ın utilizate mai multe sisteme (calendare): Calendarul gregorian . ceva mai lung decˆt anul a tropic de aproximativ 265. ca timp fizic. Este utilizat adesea de istorici pentru a data ¸i a s evenimente dinainte de anul 45 ˆ ı. Prima. adic˘ este JD−2400000. a 2. are ca referint˘ a ¸a 17 noiembrie 1858 ora 0. Ani bisecti sunt 1600. 2200 etc. 2400 etc. 1800. determinarea exact˘. ˆ special ˆ ani.e. . Momentul respectiv este JD 0.3.c 2008. operatiile ce trebuiesc efectuate asupra reprezent˘rii tim¸ a pului sunt: 1. etc. are ca referinta a ın a ¸ data de 1 ianuarie 4713 ˆ ı. dar poate ˆ a ın s ınsemna peste 23 sau 25 de ore dac˘ intervine trecerea de la ora de iarn˘ la cea a a de var˘ sau invers). predecesorul calendarului gregorian.5 . Calendarul iulian . Citirea sau scrierea timpului ca or˘ legal˘ conform calendarului gregorian a a ˆ formatul obi¸nuit. determinarea ordinii cronologice a dou˘ momente de timp.e. Radu-Lucian Lup¸a s 224 7. calendarul a iulian r˘mˆne ˆ urm˘ cu 1 zi la aproximativ 128 de ani.2. din acela¸i s a s motiv reprezint˘ o schem˘ potrivit˘ pentru reprezentarea datei ˆ cala a a ın culator.3. caz ˆ care el este numit calendar ın iulian proleptic. ani aa ¸ nebisecti divizibili cu 100 sunt 1700. Cu o durat˘ medie a anului de 365.

pe ce fus orar este considerat˘ ¸i care a s a a s sunt regulile privind ora de var˘.c 2008. complicatii legate de saltul cu o or˘ ˆ ¸ a ınainte la trecerea de la ora de iarn˘ la ora de var˘ ¸i calculele legate de calendar. de asemenea. prescurtare din englez˘. Punctul 3 ridic˘. ¸ a a a a a • ziua. aproape orice format util ˆ retea fie transmite direct ora ın ¸ UTC sau TAI.3. Punctul 1 este cerut de toate sistemele. ın ¸ ın functionarea ceasului sistem presupune.3. Formatul utilizat de po¸ta electronic˘ s a Pentru po¸ta electronic˘ (§ 11. pentru tratarea corect˘ a acestor cazuri este a a a necesar s˘ se ¸tie. Punctul 2 este important pentru foarte multe aplicatii ¸i rezolvarea lui corect˘ interzice mutarea ceasului ¸ s a ˆ ınapoi. ¸ Reprezentarea orei UTC permite determinarea ordinii cronologice ¸i s a duratelor f˘r˘ a necesita date despre fusurile orare sau regulile privind ora aa de var˘. citirea sau afi¸area timpului ˆ alte formate ¸ s ın (timpul legal al altui fus orar. Reprezentarea direct˘ a orei legale. ˆ mod repetat. etc). JD. zi. ca num˘r ˆ a ıntre 1 ¸i 31.1.1). or˘. ˆ schimb aceste date sunt necesare la conversia ˆ a ın ıntre reprezentarea UTC ¸i timpul legal. Codificari de interes practic 225 4.3. s • luna. UTC. TAI. sunt necesare informatii cu ¸ privire la secundele de corectie. ˆ ordine: s ¸ ın • optional ziua din s˘pt˘mˆn˘. adunarea unei durate ¸ ın de timp la un moment de timp. a a a secund˘. s a . minut. Ea ridic˘ ˆ a proba ¸ a a a ıns˘ leme la punctul 2 dac˘ sunt implicate calculatoare aflate pe fusuri orare disa tincte sau dac˘ se efectueaz˘ operatii ˆ intervalul de o or˘ ˆ jurul trecerii de a a ¸ ın a ın la ora de var˘ la cea de iarn˘. despre fiecare or˘. s Reprezentarea TAI ca num˘r de unit˘¸i de timp scurse de la un ana at umit moment fixat rezolv˘ extrem de simplu punctele 2 ¸i 3 ˆ schimb mut˘ a s ın a dificult˘¸ile la rezolvarea punctului 1. fie transmite suficient˘ informatie pentru ca receptorul s˘ poat˘ a ¸ a a calcula u¸or ora UTC. a a s de asemenea. ca prescurtare de 3 litere din limba englez˘). Formate utilizate ˆ practic˘ ın a Deoarece ˆ ıntr-o retea pot fi prezente calculatoare situate pe fusuri ¸ orare distincte. fractiuni de secund˘. lun˘. reprezentarea datei se face ca text s a ¸i contine.3. Radu-Lucian Lup¸a s ˘ Capitolul 7. ca ¸ir de trei litere. rezolv˘ simplu punctul 1. pentru calcule exacte ale duratelor. sub forma an. at 7. Punctul 3 este important ˆ aplicatiile ˆ timp real. s 7. pentru aplicatii speciale. pe lˆng˘ problemele coa a a a mune cu cele legate de punctul 2.

• ziua. totdeauna ca 2 cifre. Componentele datei sunt separate printr-un amestec de virgule. Data considerat˘ ˆ acest exemplu este plauzibil˘ conform orei legale a ın a a Romˆniei. a ap˘rut RFC-3339 care cuprinde s a cazurile mai utile ¸i mai frecvent folosite din ISO-8601. ın ¸a Orele astfel specificate sunt u¸or de comparat ¸i nu exist˘ ambiguit˘¸i s s a at legate de trecerea de la ora de var˘ la cea de iarn˘. a a a 25 octombrie 2007. 17:22:19 +0300 ˆ ınseamn˘ c˘ la momentul scrierii mesajului ora local˘ a expeditorului era joi. de a a a a Sun. dup˘ trecerea la ora de iarn˘. ˆ 25 octombrie 2007 fiind ˆ a ˆ vigoare ora de var˘ care este a ın ınc˘ ın a cu 3 ore ˆ avans fat˘ de UTC. De exemplu. secunda. 03:40 +0300 urmat la jum˘tate de or˘. 25 Oct 2007. s ora. Radu-Lucian Lup¸a s 226 7. s diferenta dintre ora legal˘ conform c˘reia a fost scris˘ data ¸i ora UTC. a a ¸ ın ¸ a Cele trei componente sunt separate prin liniute (ISO-8601 permite ¸i alipirea ¸ s lor): . ca patru cifre (nu sunt admise prescurt˘ri de genul 07 pentru 2007). ¸ a a a s aceasta este dat˘ ca 4 cifre. ca 2 cifre (de la 01 pˆn˘ la 31 sau mai putin. Reprezentarea datei ¸i orei s • • • • • anul. s optional. ca dou˘ cifre ˆ ¸ a ıntre 00 ¸i 60.c 2008. Standardul fiind foarte complex. a De exemplu.3. ca ¸ir de 4 cifre. ˆ a ıntre 00 ¸i 59. ISO-8601 ¸i RFC-3339 s ISO-8601 este o standardizare a modului de scriere ca text a datei ¸i orei. 28 Oct 2007. s RFC-3339 prevede reprezentarea datelor astfel: • anul. s minutul. ca dou˘ cifre.2. a • luna. ca 2 cifre (01 pentru ianuarie. spatii ¸i carac¸ s tere dou˘ puncte. ˆ ıntre 00 ¸i 23. 2 pentru num˘rul de ore ¸i 2 pentru num˘rul a a s a de minute. un mesaj a a trimis ˆ ınainte de trecerea la ora de iarn˘ ar fi datat a Sun. data: Thu. cele patru cifre fiind precedate de semnul + sau −.3. 28 Oct 2007. ora 17:22:19 ¸i c˘ ora respectiv˘ este cu 3 ore ˆ avans fat˘ s a a ın ¸a de UTC. 12 pentru decembrie). ora UTC la acel moment era 14:22:19.3. 03:10 +0200 7. ˆ functie de lun˘). Ca urmare.

¸i ca ¸ s urmare valoarea cea mai mare ce poate fi reprezentat˘ corespunde datei de 19 a ianuarie 2038. fractiunile s a ¸ de secund˘ se separ˘ de cˆmpul pentru secunde prin punct. cu valoarea 262 corespunzˆnd ¸ a datei de 1 ianuarie 1970 ora 0 TAI. Timpul POSIX ˆ sistemele de tip UNIX (conforme standardului POSIX).c 2008. Intervalul de timp reprezentabil este imens.342-05:00 7.3. ci difer˘ de acesta prin a a num˘rul de secunde de corectie ad˘ugate pentru mentinerea ˆ sincronism a a ¸ a ¸ ın UTC cu rotatia P˘mˆntului.4. Radu-Lucian Lup¸a s ˘ Capitolul 7. iar specificarea a a a fusului orar se face printr-un semn plus sau minus urmat de dou˘ cifre pentru a num˘rul de ore diferent˘ urmat de caracterul dou˘ puncte ¸i ˆ a dou˘ cifre a ¸a a s ınc˘ a pentru num˘rul de minute diferent˘. luni ¸i ın s ¸ a ın s ani conform regulilor obi¸nuite.3. De aceea. minutul ¸i secunda sunt separate prin dou˘ puncte.3. num˘rul dat ca dat˘ nu este exs a a act num˘rul de secunde scurse de la 1 ianuarie 1970. incluzˆnd secundele de corectie. dou˘ cifre pentru secund˘ (00–60. reprezentarea In timpului este f˘cut˘ printr-un num˘r ˆ a a a ıntreg considerat de obicei c˘ reprezint˘ a a num˘rul de secunde scurse de la 1 ianuarie 1970 ora 0:00 UTC. .3. Timpul a ¸ POSIX este reprezentat ˆ mod obi¸nuit ca ˆ ın s ıntreg cu semn pe 32 de biti. TAI 64 TAI 64 este un standard ce presupune reprezentarea timpului ca num˘r de secunde.3.timpul unix“ are salturi ˆ ¸ a a ınapoi de cˆte a o secund˘ la fiecare introducere a unei astfel de secunde de corectie. . zile. cu a s 14:12:58. Ora. 7. ˆ functie ¸i de prezenta unei sea a ın ¸ s ¸ cunde de corectie). ore. Codificari de interes practic 2007-10-28 227 Ora se reprezint˘ prin 2 cifre pentru or˘ (00–23)..342-05:00 Data ¸i ora se specific˘ ˆ s a ımpreun˘ punˆnd litera T ˆ a a ıntre ele: 2007-10-28T14:12:58. eventual fractiunile de secund˘ ¸i eventual specificarea fusu¸ ¸ as lui orar. dar pe alt fus orar. Ora UTC a ˆ formatul obi¸nuit se obtine grupˆnd secundele ˆ minute.342+02:00 reprezint˘ acela¸i moment de timp. de ordinul a 1011 ani. Num˘rul de secunde este a a ¸ a reprezentat pe 63 de biti (plus un bit rezervat). 2 cifre pentru minut a a (00–59). Exemplu: a ¸a 21:12:58. De fapt. ora 3:14:07 UTC.

trebuie s˘ ˆ s s a ındeplineasc˘ anumite restrictii. 45. s Exemplu: ¸irul de octeti 120. 20 se scrie: 7800172D14. semn˘turi electronice. fi¸ierele a a a a a a s ata¸ate pot fi fi¸iere binare cu continut arbitrar. Reprezentarea datei ¸i orei s Pentru aplicatii ce au nevoie de rezolutie mai bun˘ de o secund˘. un a a ¸ octet nu se va putea codifica numai pe un singur caracter. fiecare caracter putˆnd fi din multimea cuprinzˆnd cifrele zeca a ¸ a imale (0–9) ¸i literele A–F. la scrierea ˆ ¸irurile de caractere a unor carIn ın s actere cu rol special. ¸ ¸ a a standardul prevede ˆ a dou˘ cˆmpuri de cˆte 32 de biti (total 128 de biti). prin aceast˘ a a recodificare rezult˘ o dublare a lungimii ¸irului. 7. este necesar s˘ se codifice un ¸ir arbitrar de octeti In ¸ a s ¸ (fiecare octet poate lua orice valori ˆ ıntre 0 ¸i 255) pe un alfabet constˆnd s a ˆ litere. etc. s s ¸ • La stocarea ˆ fi¸iere text a unor informatii reprezentate natural ca ¸ir ın s ¸ s arbitrar de octeti. a • ˆ limbaje de programare.4. ˆ a ¸ ıntre altele. s ¸ Uneori. 0. Recodific˘ri a Este necesar uneori s˘ codific˘m un ¸ir mai mult sau mai putin arbia a s ¸ trar de octeti sub forma unui ¸ir de caractere supus unor restrictii. etc. inclusiv partea ce cuprinde fi¸ierele ata¸ate. ˆ ¸irul de cifre hexa se insereaz˘ spatii sau caractere newline ın s a ¸ pentru lizibilitate sau pentru evitarea rˆndurilor foarte lungi. Codificarea hexazecimal˘ a Codificarea hexazecimal˘ prevede ca fiecare octet s˘ se reprezinte pe a a dou˘ caractere. s˘ nu aib˘ rˆnduri prea lungi.c 2008.1. 23. de exemplu la stocarea ˆ fi¸iere text a unor chei de ¸ ın s criptare. s ˆ astfel de situatii. a s . Radu-Lucian Lup¸a s 228 7. a Deoarece un caracter se reprezint˘ de obicei pe un octet. ca de exemplu a ghilimelelor (care ˆ mod normal ın sunt interpretate ca terminatorul ¸irului de caractere). Pe de alt˘ parte. cifre ¸i cˆteva simboluri speciale.4. Astfel de ¸ s ¸ situatii apar: ¸ • La trimiterea fi¸ierelor ata¸ate la mesajele de po¸t˘ electronic˘. ınc˘ a a a ¸ ¸ reprezentˆnd respectiv num˘rul de nanosecunde ¸i de attosecunde (valori ˆ a a s ıntre 0 ¸i 109 − 1). s˘ nu contin˘ caractere ASCII a ¸ a de control cu exceptia perechilor carriage return–line feed de la finalul ¸ fiec˘rui rˆnd. ˆ s s sa a ıntregul mesaj. s 7. Deoarece num˘rul de simboluri ın s a a disponibile este mai mic decˆt num˘rul de valori posibile ale octetilor.3.

23. a s 5.2. Fiecare num˘r obtinut la pasul anterior se reprezint˘ printr-un caracter. a ¸ 2. a 25→Z). Se distinge un caracter ˆ alfabetul ın destinatie. 20 devine ¸irul de biti s ¸ s ¸ 01111000 00000000 00010111 00101101 00010100 00000000 ultimul octet fiind ad˘ugat la pasul 1. care se a s ın codific˘ eAAXLRQ= a 7. ın De exemplu. este favorabil ca. Codificari de interes practic 229 7. se reprezint˘ ca: litere mari (0→A. Dac˘ o valoare 0 provine din biti 0 proveniti integral a ¸ ¸ dintr-un octet completat la pasul 1. octetii sau caracterele din a ¸ a ¸ textul de recodificat s˘ fie codificate prin ele ˆ a ınsele. ¸irul de octeti 120. literele mici. Sirul initial de octeti se completeaz˘ la un multiplu de 3 octeti prin ¸ ¸ ¸ a ¸ ad˘ugarea a 0. 0. 0. s considerˆnd primul bit din ¸ir ca fiind cel mai semnificativ. 16. Codific˘ri bazate pe secvente de evitare a ¸ Recodific˘rile prin secvente de evitare sunt utilizate ˆ situatia ˆ care a ¸ ın ¸ ın majoritatea octetilor sau caracterelor din textul de recodificat sunt codurile ¸ unor caractere ce se reg˘sesc ˆ alfabetul ˆ care se face recodificarea. 23. Se formeaz˘ un ¸ir de 24 de biti punˆnd unul dup˘ altul cei cˆte 8 biti a s ¸ a a a ¸ din fiecare octet. / ¸i =. 1 sau 2 octeti cu valoarea 0. s s Codificarea se face ˆ modul urm˘tor: ın a 1. ˆ special pentru ca textul ın s˘ poat˘ fi ˆ ¸eles (partial. cel putin) de c˘tre un utilizator uman direct ˆ a a ınt ¸ ¸ a ın forma recodificat˘. 11. Sirul de biti se regrupeaz˘ a ¸ ¸ a 011110 000000 000000 010111 001011 010001 010000 000000 rezultˆnd ¸irul de numere . Sirul de 24 de biti se ˆ ¸ ¸ ımparte ˆ 4 grupuri de cˆte 6 biti. 61→9) ¸i caracterele + ¸i s s / (62→+. a Recodificarea se face astfel. ˆ a ın ın In aceast˘ situatie.c 2008.3. Codificarea ˆ baza 64 ın Codificarea ˆ baza 64 codific˘ un ¸ir de 3 octeti cu valori arbitrare ın a s ¸ ca un ¸ir de 4 caractere din multimea cuprinzˆnd literele mari. pe cˆt posibil. litere mici (26→a. a ¸ a Cele 64 de valori posibile. 0. de la 0 la 63. 0. 45. • Orice caracter din alfabetul surs˘ care se reg˘se¸te ˆ alfabetul destinatie a a s ın ¸ ¸i este diferit de caracterul de evitare se recodific˘ ca el ˆ si. 17. escape char¸ acter ). 3. din fiecare octet se ˆ ıncepe cu bitul cel mai semnificativ. ˆ loc de A se scrie =. caracter ce este denumit caracter de evitare (enlg. 51→z). Radu-Lucian Lup¸a s ˘ Capitolul 7. 63→/). s a ınsu¸ .4.4. Fiecare ¸ir de 6 biti se consider˘ ca fiind un num˘r cuprins ˆ s ¸ a a ıntre 0 ¸i 63.. ın a ¸ 4.ˆ baza 64“: 30. cifre (52→0. s ¸ a cifrele ¸i caracterele +.

ghilimelele (") servesc In s ın la delimitarea ¸irurilor de caractere.. t . fraza precedent˘ se scrie (presupunˆnd o codificare ISO-8859-2 a a pentru caractere ¸i apoi o recodificare quouted printables): s Ca urmare. ˆ HTML. un caracter ce nu pot fi transmise direct este s a codificat ca o secvent˘ de trei caractere. ca urmare.4. Radu-Lucian Lup¸a s 230 ˘ 7. caracterele unicode sunt scrise prin secvente &#cod . etc) se codific˘ In ¸ a prin caracterul procent (%) urmat de dou˘ cifre hexa reprezentˆnd vala a oarea caracterului respectiv. caracterele ce au rol sintactic (spatiu. o pagin˘ cu numele ¸ir ar avea un URL a a s de forma http://example. litera ¸ se scrie &#539. precum ¸i a a s caracterele din alfabetul surs˘ ce nu se g˘sesc ˆ alfabetul destinatie. un text =EEn care caracterele ce trebuie recodificate sunt rare poate fi =EEn=FEeles de c=E3tre un utilizator uman f=E3r=E3 prea mari dificult=E3=FEi. Dac˘ se dore¸te introducerea unor s a s astfel de caractere ˆ ıntr-un ¸ir. \n pentru newline (caracterul ASCII cu codul 10).c 2008. Caracterele ASCII imprimabile. /. cu s exceptia caracterului egal. un caracter egal (=) ¸i dou˘ ¸a s a cifre hexa reprezentˆnd codul caracterului de transmis. De notat c˘ aceste coduri sunt ˆ cadrul a ın codific˘rii UTF-8. \\ pentru ¸ backslash (\). Exemple: • Pentru po¸ta electronic˘.com/%C8%98ir • ˆ limbajul C ¸i ˆ alte limbaje derivate din el. De ex• In ¸ emplu.. se a a ın ¸ codific˘ ca secvente de caractere ce ˆ a ¸ ıncep cu un caracter de evitare. sau a caracterelor ASCII de control. • ˆ URL-uri. un text ˆ care caracterele ce trebuie recodificate sunt rare poate ın fi ˆ ¸eles de c˘tre un utilizator uman f˘r˘ prea mari dificult˘¸i. Ca exınt a aa at emplu. Ca ur¸ aa mare. se transmit direct (f˘r˘ recodificare). se s introduc secvente escape cum ar fi: \" pentru ghilimele ("). Aceast˘ recodia a ficare se nume¸te quouted printables. Recodificari • Caracterul de evitare (dac˘ face parte din alfabetul surs˘).

Interfata de programare socket BSD ¸ Interfata socket este un ansamblu de functii sistem utilizate de pro¸ ¸ grame (de fapt. proces utilizator nucleul S. Interfata socket a fost dezvoltat˘ ˆ cadrul ¸ ¸ a ın sistemului de operare BSD (sistem de tip UNIX. aflate ˆ ın executie pe alte calculatoare.c 2008. dezvoltat la Universitatea Berkley) — de aici denumirea de socket BSD.1. leg˘tur˘ logic˘ a a a retea ¸ Figura 8.1: Comunicatia ˆ ¸ ıntre dou˘ procese prin retea a ¸ Prezent˘m ˆ continuare principiile de baz˘ ale interfetei socket (vezi a ın a ¸ . Interfata socket este disponibil˘ ¸ a ˆ aproape toate sistemele de operare actuale. ın Termenul socket se utilizeaz˘ atˆt pentru a numi ansamblul functiilor a a ¸ sistem legate de comunicatia prin retea.O. de procese) pentru a comunica cu alte procese. Radu-Lucian Lup¸a s 231 Capitolul 8 Programarea ˆ retea — introducere ın ¸ 8. ın ¸ proces utilizator socket nucleul S. cˆt ¸i pentru a desemna fiecare cap˘t ¸ ¸ a s a al unei conexiuni deschise ˆ cadrul retelei.O.

1. IPv6. Deschiderea unei conea a xiuni. 8. a ¸ • Interfata socket contine functii pentru comunicatiei atˆt conform mod¸ ¸ ¸ ¸ a elului conexiune cˆt ¸i conform modelului cu datagrame. transmiterea sau receptionarea de date pe o cone¸ xiune ¸i configurarea parametrilor unei conexiuni se fac de c˘tre sistemul s a de operare. Cererile procesului se fac prin apelarea functiilor sistem din familia socket.1): s • Pe fiecare calculator ruleaz˘ mai multe procese ¸i fiecare proces poate avea a s mai multe c˘i de comunicatie deschise. pe un calculator a ¸ trebuie s˘ poat˘ exista la un moment dat mai multe leg˘turi (conexiuni) a a a active.c 2008. a a ¸ . Comunicatia prin conexiuni ¸ ˆ cele ce urmeaz˘. O descriere mai am˘nuntit˘ a functiilor sistem apelate ¸i a parametrilor a ¸ a ¸ s mai des utilizati este f˘cut˘ separat (§ 8. iar prin server ˆ ¸elegem procesul care a¸teapt˘ ˆ mod pasiv a ınt s a ın conectarea unui client. Vom da ˆ cele ce urmeaz˘ o scurt˘ descriere a operatiilor pe care ın a a ¸ trebuie s˘ le efectueze un proces pentru a deschide o conexiune ¸i a comunica a s prin ea. ˆ ınchiderea ei. Radu-Lucian Lup¸a s 232 8. a s • Functiile sistem oferite permit stabilirea comunicatiei prin diferite pro¸ ¸ tocoale (de exemplu.1. Interfata de programare socket BSD ¸ ¸i figura 8. deschiderea conexiunii de c˘tre server.3). IPX).1. iar pentru detalii suplimentare ¸ a a se recomand˘ citirea paginilor corespunz˘toare din documentatia on-line. la cererea procesului. Prin urmare. ın • Fiecare entitate care comunic˘ ˆ cadrul retelei este identificat printr-o a ın ¸ adres˘ unic˘. unice ˆ cadrul unui proces la fiecare moment de timp. dar au aceea¸i sintax˘ de apel s a independent de protocolul dorit. ¸ • ˆ cadrul comunicatiei dintre procesul utilizator ¸i sistemul de operare In ¸ s local (prin intermediul apelurilor din familia socket). Adresa este a a a format˘ conform regulilor protocolului de retea utilizat. Descrierea este ˆ artit˘ ˆ patru p˘rti: deschiderea conexiunii de ımp˘ ¸ a ın a¸ c˘tre client.1. IPv4. prin client desemn˘m procesul care solicit˘ ˆ In a a a ın mod activ deschiderea conexiunii c˘tre un partener de comunicatie specificat a ¸ printr-o adres˘. O adresa este asociat˘ de fapt unui socket. • Realizarea comunic˘rii este intermediat˘ de sistemele de operare de pe a a calculatoarele pe care ruleaz˘ cele dou˘ procese. capetele locale ale conexiunilor deschise sunt numite socket-uri ¸i sunt identificate prin nus mere ˆ ıntregi. comunicatia propriu-zis˘ a a ¸ a ¸i ˆ s ınchiderea conexiunii.

1. Programarea ˆ retea — introducere ın ¸ 233 8. Trebuie specificat protocolul de retea utilizat (TCP/IPv4. La apelul functiei accept(). ca urmare este numit uneori socket de a¸teptare. a • returneaz˘ apelantului (procesului server) identificatorul socket-ului de a conexiune creat. etc).3. ˆ ordinea ˆ care trebuie apelate: socket() pentru crearea socketa ın ın ului. pentru protocolul TCP/IPv4. clientul cere sistemului de operare conectarea a socket-ului la un anumit server. dar ˆ a nu se specific˘ partenerul de comunicatie. Dup˘ un apel accept().1).1. Socket-ul ınc˘ a ¸ proasp˘t creat este ˆ starea neconectat. care reprezint˘ cap˘tul a a a dinspre server al conexiunii proasp˘t deschise. De exemplu.1. a 8. Deschiderea conexiunii de c˘tre client a Procesul client trebuie s˘ cear˘ mai ˆ ai sistemului de operare local a a ıntˆ crearea unui socket. ci doar pentru a¸teptarea a s conect˘rii clientilor. a ın Dup˘ crearea socket-ului. Dup˘ a ¸ s a crearea acestui socket. . s a Functiile sistem apelate sunt: socket() pentru crearea socket-ului ¸i ¸ s connect() pentru deschiderea efectiv˘ a conexiunii.1. Deschiderea conexiunii de c˘tre server a Procesul server ˆ ıncepe tot prin a cere sistemului de operare crearea unui socket de tip conexiune pentru protocolul dorit. socket-ul de a¸teptare poate fi utilizat pentru a a s a¸tepta noi clienti. adresa partenerului se specific˘ a prin adresa IP (vezi § 10. Functiile apelate ˆ aceast˘ s a ¸ ¸ ın a faz˘ sunt.1. ¸ Preluarea efectiv˘ a unui client conectat se face prin apelarea unei a functii sistem numit˘ accept(). bind() pentru stabilirea adresei ¸i listen() pentru ˆ s ınceperea a¸tept˘rii s a clientilor. acea parte din s a adres˘ care identific˘ ma¸ina serverului nu este la alegerea procesului server) a a s ¸i apoi cere efectiv ˆ s ınceperea a¸tept˘rii clientilor. serverul trebuie s˘ cear˘ sistemului de operare stabilirea a a adresei la care serverul a¸teapt˘ cereri de conectare (desigur. specificat prin adresa socket-ului serverului. sistemul de ¸ a ¸ operare execut˘ urm˘toarele: a a • a¸teapt˘ cererea de conectare a unui client ¸i deschide conexiunea c˘tre s a s a acesta. ¸ TCP/IPv6.1) ¸i num˘rul portului (vezi § 10.2.c 2008. iar socket-ul de conexiune nou creat se utilizeaz˘ pentru a s ¸ a comunica efectiv cu acel client. Acest socket nu va servi pentru conexiunea propriu-zis˘ cu un client. • creaz˘ un nou socket. Radu-Lucian Lup¸a s Capitolul 8. numit socket de conexiune.

ˆ ordinea ˆ care au fost trimi¸i. Trimiterea datelor se face prin apelul functiei send() (sau. ¸a a a ın a s s iar receptorul s˘ primeasc˘. clientul poate trimite ¸iruri de octeti a a s ¸ c˘tre server ¸i invers. apelul send() se blocheaz˘. sensul de comunicatie a ¸ cerut de procesul apelant. Aceste functii returneaz˘ procesului apelant datele ¸ a deja sosite pe calculatorul receptor ¸i le elimin˘ din coad˘. este ¸ ¸ ın posibil ca emit˘torul s˘ trimit˘. De exemplu. eliberˆnd resursele alocate (identificatorul de socket a . se poate transmite un ¸ir arbitrar de s octeti. • close() ˆ ınchide la cap˘tul local ambele sensuri de comunicatie ¸i ˆ plus a ¸ s ın distruge socket-ul. Nu se p˘streaz˘ ˆ a demarcarea ın ın s a a ıns˘ ˆ ıntre secventele de octeti trimise ˆ apeluri send() distincte. dar nu a¸teapt˘ transmiterea lor efectiv˘ (returneaz˘. Octetii trimi¸i de c˘tre unul dintre procese spre cel˘lalt sunt plasati ¸ ¸ s a a ¸ ˆ ıntr-o coad˘.1. Interfata de programare socket BSD ¸ 8. ˆ Inchiderea conexiunii ˆ Inchiderea conexiunii se face separat pentru fiecare sens ¸i pentru s fiecare cap˘t.1. Apelul acestor functii plaseaz˘ datele ˆ coad˘ a ¸ a ın a spre a fi transmise. serverul poate trimite ¸iruri de octeti c˘tre client.4. Exist˘ dou˘ functii: a a a ¸ • shutdown() ˆ ınchide.c 2008. ˆ cazul ˆ care nu s a a In ın sunt ˆ a date disponibile. Receptionarea datelor trimise de c˘tre partenerul de comunicatie se ¸ a ¸ face prin intermediul apelului sistem recv() (cu functionalitate mai redus˘ a se poate utiliza read()). Cele a s s ¸ a dou˘ sensuri de comunicatie functioneaz˘ identic (nu se mai distinge cine a a ¸ ¸ a fost client ¸i cine a fost server) ¸i complet independent (trimiterea datelor pe s s un sens nu este conditionat˘ de receptionarea datelor pe cel˘lalt sens). ¸irurile abc ¸i def. ˆ dou˘ apeluri succesive. write()). (aleas˘ de sistemele a a a a de operare de pe cele dou˘ ma¸ini). Radu-Lucian Lup¸a s 234 8. cde ¸i f. imediat controlul c˘tre procesul apelant).1.3. ducˆnd la sc˘derea dimensiunii datelor din coad˘ sub valoarea a a a a prag. printr-un cod de eroare. ¸ a ¸ a Pe fiecare sens al conexiunii. Comportamentul acesta este similar cu cel al unui pipe UNIX. Comunicatia propriu-zis˘ ¸ a O dat˘ deschis˘ conexiunea. a a ın s s 8. ınc˘ s a ¸ Sistemul garanteaz˘ sosirea la destinatie a tuturor octetilor trimi¸i a ¸ ¸ s (sau ˆ stiintarea receptorului. returnˆnd a s a a controlul procesului apelant abia dup˘ ce partenerul de comunicatie cite¸te a ¸ s date din coad˘. ˆ apeluri recv() succesive. Dac˘ dimensiunea datelor a a din coad˘ este mai mare decˆt o anumit˘ valoare prag. transferati prin retea la cel˘lalt cap˘t ¸i cititi de c˘tre procesul a ¸ ¸ a a s ¸ a de acolo. ele a¸teapt˘ sosirea a cel putin un octet. la cap˘tul local al conexiunii.1.1. cu functio¸ ¸ nalitate mai redus˘. de s a a a principiu. asupra c˘derii coneın¸ ¸ a xiunii). ¸irurile ab.

a Dac˘ cap˘tul de receptie al unui sens a fost ˆ a a ¸ ınchis. prin apelul functiei sendto(). ın ın Dac˘ cap˘tul de emisie al unui sens de comunicatie a fost ˆ a a ¸ ınchis. de c˘tre procesul emit˘tor. succesiv. 8. Datagramele trimise vor avea ca adres˘ ¸ a surs˘ adresa socket-ului ¸i ca adres˘ destinatia ¸i continut util valorile date ca a s a ¸ s ¸ parametri functiei sendto(). Aceast˘ functie ia urm˘toarea a a ¸ a ¸ a datagram˘ adresat˘ socket-ului dat ca parametru la recvfrom() ¸i o transfer˘ a a s a din buffer-ele sistemului local ˆ memoria procesului apelant. Dup˘ crearea ın ¸ a unui socket. scrierea poate duce ¸i la primirea. a s a ¸a unui semnal SIGPIPE). separat. o scriere ulterioar˘ a de la cel˘lalt cap˘t este posibil s˘ returneze un cod de eroare (pe sistemele a a a de tip UNIX. Comunicatia prin datagrame ¸ ˆ comunicatia prin datagrame. Programarea ˆ retea — introducere ın ¸ 235 ¸i memoria alocat˘ ˆ spatiul nucleului). Destinatarul poate ın citi o datagram˘ apelˆnd functia recvfrom(). adresa expeditoru¸ s lui datagramei.c 2008. o adres˘ destinatie as a a a a ¸ ¸i ni¸te date utile. Functia ofer˘ ın ¸ a apelantului continutul datagramei (datele utile) ¸i.1. O dat˘ creat un socket. ın a rar˘) ca o datagam˘ s˘ fie duplicat˘ (s˘ ajung˘ dou˘ copii la destinatar) ¸i a a a a a a a s . Mai mult. iar a a ¸ atribuirea unei adrese se face prin apelul bind(). a a Sistemul nu garanteaz˘ livrarea tuturor datagramelor (este posibil˘ a a pierderea unor datagrame) ¸i nici nu ofer˘ vreun mecanism de informare a s a expeditorului ˆ cazul unei pierderi. receptorul poate citi ˆ continuare datele existente ˆ acel moment ˆ coad˘. ın ın ın a dup˘ care un eventual apel recv() va semnaliza apelantului faptul c˘ a fost a a ˆ ınchis˘ conexiunea. unde sunt memorate ˆ buffer-ele sistemului. s a Datagramele emise sunt transmise c˘tre sistemul de operare al desa tinatarului. se poate cere sistemului de operare s˘ asocieze socket-ului o ana umit˘ adres˘ sau se poate l˘sa ca sistemul de operare s˘-i atribuie o adres˘ a a a a a liber˘ arbitrar˘.2. oricˆte ¸ a datagrame ¸i oricˆtor destinatari. procesul poate trimite datagrame de pe acel a socket. Un proces ce dore¸te s˘ trimit˘ sau s˘ primeasc˘ datagrame s s s a a a a trebuie mai ˆ ai s˘ creeze un socket de tip dgram. exist˘ posibilitatea (e drept. un astfel de socket contine ıntˆ a ¸ ˆ principal adresa de retea a procesului posesor al socket-ului. Radu-Lucian Lup¸a s Capitolul 8. De pe un socket se pot trimite. datagramele sunt transmise indepenIn ¸ dent una de cealalt˘ ¸i fiecare datagram˘ are o adres˘ surs˘. s a ın ¸ Terminarea unui proces are efect identic cu un apel close() pentru toate socket-urile existente ˆ acel moment ˆ posesia acelui proces. ˆ ciuda numelui. Crearea unui socket se face prin apelul functiei socket(). recvfrom() nu poate fi instruit˘ s˘ ia ˆ In a a ın considerare doar datagramele expediate de la o anumit˘ adres˘.

La trimiterea primei datagrame. ˆ acest caz. calculeaz˘ a ın a a r˘spunsul ¸i trimite o ˆ a s ınapoi o datagram˘ cu cererea primit˘ ¸i r˘spunsul la a as a cerere. Clientul obtine r˘spunsul executˆnd recvfrom() asupra ¸ a a socket-ului de pe care a expediat cererea. ˆ sensul c˘ trimite cereri. iar cel˘lalt actioneaz˘ ca ın a a ¸ a server. proceseaz˘ cererea ¸i trimite r˘spunsul c˘tre adresa surs˘ a s a a s a a a cererii. a ın portul asociat socket-ului).1. Clientul trimite apoi cererea sub forma unei a a datagrame de pe socket-ul creat. ın La terminarea utiliz˘rii unui socket. a a a s precum ¸i numere de secvent˘ sau alte informatii pentru identificarea ordinii s ¸a ¸ corecte a datagramelor ¸i a duplicatelor. clientul poate identifica fiecare r˘spuns la ce a ¸ ın s a cerere ˆ corespunde. Dac˘ la o ıi s ın a a cerere nu prime¸te r˘spuns ˆ s a ıntr-un anumit interval de timp. Un exemplu tipic ˆ acest a a ın ın sens este protocolul DNS (§ 10. atunci protocolul de comunicatie ¸ ¸ ¸ trebuie s˘ prevad˘ confirm˘ri de primire ¸i repetarea datagramelor pierdute. Serverul ia (ˆ mod repetat) cˆte o cerere. duplicarea a cererii de c˘tre retea sau repetarea cererii de c˘tre client ca urmare a pierderii a ¸ a . procesul posesor poate cere disa trugerea socket-ului ¸i eliberarea resurselor asociate (identificatorul de socket. Dac˘ astfel a ¸ ın a a ın a de situatii sunt inadmisibile pentru aplicatie. deoarece procesarea unei cereri nu modific˘ starea serverului. ˆ sensul c˘ prelucreaz˘ cererile clientului ¸i trimite ˆ ın a a s ınapoi clientului r˘spunsurile la cereri. s memoria ocupat˘ ˆ sistemul de operare pentru datele asociate socket-ului. Clientul trimite cererile sale ¸i a¸teapt˘ r˘spunsurile. ˆ a Intr-un astfel de scenariu. Implementarea acestor mecanisme s cade ˆ sarcina proceselor. ˆ mod curent. La primirea unei datagrame. sistemul de operare d˘ o adres˘ socket-ului. unul dintre pro¸ cese are rol de client. ˆ In ıntr-o comunicatie prin datagrame. Interfata de programare socket BSD ¸ este posibil ca dou˘ sau mai multe datagrame adresate aceluia¸i destinatar s˘ a s a ajung˘ la destinatie ˆ alt˘ ordine decˆt cea ˆ care au fost emise. chiar ¸i ˆ cazul invers˘rii ordinii datagramelor. ˆ acest fel. r˘spunsul este adresat exact socket-ului de pe care clienIn a tul a trimis cererea. un caz simplu este acela ˆ care clientul pune doar ˆ ın ıntreb˘ri (interog˘ri) serverului. datagrama cerere contine inIn ¸ terogarea ¸i daatgrama r˘spuns contine atˆt cererea la care se r˘spunde cˆt ¸i s a ¸ a a a s r˘spunsul la interogare. Cu privire la tratarea datagramelor pierdute. dup˘ care a¸teapt˘ cereri. clientul repet˘ cera erea. serverul recupereaz˘ datele utile a a a ¸i adresa surs˘. Distrugerea socket-ului se face prin apelul functiei ¸ close().4). serverul creaz˘ un socket a c˘ruia ˆ asociaz˘ o adres˘ prestabilit˘. datagrama emis˘ poart˘ ca adres˘ surs˘ a a a a a a acest˘ adres˘.c 2008. iar procesarea ina a terog˘rii nu modific˘ ˆ nici un fel starea serverului. apelˆnd a ıi a a a a s a a ˆ mod repetat recvfrom(). Deoarece fiecare s s a a r˘spuns contine ˆ el ¸i cererea. c˘ruia nu-i asociaz˘ ın a a a o adres˘ (nu execut˘ bind()). Radu-Lucian Lup¸a s 236 8. Clientul creaz˘ un socket.

1. Functia socket() ¸ Functia are sintaxa: ¸ int socket(int proto_family.1. Programarea ˆ retea — introducere ın ¸ 237 r˘spunsului nu au efecte nocive. versiunea 6 (IPv6) PF UNIX:comunicatie local˘ pe o ma¸in˘ UNIX. ¸ a s a • protocol selecteaz˘ protocolul particular de utilizat. s 8. transa a s misia este garantat˘ a fi f˘r˘ erori. Clientul trebuie s˘ ignore r˘spunsurile duplia a a cate la o aceea¸i interogare. flux de date bidirectional ¸ la nivel de octet. Valoarea 0 desemneaz˘ a a protocolul implicit pentru tipul de retea ¸i tipul de serviciu alese. este de exemplu utilizat a de c˘tre comanda ping pentru comunicatie prin protocolul ICMP.1. int type. Valori posibile: PF INET:protocol Internet. a ¸ a ¸ a • proto family identific˘ tipul de retea cu care se lucreaz˘ (IP. int addr_len) Functia are ca efect conectarea socketului identificat de primul parametru — ¸ care trebuie s˘ fie un socket de tip conexiune proasp˘t creat (ˆ a neconectat) a a ınc˘ . cu pastrarea ordinii a octetilor ¸i transmisie fara erori. asigurˆnd livrare sigura.3. dar livrarea nu este sigura ¸i a aa s nici ordinea datagramelor garantata. Principalele apeluri sistem 8. SOCK RAW:acces la protocoale de fivel coborˆt.3. Radu-Lucian Lup¸a s Capitolul 8. IPX. atˆt punct la punct cˆt ¸i difuziune. versiunea 4 (IPv4) PF INET6:protocol Internet.3. int protocol) Functia creaz˘ un socket ¸i returneaz˘ identificatorul s˘u.1. etc). ¸ s SOCK DGRAM:datagrame. Acest parametru a este util dac˘ pentru un tip de retea dat ¸i pentru un tip de serviciu a ¸ s fixat exist˘ mai multe protocoale utilizabile. Parametrii ¸ a s a a sunt: • type: desemneaz˘ tipul de servicii dorite: a SOCK STREAM:conexiune punct la punct. ¸ s 8.c 2008. struct sockaddr* addr. Functia connect() ¸ Functia are sintaxa: ¸ int connect(int sock_id.2.

Interfata de programare socket BSD ¸ — la serverul identificat prin adres˘ dat˘ prin parametrii addr ¸i addr len.130 cˆt ¸i adresei 127.1. a s a s .1. Eroarea survenit˘ poate fi constatat˘ fie verificˆnd valoarea variabilei a a a globale errno. adic˘ atˆt adresei a s a a 193. Aceast˘ functie se apeleaz˘ ˆ a ¸ a ın mod normal dintr-un proces server.0.0.0. dac˘ adresa acordat˘ s a a a prin bind() este INADDR_ANY.1.3.40. socklen_t len) Functia are ca efect atribuirea adresei specificate ˆ parametrul addr ¸ ın socket-ului identificat prin identificatorul sd. atunci socket-ul respectiv va accepta cereri de conectare adresate oric˘reia dintre adresele ma¸inii locale. ˆ a ınainte de apelul connect(). s s a ¸ Partea.c 2008.1.226.1.6.1. socket-ul In va primi doar cereri de conexiune (sau. continutul acestei structuri va fi descris ˆ § 8.1. din adresa de atribuit socket-ului.0. ce contine adresa ma¸inii ¸ s poate fi fie una dintre adresele ma¸inii locale. s s s Exemplul 8.226.3. a a s La adresa respectiv˘ trebuie s˘ existe deja un server care s˘ a¸tepte conexiuni a a a s (s˘ fi fost deja executat apelul listen() asupra socket-ului serverului). a s Adresa atribuit˘ prin functia bind() trebuie s˘ fie liber˘ ˆ acel moa ¸ a a ın ment. Dimpotriv˘. Dac˘ ˆ momentul apelului bind() exist˘ un alt socket de acela¸i tip a ın a s avˆnd aceea¸i adres˘. Eroarea cea mai frecvent˘ este lipsa unui server care s˘ ıntˆ a a asculte la adresa specificat˘.0.130 a a s ¸i 127.0. pentru diferite protocoale.3. fie valoarea special˘ INADDR_ANY s a (pentru IPv4) sau IN6ADDR_ANY_INIT (pentru IPv6).40. iar ın a lungimea structurii de adres˘ trebuie dat˘ ca parametrul addr len.0. pentru a preg˘ti un socket stream de a a¸teptare sau un socket dgram pe care se a¸teapt˘ cereri de la clienti. a ¸ ın Adresa ˆ memorie a acestei structuri trebuie dat˘ ca parametrul addr.130.1: S˘ presupunem c˘ ma¸ina server are adresele 193. Dac˘ la apelul functiei bind() se d˘ adresa IP 127. nu ¸i adresei 193. ¸i nu ¸i cele adresate altora dintre adresele ma¸inii server.226. a 8. a Adresa trebuie plasat˘. Functia bind() ¸ int bind(int sd. pachete) adresate adresei IP date socket-ului.40. iar unele proa tocoale au adrese de lungime variabil˘. apelul bind() e¸ueaza. a Functia connect() returneaz˘ 0 ˆ caz de succes ¸i −1 ˆ caz de ¸ a ın s ın eroare. Radu-Lucian Lup¸a s 238 8. fie apelˆnd functia perror() imediat dup˘ functia sistem ce a a ¸ a ¸ ˆ ampinat probleme. Motivul a a acestei complicatii este legat de faptul c˘ functia connect() trebuie s˘ poat˘ ¸ a ¸ a a lucra cu formate diferite de adres˘. respectiv.0. ˆ ıntr-o structur˘ a avˆnd un anumit format. ˆ primul caz. struct sockaddr* addr. atunci s a ¸ a socket-ul respectiv va primi doar cereri de conectare destinate adresei IP 127.

De asemenea. functia a a s ¸ bind() nu poate fi apelat˘ pentru un socket de conexiune creat prin functia a ¸ accept() ¸i nici pentru un socket asupra c˘ruia s-a apelat ˆ prealabil vreuna s a ın dintre functiile connect(). int backlog) Functia cere sistemului de operare s˘ accepte. ¸ a Dac˘ procesul server nu dore¸te s˘ afle adresa clientului. a a a a 8. a Functia returneaz˘ identificatorul socket-ului de conexiune creat. functia listen() ˆ ınc˘ a ¸ ıi atribuie o adres˘ aleas˘ aleator. Dac˘ nu exist˘ ˆ a nici un client conectat ¸i pentru care s˘ nu s a a ınc˘ s a se fi creat socket de conexiune.1.5. De notat c˘ nu exist˘ nici o limitare a num˘rului a a a de clienti conectati. preluati deja prin apelul accept(). vor putea exista backlog clienti care au exe¸ cutat connect() f˘r˘ ca serverul s˘ fi creat ˆ a pentru ei socket-uri de coneaa a ınc˘ xiune prin apeluri accept(). Programarea ˆ retea — introducere ın ¸ 239 Pe sistemele de tip UNIX. listen() sau sendto() — aceste functii avˆnd ca ¸ ¸ a efect atribuirea unei adrese libere aleatoare. Dac˘ socketului respectiv nu i s-a a atribuit ˆ a o adres˘ (printr-un apel bind() anterior).4. Dac˘ procesul server dore¸te s˘ afle adresa s a s a clientului. atunci va trebui s˘ aloce spatiu pentru o structur˘ pentru memoa ¸ a rarea adresei clientului. Eroarea ¸ a ın s ın cea mai frecvent˘ este c˘ adresa dorit˘ este deja ocupat˘. Anume. ¸ ¸ ¸ 8. asociat unui client conectat (prin apelul connect()) la socket-ul de a¸teptare sd. Functia bind() poate fi apelat˘ doar pentru un socket proasp˘t creat. Radu-Lucian Lup¸a s Capitolul 8. Functia listen() ¸ int listen(int sd. s˘ pun˘ adresa structurii respective ˆ parametrul a a ın . struct sockaddr *addr. pentru atribuirea unui num˘r de port mai a mic decˆt 1024 este necesar ca procesul apelant s˘ ruleze din cont de admina a istrator.1. va da valori a s a NULL parametrilor addr ¸i addrlen. cererile ¸ a de conexiune pe adresa socket-ului sd. socklen_t *addrlen) Apelul functiei accept() are ca efect crearea unui socket de cone¸ xiune. functia accept() a¸teapt˘ pˆn˘ la conectarea ¸ s a a a urm˘torului client.3. Functia returneaz˘ 0 ˆ caz de succes ¸i −1 ˆ caz de eroare. a a Parametrul backlog fixeaz˘ dimensiunea cozii de a¸teptare ˆ aca s ın ceptarea conexiunilor. din acel moment. Aceasta ˆ a ınc˘ a ınseamn˘ c˘ functia bind() a a ¸ nu poate fi apelat˘ de dou˘ ori pentru acela¸i socket.c 2008. ¸ a a c˘ruia nu i s-a atribuit ˆ a o adres˘.3. Functia accept() ¸ int accept(int sd.

3. Pentru ca functiile de mai sus s˘ poat˘ avea aceea¸i sintax˘ de apel ¸ a a s a independent de tipul de retea (¸i. ˆ functie de protocolul de nivel s ın ¸ . getsockname() a ¸ ¸i getpeername()). pentru anumite tipuri de retea.1. ˆ plus.3. sunt definite structuri de date (struct) ˆ care se plaseaz˘ s ın a adresele socket-urilor. a • functiile care furnizeaz˘ apelantului o adres˘ (accept(). procesul server va g˘si ˆ strucIn a ın tura de adres˘ adresa socket-ului client ¸i ˆ variabila ˆ a s ın ıntreag˘ a c˘rui adres˘ a a a a fost dat˘ ˆ parametrul adrlen va g˘si dimensiunea efectiv utilizat˘ de sisa ın a a temul de operare pentru a scrie adresa clientului. ¸ O adres˘ a unui cap˘t al unei conexiuni TCP sau a unei leg˘turi a a a prin datagrame UDP este format˘ din adresa IP a ma¸inii ¸i num˘rul de port a s s a (vezi § 10. ¸ a a getsockname() ¸i getpeername()) primesc doi parametri: un pointer s c˘tre structura de adres˘ ¸i un pointer c˘tre o variabil˘ de tip ˆ a as a a ıntreg pe care apelantul trebuie s-o initializeze. parametrul pointer c˘tre structura de adres˘ este declarat In a a ca fiind de tip struct sockaddr*. ¸ Dimensiunea structurii de date ce contine adresa de retea depinde ¸ ¸ de tipul de retea ¸i.6.3. recvfrom(). § 10. bind() ¸i ¸ a s sendto()) au doi parametri: un pointer c˘tre structura de adres˘ ¸i a a s un ˆ ıntreg reprezentˆnd dimensiunea acestei structuri. ˆ ¸ ınaintea apelului. dimensiunea utilizat˘ efectiv de astuctura de adres˘.2.1.1. Structura zonei de memorie respective depinde de tipul retelei utilizate. s˘ plaseze ˆ a ıntr-o variabil˘ de tip ˆ a ıntreg dimensiunea memoriei alocate pentru adresa clientului ¸i s˘ pun˘ adresa acestui ˆ s a a ıntreg ˆ parametrul adrlen. dimensiunea este ¸ s ın ¸ variabil˘. ¸ ¸ ˆ toate cazurile. La apelul acestor functii este necesar˘ con¸ a versia a pointer-ului c˘tre structura de adres˘ de la pointer-ul specific tipului a a de retea la struct sockaddr*.2).1. Pentru nevoile functiilor de mai sus.c 2008. functiile ¸ s ın ¸a ¸ primesc adresa printr-un pointer la zona de memorie ce contine adresa de ¸ retea. 8. cu dimensiunea pe care a alocat-o pentru structura de adres˘ ¸i ˆ care functia pune.3. la revenirea din apelul accept(). Din acest motiv: a • functiile care primesc de la apelant o adres˘ (connect(). ın ˆ acest caz. aceasta ˆ In ıncepe cu un ˆ ıntreg pe 16 biti reprezentˆnd tipul de ¸ a retea. de structura adresei). precum ¸i pentru cele ce rea ¸ s s turneaz˘ apelantului adrese de retea (accept(). connect() ¸i sendto()). Formatul adreselor Pentru functiile socket ce primesc de la apelant (ca parametru) o ¸ adres˘ din retea (bind(). a a ˆ ambele cazuri. Interfata de programare socket BSD ¸ addr. s ¸ adresele socket-urilor TCP ¸i UDP se pun. recvfrom().6 ¸i § 10. ˆ consecint˘. ˆ a s ın ¸ ın timpul apelului. Radu-Lucian Lup¸a s 240 8.

Conversia invers˘. a a sin addr:contine adresa IP. Pentru adrese IPv4 este definit˘ structura sockaddr_in avˆnd urm˘a a a torii membrii: sin family:trebuie s˘ contin˘ constanta AF_INET. apelantul trebuind s˘ copieze a rezultatul ˆ ınainte de un nou apel al functiei. de tip tablou de 16 octeti. care returneaz˘ rezultatul ˆ a ıntr-un buffer static. f˘r˘ semn. a ¸ a sin port:de tip ˆ ıntreg de 16 biti (2 octeti). ˆ ¸ ıntr-o structur˘ de tip sockaddr_in pentru IPv4 sau a sockaddr_in6 pentru IPv6. ˆ ordine retea (cel ¸ ¸ aa ın ¸ sin6 port:de tip ˆ mai semnificativ octet este primul). . Programarea ˆ retea — introducere ın ¸ 241 retea (IPv4 sau IPv6). Are tipul struct in6_addr. Radu-Lucian Lup¸a s Capitolul 8. s_addr. ˆ ordine retea (cel ¸ ¸ aa ın ¸ mai semnificativ octet este primul). AF_INET sau AF_INET6. avˆnd un singur ¸ a cˆmp. de la structura in_addr la string ˆ notatie zecia ın ¸ mal˘ cu punct se face cu ajutorul functiei a ¸ char *inet_ntoa(struct in_addr in). ¸ ın ¸ Adresa IPv4 poate fi convertit˘ de la notatia obi¸nuit˘ (notatia zeca ¸ s a ¸ imal˘ cu puncte) la struct in_addr cu ajutorul functiei a ¸ int inet_aton(const char *cp. a ¸ Obtinerea unei adrese IPv4 sau IPv6 cunoscˆnd numele de domeniu ¸ a (vezi § 10. a a sin6 flow:eticheta de flux. struct in_addr *inp). sin6 addr:contine adresa IP.4) se face cu ajutorul functiei ¸ struct hostent *gethostbyname(const char *name). care returneaz˘ un pointer la o structur˘ ce contine mai multe cˆmpuri dintre a a ¸ a care cele mai importante sunt: int h addrtype:tipul adresei.c 2008. Pentru adrese IPv6 este definit˘ structura sockaddr_in6 avˆnd ura a m˘torii membrii: a a ¸ a sin6 family:trebuie s˘ contin˘ constanta AF_INET6. Are tipul struct in_addr. f˘r˘ semn. de tip ˆ a ıntreg pe 4 octeti ˆ ordine retea. s6_addr. ıntreg de 16 biti (2 octeti). reprezentˆnd num˘rul portului. avˆnd un singur ¸ a cˆmp. reprezentˆnd num˘rul portului.

struct sockaddr *name. Dac˘ plasarea reu¸e¸te (coada fiind mai mic˘ decˆt ınc˘ a s s a a valoarea parametrului backlog din apelul listen()). socklen_t *namelen). a ˆ ıncearc˘ plasarea clientului ˆ a ıntr-o coad˘ de clienti conectati ¸i nepreluati a ¸ ¸ s ¸ ˆ a prin accept(). apelat˘ pentru un socket de tip conexiune deja conec¸ a tat.c 2008. Interactiunea dintre connect(). a • dac˘ adresa corespunde unui socket pentru care s-a efectuat listen(). Interfata de programare socket BSD ¸ char **h addr list:pointer la un ¸ir de pointeri c˘tre adresele IPv4 sau s a IPv6 ale ma¸inii cu numele name. s ¸ ¸ 8.3. La primirea cererii de conectare. apelul accept() returneaz˘ imediat. a ¸ Functia getsockname() este util˘ dac˘ un proces actioneaz˘ ca server. pe alt˘ cale. int getpeername(int sd. ˆ caz contrar trimite un mesaj de refuz. ¸ a a ¸ a creˆ ˆ acest scop un socket de a¸teptare. s 8. socklen_t *namelen).7. ¸ a Apelul accept() preia un client din coada descris˘ mai sus.8. Radu-Lucian Lup¸a s 242 8. Revenirea din apelul s connect() nu este deci conditionat˘ de apelul accept() al procesului server.1. dar num˘rul portul pe care ınd ın s a a¸teapt˘ conexiunile nu este prestabilit ci este transmis. In a a . furnizeaz˘ adresa partenerului de comunicatie. sistemul s de operare de pe ma¸ina server actioneaz˘ astfel: s ¸ a • dac˘ adresa din cerere nu corespunde unui socket pentru care s-a efectuat a deja apelul listen(). procesul server creaz˘ un socket (apelˆnd socket()). ¸ ¸ s ınc˘ ¸ ¸i nu la clientii deja preluati prin accept().3. ¸ a Functia getpeername(). client. Functiile getsockname() ¸i getpeername() ¸ s int getsockname(int sd. sistemul de operare trimite sistemului de operare de pe ma¸ina client un mesaj de s acceptare.1. struct sockaddr *name. viitorilor s a a ˆ acest caz.1. listen() ¸i accept() ¸ s La apelul connect(). int h length:lungimea ¸irului h_addr_list. functia a¸teapt˘ sosirea unui client. Functia getsockname() furnizeaz˘ apelantului adresa socket-ului sd. refuz˘ conectarea. a ın ¸ s a Dac˘ coada nu este vid˘. a a a Parametrul backlog al apelului listen() se refer˘ la dimensiunea a cozii de clienti conectati (prin connect()) ¸i ˆ a nepreluati prin accept(). ın Apelul connect() revine ˆ procesul client ˆ momentul sosirii acceptului sau ın ın refuzului de la sistemul de operare de pe ma¸ina server. ˆ formatul in_addr sau respectiv s ın in6_addr. Dac˘ a a coada este vid˘ ˆ momentul apelului. sistemul de operare de pe ma¸ina client trimite s ma¸inii server o cerere de conectare.

prin apelul getsockname(). Programarea ˆ retea — introducere ın ¸ 243 cere primirea cererilor de conexiune (apelˆnd listen(). Functia returneaz˘ controlul dup˘ plasarea datelor de transmis ˆ buffer¸ a a ın ele sistemului de operare al ma¸inii locale. ın a as a s s Sintaxa functiilor este: ¸ ssize_t send(int sd. void *buf. Valoarea returnat˘ de functia s a ¸ send() este num˘rul de octeti scri¸i efectiv.1. functia send() scrie doar o parte din datele furnizate ¸ ¸i returneaz˘ imediat controlul procesului apelant. Descriem ˆ continuare utilizarea ¸ ın acestor functii considerˆnd un singur sens de comunicatie ¸i ca urmare ne vom ¸ a ¸ s referi la un proces emitator ¸i un proces receptor ˆ raport cu sensul considerat. In ın ¸ ¸ octet. functia send() a¸teapt˘ ca aceste buffer-e s˘ se elibereze ¸ s a a (prin transmiterea efectiv˘ a datelor c˘tre sistemul de operare al receptorului a a ¸i citirea lor de c˘tre procesul receptor). Functia send() trimite pe conexiunea identificat˘ prin socket-ul sd ¸ a un num˘r de len octeti din variabila a c˘rui adres˘ este indicat˘ de pointer-ul a ¸ a a a buf. adresa atribuit˘ la a a a listen() socket-ului respectiv ¸i transmite aceast˘ adres˘ viitorilor clienti. Astfel. ¸ ¸a ˆ modul normal de lucru.c 2008.3. ea returneaz˘ num˘rul de octeti scri¸i efectiv. ın ¸ a s Deoarece functia send() returneaz˘ ˆ ¸ a ınainte de transmiterea efectiv˘ a a datelor. Aceast˘ a¸teptare are ca rol frˆnarea s a a s a procesului emit˘tor dac˘ acesta produce date la un debit mai mare decˆt cel ¸a a a cu care este capabil˘ reteaua s˘ le transmit˘ sau procesul receptor s˘ le preia. functia ¸a a ¸ send() ˆ vederea scrierii octetilor r˘ma¸i. ˆ ambele cazuri. dac˘ nu exist˘ spatiu suficient ˆ buffer-ele In a a ¸ ın sistemului de operare. size_t len. este a a ¸ s In sarcina procesului emit˘tor s˘ apeleze din nou. dac˘ nu exist˘ suficient spatiu ˆ buffer-ele ın a a ¸ ın sistemului de operare. size_t len. sau −1 ˆ caz de eroare. int flags). int flags). s a a ¸ 8. dar f˘r˘ a fi apelat a aa bind()) dup˘ care determin˘. a ¸ a a a Prin plasarea valorii MSG_DONTWAIT ˆ parametrul flags. la un moment ulterior. Datele a ¸ s ın plasate ˆ buffer-e prin apelul send() urmeaz˘ a fi trimise spre receptor f˘r˘ ın a aa alte actiuni din partea emit˘torului. ea returneaz˘ valoarea −1 ¸i seteaz˘ variabila global˘ a s a a ˆ cazul ˆ care functia send() scrie cel putin un errno la valoarea EAGAIN. ˆ cazul ˆ care functia s a In ın ¸ send() nu scrie nimic. ssize_t recv(int sd. Radu-Lucian Lup¸a s Capitolul 8. Functiile send() ¸i recv() ¸ s Apelurile sistem send() ¸i recv() sunt utilizate ˆ faza de comunis ın catie pentru socket-uri de tip conexiune. ¸˘ s ın De notat ˆ a c˘ o conexiune socket stream este bidirectional˘ ¸i comunicarea ıns˘ a ¸ as ˆ cele dou˘ sensuri se desf˘¸oar˘ independent ¸i prin acelea¸i mecanisme. ˆ acest caz. const void *buf.9. acest comportament ın este modificat. eventualele erori legate de transmiterea datelor nu pot fi raportate .

care are ca efect implicit terminarea imediat˘ a procesului a emit˘tor. functia recv() a¸teapt˘ sosirea a cel putin un octet. adresa unei zone de memorie unde s˘ a a plaseze datele citite ¸i num˘rul de octeti de citit. Functia ¸ s a ¸ ¸ returneaz˘ num˘rul de octeti transferati (cititi de pe conexiune). este posibil ca emit˘torul s˘ trimit˘. doar octetii disponibili ˆ acel moment vor fi transferati. apelurile recv() efeca ¸a tuate de procesul receptor vor citi mai ˆ ai datele r˘mase ˆ buffer-e. fragmentele ce vor fi disponibile succesiv pentru s a ın receptor sunt independente de fragmentele furnizate ˆ apelurile send(). iar receptorul. s a ¸ Num˘rul de octeti de citit reprezint˘ num˘rul maxim de octeti pe care a ¸ a a ¸ functia ˆ va transfera din buffer-ul sistemului de operare ˆ zona procesului ¸ ıi ın apelant. cd ¸i ef. pe sistemele de tip UNIX. a s ˆ plus. Interfata de programare socket BSD ¸ apelantului prin valoarea returnat˘ de send(). prin dou˘ apeluri send() consec¸a a a a utive. s ¸ s ˆ cazul ˆ In ınchiderii conexiunii de c˘tre emit˘tor.1. Ca ın urmare. Dac˘ num˘rul de octeti disponibili ˆ buffer-ele sistemului de operare a a ¸ ın este mai mic. Pot s˘ apar˘ dou˘ tipuri de a a a a erori: c˘derea retelei ¸i ˆ a ¸ s ınchiderea conexiunii de c˘tre receptor. Aceste erori a vor fi raportate de c˘tre sistemul de operare al emit˘torului procesului emit˘tor a ¸a ¸a prin aceea c˘ apeluri send() ulterioare pentru acela¸i socket vor returna −1. ¸irurile de octeti abc ¸i def. iar ıntˆ a ın . ¸a Functia recv() extrage date sosite pe conexiune ¸i aflate ˆ buffer¸ s ın ul sistemului de operare local. Dac˘ ¸ ın ¸ a ˆ momentul apelului nu exist˘ nici un octet disponibil ˆ buffer-ele sistemului ın a ın de operare local. ˆ final. Singurul lucru garantat este c˘ s a a s a prin concatenarea tuturor fragmentelor trimise de emit˘tor se obtine acela¸i ¸a ¸ s ¸ir de octeti ca ¸i prin concatenarea tuturor fragmentelor primite de receptor. a a ¸ ¸ ¸ Comportamentul descris mai sus poate fi modificat prin plasarea uneia din urm˘toarele valori ˆ parametrul flags: a ın ın ın ¸ MSG DONTWAIT:ˆ cazul ˆ care nu este nici un octet disponibil. Radu-Lucian Lup¸a s 244 8. c˘ ˆ artirea datelor ¸a ın a ımp˘ ¸ ˆ fragmente este independent˘ de modul ˆ care au fost furnizate prin apeluri ın a ın send() succesive ¸i c˘. s s ¸ Este important de notat c˘ datele sunt transmise de la sistemul de opa erare emit˘tor spre cel receptor ˆ fragmente (pachete). s˘ primeasc˘ ab. functia recv() returneaz˘ valoarea −1 ¸i seteaz˘ variabila global˘ errno la a s a a valoarea EAGAIN. ¸ s a a ¸ ¸ MSG WAITALL:functia recv() a¸teapt˘ s˘ fie disponibili cel putin len octeti ¸i cite¸te exact len octeti. apelul send() pentru o conexiune al c˘rui In a cap˘t destinatie este ˆ a ¸ ınchis duce la primirea de c˘tre procesul emit˘tor a unui a ¸a semnal SIGPIPE. Functia prime¸te ca argumente identificatorul ¸ s socket-ului corespunz˘tor conexiunii.c 2008. apelˆnd repetat recv() cu s ¸ s a len=3 ¸i flags=0.

indiferent de modul de terminare. size_t len. int close(int sd).3. identificatorul de socket este eliberat ¸i poate fi utilizat ulterior de s c˘tre sistemul de operare pentru a identifica socket-uri sau alte obiecte create a ulterior.11. Dealtfel. int how). a a Terminarea unui proces. sensul de receptie sau ¸ ambele sensuri de comunicatie ale conexiunii identificate de indetificatorul de ¸ socket sd. Functiile sendto() ¸i recvfrom() ¸ s ssize_t sendto(int sd. adic˘ a c˘rui adres˘ va a a a fi utilizat˘ ca adres˘ surs˘ a datagramei. Dup˘ apelul ¸ a close(). Utilitatea principal˘ a functiei este ˆ a ¸ ınchiderea sensului de emisie pentru a semnaliza celuilalt cap˘t terminarea datelor transmise (apelurile a recv() din procesul de la cel˘lalt cap˘t al conexiunii vor returna 0). Functia a a ¸ shutdown() poate fi apelat˘ doar pe un socket conectat ¸i nu distruge socketa s ul. socklen_t *fromlen). int flags. a a a . ˆ ın ınchide ambele sensuri de comunicatie.c 2008. Functia sendto() trimite o datagram˘ de pe un socket dgram. Poate fi efectuat oricˆnd asupra oric˘rui tip de socket. 8. struct sockaddr *from. Dac˘ socket-ul era un socket ¸ a conectat ˆ acel moment. SHUT_RD sau respectiv SHUT_RDWR. Functiile shutdown() ¸i close() ¸ s int shutdown(int sd. const struct sockaddr *to. printr-un s ın mecanism identic cu cˆte un apel close() pentru fiecare socket. conform valorii parametrului how: SHUT_WR.1. Parametrii ¸ a reprezint˘ : a • sd: socket-ul de pe care se transmite datagrama. void *buf. Radu-Lucian Lup¸a s Capitolul 8. Prin urmare. Programarea ˆ retea — introducere ın ¸ 245 dup˘ epuizarea acestora vor returna valoarea 0.3. ssize_t recvfrom(int sd. functia recv() a ¸ returneaz˘ valoarea 0 dac˘ ¸i numai dac˘ emit˘torul a ˆ a a s a ¸a ınchis conexiunea ¸i s toate datele trimise ˆ ınainte de ˆ ınchiderea conexiunii au fost deja citite. int flags. a 8. socklen_t tolen). size_t len.1. Apelul close() este necesar pentru a elibera resursele ocupate de socket. const void *buf. valoarea 0 returnat˘ de recv() sau read() este semnalizarea uzual˘ a a a termin˘rii datelor de citit ¸i se utilizeaz˘ ¸i pentru a semnaliza sfˆr¸itul unui a s as as fi¸ier sau ˆ s ınchiderii cap˘tului de scriere ˆ a ıntr-un pipe UNIX. Functia shutdown() ˆ ¸ ınchide sensul de emisie. Functia close() distruge socket-ul sd. are ca efect ¸i distrugerea tuturor socket-urilor existente ˆ acel moment.10.

h> #include <string. s ¸ Functia returneaz˘ num˘rul de octeti ai datagramei trimise (adic˘ valoarea ¸ a a ¸ a lui len) ˆ caz de succes ¸i −1 ˆ caz de eroare.1.h> #include <netdb.4. char* argv[]) { . punˆnd ˆ ea ¸a ¸ a a a a ın dimensiunea utilizat˘ efectiv pentru scrierea adresei emit˘torului. a zonei de memorie alocate pentru adresa a ın ¸ emit˘torului. Dac˘ datagrama este mai mare decˆt a a a valoara parametrului len. ˆ trimite un ¸ir de ın a ıi s caractere fixat (abcd). a s a Datagrama este citit˘ ˆ zona de memorie pointat˘ de parametrul a ın a buf ¸i a c˘rei dimensiune este dat˘ ˆ variabila len. trebuie s˘ a fie egal˘ cu dimensiunea.h> #include <unistd. Interfata de programare socket BSD ¸ • to: pointer spre structura ce contine adresa de retea a destinatarului. Comunicare prin conexiune D˘m mai jos textul surs˘ (ˆ C pentru Linux) pentru un client care se a a ın conecteaz˘ la un server TCP/IPv4 specificat prin numele ma¸inii ¸i num˘rul a s s a portului TCP (date ca argumente ˆ linia de comand˘). a Functia recvfrom() cite¸te din bufferele sistemului de operare local ¸ s urm˘toarea datagram˘ adresat˘ socket-ului dat ca parametru. ¸ ¸ tolen reprezint˘ lungimea structurii pointate de to. a s s s a #include <sys/socket. Functia returneaz˘ conın s ın ¸ a trolul apelantului ˆ ınainte ca pachetul s˘ fie livrat destinatarului ¸i ca urmare a s eventuala pierdere a pachetului nu poate fi raportat˘ apelantului.4. a • buf: pointer spre o zon˘ de memorie ce contine datele utile. Parametrul fromlen trebuie s˘ pointeze la o ın a a variabil˘ de tip ˆ a ıntreg a c˘rui valoare.h> #include <netinet/in. Datele utile sunt un ¸ir arbitrar de octeti. a ¸ ın Adresa emit˘torului datagramei este plasat˘ de functia recvfrom() ¸a a ¸ ˆ variabila pointat˘ de from. len reprezint˘ a ¸ a lungimea datelor utile. finalul datagramei este pierdut.c 2008. Exemple 8. ˆ a ınainte de apelul recvfrom(). cu exceptia a ¸ s a a ¸ cazului ˆ care flags contine valoarea MSG_DONTWAIT. caz ˆ care recvfrom() ın ¸ ın returneaz˘ imediat valoarea −1 ¸i seteaz˘ errno la valoarea EAGAIN. functia recvfrom() ¸ nu scrie niciodat˘ dincolo de len octeti ˆ memoria procesului.1.h> int main(int argc. Functia recvfrom() modific˘ aceast˘ variabil˘.h> #include <stdio.1. functia a¸teapt˘ sosirea urm˘toarei datagrame. Radu-Lucian Lup¸a s 246 8. ˆ octeti. a ¸a 8. Dac˘ nu exist˘ a a a a a nici o datagram˘. dup˘ care cite¸te ¸i afi¸eaz˘ tot ce trimite server-ul. Functia recvfrom() s a a ın ¸ returneaz˘ dimensiunea datagramei.1.

sizeof(adr)). sd. } memcpy(&adr. } send(sd.c 2008. return 1. char buf[100]. } adr. Programarea ˆ retea — introducere ın ¸ int port. SHUT_WR). return 1. "numarul de port trebuie sa fie un numar\n"). 0))>0){ write(1.sin_family = AF_INET. 4). SOCK_STREAM. cite¸te de pe conexiune s a s . "Nu se poate determina adresa serverului\n"). if(argc!=3){ fprintf(stderr. sizeof(adr)) ) { perror("connect()"). shutdown(sd. 100. } 247 D˘m ˆ continuare textul surs˘ pentru un server care a¸teapt˘ conectarea a ın a s a unui client pe portul specificat ˆ linia de comand˘. while((r=recv(sd. } if(r==-1){ perror("recv()"). if(hh==0 || hh->h_addrtype!=AF_INET || hh->h_length<=0){ fprintf(stderr. sd=socket(PF_INET. r. "abcd". "%d". if(-1==connect(sd. if(1!=sscanf(argv[2]. return 1.r). return 1. hh=gethostbyname(argv[1]). Radu-Lucian Lup¸a s Capitolul 8. afi¸eaz˘ adresa de la care ın a s a s-a conectat clientul (adresa IP ¸i num˘rul de port).sin_addr. 0). 4. return 0. } memset(&adr. return 1. struct hostent* hh.buf. buf. } close(sd).sin_port = htons(port). struct sockaddr_in adr. hh->h_addr_list[0]. "Utilizare: cli adresa port\n"). 0. adr. &port)){ fprintf(stderr. 0). (struct sockaddr*)&adr.

my_addr. return 1. sd_c = accept(sd. } my_addr. sd=socket(PF_INET. return 1. my_addr. Radu-Lucian Lup¸a s 248 8. "numarul de port trebuie sa fie un numar\n"). close(sd).h> int main(int argc. Interfata de programare socket BSD ¸ ¸i afi¸eaz˘ pe ecran tot ce transmite clientul (pˆn˘ la ˆ s s a a a ınchiderea sensului de conexiune de la client la server) ¸i apoi trimite ˆ s ınapoi textul xyz. 0. &port)){ fprintf(stderr. "Utilizare: srv port\n").s_addr=htonl(INADDR_ANY). cli_addr_size=sizeof(cli_addr). 0). 100. return 1. SOCK_STREAM.h> #include <stdio. #include <sys/socket. } listen(sd.c 2008.sin_addr. r. while((r=recv(sd_c.1. char buf[100]. 1).h> #include <unistd. char* argv[]) { int sd.h> #include <netinet/in. (struct sockaddr*)&cli_addr. (struct sockaddr*)&my_addr. sd_c. printf("client conectat de la %s:%d\n".sin_port=htons(port).h> #include <string. inet_ntoa(cli_addr. if(argc!=2){ fprintf(stderr.sin_port) ). buf. cli_addr. struct sockaddr_in my_addr. "%d".sin_family = AF_INET. &cli_addr_size). socklen_t cli_addr_size. sizeof(my_addr)) ) { perror("bind()"). ntohs(cli_addr. 0))>0){ .sin_addr). if(-1==bind(sd. if(1!=sscanf(argv[1]. port.h> #include <netdb. } memset(&my_addr. sizeof(my_addr)).h> #include <arpa/inet.

a c˘rei continut ˆ afi¸eaz˘.2. return 1. } 249 8. if(hh==0 || hh->h_addrtype!=AF_INET || hh->h_length<=0){ .sin_port = htons(port). "xyz". } adr. sizeof(adr)). a a a ¸ ıl s a #include <sys/socket. Programarea ˆ retea — introducere ın ¸ write(1.h> #include <string. return 1. Radu-Lucian Lup¸a s Capitolul 8. struct sockaddr_in adr. Comunicare prin datagrame Mai jos este descris un client UDP/IPv4 care se conecteaz˘ la un a server specificat prin numele ma¸inii sau adresa IP ¸i num˘rul de port. adr.h> #include <stdio. char buf[100].r). return 1.h> #include <arpa/inet. 0). r. struct hostent* hh. } if(r==-1){ perror("recv()").h> #include <netdb. close(sd_c). socklen_t adr_size. sd. if(argc!=3){ fprintf(stderr. } memset(&adr.h> #include <unistd. } send(sd_c.4. 0. "%d". "numarul de port trebuie sa fie un numar\n"). return 0.c 2008. hh=gethostbyname(argv[1]).sin_family = AF_INET.buf. 3.h> int main(int argc. Clientul s s a trimite serverului o datagram˘ de 4 octeti continˆnd textul abcd ¸i a¸teapt˘ a ¸ ¸ a s s a o datagram˘ ca r˘spuns. &port)){ fprintf(stderr. if(1!=sscanf(argv[2]. "Utilizare: cli adresa port\n"). char* argv[]) { int port.h> #include <netinet/in.1.

} adr_size=sizeof(adr).sin_port) ). } ˆ continuare descriem un server UDP/IPv4.h> <stdio.h> <arpa/inet.c 2008. 100. buf.h> <unistd. 0. r=recvfrom(sd. inet_ntoa(adr. o datagram˘ continˆnd ¸irul de 3 octeti a ¸ a s ¸ xyz. 0. return 1. (struct sockaddr*)&adr.sin_addr). } memcpy(&adr. afi¸eaz˘ adresa de la care a fost trimis˘ datagrama a s a a precum ¸i continutul datagramei primite. 0). ntohs(adr. buf[r]=0. return 1. close(sd). #include #include #include #include #include #include #include <sys/socket. (struct sockaddr*)&adr.h> <netinet/in. sd=socket(PF_INET. } if(-1==sendto(sd.1. Apoi trimite ˆ s ¸ ınapoi. la adresa de la care a sosit datagrama de la client. "Nu se poate determina adresa serverului\n").sin_addr. Acesta a¸teapt˘ o dataIn s a gram˘ de la un client. Radu-Lucian Lup¸a s 250 8. 4). return 0.h> <string. return 1.h> .h> <netdb. if(sd==-1){ perror("socket()"). return 1. hh->h_addr_list[0]. 4. buf). sizeof(adr)) ) { perror("sendto()"). SOCK_DGRAM. printf("continut: \"%s\"\n". &adr_size). Interfata de programare socket BSD ¸ fprintf(stderr. "abcd". if(r==-1){ perror("recvfrom()"). } printf("datagrama primita de la de la %s:%d\n".

ntohs(cli_addr. Programarea ˆ retea — introducere ın ¸ int main(int argc. char* argv[]) { int sd.sin_family = AF_INET. "numarul de port trebuie sa fie un numar\n"). return 1. (struct sockaddr*)&my_addr. 0). } my_addr. return 0.sin_addr. } memset(&my_addr. } cli_addr_size=sizeof(cli_addr). socklen_t cli_addr_size. "%d". sizeof(my_addr)) ) { perror("bind()"). port. } 251 .c 2008. r=recvfrom(sd. return 1. sendto(sd. SOCK_DGRAM.sin_addr).sin_port=htons(port). return 1. inet_ntoa(cli_addr. 0.s_addr=htonl(INADDR_ANY). "Utilizare: srv port\n"). "xyz". if(argc!=2){ fprintf(stderr. if(1!=sscanf(argv[1]. 3. close(sd).sin_port) ). &port)){ fprintf(stderr. buf[r]=0. } printf("datagrama primita de la de la %s:%d\n". return 1. (struct sockaddr*)&cli_addr. char buf[101]. my_addr. buf. cli_addr_size). my_addr. 100. buf). if(r==-1){ perror("recvfrom()"). 0. cli_addr. sd=socket(PF_INET. struct sockaddr_in my_addr. sizeof(my_addr)). Radu-Lucian Lup¸a s Capitolul 8. r. (struct sockaddr*)&cli_addr. printf("continut: \"%s\"\n". &cli_addr_size). 0. if(-1==bind(sd.

1.. Vom descrie ˆ continuare problemele legate de fiecare a ın tip de date ˆ parte. ¸i receptia prin s ¸ Tip msg. unde Tip este un tip de date oarecare declarat identic ˆ ambele programe ın (emit˘tor ¸i receptor).2. Formatarea datelor Diferite formate de reprezentare a datelor pe conexiune au fost descrise ˆ capitolul 7. s ¸ ın 8. sizeof(msg). standardizat˘ exact (ˆ ın a ın C/C++ un int poate avea 16.2. precum ¸i cˆteva idei privind rezolvarea lor. . recv(sd. &a. ¸a s Exist˘ ˆ a cˆteva motive pentru care o astfel de abordare nu este. Formatarea datelor 8. send(sd. 32 sau 64 de biti). . putem transmite ¸i receptiona date prin secvente de tipul: ¸ s ¸ ¸ int a. Radu-Lucian Lup¸a s 252 8. ¸ • ordinea octetilor ˆ memorie (big endian sau little endian) depinde de ¸ ın arhitectura calculatorului.1. sizeof(msg). . 0).. ˆ general. Dac˘ scriem un program pentru un anumit tip de calculatoare ¸i a s pentru un anumit compilator. ˆ acest paragraf ne vom ocupa de problemele privind ın In transmiterea ¸i receptia datelor ˆ astfel de formate.1. sizeof(a). send(sd.2. ın s a 8.c 2008. acceptabil˘. este rezonabil˘ transmiterea unei informatii prin instructiuni de forma a ¸ ¸ Tip msg. &msg. Formate binare Formatele binare sunt asem˘n˘toare cu formatele utilizate de proa a gramele compilate pentru stocarea datelor ˆ variabilele locale.. ˆ a ıns˘ a ın general.. 0). &msg. MSG_WAITALL).2... Tipuri ˆ ıntregi La transmiterea variabilelor ˆ ıntregi apar dou˘ probleme de portabila itate: • dimensiunea unui ˆ ıntreg nu este. Pˆn˘ la un ın a a punct. . pentru care ¸tim exact dimensiunea unui int ¸i s s ordinea octetilor.

iar receptorul este compilat pe ¸ s o platform˘ pe care int are 32 de biti ¸i este little endian.. dup˘ a caz) ¸i formatul big endian. Programarea ˆ retea — introducere ın ¸ 253 pentru emit˘tor ¸i ¸a s int a. utilizat cel mai adesea pentru datele transs mise ˆ Internet. iar cele cu l ¸ convertesc ˆ ıntregi de 32 de biti (uint32_t). un ˆ ¸ a ıntreg reprezentat pe 32 de biti ˆ format big endian. a=htonl(a). uint32_t a. long). a=ntohl(a). sizeof(a). Indiferent pe ce platform˘ sunt compilate. pentru receptor. short. pentru conversia de la format local la format big endian (numit ¸i format retea). MSG_WAITALL).. recv(sd. ¸ ın . &a. Dac˘ ˆ a emit˘torul este compilat pe o platform˘ pe care a ıns˘ ¸a a int are 16 biti ¸i este reprezentat big endian. Radu-Lucian Lup¸a s Capitolul 8. respectiv host to network. . sizeof(a). cele dou˘ programe a ¸ s a nu vor comunica corect. Utilizarea lor permite ca restul sursei programului as s˘ nu depind˘ de platform˘.. sizeof(a).c 2008..h: ¸ ın • typedef-uri pentru tipuri ˆ ıntregi de lungime standardizat˘ (independent˘ a a de compilator): uint16_t de 16 biti ¸i uint32_t de 32 de biti. rea spectiv receptioneaz˘. &a.. Variantele cu s (htons() ¸i s ın s ntohs()) convertesc ˆ ıntregi de 16 biti (de tip uint16_t. Aceste functii sunt: htons() ¸i htonl() (de la host ın ¸ s to network. &a. Pentru a putea scrie programe portabile. a a a Transmiterea unui ˆ ıntreg.. ¸ s ¸ • functii de conversie ˆ ¸ ıntre formatul locat (little endian sau big endian. 0). biblioteca C standard pe sisteme de tip UNIX contine. . ˆ header-ul arpa/inet. ¸i ntohs() s ¸ s ¸i ntohl() pentru conversia ˆ sens invers. fragmentele de mai sus emit. . se face astfel: uint32_t a. MSG_WAITALL). ˆ ıntr-un mod portabil. ¸ Implementarea acestor typedef-uri ¸i functii depinde de platform˘ (de arhis a tectur˘ ¸i de compilator). recv(sd. send(sd.

sunt utilizate frecvent tablouri de dimensiune fixat˘ la comın s a pilare. ˆ ıntr-un fel sau altul. Avantajul dimensiunii fixe este c˘ variabilele situate dup˘ tabloul rea a spectiv se pot plasa la adrese fixe ¸i pot fi accesate direct. l=htons(strlen(s)). a num˘rului de elemente din tablou. send(sd. 0). Descriem ˆ a ın s a ın continuare emit˘torul: ¸a char* s. uint16_t l. ¸i receptorul: s . a Dou˘ metode sunt frecvent utilizate ˆ acest scop: transmiterea ˆ prealaa ın ın bil a num˘rului de elemente ¸i transmiterea unui element cu valoare speciale a s (terminator) dup˘ ultimul element. ˆ cazul reprezent˘rii cu terminator.. receptorul trebuie s˘ verifice dac˘ mai are spatiu alocat pentru acesta. iar ˆ caz contrar fie s˘ rea a ¸ ın a aloce spatiu pentru tablou ¸i s˘ copieze ˆ spatiul nou alocat elementele citite. urmat de ¸irul propriu-zis (reprezentare diferit˘ deci de reprezentarea s s a uzual˘ ˆ memorie. receptorul cite¸te ˆ ai In a a s ıntˆ num˘rul de elemente.2. 0). Reprezentarea s ¸irului pe conexiune este: un ˆ s ıntreg pe 16 biti big endian reprezentˆnd lungimea ¸ a ¸irului. unde ¸irul se termin˘ cu un caracter nul). a ¸ s a Exemplul 8. Siruri de caractere ¸i tablouri ¸ s Transmiterea sau memorarea unui tablou necesit˘ transmiterea (rea spectiv memorarea). send(sd. la ˆ alnirea s a s a ıntˆ terminatorului se opre¸te. Radu-Lucian Lup¸a s 254 8.2: Se cere transmiterea unui ¸ir de caractere. Formatarea datelor 8. 2. .. ˆ s Inainte de-a citi fiecare element. de regul˘ num˘rul ın ¸ a a de elemente transmise este egal cu num˘rul de elemente existente ˆ mod real.2. ˆ cazul reprezent˘rii cu num˘r de elemente. Nu a a sunt utilizate tablouri de lungime fix˘ deoarece datele situate dup˘ tablou a a oricum nu pot fi accesate direct.2. ın La transmiterea tablourilor prin conexiuni ˆ retea. s. a Pe lˆng˘ num˘rul de elemente efective ale tabloului este necesar˘ a a a a cunoa¸terea num˘rului de elemente alocate. &l. s s In a receptorul cite¸te pe rˆnd fiecare elemen ¸i-i verific˘ valoarea. dezavantajul este s un consum sporit de memorie ¸i o limit˘ mai mic˘ a num˘rului de obiecte ce s a a a pot fi puse ˆ tablou.c 2008. ¸ s a ın ¸ fie s˘ renunte ¸i s˘ semnaleze eroare. dup˘ care aloc˘ spatiu (sau verific˘ dac˘ spatiul aloa a a ¸ a a ¸ cat este suficient) ¸i cite¸te elementele.1. strlen(s). a ın plus elementul terminator (dac˘ este adoptat˘ varianta cu terminator). La reprezentarea ˆ memorie sau s a ın ˆ fi¸iere pe disc.

¸ Exemplul 8. egal˘ cu a a a minimul necesar). s+pos. . send(sd. strlen(s)+1. netransmis prin retea. &l. int dim_alloc=500. s.c 2008. ret. datorit˘ problemelor a s a . while(pos<dim_alloc-1 && 1==(ret=recv(sd. MSG_WAITALL)){ s[l]=0.3: Se cere transmiterea unui ¸ir de caractere. s. s a Din p˘cate ˆ a. Programarea ˆ retea — introducere ın ¸ char* s. Reprezentarea s pe conexiune va fi ca un ¸ir de caractere urmat de un caracter nul (adic˘ s a reprezentare identic˘ celei din memorie. Receptorul: char s[500].. variabilele compuse (struct-urile) sunt reprezentate la fel ¸i ˆ memorie ¸i pe conexiune — se reprezint˘ cˆmpurile unul dup˘ s ın s a a a altul — ¸i ca urmare transmiterea lor nu ridic˘ probleme deosebite. 0)) && s[pos++]!=0) {} if(ret==1 && s[pos-1]==0){ // sir citit cu succes } else { // tratare eroare } 8. Radu-Lucian Lup¸a s Capitolul 8. if(2==recv(sd. Emit˘torul este: ¸a char* s. reprezentarea unei structuri ˆ memorie depinde a ıns˘ ın de platform˘ (arhitectura calculatorului ¸i compilator). pos. dar pe lungime variabil˘. uint16_t l. Variabile compuse (struct-uri) La prima vedere.1.. // sir citit cu succes } else { // tratare eroare } 255 De remarcat la receptor necesitatea de-a reface terminatorul nul. 1.3. MSG_WAITALL) && 0!=(s=new char[l=ntohs(l)+1]) && l==recv(sd. 0). l. 2.2.

reprezentarea ˆ memorie a unei strcturi depinde de platın form˘ ¸i. ˆ ımpreun˘ cu functiile de alocare dinamic˘ a ¸ a a memoriei.c 2008. un fragment de cod de forma: a s ın ¸a struct Msg { char c. ˆ ¸ ıntre cele dou˘ cˆmpuri fiind respectiv 0. iar ˆ ¸ a ¸ ıntregii de 4 sau 8 octeti ¸ trebuie s˘ fie la adrese multiplu de 4. uint32_t i. Formatarea datelor privind alinierea ˆ ıntregilor. 0). • adaug˘ octeti nefolositi ˆ a ¸ ¸ ıntre cˆmpurile unei structuri. Ca urmare.. Astfel.i). dimensiunea structurii Msg de a ¸ mai sus poate fi 5. dac˘ magistrala de date este de 4 octeti. ¸ ¸ Rezolvarea problemei de portabilitate se face transmitˆnd separat ¸a fiecare cˆmp: a struct Msg { char c. Radu-Lucian Lup¸a s 256 8.2. nu exist˘ restrictii cu privire la caractere a a ¸ (ˆ ıntregi pe 1 octet). Num˘rul ce trebuie s˘ divid˘ adresa a a a a a se nume¸te aliniere ¸i este de obicei minimul dintre dimensiunea variabilei ¸i s s s l˘¸imea magistralei. de optiunile de compilare. ˆ at a ¸ ıntregii de 2 octati trebuie s˘ fie plasati la adrese pare. Compilatorul. uint32_t i. ˆ functie de l˘¸imea magistralei. . este neportabil. }. Msg m. ˆ consecint˘. Din considerente legate de arhitectura magistralei de date a calculatorului (detalii ce ies din cadrul cursului de fat˘). 6 sau 8 octeti. a • adaug˘ octeti nefolositi la finalul unei structuri ce face parte dintr-un a ¸ ¸ tablou. . de faptul c˘ alinierea inIn ¸ at a corect˘ duce la imposibilitatea acces˘rii variabilei sau doar la ineficient˘ ¸i. 1 a a sau 3 octeti neutilizati. &m. send(sd. asigur˘ alinierea recurgˆnd la urm˘toarele metode: a a a • adaug˘ octeti nefolositi ˆ a ¸ ¸ ıntre variabile. • aloc˘ variabilele de tip structur˘ la adrese multiplu de o l˘¸imea magisa a at tralei..i=htonl(m. sizeof(m). m. accesarea de ¸a c˘tre procesor a unei variabile de tip ˆ a ıntreg sau real a c˘rui adres˘ ˆ memorie a a ın nu este multiplu de un anumit num˘r de octeti este pentru unele procesoare a ¸ imposibil˘ iar pentru celelalte ineficient˘. ˆ a a ¸a s ın acest din urm˘ caz.

2. ¸ s la fiecare apel send() sau recv() programul trebuie s˘ verifice valoarea rea turnat˘. ca urmare. transmiterea a ın unui pointer c˘tre un alt proces este complet inutil˘. s a trebuie s˘ ne asigur˘m c˘ programul se comport˘ rezonabil dac˘ num˘rul de a a a a a a elemente anuntat de emit˘tor este 0. &m. 257 8. 1.2. tab. Este de asemenea necesar s˘ se a a stabileasc˘ ¸i s˘ se impun˘ explicit ni¸te limite maxime. 2147483647 (adic˘ 231 −1) sau alte aseme¸ ¸a a nea valori. Formate text ˆ Intr-un format text. Dac˘ a a receptorul a¸teapt˘ un ˆ s a ıntreg pozitiv. inclusiv ˆ cazul ˆ alc˘rii de c˘tre ¸ ın ınc˘ a a acesta a standardului de reprezentare a datelor ¸i inclusiv ˆ cazul ˆ care s ın ın emit˘torul ˆ ¸a ınchide conexiunea ˆ mijlocul transmiterii unei variabile. Probleme de robustete ¸i securitate ¸ s Orice apel de functie sistem poate e¸ua din multe motive.c. Orice program care nu este robust este un risc de securitate. Astfel. a Un receptor robust trebuie s˘ se comporte rezonabil la orice fel de a date trimise de partenerul de comunicatie. 0). . send(sd. as ın 8. urmat˘ de elementele propriu-zise.2. Chiar a ¸ a dac˘ de principiu num˘rul de elemente ne a¸tept˘m s˘ fie ˆ a a s a a ıntre 1 ¸i cˆteva sute.4. 0). Pointeri Deoarece un pointer este o adres˘ ˆ cadrul unui proces. s˘ presupunem as a a s a c˘ programul receptor prime¸te un ¸ir de ˆ a s s ıntregi reprezentat prin lungimea. Radu-Lucian Lup¸a s Capitolul 8. newline sau un alt caracter specificat prin standard. ın Validitatea datelor trebuie verificat˘ ˆ a ıntotdeauna dup˘ citire. m. send(sd.c 2008. a a 8. &m. fie s˘ declare eroare ¸i s˘ ˆ a s a ıncheie curat operatiile ˆ ¸ ıncepute.i.2. este necesar s˘ se verifice prin program a c˘ num˘rul primit este ˆ a a ıntr-adev˘r pozitiv. Comportament rezonabil ˆ ınseamn˘ fie s˘ fie capabil s˘ proceseze a a a corect datele. Programarea ˆ retea — introducere ın ¸ }.1.. . 4. pe 32 de biti. fiecare cˆmp este ˆ esent˘ un ¸ir de caractere a ın ¸a s terminat cu spatiu.3. ca num˘r de elemente. Msg m..i).i=htonl(m. ¸ Metodele descrise pentru transmiterea ¸i receptionarea unui ¸ir de caractere s ¸ s se aplic˘ ¸i la obiectele transmise ˆ formate de tip text.

4: Fie urm˘toarele fragmente de cod: a int sd. s+i. Formatarea datelor 8. eficient ca fiecare apel send() sau recv() s˘ transa fere cˆt de multi octeti se poate. echivalentul cˆtorva sute de ın a instructiuni. Functiile de citire ale bibliotecii sunt fread(). 0))==1 && s[i++]!=0 ) {} . char s[512]. la citirea a cˆte un caracter o dat˘. Acest cost este independent de num˘rul de octeti transferati. deoarece. s • o zon˘ de memorie tampon. ce contine: ¸ • un identificator de fi¸ier deschis.. salvarea ¸i restaurarea contextului apelului ¸i o serie de verific˘ri din s s a partea nucleului sistemului de operare. ˆ termeni de timp ¸ s ın de procesor. Exemplul 8.4. a a a at ¸ Pentru fiecare din functiile de mai sus. Elementul principal al bibliotecii este structura FILE.2. Un program care prime¸te date este bine s˘ cear˘ (prin s a a recv()) cˆte un bloc mai mare de date ¸i apoi s˘ analizeze datele primite. Probleme privind costul apelurilor sistem Apelul functiilor send() ¸i recv() este scump. . aceste functii apeleaz˘ functia sistem read() ¸ ¸ a ¸ asupra identificatorului de fi¸ier din structura FILE pentru a obtine octetii s ¸ ¸ urm˘tori. ¸ a ¸ ¸ Este.2. Radu-Lucian Lup¸a s 258 8. 1.r. prin urmare.. a a utilizarea functiilor de mai sus poate reduce timpul de executie de cˆteva zeci ¸ ¸ a de ori. fscanf(). necesit˘ o comutare de drepturi ˆ ¸ a ın procesor. Biblioteca poate fi utilizat˘ atˆt pentru emisie ¸i receptie printr-o ın a a s ¸ conexiune socket stream cˆt ¸i pentru citire sau scriere ˆ a s ıntr-un fi¸ier sau pentru s comunicare prin pipe sau fifo. costul executiei este de cˆteva instructiuni pena ın ¸ a ¸ tru fiecare octet transferat. fiind functii sistem.c 2008. Fiecare astfel de apel read() ˆ a ıncearc˘ s˘ citeasc˘ cˆ¸iva kiloocteti. Fiecare dintre aceste functii extrage datele din zona tampon a s ¸ structurii FILE dat˘ ca parametru. dac˘ datele de returnat aplicatiei se ¸ a ¸ g˘sesc deja ˆ zona tampon. Ca urmare. pipe sau fifo. while( ((r=recv(sd. Dac˘ ˆ zona tampon nu sunt suficienti a a ın ¸ octeti pentru a satisface cererea. fgets() ¸ ¸i fgetc(). int i. a s a Acest mod de lucru se realizeaz˘ cel mai bine prin intermediul unor functii de a ¸ bibliotec˘ adecvate. ˆ total. a Descriem ˆ continuare functiile din biblioteca standard C utilizabile ın ¸ ˆ acest scop. ˆ a ımpreun˘ cu variabilele necesare gestion˘rii a a ei. Un program care trimite date este bine s˘ a ¸ ¸ a preg˘teasc˘ datele ˆ a a ıntr-o zon˘ tampon local˘ ¸i s˘ trimit˘ totul printr-un sina as a a gur apel send(). conexiune socket stream.

fputs() ¸i fputc(). Radu-Lucian Lup¸a s Capitolul 8. aceluia¸i socket i se pot asocia a a s dou˘ zone tampon (dou˘ structuri FILE). Primul a ¸ ¸ s parametru este identificatorul de socket c˘ruia trebuie s˘-i asocieze zona tama a pon (identificatorul returnat de functia socket() sau accept()). while( (r=fgetc(f))!=EOF && (s[i++]=r)!=0) {} Ambele fragmente de cod citesc de pe un socket stream un ¸ir de octeti ters ¸ minat cu un caracter nul. Transmiterea efectiv˘ pe conexiune (sau scrierea ˆ fi¸ier) a ın s se face automat la umplerea zonei tampon. Al doilea fragment apeleaz˘ fgetc() o dat˘ s a a pentru fiecare caracter al ¸irului. Al doilea ¸ parametru specific˘ functiei fdopen() dac˘ trebuie s˘ asocieze zona tampon a ¸ a a pentru citire sau pentru scriere.r. la restul apelurilor. Aceste functii scriu datele ˆ zona tampon s ¸ ın din structura FILE. a ın Asocierea unei zone tampon unei conexiuni deja deschise se face apelˆnd functia fdopen().. cele dou˘ sensuri functionˆnd complet independent. Ca rezultat global.c 2008. cˆte una pentru fiecare sens. functia s a fgetc() va apela ˆ spate functia sistem read() pentru a citi efectiv datele ın ¸ de pe conexiune. ¸ a a fprintf(). elibereaz˘ memoria aloa a cat˘ zonei tampon ¸i ˆ a s ınchide conexiunea. De notat c˘ aceast˘ functie poate s˘ returneze false a ¸ a a ¸ a chiar dac˘ s-a ajuns la finalul datelor. este de tip ¸ir de caractere ¸i poate avea vals s oarea "r" pentru citire sau "w" pentru scriere. . char s[512]. Functia fclose() de asemenea trimite sau scrie ula ¸ timele date r˘mase ˆ zona tampon. functia fflush() a ın s ¸ efectueaz˘ acest lucru. al doilea fragment de ın cod se va executa de cˆteva zeci de ori mai repede decˆt primul. Functia fdopen() prime¸te doi parametri. La o mic˘ parte dintre aceste apeluri. Programarea ˆ retea — introducere ın ¸ 259 ¸i s FILE* f. . functiile de bibliotec˘ corespunz˘toare sunt fwrite(). a a Testarea ˆ ınchiderii conexiunii ¸i termin˘rii datelor se poate face apes a lˆnd functia foef(). rezultatul true este garantat doar dup˘ a a o tentativ˘ nereu¸it˘ de-a citi dincolo de finalul datelor transmise. a a a Functia fclose() scrie informatiile r˘mase ˆ zona tampon (dac˘ ¸ ¸ a ın a zona tampon a fost creat˘ pentru sensul de scriere). a s a Pentru scriere. Dac˘ este necesar s˘ ne asigur˘m a a a c˘ datele au fost transmise efectiv (sau scrise ˆ fi¸ier). int i.. fgetc() returneaz˘ apelantului cˆte un a a caracter aflat deja ˆ zona tampon. Primul fragment de cod apeleaz˘ recv() o dat˘ a a pentru fiecare caracter al ¸irului. Pentru un socket stream.

sistemele de operare ¸ de tip UNIX ofer˘ o functie sistem. datele de la al doilea client vor a¸tepta cel putin 10 minute pentru a s ¸ fi procesate. mai multe fire de executie (thread-uri) ın ¸ ˆ cardul procesului server — fiecare proces sau fir de executie urm˘rind ın ¸ a un singur client. MSG_DONTWAIT).3. true . a ˆ sistemele de operare moderne.1). procesul sau firul de executie poate executa In ¸ recv() blocant asupra socket-ului corespunz˘tor clientului s˘u. serverul nu este pus ˆ a¸teptare dac˘ un client nu i-a trimis In ın s a nimic.vedea“ cˆt timp este blocat ˆ a¸teptarea datelor de la primul client. a S˘ lu˘m de exemplu un server ssh (§ 11. numit˘ select(). Este ın s a a posibil ca utilizatorul ce comand˘ acel client s˘ stea 10 minute s˘ se gˆndeasc˘. ˆ acest caz. Dezavantajul solutiei este acela c˘. pe rˆnd. dac˘ o perioad˘ de timp ¸ a a a nici un client nu trimite nimic. ¸i pune procesul ˆ a s ¸ a s ın a¸teptare pˆn˘ cˆnd fie exist˘ date disponibile pe vreunul din socket-ii s a a a a dati. optional. Probleme de concurent˘ ˆ comunicatie ¸a ın ¸ O particularitate a majorit˘¸ii programelor ce comunic˘ ˆ retea este at a ın ¸ aceea c˘ trebuie s˘ r˘spund˘ prompt la mesaje provenind din surse diferite ¸i a a a a s ˆ ıntr-o ordine necunoscut˘ dinainte.. serverul va fi pus ˆ a¸teptare pˆn˘ ce acel client va trimite date.c 2008. o durat˘.3. serverul nu o va putea a ın a . prin apeluri recv() neblocante (cu s ¸ a flagul MSG_DONTWAIT): for(i=0 . Exist˘ mai multe solutii la problema de mai sus: a ¸ • Serverul cite¸te de la clienti. Radu-Lucian Lup¸a s 260 8.2. fie expir˘ durata de timp specificat˘. ¸ a Dac˘ serverul execut˘ un apel recv() blocant de pe socket-ul unui a a client. La fiecare moment. ¸ a a • O abordare complet diferit˘ este aceea de-a crea mai multe procese — sau. a a a a a Dac˘ ˆ acest timp un alt client trimite o comand˘. ˆ lipsa a a In . este imposibil de prezis ¸ ¸ ¸ care dintre clienti va trimite primul o comand˘. a • Pentru evitarea inconvenientului solutiei anterioare. if(r>=0 || errno!=EAGAIN){ /* prelucreaza mesajul primit sau eroarea aparuta */ } } ˆ acest fel. a ın consumˆnd inutil timp de procesor. Ca a ın s urmare. i=(i+1)%nr_clienti){ r=recv(sd[i]. Probleme de concurenta ˆ comunicatie ¸ ˘ ın ¸ 8. buf. atunci bucla se execut˘ ˆ mod repetat. care prime¸te o a ¸ a s list˘ de identificatori de socket ¸i. dim. Serverul poate avea mai a a multi clienti conectati simultan.

ˆ momentul ın a In ˆ care un client trimite date. fiecare proces sau fir de executie al serverului este at ¸ ¸ blocat ˆ apelul recv() asupra socket-ului corespunz˘tor. Cazul unui server cu mai multi clienti nu este singura situatie ˆ care ¸ ¸ ¸ ın este nevoie de a urm˘ri simultan evenimente pe mai multe canale. iar pe de a ¸ alt˘ parte posibilitatea de-a trimite noi date spre clienti ˆ urma faptului a ¸ ın c˘ vechile date au fost prelucrate de ace¸tia. Nu este permis ca un client care inund˘ serverul s s a cu cereri s˘ acapareze ˆ a ıntreaga putere de calcul a serverului ¸i ceilalti clienti s ¸ ¸ s˘ a¸tepte la infinit.c 2008. s˘ poat˘ accepta clienti noi. Dac˘ un client trimite cereri mai repede decˆt este capabil serverul a a s˘-l serveasc˘. Alte situatii a ¸ sunt: • un client care trebuie s˘ urm˘reasc˘ simultan actiunile utilizatorului ¸i a a a ¸ s mesajele sosite de la server. Programarea ˆ retea — introducere ın ¸ 261 activit˘¸ii clientilor. apoi s˘ revin˘ la primul ¸i s˘ mai proceseze o parte ¸ ¸ a a s a din cereri ¸i a¸a mai departe. a s • un server care trebuie s˘ preia mesaje de la clientii conectati ¸i. ˆ acest caz serverul ¸ ın are de urm˘rit simultan. pe de o parte noi cereri ale clientilor. apoi s˘ serveasc˘ a a a a a cereri ale celorlalti clienti. independent de comportamentul a ¸ acestora. Radu-Lucian Lup¸a s Capitolul 8. • un server care poate trimite date cu debit mai mare decˆt capacitatea a retelei sau capacitatea de prelucrare a clientului. procesul a sau firul execut˘ prelucr˘rile necesare dup˘ care probabil execut˘ un nou a a a a recv() blocant. a s . nucleul sistemului de operare treze¸te ın s procesul sau firul ce executa recv() pe socket-ul corespunz˘tor. serverul trebuie s˘ execute o parte din cereri. a a ¸ Un aspect important ce trebuie urm˘rit ˆ proiectarea unui server a ın concurent este servirea echitabil˘ a clientilor. ˆ acela¸i a ¸ ¸ s ın s timp.

Radu-Lucian Lup¸a s 262 Capitolul 8. Programarea ˆ retea — introducere ın ¸ .c 2008.

100 sau 1000 Mbit/s). a ¸ Cablul magistral˘. construite conform stan¸ dardului IEEE 802. O retea constrit˘ cu cablu magistral˘ consta ˆ a ¸ a a ıntrun cablu.3) sau retele UTP 10/100/1000 (UTP vine de la unshielded ¸ twisted pairs — perechi torsadate neecranate — ¸i desemneaz˘ tipul de cas a blu utilizat cel mai frecvent ˆ instalatiile actuale. Retele IEEE 802. iar 10/100/1000 sunt caın ¸ pacit˘¸ile posibile ale leg˘turilor.3. ˆ cele ce urmeaz˘ vom In a trece ˆ revist˘ aspectele mai importante. conform standardului IEEE 802. m˘surate ˆ megabiti pe secund˘). dintre s ¸ care cele mai des ˆ alnite sunt: ıntˆ • retele Ethernet (de 10. ˆ mod curent.3 a a at [IEEE 802. ¸ 9.11. Radu-Lucian Lup¸a s 263 Capitolul 9 Retele IEEE 802 ¸ Vom studia ˆ continuare standardul utilizat de cele mai multe retele ın ¸ locale. Network Interface Card — ¸ ¸ ¸ NIC ) este dispozitivul prin care se conecteaz˘ un calculator la retea.3 (Ethernet) ¸ Cele mai multe retele locale (retele cu ˆ ¸ ¸ ıntinderi geografice reduse.1. retele ¸ ın ¸ Ethernet (denumirea standardului original. Astfel de retele mai sunt numite. format din dou˘ conductoare izolate ˆ a ıntre ele. at a a ın ¸ a Standardul este complex (are peste 1500 de pagini) ¸i a rezultat ˆ s ın urma unei evolutii ˆ ¸ ıntinse pe mai mult de 20 de ani. IEEE 802 define¸te de fapt o familie de tipuri de retele locale. din care a fost dezvoltat standardul IEEE 802. 2005]. ın a Componentele din care se realizeaz˘ o retea Ethernet sunt: a ¸ Interfata de retea sau placa de retea (engl.3.c 2008. de pˆn˘ la cˆ¸iva kilometri) sunt construite pe baza standardului IEEE 802. la care sunt . • retele numite Wireless Ethernet.

IEEE 802. ˆ orice caz mai putin decˆt ıntˆ a ¸ ın ¸ a durata unui pachet. prin toate porturile. interfetele de retea ale calculatoarelor (fig. Radu-Lucian Lup¸a s 264 9. Interfata repetorului c˘tre cablul ¸a ¸ ¸ a de retea se nume¸te port. ˆ ¸ ıl retransmite (repet˘) pe toate celelalte cabluri de retea conectate (toate a ¸ cu exceptia celui prin care a intrat pachetul).c 2008. numit˘ adres˘ ¸a ¸ a a a a fizic˘ sau adres˘ MAC ¸i fiecare pachet poart˘ adresa sursei ¸i adresa a a s a s destinatiei. este necesar deci un mecanism de control al accesului la mediu (vezi § 4. a ıi Anume.3 alege solutia cu detectarea coliziunilor ¸i re¸ s transmiterea pachetelor distruse de coliziuni.1. fiecare interfat˘ de retea are o adres˘ unic˘. Deoarece fiecare interfat˘ de retea . Retele IEEE 802. Retransmiterea se face cu ¸ ˆ arziere de ordinul duratei cˆtorva biti. ¸ Repetorul (engl.2). ¸ . un semnal special de a ¸a anuntare a coliziunii. ¸ s Oridecˆteori repetorul receptioneaz˘ un pachet printr-unul dintre a ¸ a porturile sale (printr-unul din cablurile de retea conectate la repetor).aude“ toate pachetele emise ¸a ¸ ˆ retea. 9.. ˆ ın ¸ ¸ In acest sistem. ˆ paralel. ¸ ¸ statie ¸ statie ¸ statie ¸ statie ¸ terminator cablu magistral˘ a terminator Figura 9. este prev˘zut un mecanism prin care interfata s˘ identifice ¸i ın ¸ a ¸ a s s˘ livreze sistemului de operare numai pachetele ce ˆ sunt destinate.3 (Ethernet) ¸ conectate.1: O retea Ethernet construit˘ cu un cablu magistral˘ ¸ a a Comunicatia se face prin pachete de dimensiune variabil˘. Acest semnal de coliziune se propag˘ ˆ toat˘ ¸ a ın a reteaua. ¸ a Dou˘ interfete care emit simultan ˆsi bruiaz˘ reciproc semnalele a ¸ ı¸ a emise. repeater ) este un dispozitiv care este conectat la mai multe cabluri de retea ¸i copiaz˘ pachetele de date de pe fiecare cablu ¸ s a pe celelalte. Repetorul este conectat la fiecare cablu de retea ˆ ¸ ıntocmai ca o interfat˘ de retea a unui calculator. Dac˘ repetorul receptioneaz˘ simultan pachete prin a ¸ a dou˘ sau mai multe porturi.1). consider˘ c˘ are loc o coliziune ¸i semnala a a s izeaz˘ acest lucru emitˆnd. semnalul emis de orice interfat˘ de retea este receptionat ¸a ¸ ¸ de toate celelalte interfete de retea conectate la acel cablu.

. dar cu urm˘toarele modific˘ri: a a a . un cablu de retea va avea legate la el doar dou˘ echipamente: fie ¸ a o interfat˘ de retea ¸i un repetor. a Comutatoarele.este capabil s˘ memoreze cˆte un pachet ˆ a a ıntreg pentru fiecare port. le memoreaz˘ a s a a ¸i le retransmite pe rˆnd. O retea construit˘ cu repetoare este ¸ a desenat˘ ˆ figura 9. fie dou˘ repetoare. switch) este un dispozitiv asem˘a n˘tor cu un repetor.2: O retea construit˘ din mai multe cabluri magistral˘ interconectate prin ¸ a a repetoare. ˆ retrimite doar pe calea c˘tre interfata de retea ıl a ¸ ¸ . ın a ¸ hub = butuc de roat˘). ˆ loc s˘ retransmit˘ un pachet prin toate porturile a ın a a comutatorului. fie dou˘ interfete ¸a ¸ s a a ¸ de retea (ˆ acest din urm˘ caz rezult˘ o retea format˘ doar din dou˘ ¸ ın a a ¸ a a calculatoare).dac˘ prime¸te simultan dou˘ sau mai multe pachete. Un comutator (eng. cablul de leg˘tur˘ folosit ˆ aceste cazuri este o a a a ın leg˘tur˘ duplex (vezi mai jos) ¸i poate conecta doar dou˘ echipamente.c 2008. a devenit curent˘ utilizarea cˆte a a a ˆ acest unui cablu pentru conectarea fiec˘rui calculator la un repetor. Repetoarele permit construirea unei retele ˆ ¸ ıntinse pe o distant˘ ¸a mai mare decˆt lungimea maxim˘ a unui singur cablu (lungime limitat˘ a a a de atenuarea semnalului pe cablu). In a fel. Radu-Lucian Lup¸a s Capitolul 9.dac˘ este posibil. Retele IEEE 802 ¸ 265 repetor repetor Figura 9.2. a ın Odat˘ cu ieftinirea repetoarelor. s a . De regul˘. a a s a Repetoarele utilizate ˆ aceast˘ situatie se mai numesc hub-uri (engl.

Pentru astfel de scopa a a uri standardul recomand˘ utilizarea fibrelor optice.c 2008. din 4 conductoare a a a s a izolate. a¸a cum am v˘zut. ¸ s ¸ ¸ at ¸ tipul cablului de leg˘tur˘ ales nu afecteaz˘ restul retelei. Leg˘turi punct la punct prin perechi de conductoare a Grup˘m la un loc studiul leg˘turilor punct la punct prin perechi de a a conductoare datorit˘ multiplelor aspecte comune ˆ a ıntre toate tipurile de astfel de leg˘turi admise de standard.1 cu ocazia prezent˘rii standardului 10 Base T. Radu-Lucian Lup¸a s 266 9. a a ˆ cadrul fiec˘rei perechi. Denumirea standardului vine de la viteza de comunicatie (10 Mbit/s). Conductoarele sunt ˆ ımperecheate 2 cˆte 2 (formˆnd deci 2 perechi).1. ¸ codificarea (ˆ banda de baz˘) ¸i tipul mediului (Twisted pairs — perechi ın a s torsadate).3 mai multe sub-standarde legate de nivelul a ın fizic.1. Cablurile de leg˘tur˘ ˆ a a a ıntre dou˘ echipamente pot a fi f˘cute cu c˘i independente pentru cele dou˘ sensuri. s ın a ˆ toate cazurile.1. a a a ¸ Pentru echipamente capabile s˘ functioneze dup˘ mai multe stana ¸ a darde privind nivelul fizic (debite diferite ¸i mod semi-duplex sau duplex). privitoare la cablurile de leg˘tur˘ ˆ a a ıntre echipamente. ın a 9. este a as a ¸ posibil˘ realizarea unei comunicatii duplex ˆ a ¸ ıntre cele dou˘ echipamente.1. Este o leg˘tur˘ duplex la 10 Mbit/s utilizˆnd dou˘ perechi de a a a a conductoare torsadate. Cu exceptia debitu¸ lui de comunicatie ¸i a existentei sau absentei posibilit˘¸ii comunicatiei duplex.5 pentru detalii). Cablul de leg˘tur˘ const˘.1. Dac˘ ¸i echipaa a a as mentele conectate sunt capabile s˘ emit˘ ¸i s˘ receptioneze simultan. lungimea maxim˘ a unei leg˘turi este de 100 m. a Descriem ˆ continuare particularit˘¸ile tuturor standardelor priviın at toare la nivelul fizic construit pe perechi torsadate. a a Conditiile de izolare electric˘ ¸i de p˘mˆntare nu permit utilizarea ¸ a s a a sigur˘ pentru leg˘turi aeriene prin exteriorul cl˘dirilor. mediul de transmisie este format din dou˘ sau patru In a perechi de conductoare torsadate.3 (Ethernet) ¸ c˘reia ˆ este destinat pachetul (a se vedea § 9. s exist˘ un protocol de negociere al modului de transmisie la nivel fizic folosit. cˆte o perechie pentru fiecare sens (4 conductoare ˆ a ın total). Cu cablurile recomandate de standard. a Toate aceste variante de leg˘turi sunt gˆndite pentru a realiza un a a cablaj ieftin ¸i fiabil ˆ interiorul unei singure cl˘diri. a acesta va fi studiat ˆ § 9. Retele IEEE 802. conductoarele sunt r˘sucite unul ˆ jurul celuilalt In a a ın . a ıi Leg˘turile duplex. 10 Base T . a Exist˘ ˆ cadrul IEEE 802.

s s ¸ Conductoarele legate la emit˘tor la un cap˘t trebuie legate la receptor ¸a a la cel˘lalt cap˘t (fig. Acest lucru se poate realiza ˆ dou˘ moduri: a a ın a 1. 2.. conform fig.585 · c (adic˘ cel putin de a ¸ a ¸ 0.3(c). cu titlu informativ. Cablul este . 2 cu 6. ın Conectarea cablului la interfata de retea sau la repetoare se real¸ ¸ izeaz˘ prin intermediul unui conector cu 8 pini.. 5. 7 ¸i 8 sunt neutilizati.c 2008.unu-la-unu“(adic˘ pinul 1 de pe un conector este legat cu a pinul 1 de pe cel˘lalt conector. 3 cu 1 ¸i respectiv 6 a a s cu 2. cˆteva caracteristici: a ın a • impedanta caracteristic˘: 100 Ω. iar inversarea a s se face ˆ dispozitivul de la un cap˘t al cablului. ˆ sistemul amerın ¸ as ın ican de telefonie.ˆ X“: pinul 1 de pe un conector ın se leag˘ la pinul 3 de pe cel˘lalt conector. ca viteza de propagare s˘ fie cel putin 0.X“. Un astfel de cablu se nume¸te cablu inversor s sau cablu X. ca ˆ figura 9. Aceste dispozitive sunt desemnate auto MDI/MDIX. Standardul cere.3).3(b). aa • timpul de propagare al semnalului: maxim 1000 ns.. a a a standardizat sub numele RJ45. Radu-Lucian Lup¸a s Capitolul 9. Dac˘ la unul s ¸ a . Pinii 4. s Conectarea a dou˘ echipamente prev˘zute cu inversare ˆ conector se face cu a a ın ajutorul unui cablu inversor. D˘m ˆ continuare. 3 cu 3 ¸i 6 cu 6). iar Cat 3. Retele IEEE 802 ¸ 267 pentru reducerea interferentelor cu cˆmpurile electromagnetice din jur. prin legarea inversat˘ ın a a a conectorului la circuite: pinii 1 ¸i 2 la receptor ¸i 3 ¸i 6 la emit˘tor. Utilizarea pinilor este urm˘toarea: emisia ˆ a ıntre pinii 1 ¸i 2 ¸i receptia s s ¸ ˆ ıntre pinii 3 ¸i 6. 9.3(a)). Car¸ a acteristicile electrice ale cablurilor. ın Standardul recomand˘ inversarea leg˘turilor ˆ conectoarele repetoarelor a a ın ¸i cere marcarea conectoarelor cu inversare printr-un simbol .585 de ori viteza luminii ˆ vid). ˆ ın plus. dac˘ a a folosim un cablu cu atenuarea pe 200 m mai mic˘ de 11. putem a cabla un tronson de 200 m cu astfel de cablu f˘r˘ probleme). 2 cu 2. ¸ a • atenuare: maxim 11. UTP Cat 3 (UTP de la Unshielded Twisted Pairs — perechi torsadate neecranate.5 dB. ca s s s ¸a ˆ fig. Legarea cablului la conectoare se face . specificate prin standard. sunt ˆ general ın ˆ ındeplinite de c˘tre tronsoanele de pˆn˘ la 100 m construite din cablurile a a a folosite ˆ mod curent pentru reteaua telefonic˘ ¸i clasificate. de la Category 3 ). 9. ın Exist˘ ¸i dispozitive care detecteaz˘ automat pinii folositi la emisie as a ¸ ¸i receptie. asem˘n˘tor cu cel de telefon.5 dB pentru tot tronsonul de cablu (de fapt acesta este parametrul care limiteaz˘ lungimea unui tronson de cablu. 9.

3: Conectarea a dou˘ echipamente 10 Base T. Sunt date ¸i culorile standard a s pentru izolatiile conductoarelor din cablu.3 (Ethernet) ¸ emit˘tor ¸a receptor 1 2 3 4 5 6 7 8 alb-portocaliu portocaliu alb-verde verde alb-verde verde alb-portocaliu portocaliu 1 2 3 4 5 6 7 8 emit˘tor ¸a receptor (a) Inversare realizat˘ ˆ cablul de leg˘tur˘ a ın a a emit˘tor ¸a 1 2 3 4 5 6 7 8 alb-portocaliu portocaliu alb-verde verde alb-portocaliu portocaliu alb-verde verde receptor 1 2 3 4 5 6 7 8 emit˘tor ¸a receptor conector normal conector cu inversare (b) Inversare realizat˘ de unul dintre dispozitivele de la capete a receptor 1 2 3 4 5 6 7 8 alb-portocaliu portocaliu alb-verde verde alb-verde verde alb-portocaliu portocaliu emit˘tor ¸a 1 2 3 4 5 6 7 8 receptor emit˘tor ¸a conector cu inversare conector cu inversare (c) Conectarea a dou˘ echipamente prev˘zute cu inversare ˆ conector a a ın Figura 9. Radu-Lucian Lup¸a s 268 Retele IEEE 802.c 2008. ¸ .

a unui puls de testare a cablului.2 V ¸i 2. de asemenea. Cele dou˘ ¸ ın a nivele de tensiune. O a a interfat˘ de retea sau un repetor care nu prime¸te periodic pulsuri de test ¸a ¸ s de la cel˘lalt cap˘t va . ˆ a cu a a ıns˘ propriet˘¸i mai bune de transmitere a semnalului (obtine acelea¸i caracteristici at ¸ s de atenuare pˆn˘ la frecvente de 10 ori mai mari). ¸ a descrise mai jos. Trebuie ˆ a spus c˘ mecanismul de negociere ıns˘ a . Cablurile utilizate sunt cele a a ¸ desemnate UTP Cat 5 . se poate utiliza atˆt cablu a s a unu-la-unu cˆt ¸i cablu inversor. Mecanismul de a s aa ¸ detectare a pinilor utilizati se bazeaz˘ pe pulsurile pentru verificarea mediului.c 2008. pl˘cile de retea semnaleaz˘ starea a a ¸ a leg˘turii printr-un bit de control ce poate fi citit de driver-ul pl˘cii de retea. Este foarte asem˘n˘tor cu 10 Base T. Retele IEEE 802 ¸ 269 dintre capete se g˘se¸te un astfel de dispozitiv. Transmiterea bitilor se face ˆ codificare Manchester. Lungimea maxim˘ a unui tronson este de 100 m. Un echipament vechi. echipamentele capabile s˘ opereze conform standardului In a 100 Base Tx sunt capabile s˘ lucreze ¸i cu 10 Base T. la emit˘tor. Din acest s motiv un cablu pentru 100 Base Tx poate fi ˆ ıntotdeauna utilizat la o leg˘tur˘ a a 10 Base T.8 V. 100 Base Tx. standardul prevede emiterea a a ¸ periodic˘. Starea leg˘turii a a a a a a este semnalat˘ printr-un led. P˘strarea compatibilit˘¸ii este asig¸ ın a at urat˘ de faptul c˘ echipamentul vechi va ˆ ¸elege pulsurile doar ca testarea a a ınt liniei. Cablul const˘ tot din dou˘ perechi de conductoare torsadate. de c˘tre fiecare echipament.2 V ¸i −2. s Pe lˆng˘ transmiterea informatiei utile. a Conectoarele ¸i utilizarea pinilor sunt identice cu 10 Base T. dar obtine o vitez˘ de a a ¸ a transmisie de 100 Mbit/s. Radu-Lucian Lup¸a s Capitolul 9.8 V ¸i cel˘lalt ˆ s s a ıntre −2. iar pulsurile generate de el este putin probabil s˘ coincid˘ ˆ ampl˘tor ¸ a a ıntˆ a cu pulsurile de negociere a modului de transmisie. f˘r˘ nici un fel de restrictii. sunt unul ˆ ¸a ıntre 2. Un echipament capabil de comunicatie duplex ¸i care este informat c˘ echipamentul de la cel˘lalt cap˘t ¸ s a a a este capabil de asemenea de comunicatie duplex va intra automat ˆ mod ¸ ın duplex.. a a va functiona numai ˆ regim semiduplex. datˆnd dinaintea acestei ad˘ugiri la standard.deduce“ c˘ leg˘tura nu este valid˘. Stabilirea vitezei se a s face printr-un mecanism similar cu cel utilizat la 10 Base T pentru negocierea modului semiduplex sau duplex. ˆ general. a a ¸ O ad˘ugire ulterioar˘ la standard prevede ca ˆ secventa de pulsuri a a ın ¸ de testare a cablului s˘ se codifice disponibilitatea echipamentului ce le emite a de a functiona ˆ regim duplex sau la o vitez˘ mai mare de 10 Mbit/s (adic˘ ¸ ın a a conform unuia din standardele descrise mai jos).

Transmite 100 Mbit/s duplex. utilizˆnd 4 perechi Cat 5. a 100 Base T2. ın Cˆte o pereche de conductoare este rezervat˘ pentru fiecare sens. a Sunt necesare 4 perechi de conductoare (8 conductoare ˆ total). ˆ Intrucˆt ˆ majoritatea instalatiilor sunt disponibile cabluri Cat 5. res alizat˘ fie ˆ cablu. se utilizeaz˘ o codificare complicat˘. a ın ¸ utilizarea standardului 100 Base T4 este extrem de rar˘. Ca ¸i la celelalte cabluri. a a a a 1000 Base T. a ın emit˘tor ¸a receptor bidirectional 1 ¸ bidirectional 2 ¸ 1 2 3 4 5 6 7 8 alb-portocaliu portocaliu alb-verde albastru alb-albastru verde alb-maro maro alb-verde verde alb-portocaliu alb-maro maro portocaliu albastru alb-albastru 1 2 3 4 5 6 7 8 emitator ¸˘ receptor bidirectional 1 ¸ bidirectional 2 ¸ Figura 9. utilizˆnd dou˘ perechi Cat 3.3 (Ethernet) ¸ nu testeaz˘ ¸i calitatea cablului. utilizˆnd cabluri Cat 3. datorit˘ r˘spˆndirii cablului Cat 5. 100 Base T4. ¸ Utilizarea lui este rar˘. din acest motiv. utilizˆnd 3 nivele de sem¸ a a nalizare ˆ loc de obi¸nuitele 2 ¸i transmitˆnd simultan pe trei canale. a Leg˘tura const˘ ˆ patru perechi torsadate (8 conductoare) conforme a a ın Cat 5. dac˘ leg˘m o plac˘ de retea de as a a a ¸ 100 Mbit/s la un hub sau switch de 100 Mbit/s printr-un cablu ce nu permite 100 Mbit/s (de exemplu Cat 3 ˆ loc de Cat 5 ). a a Ca ¸i la 100 Base T4. de lungime maxim 100 m. Transmite 100 Mbit/s semi-duplex. bidirectional 2: pinii 7 s ¸ s ¸ s ¸ ¸i 8. ˆ a obtine perfors a a ıns˘ ¸ mantele lui 100 Base Tx pe cabluri identice cu cele folosite de 10 Base T. ˆ ¸ a ıntotdeauna trei perechi sunt utilizate pentru transmiterea informatiei ¸i a patra este temporar nefolosit˘).c 2008. este necesar˘ o ˆ s s a ıncruci¸are. Conectoarele sunt tot RJ45. a a Celelalte dou˘ perechi se utilizeaz˘ ˆ sensul ˆ care are loc efectiv transmiterea a a ın ın informatiei (adic˘.4). cu urm˘toarea utilizare a pinilor: emisie: a pinii 1 ¸i 2. receptie: 3 ¸i 6. Transmite 1 Gbit/s duplex. bidirectional 1: pinii 4 ¸i 5. pentru ın s s ¸a a obtine un semnal ce se ˆ ¸ ıncadreaz˘ ˆ banda de trecere a unui cablu Cat 3. este necesar s˘ configur˘m ın a a manual viteza de 10 Mbit/s.4: Utilizarea pinilor ¸i conectarea ˆ s ıntre echipamente la 100 Base T4. . Standardul cere a ın ın inversarea atˆt a emisiei cu receptia cˆt ¸i a celor dou˘ leg˘turi bidirectionale a ¸ a s a a ¸ (fig. fie ˆ conectorul unuia dintre echipamente. Radu-Lucian Lup¸a s 270 Retele IEEE 802. ¸ s a Codificarea informatiei este mai special˘. 9. descrise mai sus.

unul din fire are izolatia ˆ In a ¸ ıntr-o culoare plin˘ a iar cel˘lalt este combinat. alb alternˆnd cu culoarea firului pereche. ca urmare unele echipamente functioneaz˘ cu astfel de cabluri.3. a a Standardul permite dou˘ tipuri de conectoare: conectoare trapea zoidale cu 9 pini (identice cu cele utilizate pentru porturile seriale) sau ni¸te s conectoare cu 8 pini asem˘n˘toare. Majoritatea pl˘cilor de retea ¸i celorlalte echipamente pentru retele a ¸ s ¸ IEEE 802.. Mention˘m c˘ s ¸ a a se comercializeaz˘. produse recent ¸i desemnate Ethernet gigabit..c 2008. a s ˆ cadrul fiec˘rei perechi. 100 Base Tx ¸i 1000 Base T. a Schema de conectare standardizat˘ este dat˘ ˆ tabela 9. Transmite 1 Gbit/s duplex utilizˆnd 2 perechi de conductoare a de constructie specal˘. care nu utilizeaz˘ deloc perechile albastru ¸ s a ¸i maro. Pentru 1000 Base T. ¸ leg˘turile trebuie s˘ realizeze aceea¸i inversare a unor perechi de fire ca ¸i la a a s s 100 Base T4 (fig. ¸ a Se utilizeaz˘ cˆte o pereche pentru fiecare sens.semi-inversat“ nu este prev˘zut˘ de s a a standard. implementeaz˘ s a standardele 10 Base T.. a Realizarea practic˘ a cablajelor a Cablurile UTP Cat 5 folosite au de obicei 4 perechi de fire torsadate (8 fire ˆ total). Retele IEEE 802 ¸ 271 Se utilizeaz˘ o schem˘ de codificare mai complicat˘. Radu-Lucian Lup¸a s Capitolul 9.. a a Datorit˘ incompatibilit˘¸ii cu 10 Base T ¸i 100 Base Tx. verde. ce utilizeaz˘ a a a a fiecare pereche de conductoare ˆ regim duplex. albastru ¸i maro. ca urmare. ¸i cabluri ˆ care firele ce ar trebui s˘ fie colorate a a s ın a cu alb plus o culoare sunt doar albe ¸i. Varianta . varianta . s 1000 Base Cx. invelite toate ˆ ın ıntr-o teac˘ protectoare. Doar 2 perechi (4 fire) a sunt utilizate efectiv de leg˘turile 10 Base T ¸i 100 Base Tx. Varianta a a ın .semi-inversat“ a fost utilizat˘ frecvent pena tru al doilea cap˘t al cablurilor inversoare. dar incompatibile. din p˘cate. Din ratiuni de compatibilitate.4).inversat“ este utilizat˘ la cel˘lalt cap˘t al a a a cablurilor inversoare. Culorile a a folosite pentru perechi sunt portocaliu.normal“ este utilizat˘ la cablurile unu-la unu. ¸ a . 9.1. precum ¸i la unul din capetele a s cablurilor inversoare. ın Conectoarele folosite sunt tot RJ45. putine a at s ¸ echipamente utilizeaz˘ 1000 Base Cx. Varianta . iar ¸ a alte echipamente nu functioneaz˘. pentru a le identifica este s necesar s˘ se desfac˘ teaca protectoare pe o lungime suficient de mare pentru a a a vedea cum sunt torsadate firele (care cu care este ˆ ımperecheat prin r˘sucire). cu RJ45. dar nu functioneaz˘ decˆt pentru a ¸ a a retele 10 Base T ¸i 100 Base Tx.

a Toate sistemele IEEE 802. pin 1 2 3 4 5 6 7 8 normal alb-portocaliu portocaliu alb-verde albastru alb-albastru verde alb-maro maro Culoare inversat alb-verde verde alb-portocaliu alb-maro maro portocaliu albastru alb-albastru semi-inversat alb-verde verde alb-portocaliu albastru alb-albastru portocaliu alb-maro maro Tabelul 9. . adic˘ utilizarea pentru un circuit ¸ a a dou˘ fire care nu sunt ˆ a ımperecheate prin r˘sucire.3 standardizeaz˘ mai multe tipuri de leg˘turi prin fibre a a optice. iar cap˘tul unde trebuie ata¸at cel˘lalt conector este a s a cˆteva etaje mai sus sau mai jos. Nerespectarea perechilor. 9.2. a a • Este necesar un efort inutil de mare pentru ata¸area corect˘ a conectorului s a la al doilea cap˘t. Radu-Lucian Lup¸a s 272 9.c 2008.1.1. a a a a Exist˘ totu¸i un echipament.3 (Ethernet) ¸ Nr. Retele IEEE 802. Toate acestea sunt foarte similare din punctul de vedere al logicii function˘rii. cu atˆt mai multe cu cˆt cablul este mai lung. duce la pierderi a aleatoare de pachete. Pentru leg˘turi exterioare se recomand˘ utilizarea fibrelor s a a optice.1: Ata¸area conectoarelor RJ45 s Atragem atentia c˘ este foarte important s˘ se respecte schema de ¸ a a conectare din urm˘toarele motive: a • R˘sucirea firelor afecteaz˘ transmiterea semnalului ¸i sensibilitatea la a a s paraziti. Toate leg˘turile pe fibr˘ optic˘ sunt punct-la-punct (nu magistral˘). Leg˘turi prin fibre optice a IEEE 802. La cablurile trase prin a ın a exterior. Amatorii a a s a s˘ se gˆndeasc˘ la cazul cˆnd cap˘tul cablat nestandard se g˘se¸te ˆ a a a a a a s ıntrun dulap ˆ ınghesuit. diferentele sunt aproape ˆ totalitate aspecte minore legate de ¸ a ¸ ın realizarea nivelului fizic. dac˘ ata¸area primului s-a f˘cut nestandard. la care se pot conecta mai a s a . desc˘rc˘rile electrice din atmosfer˘ risc˘ s˘ induc˘ ˆ cablul de retea a a a a a a ın ¸ tensiuni suficient de mari pentru a distruge pl˘cile de retea sau hub-urile sau a ¸ switch-urile ata¸ate.3 ce utilizeaz˘ perechi torsadate sunt proieca tate pentru leg˘turi ˆ interiorul unei singure cl˘diri. numit stea pasiv˘. .

destinat utiliz˘rii ˆ conjunctie cu multe repetoare ˆ cascad˘ a ın ¸ ın a ¸i functionˆnd ˆ mod semi-duplex. reamintim c˘ se utilizeaz˘ o fibr˘ pentru a a a a a fiecare sens). . Radu-Lucian Lup¸a s Capitolul 9. este ˆ jur ¸ a a a ın −9 (1 bit eronat la 109 biti transmi¸i). a Conectarea cablului la echipamente se face cu ajutorul a dou˘ coneca toare (cˆte unul pentru fiecare fibr˘. lungimea maxim˘ a unei leg˘turi trebuie mic¸orat˘ corespunz˘tor) a a s a a ¸i o band˘ de 160 MHzkm. Nivelul semnalului emit˘torului este ˆ s ¸a ıntre −15 dBm ¸i −11 dBm pentru 10 Base FP ¸i ˆ s s ıntre −12 dBm ¸i −11 dBm pentru s 10 Base FB ¸i 10 Base FL. fiecare leg˘tur˘ este capabile de transmisie duplex. ¸ a ın • 10 Base FB. s Semnalizarea utilizeaz˘ codificarea Manchester. Rata erorilor. Nivelul acceptabil pentru semnalul receptionat este s ¸ ˆ ıntre −41 dBm ¸i −27 dBm pentru 10 Base FP ¸i ˆ s s ıntre −32. Lungimea unui tronson de cablu este maxim 2 km s a (pentru 10 Base FP. a O leg˘tur˘ punct la punct const˘ din dou˘ fibre optice. al ˆ ınveli¸ului. ca atare a ın ¸ a functionˆnd ˆ mod semi-duplex. ˆ a ıntocmai ca ˆ cazul ın lui 10 Base T. avˆnd o vitez˘ de propagare de s a a minim 0.c 2008.5. ın echipamentele corespunz˘toare pot fi interconectate f˘r˘ probleme): a aa • 10 Base FP. astfel. functionˆnd ˆ mod duplex.5 dBm ¸i −12 dBm s pentru 10 Base FB ¸i 10 Base FL. destinat utiliz˘rii ˆ configuratii cu stea pasiv˘. o atenuare de 3. Conectoarele sunt descrise de standardul IEC 60874-10:1992 sub numele BFOC/2. Atenuarea introdus˘ de conector nu trebuie s˘ dep˘¸easc˘ a a as a 1 dB. a a 10 Base F: standardizeaz˘ transmisia prin fibr˘ optic˘ la un debit de transa a a misie de 10 Mbit/s. Pentru semnalizare se folosesc unde infraro¸ii cu lungimea de und˘ s a cuprins˘ ˆ a ıntre 800 nm ¸i 910 nm. ¸ a ın Se utilizeaz˘ o fibr˘ optic˘ cu diametrul miezului de 62. lungimea fiec˘rei conexiuni dintre placa de retea ¸i steaua a ¸ s pasiv˘ este de cel mult 1 km).75 dB/km (dac˘ atenuarea fibrei utilizate este a mai mare. s ¸ a ın • 10 Base FL. cˆte una a a a a a pentru fiecare sens. cu diferente foarte mici ˆ a ¸ ıntre ele (ˆ general. de 10 ¸ s Grupeaz˘ trei variante. Astfel. obtinut˘ cu o astfel de leg˘tur˘. Retele IEEE 802 ¸ 273 multe pl˘ci de retea ¸i care distribuie semnalul transmis de o plac˘ spre toate a ¸ s a celelalte.5 µm (¸i dia a a s ametrul exterior. iar puterea undei reflectate nu trebuie s˘ dep˘¸easc˘ −25 dB din puterea a as a undei incidente. de 125 µm).67c. o stea pasiv˘ se comport˘ ˆ a a ıntrucˆtva similar cu un cablu a magistral˘.

3.5 µm sau de 50 µm sau monomod de 10 µm. Ramificatiile sau lipsa terminatoarelor duc la reflexia semnalu¸ lui la ramificatie sau la cap˘tul f˘r˘ terminator. Aceste standarde ofer˘ vitez˘ de transfer s a a de 1 Gbit/s. Lungimea maxim˘ de cablu ˆ a ıntre dou˘ echipamente este de 550 m pentru fibra multimod a ¸i 5 km pentru fibra monomod. a prin fibre multimod de 62. Radu-Lucian Lup¸a s 274 Retele IEEE 802. Lungimea maxim˘ a de cablu ˆ ıntre dou˘ echipamente este cuprins˘ ˆ a a ıntre 220 m pentru fibr˘ cu a dispersie intermodal˘ de 160 MHzkm ¸i 550 m pentru fibr˘ cu dispersie intera s a modal˘ de 500 MHzkm. a ın ¸ ¸ s Derivatia pentru leg˘tura la interfata de retea este construit˘ special pentru ¸ a ¸ ¸ a a reduce la minim reflexiile produse (impedanta emit˘torului ¸i receptorului ¸ ¸a s este mult mai mare decˆt impedanta cablului. care are impedanta de 75 Ω). a Pe cablu se leag˘.5 µm sau de 50 µm. motiv pentru care le a a a vom studia ˆ ımpreun˘. Pe lˆng˘ viteza mai a a a a mare. ca urmare.c 2008. Impedanta caractersitic˘ a cablului este de 50 Ω (este deci ¸ a incompatibil cu cablul utilizat pentru televiziune. ambele variante realizeaz˘ o vitez˘ de transmisie de a a 10 Mbit/s. at . 1000 Base SX ¸i 1000 Base LX. a Mediul de comunicatie este un cablu format dintr-o pereche de con¸ ductoare coaxiale. Varianta 1000 Base SX transmite pe lungimea de und˘ de 850 nm. Leg˘turi prin cablu magistral˘ a a Exist˘ dou˘ variante de leg˘turi prin cablu magistral˘ standarda a a a izate prin IEEE 802. ˆ paralel. 100 Base FX aduce cˆteva modific˘ri fat˘ de 10 Base F. ¸i anume utia a ¸a s lizarea unor conectoare duble (conectˆnd ambele fibre simultan) ¸i un mecana s ism de negociere a vitezei de transfer. nu se utilizeaz˘ pulsuri de testare a a leg˘turii care s˘ permit˘ negocierea modului semiduplex sau duplex sau a a a a vitezei de transmisie. a prin fibre cu diametrul miezului de 62. rezultˆnd bruierea semnalului ¸ a aa a de c˘tre reflexia lui.3 (Ethernet) ¸ Spre deosebire de 10 Base T. din a ¸ ¸ acest motiv circuitele emit˘torului ¸i receptorului trebuie plasate la cel mult ¸a s cˆ¸iva centimetri de cablu. anume de cel putin 100 kΩ). interfetele de retea ¸i eventual repetoarele. s 9.3. Cele dou˘ variante sunt foarte asem˘n˘toare. s ¸ 100 Base FX: ofer˘ o vitez˘ de transfer de 100 Mbit/s. ace¸ti parametri trebuie configurati manual. a Varianta 1000 Base LX transmite pe lungimea de und˘ de 1310 nm. ¸ Cablul nu are voie s˘ aib˘ ramificatii ¸i trebuie ˆ a a ¸ s ıncheiat la ambele capete prin terminatoare.1.

prevede utilizarea unui cablu s coaxial avˆnd aproximativ 10 mm grosime total˘. iar a a a ¸ s a a ˆ cazul ˆ care conecteaz˘ sau deconecteaz˘ dou˘ tronsoane de retea s˘ aib˘ ın ın a a a ¸ a a grij˘ s˘ nu ˆ a a ınchid˘ contactul electric ˆ a ıntre cele dou˘ tronsoane prin corpul lor. Dac˘ dou˘ sau mai multe interfete emit simultan. Se specific˘ explicit prin standard c˘ atˆt cablul a a a cˆt ¸i elementele legate de el trebuie s˘ fie izolate fat˘ de p˘mˆnt sau fat˘ de a s a ¸a a a ¸a alte conductoare (cu exceptia sus-mentionatei unice leg˘turi de p˘mˆntare). Standardul este gˆndit pentru cablare prin exteriorul cl˘dirilor. peste semnal ¸a a este suprapus˘ o component˘ continu˘. s • se accept˘ maxim 100 interfete de retea pe un tronson de cablu. persoanele care lucreaz˘ trebuie s˘ aib˘ a ¸ a a a grij˘ s˘ nu ating˘ simultan cablul de retea ¸i un conductor legat la p˘mˆnt. preferabil colorat ˆ galben a a ın pentru o mai bun˘ vizibilitate. interfetele de retea conectate la cablu opresc transmisia. specificate prin standard. a Ca modificare fat˘ de codificarea Manchester clasic˘. Lungimea total˘ maxim˘ a unui cablu este de a a a 500 m. de aici viteza brut˘ de transmisie de 10 Mbit/s.2. Radu-Lucian Lup¸a s Capitolul 9. numit ¸i cablu galben sau cablu gros. ˆ scopul simplific˘rii detect˘rii cola a a ın a a iziunilor.5 dB pe tot tronsonul de cablu) la 10 MHz ¸i maxim 12 dB/km (6 dB pe tot cablul) la 5 MHz.77 · c. cu a a privire la caracteristicile cablului: • impedanta caracteristic˘: 50 Ω ± 2 Ω. Dac˘ o a interfat˘ emite date. a Toate aceste m˘suri sunt luate deoarece este posibil s˘ apar˘ tensiuni electrice a a a ˆ ıntre leg˘turile de p˘mˆntarea ale instalatiilor electrice ˆ cl˘diri diferite. ¸ a • viteza de propagare a semnalului: minim 0. interfetele de retea trebuie s˘ realizeze o izolare electric˘ ˆ ¸ ¸ a a ıntre cablul de retea ¸i circuitele calculatorului care s˘ reziste la o tensiune de 1500 V. a ¸ ¸ Cablul trebuie conectat la p˘mˆnt (la instalatia de p˘mˆntare a a a ¸ a a cl˘dirii) ˆ a ıntr-un singur punct. s 10 Base 5. Pe cablul ˆ repaus. La detectarea unei s a coliziuni. Exist˘ dou˘ sub-standarde privitoare la caracteristicile mecanice ¸i a a s electrice ale cablului de conectare: 10 Base 5 ¸i 10 Base 2.c 2008. tensiunea ˆ ın ıntre conductoare este 0 V. d˘m cˆteva detalii. apare o tensiune continu˘ ˆ ¸a a ıntre conductorul central ¸i s tres˘. a a Denumirea sub-standardului vine de la viteza (10Mbit/s). ¸ ¸ a a a De asemenea. ın a s a ın Cu titlu informativ. • atenuarea: maxim 17 dB/km (8. conform ¸ ¸ metodei CSMA/CD (§ 4. tensiunea continu˘ a a a ¸ a cre¸te peste un anumit prag la care se declar˘ coliziune. codificarea (ˆ banda de baz˘ — Base) ¸i lungimea maxim˘ a cablului. Retele IEEE 802 ¸ 275 Semnalul este produs ˆ codificare Manchester. ¸ s a La efectuarea lucr˘rilor asupra retelei. ˆ sute de metri. De a a a ¸ ın a . cu durata unui bit de ın 100 ns.2).

tronsoanele sunt limitate a a s la lungime mai mic˘. iar leg˘tura cu tresa se face printr-o alt˘ clem˘ ce se strˆnge pe a a a a o zon˘ de pe care s-a ˆ a ındep˘rtat mantaua exterioar˘ a cablului. utilizeaz˘ a s a conectoare trapezoidale cu 15 pini ¸i poate avea lungime maxim˘ de aproxis a mativ 50m.65 · c. numite conectoare N. ın a s˘ se induc˘. • atenuarea. este posibil ca ˆ ıntr-un cablu. al doilea modul cuprinde logic˘ de comand˘ ¸i este construit a as sub forma unei pl˘ci ce se introduce ˆ calculator. cu prindere cu filet). transceiver ) ¸i moda ¸a s ulul de logic˘ al pl˘cii de retea sau al repetorului este de asemenea standarda a ¸ izat˘. 10 Base 2 se mai nume¸te cablu subtire. ˆ a folose¸te un cablu a a a a ıns˘ s mai potrivit pentru cablaje ˆ interior.c 2008. pentru 185 m: maxim 8. Cablul este tot coaxial. Este foarte asem˘n˘tor cu 10 Base 5. BNC fiind numele conectoarelor prev˘zute a fi utilizate pentru acest a tip de leg˘tur˘). a a Leg˘tura dintre modulul emit˘tor-receptor (engl. prin gaur˘ se introduce o clem˘ ce va face contact cu firul a a central.5 dB la 10 MHz ¸i maxim 6 dB la s 5 MHz. Lungimea maxim˘ a unui tronson este ın a de 185 m. tensiuni parazite importante din cauza a a retelelor de alimentare electric˘ din apropiere sau din cauza fulgerelor. se ata¸eaz˘ ¸ a ¸a s s a direct pe cablu. ˆ special dac˘ este dus prin exterior. ca urmare. inductiv sau capacitiv. ˆ schimb ın este admis s˘ aib˘ atenuare mai mare ¸i. cablu negru sau cablu BNC (oarecum s ¸ incorect. continˆnd emit˘torul ¸i receptorul propriu-zise. • prin realizara unei prize vampir : se d˘ o gaur˘ ˆ cablu f˘r˘ a-i intrerupe a a ın aa conductoarele. ¸ s . sub numele de interfat˘ AUI . Cablul de leg˘tur˘ dintre cele dou˘ module a ¸a a a a const˘ din 5 perechi de conductoare torsadate ¸i ecranate individual.3 (Ethernet) ¸ asemenea. • maxim 30 interfete ata¸ate pe un tronson. a D˘m din nou cˆteva caracteristici ale cablului: a a • viteza de propagare: 0. ¸ a Circuitele electronice ale interfetelor de retea sunt ˆ artite ˆ dou˘ ¸ ¸ ımp˘ ¸ ın a module: un modul. dar este mai subtire (≈ 5 mm) pentru a putea ¸ fiˆ ındoit mai u¸or (standardul cere s˘ poat˘ fi ˆ s a a ındoit la raza de 5 cm). Radu-Lucian Lup¸a s 276 Retele IEEE 802. a ın Ata¸area modulului de semnal la cablul de retea se poate realiza ˆ s ¸ ın dou˘ moduri: a • prin conectarea celor dou˘ segmente de cablu de-o parte ¸i de alta prin a s conectoare standardizate (conectoare coaxiale.

Radu-Lucian Lup¸a s Capitolul 9. orice pachet emis pe acel cablu se ciocne¸te cu reflexia lui. as s a a ¸ conectori BNC terminator jonctiuni T ¸ cablu coaxial Figura 9. Aceasta se ˆ ampl˘ deoarece cap˘tul de cablu unde s-a ın a ¸ ıntˆ a a produs ˆ ıntreruperea reflect˘ semnalul (este ca un cablu f˘r˘ terminator) ¸i. este ˆ ıntreruperea unui fir (de obicei o pan˘ de contact ˆ a ıntre sˆrm˘ ¸i a a s conector sau ˆ ıntre contactele unui conector). ca a aa s urmare. Solutia cea s ¸ mai eficient˘ de g˘sire a penei este o c˘utare binar˘ prin izolarea — neap˘rat a a a a a cu terminatoare — a unor portiuni din ce ˆ ce mai lungi din cablul retelei. nu doar .c 2008. Repetoarele ¸i comutatoarele s Ca functie ˆ cadrul unei retele.4). Terminatoarele sunt prev˘zute cu conector BNC a ¸ a mam˘ ¸i se ata¸eaz˘ pe T-urile de la pl˘cile de retea extreme..1. retransmite pachetul pe toate celelalte cabluri conectate.ruperea“ ¸ ˆ dou˘ a retelei. 9. La conectoarele tat˘ se ata¸eaz˘ buc˘¸ile de cablu a a a s a at de-o parte ¸i de alta. ¸ ın ¸ 9.4. iar la conectorul mam˘ al T-ului se ata¸eaz˘ conectorul s a s a tat˘ de pe placa de retea.5): Fiecare bucat˘ de cablu trebuie s˘ aib˘ montate pe capete a a a conectoare BNC mam˘. s Exceptie f˘cˆnd cazul comutatoarelor mai evoluate (vezi § 9.5: Conectarea unei retele 10 Base 2 ¸ Pana cea mai frecvent˘ ce apare la o retea. O ˆ ıntrerupere a cablului magistral˘ duce de regul˘ la oprirea function˘rii ˆ a a ¸ a ıntregii retele. ¸ a a o retea construit˘ cu repetoare sau comutatoare trebuie s˘ aib˘ o topologie ¸ a a a . a a ın ¸ astfel (fig. afectˆnd conexiunile dia ¸ a recte. Exist˘ elemente numite jonctiuni T care contin o a a ¸ ¸ ramificatie ¸i sunt prev˘zute cu un conector BNC mam˘ (pe mijlocul T-ului) ¸i ¸ s a a s dou˘ conectoare BNC tat˘.6. Interfata repetorului sau comutatorului c˘tre fiecare dintre ¸ a cabluri se nume¸te port.1. ¸ s la primirea unui pachet pe un cablu. Retele IEEE 802 ¸ 277 Conectarea interfetelor de retea ¸i a terminatoarelor se face prin ¸ ¸ s conectori standardizati sub numele BNC (conectorii BNC sunt standardizati ¸ ¸ pentru aparatur˘ electronic˘ ˆ general. nu se folosesc doar la retele Ethernet). atˆt repetorul cˆt ¸i comutatorul ¸ ın ¸ a a s este un dispozitiv la care sunt conectate mai multe cabluri de retea ¸i care.

nu-l poate retransa s mite la alt˘ cadent˘ a bitilor decˆt cea cu care ˆ receptioneaz˘.3 (Ethernet) ¸ arborescent˘. Cum acest lucru se a ˆ ampl˘ cu orice pachet trimis ˆ retea. vor produce o coliziune. copiile cicleaz˘ a In a la infinit prin retea. sfˆr¸ind prin a ajunge la toate pl˘cile din retea.furtun˘ de pachete“. a a a La retele ce utilizeaz˘ atˆt switch-uri cˆt ¸i repetoare.1. a ¸a ¸ a ıl ¸ a • s˘ nu existe mai mult de 4 repetoare de-a lungul nici unui drum ˆ a ıntre dou˘ a interfete de retea. fie 100 Mbit/s. fie 1 Gbit/s). restrictiile ¸ a a a s ¸ de la repetoare se aplic˘. aceasta ˆ ¸ ınseamn˘ o lungime maxim˘ total˘ de a a a 2500 m ˆ ıntre oricare dou˘ interfete de retea. nu apare nici una din limit˘rile expuse mai sus.c 2008. un pachet emis de o plac˘ ¸ a a de retea se propag˘ prin cabluri ¸i repetoare sau comutatoare din ce ˆ ce mai ¸ a s ın departe de interfata de origine. Aceast˘ restrictie este impus˘ pentru ca diferentele ¸ ¸ a ¸ a ¸ de vitez˘ de transmisie a repetoarelor ¸i variatia ˆ arzierii introduse a s ¸ ıntˆ de repetoare s˘ nu duc˘ la mic¸orarea sub o anumit˘ limit˘ a timpului a a s a a dintre dou˘ pachete consecutive. a ¸ ¸ ˆ cazul switch-urilor. ¸i anume: s ¸ s • toate componentele legate la repetoare trebuie s˘ lucreze la aceea¸i vitez˘ a s a (fie 10 Mbit/s. a ˆ cazul utiliz˘rii repetoarelor. adic˘ ˆ a a ıntre orice dou˘ interfete de retea trebuie s˘ existe un a ¸ ¸ a drum ¸i numai unul format din cabluri directe ¸i repetoare sau comutatoare. acesta le va considera ca fiind pachete distincte. Pentru a a a o retea de 10 Mbit/s.. se In ın ¸ ın a a ¸ va ˆ ampla ca dou˘ copii ale aceluia¸i pachet s˘ ajung˘ pe dou˘ c˘i distincte ıntˆ a s a a a a la un anumit repetor sau comutator. separat. dac˘ dou˘ copii ale unui pachet ajung pe dou˘ nul. Dac˘ este un repetor. Radu-Lucian Lup¸a s 278 9. pe fiecare subretea format˘ din repetoare a ¸ a . a a ajungˆnd aproximativ simultan. adic˘ o multiplicare ¸ a a a incontrolabil˘ a pachetelor. arborescent. contine circuite. In a cu exceptia faptului c˘ pe eventualele leg˘turi semi-duplex ˆ arzierea trebuie ¸ a a ıntˆ s˘ fie de cel mult jum˘tate din durata minim˘ a pachatului. In a a a c˘i diferite la un comutator. pe lˆng˘ topologia ˆ arbore mai treIn a a a ın buie respectate ni¸te conditii. a ˆ consecint˘. ˆ acest fel. Retele IEEE 802. a • ˆ arzierea cea mai mare a transmisiei ˆ ıntˆ ıntre dou˘ interfete de retea (ˆ a ¸ ¸ ıntˆrzierea pe cablu plus ˆ arzierea introdus˘ de repetoare) s˘ nu fie mai a ıntˆ a a mare decˆt jum˘tate din durata necesar˘ emiterii unui pachet. s s ˆ Intr-o retea construit˘ corect. cele dou˘ copii. ¸ as a ¸ ˆ cazul ˆ care reteaua. fiecare pachet va suferi o coliziune cu ıntˆ a ın ¸ el ˆ si ¸i va fi repetat la infinit cu acela¸i insucces. ˆ loc s˘ fie arborescent˘. ca urmare. fiecare copie fiind retransmis˘ In ¸a s a inclusiv pe calea prin care a intrat cealalt˘ copie. rezultˆnd o . le va memora ¸i retransmite. Aceasta deoarece un repetor nu memoreaz˘ pachetul de retransmis ¸i. rezultˆnd astfel trafic util ınsu¸ s s a ˆ cazul comutatoarelor.

prin intera mediul unui cablu serial. Accesul se poate a a realiza ˆ urm˘toarele moduri: ın a • Prin intermediul unui cablu serial: La switch se conecteaz˘. De cele mai multe ¸a a a ori.6. Switch-uri configurabile ˆ mod obi¸nuit. ıl Asocierea ˆ ıntre adresa MAC ¸i port este mentinut˘ doar un timp s ¸ a scurt (de ordinul secundei) pentru ca s˘ se asigure actualizarea asocierii ˆ a ın cazul mut˘rii interfetei de retea de la un port la altul (prin mutarea fizic˘ a a ¸ ¸ a cablului). Anume. un comutator ¸ine o tabel˘ cu asocierea a t a ˆ ıntre adresa fizic˘ (adresa MAC) a unei interfete de retea ¸i portul (conectorul) a ¸ ¸ s la care este conectat˘. Switch-ul ofer˘ o a a interfat˘ text — ofer˘ cˆteva comenzi de configurare. a ¸a Dac˘ un comutator prime¸te un pachet cu o anumit˘ adres˘ MAC a s a a surs˘.1. comutatorul va asocia acea adres˘ cu portul prin care a intrat pachetul. Dac˘ nu exist˘ asociere. switch-urile nu au parametri configurabili ¸i nu au In s s adres˘. Retele IEEE 802 ¸ 279 interconectate ¸i leg˘turile acestora spre interfetele de retea ¸i switch-uri.1. Aceast˘ interfat˘ de retea are o adres˘ ¸ a ınsu¸ a ¸a ¸ a MAC (adesea scris˘ pe eticheta aplicat˘ pe carcas˘) ¸i o adres˘ IP a a a s a . Radu-Lucian Lup¸a s Capitolul 9. de genul HyperTerm). a Dac˘ exist˘. Facilit˘¸i avansate ale switch-urilor at 9. Mai multe adrese MAC pot avea asociat acela¸i port. ele sunt transparente fat˘ de traficul ce trece prin ele. un teleterminal (sau un calculator care execut˘ un simulator de terminal. pachetele de broadcast se ˆ ıncadreaz˘ ˆ aceast˘ din urm˘ categorie.1. a a Ulterior. a a a • Prin telnet: Switch-ul se prezint˘ ca ¸i cum ar mai avea intern o interfat˘ a s ¸a de retea conectat˘ la el ˆ si. a ¸a Switch-urile mai avansate au parametri configurabili.c 2008.5.1. va trimite pachetul doar prin acel port. a a a a pachetul este trimis prin toate porturile cu exceptia celui prin care a intrat. dac˘ comutatorul prime¸te un pachet avˆnd ca destinatie acea adres˘ a s a ¸ a MAC. este necesar s˘ poat˘ fi accesate de pe un calculator.6. ıi La primirea unui pachet. aceast˘ situatie s a ¸ apare dac˘ la acel port este conectat un repetor sau un alt comutator. a ın a a 9. comutatorul caut˘ portul asociat adresei. acea interfat˘. direct sau indirect. ˆ va trimite doar prin portul asociat acelei adrese. s a ¸ ¸ s 9. ¸ Evident. Pentru configurare. exist˘ o comand˘ help sau ? care listeaz˘ comenzile disponibile. Dirijarea efectuat˘ de comutatoare (switch-uri) a Comutatoarele (switch-urile) sunt capabile s˘ realizeze o dirijare prima itiv˘ a pachetelor primite. Unei a adrese ˆ poate fi asociat cel mult un port.

1. De asemenea.6. Evident. exist˘ o procedur˘ de revenire la configa a a urarea implicit˘.2. a a a a a s Aceast˘ facilitate este introdus˘ pentru a ˆ a a ımpiedica eventuali intru¸i s s˘ intre ˆ retea racordˆndu-se pur ¸i simplu la prizele de retea accesibile. Este de asemenea posibil ca legarea ˆ trunking s˘ utilizeze o ın a extensie a protocolului IEEE 802.6. switch-ul prezint˘ o ¸a s a adres˘ IP. solutia are cˆteva limit˘ri: a at s ¸ ¸ a a • lista adreselor asociabile unui port este limitat˘ (de multe ori la 8 sau 16 a adrese). anume 23) ofer˘ a acces la interfata de configurare prezentat˘ mai sus.3 care este proprietatea firmei produc˘toare a a switch-ului. pe un anumit port. Ca ¸i ˆ cazul configur˘rii prin telnet. ˆ acest fel. Filtrare pe baz˘ de adrese MAC a Unele switch-uri pot fi configurate s˘ nu accepte. t a 9. s a ¸ a Pentru cazul uit˘rii parolei. Aceasta const˘ de obicei ˆ ap˘sarea unui buton de reset a a ın a timp de 10–15 secunde sau punerea sub tensiune a switch-ului ˆ timp ce se ın ¸ine ap˘sat butonul de reset. a ın ¸ a s ¸ De¸i ˆ s ımbun˘t˘¸e¸te securitatea unei retele. Porturile utilizate ˆ regim trunking trebuie configurate pe ambele ın switch-uri. Conectarea prin telnet la adresa IP a switch-ului (pe portul standard al protocolului telnet. traficul ce se poate stabili ˆ a In ıntre acele dou˘ switch-uri este suma capacit˘¸ilor leg˘turilor configurate ˆ trunka at a ın ing. a • Prin interfat˘ web: Ca ¸i la conectarea prin telnet.3 (Ethernet) ¸ configurabil˘ (adresa IP initial˘ se configureaz˘ prin intermediul conea ¸ a a xiunii seriale descrise mai sus).3.c 2008. a a switch-ul permite configurarea unei parole. Retele IEEE 802. Trunking Prin trunking se ˆ ¸elege utilizarea mai multor cabluri ˆ paralel ca ınt ın leg˘tur˘ ˆ a a ıntre dou˘ switch-uri. s ın a accesul poate ¸i este recomandabil s˘ fie restrictionat prin parol˘. • multe pl˘ci de retea permit schimbarea (prin soft) a adresei MAC. care este cerut˘ la conectare. un pachet destinat unei adrese MAC dintr-o a a astfel de list˘ nu va fi trimis decˆt prin portul pe a c˘rui list˘ se g˘se¸te adresa. Administratorul se poate conecta cu orice navigator web la a aceast˘ adres˘ ¸i va primi pagini ce contin parametrii actuali ¸i formulare a as ¸ s pentru modificarea parametrilor.1. a a ın . Radu-Lucian Lup¸a s 280 9.1. pen¸ a tru ˆ ımpiedicarea configur˘rii switch-ului de c˘tre persoane neautorizate. ˆ acest caz este posibil ca dou˘ swithc-uri realizate de firme ın a diferite s˘ nu se poat˘ lega ˆ trunking. a decˆt pachete ce provin de la o anumit˘ adres˘ MAC sau de la o adres˘ dintra a a a o anumit˘ list˘. a ¸ 9.

1D [IEEE 802. nu este posibil˘ ˆ ar¸ a a ın ¸ a ımp˘ ¸irea traficului ˆ t ıntre drumurile alternative. Leg˘turi redundante a IEEE 802. switch-urile vor colabora pentru reaca a a tivarea unei leg˘turi dezactivate.4. a a a ın Partitionarea ˆ VLAN-uri poate fi dezirabil˘ din mai multe motive. fiecare avˆnd doar o parte a porturilor switch-ului fizic. la a ¸ primirea unui pachet de broadcast sau pentru a c˘rui destinatie nu are asociere. a a ¸ 9.4). Exist˘ dou˘ posibilit˘¸i de constructie a VLAN-urilor. Majoritatea switch-urilor nu implementeaz˘ ˆ a acest algoritm ¸i. ˆ vederea p˘str˘rii conexit˘¸ii retelei. retelele virtuale partajeaz˘ acelea¸i echipamente (comutatoare. un switch se comport˘ ca mai multe switch-uri (virtuale) indeIn a pendente. 2004] prevede un protocol pentru descoperirea ¸i dezactivarea ciclurilor (ˆ sensul teoriei grafelor) formate de leg˘turile s ın a dintre switch-uri.6. VLAN-uri distincte pot partaja ˆ voie echipamente ¸ ın fizice. a ¸ A nu se confunda VLAN cu VPN (Virtual Private Network — retea ¸ privat˘ virtual˘ — descris˘ ˆ § 10. fiecare interfat˘ de retea apartine unuia sau mai multor VLAN¸a ¸ ¸ uri. cabluri ¸i a ¸ ¸ s switch-uri) retelei fizice. fiecare cablu apartine unuia sau mai multor VLAN-uri ¸i fiecare port al ¸ s fiec˘rui switch apartine unuia sau mai multor VLAN-uri. Unul din drumuri va fi obligatoriu dezactivat complet. ele colaboreaz˘ automat pentru dezactivarea a uneia dintre leg˘turi ¸i utilizarea doar a unui arbore partial al grafului initial a s ¸ ¸ al leg˘turilor.. a a at ¸ O prim˘ posibilitate const˘ ˆ partitionarea porturilor unui switch. a ın a a at ¸ Mention˘m c˘. ˆ cazul existentei unui ciclu. Radu-Lucian Lup¸a s Capitolul 9.furtuni de ın ¸ pachete“ (multiplicarea incontrolabil˘ a pachetelor ˆ retea). a ¸ a O a doua posibilitate este cea definit˘ ˆ [IEEE 802. ca¸ a s bluri sau chiar pl˘ci de retea). a ¸ .1. Astfel. a ın ¸ Dac˘ toate swicth-urile de pe traseul unui ciclu implementeaz˘ protoa a colul de descoperire a ciclurilor.c 2008.1D. a a ın ¸ ˆ acest fel. Retele IEEE 802 ¸ 281 9. cˆt timp cel˘lalt este functional.3 independent˘. 2003]. La c˘derea unei leg˘turi.1. Fiecare switch.6. a ıns˘ s ca urmare.5. Retele virtuale (VLAN) ¸ Mecanismul de retele virtuale (Virtual Local Area Network ) const˘ ¸ a ˆ ˆ artirea unei retele fizice ˆ mai multe retele virtuale disjuncte.7. Fiecare ın ımp˘ ¸ ¸ ın ¸ retea virtual˘ se comport˘ exact ca o retea IEEE 802.1Q. Un port al a unui switch poate s˘ apartin˘ doar unui singur VLAN. Con¸ a a ¸ a structiv. ˆ majoritatea cazurilor existenta ciclurilor duce la . Fiecare a ın VLAN const˘ dintr-o parte din echipamentele (interfete de retea. ¸ ın a cum ar fi: limitarea traficului de broadcast sau separarea traficului din motive de securitate.

s a s at De obicei este necesar s˘ se construiasc˘ o retea ˆ care toate calcua a ¸ ın latoarele s˘ se . cu ¸ a exceptia portului prin care a intrat pachetul.. Pentru aceasta. Pentru retelele mai mari. Retele IEEE 802. Echipamentele incompatibile 802. la nivel superior). Considerente privind proiectarea unei retele ¸ Proiectarea ¸i constructia unei retele Ethernet este ˆ general extrem s ¸ ¸ ın de u¸oar˘. ¸ Pentru ca mecanismul descris mai sus s˘ poat˘ functiona. prime¸te doar pachetele ce poart˘ a a s a acel VLAN-ID ¸i marcheaz˘ cu VLAN-ID-ul s˘u toate pachetele emise. Placa de retea se comport˘ ca ¸i cˆnd ar fi de ¸ a s a fapt mai multe pl˘ci de retea. ˆ a a ¸ ıntre switch-ul central ¸i switch-urile asociate ˆ aperilor se mai adaug˘ un nivel. respectiv dins a spre. pentru fiecare port trebuie stabilit dac˘ utilizeaz˘ paa a chete etichetate (cu VLAN ID-ul) sau pachete neetichetate.vad˘“ ˆ a a ıntre ele (la nivel de retea Ethernet. a ¸ 9. ¸ as aa Se utilizeaz˘ de obicei o structurare ierarhic˘ a leg˘turilor (a¸a-numita a a a s cablare structurat˘ ): de la calculatoarele dintr-o ˆ apere sau eventual 2–3 a ınc˘ ˆ aperi vecine se adun˘ cablurile ˆ ınc˘ a ıntr-un switch. acesta este ¸i unul din motivele popularit˘¸ii Ethernet-ului. Un port ce utilizeaz˘ pachete neetichetate poate apartine unui singur VLAN. virtuale. fiecare pachet este a a ¸ etichetat cu un identificator de VLAN (VLAN-ID). un segment de retea care apartine doar unui singur VLAN ¸ ¸ poate fi configurat s˘ utilizeze pachete neetichetate. pe cablurile ce apartin mai multor VLAN-uri. Tot ce este necesar ˆ acest caz este s˘ se amplaseze un num˘r de switch-uri ¸i ın a a s cabluri astfel ˆ at fiecare calculator s˘ fie legat la un switch ¸i switch-urile s˘ ıncˆ a s a fie legate ˆ ıntre ele ˆ ıntr-o reta conex˘ ¸i f˘r˘ .. s a a Pe fiecare switch trebuie configurate porturile care apartin fiec˘rui ¸ a VLAN.1Q poate fi configurat˘ s˘ fac˘ parte a ¸ a a a a din mai multe VLAN-uri. este necesar a a ¸ ca.1Q pot fi montate doar ¸ pe cabluri prin care trac pachete neetichetate.1.c 2008. Pentru aceasta. restul retelei. pentru fiecare pachet s˘ ¸ a se poat˘ deduce c˘rui VLAN apartine. switch-ul ce realizeaz˘ a a leg˘tura dintre un astfel de segment ¸i restul retelei fizice realizeaz˘ ad˘ugarea a s ¸ a a ¸i eliminarea etichetei de VLAN pe pachetele ce tranziteaz˘ spre. cˆte una ˆ fiecare VLAN. Radu-Lucian Lup¸a s 282 9. De asemenea. a ¸ Pentru p˘strarea compatibilit˘¸ii cu echipamentele ce nu suport˘ a at a VLAN-uri 802.3 (Ethernet) ¸ va trimite pachetul prin toate porturile apartinˆnd VLAN-ului pachetului. s ınc˘ a . controlul accesului ¸ la diversele resurse oferite de sisteme se face prin soft. Fiecare a ¸ a ın plac˘ virtual˘ are asociat un VLAN-ID.1Q.1. O plac˘ de retea compatibil˘ 802.7.bucle“. ea se monteaz˘ pe un cablu prin a care trec pachete etichetate. acest VLAN-ID este un num˘r reprezentabil pe 12 biti. iar de la aceste switch-uri se adun˘ cabluri c˘tre un switch central.

¸ s a ¸ a ın ınc˘ fiecare conectat prin cˆte un cablu la switch-ul central. este bine a s˘ se aib˘ ˆ vedere posibilele modific˘ri ce ar putea fi de dorit ˆ viitor. Acest identificator este ˆ ınscris ˆ fiecare pachet ın de date vehiculat ˆ retea. Radu-Lucian Lup¸a s Capitolul 9. Asocierile sunt dinamice — o statie poate s˘ intre sau s˘ ias˘ ¸ a a a . unic. Retele IEEE 802 ¸ 283 ˆ instalatiile mici ¸i f˘r˘ pretentii. astfel ˆ at pentru orice pachet de date receptionat ın ¸ ıncˆ ¸ prin anten˘ se poate determina celula wireless c˘reia ˆ apartine.2. o parte din calculatoarele din ˆ apere conectˆndu-se la ¸ ınc˘ a o retea ¸i altele la alt˘ retea. O celul˘ wireless este format˘ din mai multe statii (STA) situate ˆ a a ¸ ıntr-o zon˘ geografic˘ destul de restrˆns˘ (de ordinul cˆtorva zeci de metri) pentru a a a a a ca semnalul emis de fiecare statie s˘ fie receptionat de toate statiile din celul˘. a s a a a a at at cablurile se degradeaz˘ u¸or dac˘ se calc˘ pe ele ¸i. rezultˆnd echipamente trase pe jos sau a cabluri smulse din conectoare. Astfel. a 9.11. dac˘ va fi nevoie s˘ se construiasc˘ dou˘ a a a a retele distincte. Pentru evitatarea neajunsurilor expuse mai sus. U¸urinta rea ¸ a s ¸ aliz˘rii ¸i reconfigur˘rii este pl˘tit˘ prin faptul c˘ apar dificult˘¸i la cur˘¸enie. cablurile se duc aparent ¸i se fixIn ¸ s aa ¸ s eaz˘ de pereti sau pe mobil˘ numai acolo unde este strict necesar.c 2008. se mai ˆ ampl˘ a s a a s ın a s ıntˆ a ca cineva s˘ se ˆ a ımpiedice de un cablu. se prefer˘ s˘ se trag˘ a a a cablurile prin paturi de cablu. traficul din cadrul fiec˘rei celule ın s a a putˆnd fi distins pe baza BSSID-ului de traficul celorlalte celule. numit a ¸ Basic Service Set ID — BSSID. Asta a a ın a ın ˆ ınseamn˘: a • S˘ se prevad˘ mai multe cabluri de la posibile amplasamente de calcua a latoare la amplasamentul switch-ului asociat ˆ aperii. ˆ sfˆr¸it. 1999] este celula ¸ wireless (termenul original conform standardului este Basic Service Set — BSS).2. se vor pune dou˘ switch-uri ˆ ˆ apere. Retele IEEE 802. Arhitectura retelei ¸ Elementul de baz˘ ˆ a ıntr-o retea wireless [IEEE 802. se vor conecta sau a a ın deconecta dup˘ necesit˘¸i. tuburi ˆ ıngropate (ca la instalatiile electrice) sau ¸ prin tavane false. a at • S˘ se prevad˘ 2–3 cabluri de la switch-urile corespunz˘toare unei ˆ aperi a a a ınc˘ la switch-ul central. ¸ a ¸ ¸ a Fiecare celul˘ are asociat un identificator de 48 de biti. a Fiecare statie apartine (este asociat˘) la un anumit moment cel mult ¸ ¸ a unei celule. Cablurile neuınc˘ tilizate nu e necesar s˘ aib˘ toate loc ˆ switch. Mai multe a a ıi ¸ celule wireless pot coexista ˆ aceea¸i zon˘.1. Deoarece astfel de cablaje se modific˘ mai dificil.11 (Wireless) ¸ 9.

AP-urile unei aceleia¸i retele 802. neconectat˘ prin mi¸ a a a a a ˆ terminologia standardului. Acest ¸ ¸ir este fixat de administratorul retelei ¸i serve¸te la identificarea retelei pentru s ¸ s s ¸ utilizatorii umani. Retele IEEE 802. a AP-ul este responsabil de generarea pachetelor beacon ¸i BSSID-ul s celulei este adresa MAC a AP-ului. s ¸ s Standardul original nu prevede nimic ˆ leg˘tur˘ cu modul de conectare ın a a a AP-urilor ¸i deci de realizare a DS-ului. Lista afi¸at˘ utilizatorului va contine SSID-urile retelelor. Celulele din aceea¸i retea vor avea acela¸i SSID. metode de rezervare ˆ prealabil a accesului la mediu. Fiecare statie se identific˘ printr-o adres˘ unic˘ de 48 a a ¸ a a a de biti. network name).c 2008. ın ın Prezenta unei celule wireless organizate ˆ ¸ ıntr-o anumit˘ zon˘ este mana a ifestat˘ prin emiterea periodic˘ de c˘tre una dintre statii a unui pachet special. fiecare fabricant de APs uri ¸i-a construit propriul protocol de comunicare inter-AP. a a a ¸ numit beacon. ¸i ca atare are o adres˘ MAC. O statie poate obtine lista celulelor active ˆ zona sa ascultˆnd pa¸ ¸ ın a chetele beacon. pachetele beacon mai contin un ¸ir de a a ¸ s caractere numit SSID sau uneori numele retelei (engl.11 trebuie s˘ fie interconectate.2. o jloace IEEE 802 de alte echipamente. ˆ cadrul fiec˘rei celule exist˘ o statie care In a ın a a ¸ are rolul leg˘rii celulei la infrastructur˘ (altfel spus.11: a a ın ¸ ¸ • Retea format˘ dintr-o singur˘ celul˘ independent˘. Acestea vor fi a ın descrise ˆ detaliu ˆ § 9. Un AP ¸ a este o statie. numit˘ ˆ mod curent adresa MAC a statiei. Un astfel de mod de lucru se nume¸te mod infrastructur˘ sau s a managed . detectarea coliziunilor ¸i. s ¸ a formˆnd a¸a-numitul Distribution System (DS). Ca urmare. O astfel de statie poart˘ denumirea de Access Point — AP.11). Pe lˆng˘ BSSID-ul celulei. ˆ mod infrastructur˘.2. ˆ mod curent a s ın reteaua astfel format˘ se nume¸te ad-hoc. la restul retelei IEEE a a ¸ 802. s a ¸ ¸ Exist˘ dou˘ moduri de lucru ˆ care poate functiona o retea 802. ˆ ¸ s a Intr-o celul˘ a unei retele de tip a ¸ infrastructur˘. ¸ a s • Retea format˘ din una sau mai multe celule. ˆ a s ıntr-o anumit˘ m˘a a sur˘. Ulterior IEEE a s . In astfel de celul˘ se nume¸te Independent BSS — IBSS. Radu-Lucian Lup¸a s 284 9. operˆnd ˆ ¸ a a ımpreun˘ ¸i posibil as conectate la o infrastructur˘ IEEE 802 (de exemplu la o retea Ethernet a ¸ — 802.2.11 (Wireless) ¸ oricˆnd dintr-o celul˘. ¸ a ın ¸ Accesul la mediu este controlat ˆ principal prin metode bazate pe ın urm˘rirea traficului pe mediu. DS-ul poate fi conectat la a s alte retele din familia IEEE 802 prin intermediul unor dispozitive numite por¸ tal -uri. o statie ce intr˘ sau iese dintr-o celul˘ trebuie s˘ anunte AP-ul a ¸ a a a ¸ responsabil de celula respectiv˘.3).

Retele IEEE 802 ¸ 285 emis un standard. ¸a a Metoda de control al accesului la mediu ˆ IEEE 802. dispozitivul este ˆ acela¸i timp AP pentru o a In ın s celul˘ ¸i statie oarecare ˆ alt˘ celul˘. dar deoarece nici s . De obicei un dispozitiv vˆndut sub numele de access point contine a ¸ un AP ¸i un portal c˘tre retele Ethernet. Accesul la mediu Deoarece ˆ ıntr-o retea 802. adic˘ s a aceea¸i strategie ca ¸i pentru Ethernet-ul pe cablu coaxial. rom: acces multiplu cu detectarea semnalului purt˘tor ¸i evitarea coliziunilor). dar utilizˆnd tot reteaua wireless pentru partea de infra¸ a ¸ structur˘. Un astfel de dispozitiv prezint˘ un s a ¸ a modul radio prin intermediul c˘ruia se comport˘ ca o statie cu rol de AP ¸i a a ¸ s un conector Ethernet.11 se nume¸te Carrierın s Sense Multiple Access with Collision Avoidance (CSMA/CA. este necesar s˘ avem un mecanism de control al accesului la mediu.11F. un astfel de dispozitiv poate a ¸ fi privit ca un switch conectat pe de o parte la fiecare dintre statiile membre ¸ ale celulei ¸i pe de alt˘ parte la un dispozitiv Ethernet. pachetele emise se ciocnesc la B.2.11 avem un mediu partajat ˆ ¸ ıntre mai multi ¸ emit˘tori. s s Datorit˘ conditiilor specifice retelelor f˘r˘ fir.2. Aceste functii sunt ¸a ¸ oferite prin extensii ale protocolului ¸i ca urmare pot fi utilizate de regul˘ s a doar ˆ ımpreun˘ cu echipamente produse de aceea¸i firm˘. dar statia C s˘ nu receptioneze transmisia lui A. cu a ¸ diferente minore ˆ ¸ ıntre ele). a ¸ ¸ aa a a ˆ principal. ¸ a s a actionˆnd ˆ a ca ¸i statie oarecare (nu AP). Functionalit˘¸ile a s a ¸ at sunt: • functie de switch (punte) ˆ ¸ ıntre o retea Ethernet (fix˘) ¸i o celul˘ wireless. • functie de AP. strategia de control al accesului la mediu se bazeaz˘ In a pe detectarea coliziunilor ¸i repetarea pachetelor ce au suferit coliziuni. [IEEE 802. la transmisia radio nu exist˘ o delimitare comun˘ ˆ In a a ıntre zonele de actiune pentru diverse statii din aceea¸i celul˘: este posibil ca o statie B s˘ ¸ ¸ s a ¸ a receptioneze bine transmisia statiei A.c 2008. dac˘ a A ¸i C transmit simultan. ˆ Intr-o prim˘ aproximatie. Radu-Lucian Lup¸a s Capitolul 9. 2003]. care fixeaz˘ un protocol de comunia care ˆ ıntre AP-uri. ˆ acest mod. statia C s˘ receptioneze transmisia lui ¸ ¸ ¸ a ¸ B. sunt aduse cˆteva modific˘ri. s a Unele access point-uri ce se g˘sesc ˆ comert ofer˘ functionalit˘¸i a ın ¸ a ¸ at suplimentare fat˘ de un AP combinat cu un portal. iar a dou˘ leg˘tur˘ este utilizat˘ as ¸ ın a a a a a a pentru dirijarea spre reteaua fix˘ a datelor din celula ˆ care dispozitivul ¸ a ın este AP. ˆ ¸ a ¸ Intr-un astfel de caz. 9. a s ˆ principal. Aceast˘ functie se nume¸te ¸ a ıns˘ s ¸ a ¸ s wireless bridge sau AP client (uneori exist˘ functii cu ambele nume.

11 ¸ Deoarece la retelele 802. securitate echivalent˘ cu reteaua a ¸ cablat˘ ): ofer˘ confidentialitate ¸i autentificarea ¸i verificarea integrit˘¸ii a a ¸ s s at .2. ca urmare un pachet de broadcast este trimis direct. utilizarea RTS ın ¸i CTS este imposibil˘. a a Se utilizeaz˘ acolo unde se dore¸te s˘ se ofere acces public la Internet. De a s a remarcat ˆ a c˘. Retele IEEE 802.c 2008. rom: ıntˆ cerere de transmisie).4. a c˘ror ¸ ¸ a domeniu de actiune nu poate fi net limitat.2. lipsa oric˘rui mecanism de securitate. ˆ retelele IEEE 802.11 comunicatia este prin unde radio. unul singur dintre acestea: • Open system: ˆ ınseamn˘. In a a de c˘tre toate statiile membre ale celulei IBSS. Pentru pachetele de broadcast. Generarea pachetelor beacon ˆ modul infrastructur˘. ¸a O statie care receptioneaz˘ un pachet CTS destinat altei statii nu ¸ ¸ a ¸ are voie s˘ trimit˘ nimic pe durata rezervat˘ de pachetul CTS. rom: accept transmisia). a ˆ modul ad-hoc. oricine poate asculta sau modifica at comunicatia oricui ˆ cadrul celulei. ¸ s ¸ a Exist˘ mai multe mecanisme de securitate ce pot fi utilizate. Simplificat. Securitatea retelelor 802. o statie care dore¸te s˘ trimit˘ un pachet In ¸ ¸ s a a va trimite ˆ ai un pachet de control. ˆ care specific˘ destinatarul ¸i durata de timp necesar˘ ın a s a transmiterii pachetului.11 (Wireless) ¸ una din statiile A ¸i C nu receptioneaz˘ transmisia celeilalte ele nu au cum s˘ ¸ s ¸ a a detecteze coliziunea. Aceast˘ restrictie trebuie a a ¸ respectat˘ ¸i ˆ cazul receptiei unui pachet CTS destinat altei retele din aceea¸i a s ın ¸ ¸ s zon˘ (adic˘ purtˆnd un BSS-ID diferit). de fapt. numit Request To Send (RTS. ıns˘s 9. a a a Utilizarea pachetelor RTS ¸i CTS nu este obligatorie.2. La primirea pachetului CTS. pentru a nu a a a interfera cu transmisia acceptat˘ prin acel CTS. s a 9. emit˘torul trimite pachetul de date. ¸ ın • Wired Equivalent Privacy — WEP (rom.11. Radu-Lucian Lup¸a s 286 9. utilizarea unor metode care s˘ ¸ a asigure confidentialitatea ¸i integritatea datelor transportate este esential˘. datorit˘ lipsei oric˘rui mecanism de confidentialitate ıns˘ a a a ¸ sau asigurarea integrit˘¸ii mesajelor.3. ˆ cadrul a In unei celule se poate utiliza. a s va trimite ˆ ınapoi un pachet de control Clear To Send (CTS. pachetele beacon ale unei celule sunt generIn a ate exclusiv de c˘tre AP-ul celulei. Dac˘ destinatarul a primit pachetul RTS ¸i este liber. Pentru pas chetele mici este preferabil˘ trimiterea direct a pachetului de date ¸i repetarea a s acestuia ˆ cazul unei coliziuni. o statie care nu a ¸ ¸ receptioneaz˘ un beacon ˆ ¸ a ıntr-un anumit interval de timp predefinit genereaz˘ a ea ˆ a¸i pachetul beacon. generarea pachetelor beacon este f˘cut˘ distribuit. la alegere.

pentru fiecare pachet. pe de alt˘ parte. ˆ privinta cript˘rii.c 2008. datorit˘ existentei unei sl˘biciuni a cifrului a a ¸ a RC4 (exist˘ cˆteva chei slabe. • IEEE 802. EAP [RFC 3748. la introducerea statiei ˆ celul˘. toti membrii celulei trebuie s˘ cunoasc˘ o anIn ¸ a a umit˘ cheie de lung˘ durat˘. Retele IEEE 802 ¸ 287 mesajelor. ¸ fiind similar cu WEP (dar mult mai sigur). Arhitectura EAP contine urm˘toarele componente: ¸ a • clientul ce trebuie s˘-¸i dovedeasc˘ identitatea ˆ scopul obtinerii accesului as a ın ¸ .WPA-Personal. WPA In ¸ ¸ are dou˘ moduri de lucru: a . Controlul accesului ¸i obtinerea cheilor se s ¸ face printr-un mecanism numit Extensible Authentication Protocol (EAP ). ˆ a a ıntre altele. ˆ acest scop. 2004]. posibilitatea utiliz˘rii cifrului AES.1X. ¸i s ın a s s anume poate fi utilizat ˆ cadrul leg˘turilor PPP [RFC 1661. dar vine cu o schem˘ a a a diferit˘ de gestiune a cheilor de criptare. WEP are dou˘ a a sl˘biciuni: pe de o parte. Controlul integrit˘¸ii a ¸a s ın at pachetului este f˘cut tot pe baza secretului partajat. conform s a ¸ a [IEEE 802. a a a ˆ privinta obtinerii unui model de securitate mai flexibil. foarte u¸or de spart). cheie para a a a tajat˘ ˆ prealabil ). 2001]. ce permite utilizarea mai multor scheme de autentificare. ˆ care cheile se obtin pe baza unor chei individın ¸ uale ale utilizatorilor. precum ın a ¸i pentru autentificarea conect˘rilor la o retea cablat˘ IEEE 802. • WiFi Protected Access — WPA: corecteaz˘ problemele WEP.11i. Ca ¸i ˆ cazul a s ın WPA. capabil˘ s˘ evite cheile slabe. modelul de securitate oferit este destul s a de neflexibil. este un protocol generic. Radu-Lucian Lup¸a s Capitolul 9. cu o cheie construit˘ din secretul partajat a a ¸i dintr-un vector de initializare ales aleator. 1994]. dup˘ caz. ˆ s ın care se utilizeaz˘ un secret partajat ˆ a ıntre toti membrii celulei.3. cu cheie partajat˘ ˆ prealabil sau a a a ın utilizˆnd EAP. a Protocolul de autentificare extensibil. Criptarea se a ¸ ın a face utilizˆnd cifrul RC4.11i [IEEE 802. aceast˘ cheie trebuie dat˘ de utilizator la initierea a ın a a ¸ celulei sau. de s ¸ c˘tre emit˘tor ¸i transmis ˆ antetul pachetului. numit˘ pre-shared key (rom. 2004]. EAP este utilizat ¸i de alte protocoale ˆ afar˘ de WPA ¸i WPA2. . p˘strˆnd a a a compatibilitatea cu pl˘cile de retea existente. WEP poate fi spart a a s destul de u¸or. extinde WPA as d˘ugˆnd. exist˘ dou˘ moduri de lucru. numit ¸i WPA2. numit ¸i WPA-PSK (de la Pre-Shared Key). descris mai jos. WPA a ¸ In ¸ a p˘streaz˘ cifrul RC4 din motive de compatibilitate.WPA-Entreprise.

11 (Wireless) ¸ la retea. Rolul clientului ˆ are placa de retea 802. ˆ terminologia EAP. Dup˘ deschiderea conexiunii TLS. Unele dintre mecanismele efective de autentificare utilizabile ˆ cadrul ın EAP sunt: • EAP-MD5 prevede c˘ serverul de autentificare trimite clientului un num˘r a a aleator. iar ˆ s a ın cadrul acestei conexiuni stabilesc cheile pentru comunicatia ulterioar˘ ¸ a ˆ ıntre client ¸i punctul de acces. urmeaz˘ a a a autentificarea clientului de c˘tre server.11 (sau placa de ¸ ıl ¸ ˆ terminologia EAP. Functionarea mecanismului necesit˘ ca ¸ a serverul s˘ aib˘ ˆ baza de date.5). Dac˘ serverul de autentificare este distinct fat˘ de punctul de acces. iar ˆ caz de succes are loc nea ın gocierea cheilor pentru securizarea comunicatiei ˆ ¸ ıntre client ¸i punctul s de acces. • punctul de acces este entitatea care trebuie s˘ autentifice clientul pentru a a-i oferi acces la serviciile retelei. iar portiunea din calea de comunicatie dintre punctul de acces ¸i serverul ¸ ¸ s de autentificare este protejat˘ criptografic pe baza unui secret partajat ˆ a ıntre punctul de acces ¸i serverul de autentificare. In ¸ supplicant. ˆ clar.3 sau clientul PPP). Radu-Lucian Lup¸a s 288 9.2. iar mecanismul de autentificare a clientului .2. clientul autentificˆnd serverul pe baza a certificatului corespunz˘tor. s • PEAP (de la Protected EAP ) prevede utilizarea TLS pentru deschiderea unei conexiuni securizate ˆ ıntre client ¸i serverul de autentificare. Se stabile¸te o conexiune TLS ˆ s s ıntre client ¸i serverul de autentificare. s • serverul de autentificare este entitatea care detine baza de date cu cheile ¸ clientilor ¸i realizeaz˘ efectiv autentificarea. ˆ terminologia PEAP. acesta este numit retea 802. ˆ a s ıns˘ doar serverul are o cheie TLS.c 2008. parola clientului. utilizˆnd certificatele acestora. a ¸a comunicatia dintre client ¸i serverul de autentificare trece prin punctul de ac¸ s ces. Serverul de autentificare este de s obicei un server RADIUS. • EAP-TLS necesit˘ ca atˆt clientul cˆt ¸i serverul de autentificare s˘ aib˘ a a a s a a prestabilite chei secrete SSL/TLS. conexiunea TLS se nume¸te mecanisIn s mul exterior de autentificare. EAP-MD5 a a ın ın permite doar autentificarea clientului.3. iar clientul r˘spunde cu dispersia MD5 a concaten˘rii num˘rului a a a aleator cu parola clientului.11 (sau switch-ul 802. iar fiecare dintre ei s˘ aib˘ certificatul a a TLS al celuilalt (vezi ¸i § 11. In acesta se nume¸te authenticator. nu ¸i stabilirea unor chei pentru s criptarea sau autentificarea mesajelor. Rolul de punct de acces ˆ are AP-ul ¸ ıl 802. ¸ s a Protocolul EAP prevede un schimb de mesaje ˆ ıntre client ¸i serverul de autens tificare. Retele IEEE 802.3 sau serverul PPP).

c 2008. Retele IEEE 802 ¸ 289 se nume¸te mecanismul interior. Mecanismul interior cel mai r˘spˆndit s a a este MSCHAP. care este un mecanism similar cu EAP-MD5. Radu-Lucian Lup¸a s Capitolul 9. .

c 2008. Radu-Lucian Lup¸a s 290 Capitolul 9. Retele IEEE 802 ¸ .

a ¸ a 10. Intr-o retea Internet. ARP. Arhitectura retelei ¸ Facem ˆ continuare o scurt˘ trecere ˆ revist˘ a conceptelor de baz˘ ın a ın a a ale unei retele bazate pe protocolul Internet. ¸ • cˆteva aspecte administrative legate de reteaua mondial˘ Internet.1. IP. imprimantele de retea sau alte dispozitive. Capitolul de fat˘ prezint˘: ¸a a • protocolul Internet (IP). protocolul Internet). ın a . mainframe-uri). Radu-Lucian Lup¸a s 291 Capitolul 10 Internetul Denumirea Internet desemneaz˘ dou˘ lucruri: pe de o parte un proa a tocol de nivel retea (Internet Protocol. iar pe de alt˘ ¸ a parte reteaua Internet. etc. hosts) nodurile ce nu pot actiona ca noduri interme¸ ¸ diare ¸i rutere nodurile ce pot actiona ca noduri intermediare. ¸ a a a ¸ ¸ Sunt numite statii (engl. ˆ ımpreun˘ cu celelalte protocoale de baz˘ ale a a retelelor de tip Internet (TCP. ele au doar rol de statie ¸i doar ˆ scopul de-a putea fi In ¸ s ın contactate ˆ vederea configur˘rii. interconectate ˆ ıntre ele. ın Ca orice retea (vezi capitolul 5).c 2008. Re¸ marc˘m c˘ switch-urile Ethernet sunt noduri IP numai dac˘ sunt configuraa a a bile. o retea Internet este alc˘tuit˘ din ¸ ¸ a a ˆ noduri . ın a Serviciul de comunicatie oferit de o retea Internet este de tip data¸ ¸ grame. s ¸ Statiile sunt ˆ mod uzual calculatoare (PC-uri. dis¸ ın pozitive mobile (PDA-uri). ˆ terminologia Internet acestea se numesc pachete. Aceste concepte vor fi detaliate ¸ ˆ paragrafele care urmeaz˘. toate nodurile pot ¸ actiona ca noduri finale (adic˘ s˘ fie surs˘ sau destinatie pentru comunicatie). care este o retea la scar˘ mondial˘ bazat˘ pe protocolul ¸ ¸ a a a Internet. ˆ acest caz. DNS.).

el ilustreaz˘ foarte bine independenta ˆ a a ¸ ıntre nivele ˆ ıntr-o retea. a ¸ ın a Este sarcina nivelelor superioare s˘ se descurce ˆ aceste conditii. o adres˘ IP identific˘ unic un nod. s a ¸ Protocolul IP are dou˘ versiuni aflate curent ˆ uz: versiunea 4 a ın (cea mai utilizat˘ ˆ prezent. 1998]. Radu-Lucian Lup¸a s 292 10. ¸ s ¸ nivelul transport. dac˘ a a a a mai exist˘ totu¸i un drum ˆ a s ıntre dou˘ noduri el va fi g˘sit ¸i utilizat ˆ cele a a s ın din urm˘. 1990] de utia lizare ca leg˘turi directe a porumbeilor c˘l˘tori.c 2008. Arhitectura retelei ¸ Nodurile intermediare sunt fie PC-uri. Modul de utilizare a fiec˘rui ¸ a tip de leg˘tur˘ direct˘ de c˘tre o retea Internet este standardizat prin stana a a a ¸ darde auxiliare (§ 10. ¸ 10. precum ¸i ˆ caz ıntˆ a s ın de ˆ arcare mare a retelei). au mai multe adrese IP asociate. retele locale IEEE 802. o leg˘tur˘ direct˘ este ¸ a a a orice fel de canal de comunicatie pe care reteaua de tip Internet o poate folosi. Corespondenta ˆ a ¸ ıntre un nume de domeniu ¸i adresa IP se realizeaz˘ cu ajutorul sistemulul DNS (Domain Name Service). s˘ ajung˘ ˆ dublu exemplar sau dou˘ pachete s˘ ınc˘ ¸ a a ın a a ajung˘ la destinatie ˆ ordine invers˘ a trimiterii. Leg˘turile directe pot fi realizate prin linii seriale. Cu exceptia unor adrese cu rol special. fie dispozitive dedicate (rutere dedicate). Internet Protocol — IP ) descrie formatul pachetelor ¸i cˆteva aspecte privind activitatea nodurilor retelei. ˆ a ın ¸ In acest scop. Dup˘ c˘derea unor noduri sau a unor leg˘turi. ˆ locul In lor se utilizeaz˘ numele de domeniu. ¸ Din punctul de vedere al unei retele Internet. Exist˘ chiar un standard [RFC 1149. 1981] ¸i versiunea 6 (care se r˘spˆnde¸te relativ ˆ s a a s ıncet. Aceast˘ tolerant˘ la pene vine cu un pret: nu exist˘ garantii cu a a ¸a ¸ a ¸ privire la ˆ arzierea maxim˘ ˆ livrarea unui pachet sau debit minim garanıntˆ a ın tat. ın Protocolul Internet a fost proiectat pentru a asigura o tolerant˘ de¸a osebit de mare la pene. Unele ¸ a a noduri. ın Adresele IP sunt arareori folosite direct de utilizatorii umani. s a descris ˆ § 10. cablu TV. etc. linii telefonice cu a modemuri. Protocolul IP Protocolul Internet (engl.5). numit˘ prescurtat IPv4 ) standardizat˘ prin a ın a a [RFC 791. numit˘ presa curtat IPv6 ) standardizat˘ prin [RFC 2460.4. cu rolul de-a furniza aplicatiei un serviciu mai potrivit. ¸ ¸ Fiecare nod este identificat prin una sau mai multe adrese IP . ˆ special cele intermediare.2. ba chiar este posibil ca un pachet s˘ fie pierdut complet (acest lucru se a poate ˆ ampla cu pachetele surprinse pe drum de o pan˘.1. a . de¸i standardul a fost publicat a aa s ca o glum˘ de 1 aprilie. ˆ ıntre aplicatie ¸i nivelul retea este plasat un nivel intermediar.

Adresa destinatarului final al pachetului.1).2. Radu-Lucian Lup¸a s Capitolul 10. Semnificatia diferitelor cˆmpuri va fi descris˘ ˆ paragrafele ¸ a a ın care urmeaz˘. ˆ ¸ ın grupuri de 32 biti (valoarea minim˘ este ¸ a 5. un num˘r variabil de a a optiuni ¸i.6. a ¸ Tip serviciu (vezi § 10.6. Deplasament pentru reasamblarea fragmentelor. Structura pachetului IP Un pachet IP este alc˘tuit dintr-un antet fix. Timpul r˘mas pˆn˘ la distrugerea paa a a chetului (vezi § 10.2).2. deoarece aceste informatii nu sunt necesare decˆt pentru anumite ¸ a tipuri de pachete. Lungimea antetului. inclusiv optiunile. ˆ final.1). antet plus date utile. Internetul 293 10. Rezervat pentru extinderi ulterioare.2. Con¸ ¸inutul antetului fix este dat ˆ tabelele 10.1.2. Identificarea protocolului de nivel superior c˘ruia ˆ apartin datele utile.2. ˆ a ın octeti. Lungimea total˘. a ıi ¸ Suma de control a antetului.1: Antetul IP versiunea 4 Optiunile sunt informatii pentru dirijarea pachetului pentru cazuri ¸ ¸ mai speciale.c 2008.3). ele sunt prezente doar ˆ pachetele ˆ care este nevoie de ın ın . ¸ s ın Antetul fix contine datele necesare pentru dirijarea pachetului.6.6.2 (pent ın s tru versiunea 6). Marcheaz˘ ultimul fragment sau un paa chet nefragmentat (vezi § 10. datele utile.2.5. ¸ Identificator pentru reasamblarea fragmentelor (vezi § 10.1 (pentru versiunea 4) ¸i 10. adic˘ 160 biti). are valoarea 0. vezi § 10. valoarea este fix˘: a 4. a Nume cˆmp a Versiune IHL Lungime (biti) ¸ 4 4 Rol Versiunea protocolului.1. Adresa nodului ce a creat pachetul. TOS Lungime totala Identificare Rezervat Nu fragmenta Ultimul fragment Deplasament Timp de viat˘ ¸a Protocol Suma de control Adres˘ surs˘ a a Adres˘ destinatie a ¸ 8 16 16 1 1 1 13 8 8 16 32 32 Tabelul 10.

2. Adresa nodului ce a emis pachetul. pentru IPv6.c 2008.5.2.2. tipul primului ana a ¸ tet optional. s ¸ a Interfata de retea este un concept abstract care desemneaz˘ leg˘tura ¸ ¸ a a ˆ cazul ˆ care leg˘tura direct˘ este realizat˘ de dintre un nod ¸i o subretea.2. Este permis ca unele ¸ ¸ noduri s˘ nu poat˘ procesa pachete ˆ care datele utile sunt mai lungi de 556 a a ın octeti (576 octeti tot pachetul) pentru IPv4 ¸i 1240 octeti (1280 octeti tot ¸ ¸ s ¸ ¸ pachetul) pentru IPv6 (a se vedea ¸i § 10.1). Valoarea este fix˘: 6.8.2.2). ¸ Dac˘ exist˘ optiuni. o retea Ethernet construit˘ cu cabluri magistral˘ este o subretea ¸ a a ¸ IP.3. ¸ Num˘rul maxim de salturi pˆn˘ la disa a a trugerea pachetului (vezi § 10. Limit˘ salturi a Adresa surs˘ a Adresa destinatie ¸ 8 128 128 Tabelul 10. ¸ ¸ De exemplu. altfel. Protocolul IP Nume cˆmp a Versiune Clas˘ trafic a Etichet˘ flux a Lungime rest Tip antet urm˘tor a Lungime (biti) ¸ 4 8 20 16 8 Rol Versiunea protocolului IP. vezi § 10. inclusiv antetele optionale.2. Lungimea pachetului minus antetul fix. In s ¸ ın a a a .6.3). o linie serial˘ ¸ a a construie¸te o subretea cu dou˘ calculatoare. Ca alt exemplu. ˆ ın octeti. protocolul c˘ruia ˆ ¸ a ıi apartin datele utile.2.6.2: Antetul IP versiunea 6 ele.1.2. din punctul de vedere al calculatorului la care este ata¸at˘ o plac˘ a s a a de retea. Bazele dirij˘rii pachetelor IP a 10. O retea Ethernet cu hub-uri sau switch-uri este de asemenea o subretea IP ¸ ¸ ˆ ıntrucˆt. Adresa destinatarului final al pachetului. Datele utile sunt un ¸ir de octeti asupra c˘ruia protocolul IP nu s ¸ a impune nici o restrictie. s 10. cu exceptia lungimii. a tip serviciu (vezi § 10.1. Radu-Lucian Lup¸a s 294 10. Subretele ¸i interfete ¸ s ¸ O subretea este o multime de noduri legate direct fiecare cu fiecare. Lungimea maxim˘ admis˘ de ¸ ¸ a a protocol este de 65515 octeti (65535 octeti pachetul ˆ ¸ ¸ ıntreg) pentru IPv4 ¸i s 65535 octeti. o retea Ethernet construit˘ cu cablu magistral˘ se comport˘ identic ¸ ¸ a a a cu o retea construit˘ cu hub-uri sau switch-uri.

a ¸ Are sens s˘ vorbim despre interfetele membre ale unei subretele. Presupunem c˘ o subretea ar avea prefixul de retea ¸ a ¸ ¸ 10110. Prefixul de retea ¸ Fiecare subretea are asociat un prefix de retea. r˘mˆn deci 6 adrese ce pot fi asignate nodurilor a a subretelei. ca a ¸ ¸ fiind interfetele prin care nodurile din subretea sunt conectate la acea subretea. ˆ vom numi adresa ˆ cadrul subretelei.2. ¸ a a ¸ Adresele ˆ care sufixul este format numai din biti 0 sau numai din ın ¸ biti 1 (a¸adar dou˘ adrese pentru fiecare subretea) sunt rezervate ¸i nu pot fi ¸ s a ¸ s asignate nodurilor retelei (a se vedea ¸i [RFC 1700. cu prefixul 10110. ın P˘tr˘¸elele numerotate reprezint˘ calculatoarele. a ¸ Prefixul unei subretele nu este permis s˘ fie prefix al unei adrese IP din afara ¸ a acelei subretele. ¸ ¸ ¸ Adresele IP dintr-o subretea sunt adresele IP ale interfetelor din acea subretea. 10110001 ¸i 10111010. Ca urmare. figurate aici ca ¸i cˆnd ar fi realizate prin cabluri magistral˘. Num˘rul de ¸ ıl ın ¸ a biti ai sufixului determin˘ num˘rul de noduri ce pot fi membre ale subretelei. Toate adresele IP ¸ a a ale interfetelor din acea subretea trebuie s˘ ˆ ¸ ¸ a ınceap˘ cu acel prefix de retea. deoarece ¸ nu ˆ ıncepe cu prefixul subretelei.2. adic˘ ¸irul de biti din adres˘ care nu fac parte as ¸ a din prefixul subretelei. De res a a marcat c˘ nodul cu num˘rul 3 are dou˘ adrese. ¸a Din subreteaua considerat˘.2. ¸ Un exemplu de asignare a adreselor este prezentat ˆ figura 10. adic˘ un anumit ¸ir ¸ ¸ a s de biti de lungime mai mic˘ decˆt lungimea unei adrese IP. ¸ s Exemplul 10. interfata de retea este placa de retea ˆ ¸ ¸ ¸ ¸ ımpreun˘ cu driver-ul a ei. 1994]). ¸ Adresa 10111010 nu poate face parte din acea subretea. Adresele 10110000 ¸i ın a s 10110111 sunt rezervate.c 2008. un prefix identific˘ unic o subretea. dac˘ exist˘. ¸ ¸ ¸ 10. pot face parte adresele. Ca urmare.1: Pentru simplificarea exemplului vom presupune c˘ adresele a IP sunt doar de 8 biti. Adresa 10110010. din intervalul 10110000–10110111. trebuie s˘ desemneze o interfat˘ din a a a ¸a acea retea. un nod ¸a ¸ a ce are n pl˘ci de retea va avea n adrese IP distincte.1. Internetul 295 o retea IEEE 802. Radu-Lucian Lup¸a s Capitolul 10. Fiecare interfat˘ de retea are propria adres˘ IP. Not˘m c˘ un nod care are o interfat˘ ˆ ¸ a a ¸a ın subreteaua 10110 ¸i o interfat˘ ˆ alt˘ retea ar putea avea adresa 10111010 pe ¸ s ¸a ın a ¸ cea de-a doua interfat˘. ¸a . ¸ a ˆ num˘r de 23 = 8. cˆte a a a s a una pentru fiecare interfat˘. iar liniile reprezint˘ leg˘turile a at a a a directe. ¸ a ¸ Sufixul unei adrese.

3. pachetul a ¸ este livrat local (nivelului superior).2. a ¸ Deciziile de la pa¸ii 2 ¸i 3 se iau pe baza tabelei de dirijare a nodus s lui curent.2.1 ¸ a a ¸ 10. Vezi exemplul 10.c 2008. Radu-Lucian Lup¸a s 296 10. este necesar ca nodul s˘ determine dac˘ adresa destia a natie corespunde unui vecin direct ¸i care este interfata prin care se realizeaz˘ ¸ s ¸ a leg˘tura. acesteia i se d˘ a a a ¸ ¸ a pachetul ¸i adresa IP a vecinului. un nod execut˘ urm˘torul algoritm: a a 1. O dat˘ a ¸ a a determinat˘ adresa interfetei. Dac˘ exist˘ mai multe astfel de ¸ a a . trebuie a a ¸ utilizat˘ interfata prin intermediul c˘ruia el este vecin nodului curent. s a a a a Pentru pasul 2. Livrarea efectiv˘ este realizat˘ de interfata de retea. a a t a ¸ Grupul de adrese este specificat printr-un prefix de retea. trebuie determinat ˆ primul rˆnd vecinul direct ın a c˘ruia i se va trimite pachetul. urmˆnd ca acesta s˘-l trimit˘ mai departe.1: O retea format˘ din dou˘ subretele. O tabel˘ de dirijare const˘ dintr-o multime de reguli de dirijare. altfel. 2. a a ¸ Fiecare regul˘ asociaz˘ o ¸int˘ unui grup de adrese destinatie. dac˘ adresa destinatie este adresa unui vecin direct. dac˘ adresa destinatie este una din adresele nodului curent. altfel. cu prefixul 10111 a ¸ Figura 10. pachetul este a ¸ livrat direct acelui vecin. trimiterea pachetului se face ca la pasul 2. s Pentru pasul 3. Protocolul IP 1 10110010 10110001 3 10111010 10111001 4 2 Subretea cu prefixul 10110 ¸ 10110100 10111011 5 Alt˘ subretea. Tabela de dirijare La primirea unui pachet IP. Dac˘ acesta are mai multe interfete.2. se determin˘ vecinul direct cel mai apropiat de destinatarul paa chetului ¸i i se d˘ pachetul. 3. Pentru un ¸ pachet dat se aplic˘ acea regul˘ de dirijare ˆ care prefixul ce specific˘ grupul a a ın a este prefix al adresei destinatie a pachetului.

c 2008.2. Acesta din urm˘ poate fi diferit fat˘ de destinatarul final dac˘ a ¸a a este doar un intermediar pe drumul c˘tre destinatarul final. ˆ acest caz pachetul de dirijat este livrat direct ¸a ın destinatarului prin interfata dat˘ ˆ regul˘. Pen¸ a ¸ tru nodul nr. modulul de ın a retea va comunica interfetei dou˘ lucruri: pachetul.2: O retea pentru exemplul 10. a Tinta poate fi fie o interfat˘.3. fie o adres˘ IP. destinatia trebuie s˘ fie un vecin direct. ¸ a ın a Dac˘ ¸inta este o adres˘. conform pasului 2. a Subreteaua 10110 ¸ 1 2 Subreteaua 1000 ¸ 6 7 10110010 10110100 10000010 10000011 eth0: 10110001 3 5 10000001 10111011 10111001 4 eth1: 10111010 Subreteaua 10111 ¸ Figura 10. se aplic˘ regula cu prefixul cel mai lung — adic˘ cea mai a a specific˘ dintre regulile de dirijare aplicabile. aceasta trebuie s˘ fie adresa unei interfete at a a ¸ vecine.2 ¸ Exemplul 10. Nodul vecin respectiv poart˘ denumirea a ın a de gateway ¸i trebuie s˘ fie configurat s˘ actioneze ca nod intermediar. ¸ ¸a a Dac˘ ¸inta este o interfat˘. ˆ care adresa destinatie ¸ ¸ a ın ¸ reprezint˘ destinatarul final. iar destinatia r˘mˆne nodul c˘ruia trebuie s˘-i fie livrat ˆ cele din ¸ a a a a ın urm˘ pachetul. Internetul 297 reguli de dirijare. ˆ acest caz pachetul de dirijat este trimis nodului vecin a c˘rui adres˘ In a a este specificat˘ ˆ tabela de dirijare. au fost figurate ¸i numele interfetelor de retea: eth0 c˘tre s ¸ ¸ a subreteaua de sus ¸i eth1 c˘tre subreteaua de jos. Sursa r˘mˆne nodul care a emis paa ın a a chetul. at ¸a ¸ a accesibil prin acea interfat˘. a ın . ¸i adresa vecinului direct c˘ruia interfata ˆ va a s a ¸ ıi livra pachetul.2: Fie reteaua din figura 10. Radu-Lucian Lup¸a s Capitolul 10. Tabela de dirijare a nodu¸ s a ¸ lui 3 este cea ilustrat˘ ˆ tabelul 10. 3. Atunci cˆnd modulul de retea paseaz˘ unei interfete de retea a a ¸ a ¸ ¸ un pachet ˆ vederea transmiterii pachetului c˘tre un nod vecin. format˘ din trei subretele. s a a ¸ De notat c˘ adresa surs˘ ¸i adresa destinatie din antetul IP nu se a a s ¸ modific˘ ˆ cursul acestei proceduri.

corespunz˘toare prefixului vid ¸i. aplicat˘ pentru pachetele a a s a pentru care nu este aplicabil˘ nici o alt˘ regul˘. ¸ Fie acum un pachet cu destinatia 10000010 (nodul 6). adresa este scris˘ ˆ s a s a a ıntr-un format standard descris ˆ continuare. este esential ca. a De remarcat c˘ nodurile ce apar ca ¸int˘ ˆ regulile tabelelor de diria t a ın jare trebuie specificate prin adresele interfetelor accesibile direct din nodul ¸ curent. urmˆnd ca acesta s˘-l trimit˘ mai departe. Scrierea adreselor IP Atunci cˆnd o adres˘ IP este scris˘ pe hˆrtie sau ˆ a a a a ıntr-un fi¸ier text. Aceast˘ regul˘.2. Conform acesteia. ın a ¸ s a s conform c˘reia pachetul se trimite prin interfata eth1. Nodul cu adresa 10111011 este accesibil prin interfata eth1. Scrierea ca text a adreselor ¸i prefixelor s 10. Grup de adrese (prefix) 10110 10111 1000 Tinta ¸ interfata eth0 ¸ interfata eth1 ¸ nodul 10111011 Tabelul 10. 2. ˆ ultima regul˘ a tabelei de dirijare In ¸ ın a a nodului 3.2. crt. pachetul poate fi livrat direct prin interfata eth0. ın .3. a a ˆ majoritatea cazurilor. Protocolul IP Nr. Conform acestei reguli. Consider˘m c˘ nodul 3 prime¸te un pachet cu destinatia 10110010 a a s ¸ (nodul 1). Singura regul˘ aplicabil˘ este regula 1.2). a a a 10. dac˘ exist˘.1.3. ˆ exemplul 10.2 (exemplul 10.2. con¸ form regulii 2. pachetul trebuie trimis nodului cu a adresa 1011101. aceast˘ adres˘ IP) poart˘ denumirea de default gateway. a a a a a a a are totdeauna ca ¸int˘ o adres˘ IP a unui nod vecin al nodului curent. Regula apli¸ cabil˘ este regula 3. dac˘ ar fi fost specificat prin adresa 10000001. nodul 5 s˘ fie specificat prin adresa 10111011 ¸i nu prin adresa a s 10000001.c 2008. Modulul IP caut˘ a a a a ˆ continuare regula aplicabil˘ pentru destinatia 10111011 ¸i g˘se¸te regula 2. Radu-Lucian Lup¸a s 298 10. Prin urmare.2. Acest t a a nod (de fapt. deoarece 10110 este prefix a a pentru 10110010.3: Tabela de dirijare pentru nodul 3 din figura 10. ca urmare. pachetul a ¸ destinat lui 10000010 va fi trimis lui 10111011 prin interfat˘ eth1 (urmˆnd ca ¸a a nodul 5 s˘-l livreze mai departe nodului 6). 3. nodul 3 nu ar fi a putut determina cum s˘-i trimit˘ pachetul. s se afi¸eaz˘ pe ecran sau se cite¸te de la tastatur˘. tabela de dirijare are o regul˘ numit˘ imIn a a plicit˘. 1.

fiecare reprezentˆnd cˆte 4 biti din s a a ¸ adres˘. altfel s-ar crea evident o ambiguitate. iar grupurile succesive sunt a a separate prin cˆte un caracter dou˘ puncte. ˆ ımpreun˘ cu separatorii dou˘ puncte dintre ei.zerourile de la ˆ ınceputul unui grup pot s˘ nu fie scrise. a . ın at este acceptat˘ scrierea ˆ care primii 96 biti sunt scri¸i ˆ format IPv6.168.3: Fie adresa 1100-0000-1010-1000-0000-0000-0010-0010 (liniutele au fost scrise numai pentru u¸urarea citirii). Pentru adrese IPv6 alocate ˆ vederea compatibilit˘¸ii cu IPv4. adresele IP versiunea 4 pot a a ¸ a fi scrise ˆ notatia zecimal˘ simpl˘ : se scrie direct valoarea adresei ca ın ¸ a a num˘r. a . se a a permit urm˘toarele optimiz˘ri: a a . separati de primii printr¸ s ın ¸ un caracter dou˘ puncte. separate prin puncte.un grup cu valoarea 0 sau mai multe astfel de grupuri consecutive se pot elimina. s ¸ a Pe lˆng˘ notatia zecimal˘ cu punct. ¸ a a Adresele IP versiunea 6 sunt ¸iruri de 128 de biti. Notatia zecimal˘ simpl˘ este 3232235554. Scrierea lor obi¸nuit˘ s ¸ s a se face ca un ¸ir de 32 cifre hexa.0. Internetul 299 Adresele IP versiunea 4. a ın Exemplul 10. a ın ¸ s ın iar ultimii 32 de biti sunt scri¸i ˆ format IPv4. scrise ˆ baza 10. Pentru a scurta scrierea. scris ˆ baza 10. se scriu ca ¸ir de s ¸ s 4 numere. Notatia zecimal˘ ¸ s ¸ a cu punct este 192.c 2008. a a r˘mˆnˆnd doar dou˘ caractere dou˘ puncte succesive. Cifrele hexa sunt grupate cˆte 4. v˘zut ca num˘r. Fiecare num˘r este de ın a fapt valoarea cˆte unui grup de 8 biti. Aceast˘ scriere a ¸ a a a se nume¸te notatie zecimal˘ cu punct. Radu-Lucian Lup¸a s Capitolul 10.4: O posibil˘ adres˘ IPv6 este a a fe80:0000:0000:0000:0213:8fff:fe4e:fbf4 Posibile scrieri prescurtate sunt fe80:0:0:0:213:8fff:fe4e:fbf4 sau fe80::213:8fff:fe4e:fbf4 Adresa 0:0:0:0:0:0:0:1 se scrie compact ::1. Acest lucru a a a a a se poate face ˆ ıntr-un singur loc al adresei. Exemplul 10. care sunt ¸iruri de 32 de biti.34.

ın s a ¸ Masca de retea const˘ dintr-un ¸ir de biti 1 de lungimea prefixului de retea ¸ a s ¸ ¸ urmat de un ¸ir de biti 0.168. a ˆ notatia cu adres˘ de retea ¸i masc˘ de retea.192. Adresa de retea se s ¸ ¸ scrie ca ¸i cˆnd ar fi o adres˘ IP normal˘. ˆ notatia cu ın ¸ adres˘ de retea ¸i masca. dup˘ care se scrie ¸ s ın as a (cu un slash ˆ ıntre ele sau ˆ rubrici separate) a¸a-numita masc˘ de retea. se scrie ca ¸i cˆnd ar fi o adres˘ IP. se scrie mai ˆ ai In ¸ a ¸ s a ¸ ıntˆ adresa de retea. 192. 1994]. dup˘ care se scrie (f˘r˘ spatiu) un s a a a a aa ¸ caracter slash (/) urmat de lungimea prefixului scris˘ ca num˘r ˆ baza 10.168. Radu-Lucian Lup¸a s 300 10. Prefixul 1100a ¸ s ¸ 0000-1010-1000-1100-0000 se scrie 192.224. Alocarea adreselor IP ¸i prefixelor de retea s ¸ Alocarea adreselor IP pentru reteaua mondial˘ Internet se realizeaz˘ ¸ a a de c˘tre Internet Assigned Numbers Authority (IANA).34 sau. ¸ s a a Notatia cu adres˘ ¸i masc˘ se utilizeaz˘ numai pentru IP versiunea ¸ as a a 4.2. Prefixul 1100-0000a ¸ s 1010-1000-1100-0000 se scrie 192.5: Adresa 0:0:0:0:0:0:c100:e122 se poate scrie ¸i s 0:0:0:0:0:0:193. De remarcat importanta ¸ specific˘rii lungimii. a a ın Exemplul 10.168.c 2008.0/255.0/19.2. avˆnd ˆ total lungimea unei adrese IP. De¸i nu este actualizat.0.225.255. 10. Scrierea prefixelor de retea ¸ Prefixele de retea fiind de lungime variabil˘.255.0.192. .225.0/255.255.34 10. Protocolul IP Exemplul 10. prefixul se completeaz˘ cu zerouri la In ¸ as a lungimea unei adrese IP (adic˘ la 32 de biti pentru versiunea 4 ¸i la 128 de biti a ¸ s ¸ pentru versiunea 6). Exist˘ dou˘ notatii: a a s a a ¸ notatia cu adresa subretelei ¸i lungimea prefixului ¸i notatia cu adresa subre¸ ¸ s s ¸ ¸elei ¸i masca de retea. mai compact. ::193.2.0/24. ]. ca ¸i ˆ cazul scrierii cu adres˘ ¸i lungime.4. rezultatul se nume¸te adresa de retea. t s ¸ ˆ notatia cu adres˘ ¸i lungime.0. Exemplul 10.3. Mai multe despre aloa care se g˘se¸te la [IANA.192. Masc˘ de s ¸ a ın a retea. ˆ notatia cu ın ¸ adres˘ de retea ¸i lungime (notatie cu slash) 192.192.0. trebuie precizat˘ atˆt ¸ a a a valoarea efectiv˘ a prefixului cˆt ¸i lungimea acestuia.7: Prefixul 1100-0000-1010-1000-110 se scrie.168.2.6: Prefixul IPv4 1100-0000-1010-1000-110 se scrie. este instructiv de citit ¸i a s s s [RFC 1700.

0/4 sunt utilizate ca adrese de multicast (a¸as numita clas˘ D).2. adresele se aloc˘ institutiilor doritoare ˆ blocuri de adrese. initial adresele IP versi¸ unea 4 au fost ˆ artite ˆ clase: ımp˘ ¸ ın A: Adresele cu prefixul 0.0. Mai multe detalii despre utilizarea acestor adrese vor fi date ˆ § 10. din restul Internetului.16.0. desemneaz˘ acel nod. conform unei reguli care are ca prefix prefixul blocului. Din a ¸ afara subretelei corespunz˘toare unui bloc.2. f˘r˘ s˘ fie necesar alocarea la IANA. Alocarea pe utiliz˘ri a Adresele IPv4 sunt ˆ artite dup˘ cum urmeaz˘: ımp˘ ¸ a a • Adresele cu prefixele 0.0/8 ¸i ¸i 127. Din aceast˘ ¸ a a a a cauz˘.1.0/1 au fost ˆ artite ˆ 128 blocuri alocabile.0.0.0. majoritatea nodurilor din InIn a a ternet ar trebui s˘ aib˘ ˆ tabela de dirijare cˆte o regul˘ pentru fiecare nod. a a ın a a O asemenea solutie nu este realizabil˘ practic la scar˘ mondial˘. Alocarea adreselor ¸i dirijarea ierarhic˘ s a ˆ lipsa oric˘ror grup˘ri ale adreselor. Adresa 0. Adresa s s 127.4.0 ˆ ınseamn˘ adres˘ necunoscut˘.1.0.0.0. ¸i nu cˆte o regul˘ pentru fiecare nod. 1996]. Aceste adrese a ¸ se utilizeaz˘ pentru acele noduri.0. ın ¸ Un bloc de adrese se aloc˘ unei subretele sau grup de subretele ina ¸ ¸ terconectate care apar.0.c 2008. s a • Adresele cu prefixele 10. poate fi folosit˘ doar ca a a a a adres˘ surs˘ ˆ pachete emise de un nod care ˆ a a ın ıncearc˘ s˘ ˆsi afle propria a a ı¸ adres˘.0. ˆ tabela de dirijare a unui nod oarecare din Internet va fi necesar In astfel cˆte o regul˘ pentru fiecare bloc. a a s a a Pentru stabilirea dimensiunilor blocurilor. din reteaua proprie a unei institutii.0/8 sunt rezervate. ˆ a cu conditia ca aa a ıns˘ ¸ pachetele purtˆnd astfel de adrese ca surs˘ sau destinatie s˘ nu ajung˘ ˆ a a ¸ a a ın afara nodurilor gestionate de acea persoan˘ sau institutie.0.0. Internetul 301 10.7. 172. cu alte cuvinte un a pachet destinat adresei 127. Aceste adrese pot fi utilizate intern de oricine. Lungimea prefixului unui bloc este a a de 8 biti. Radu-Lucian Lup¸a s Capitolul 10. ımp˘ ¸ ın fiecare bloc avˆnd cˆte 224 adrese. fiecare bloc a a ¸ ın avˆnd un prefix unic. a • Adresele cu prefixul 224. a • Adresele cu prefixul 240. ¸ .0/8.0. a 10.0.0.4. ca o singur˘ subretea.0.0.0/12 ¸i 192.2.2 ın • Restul adreselor se aloc˘ normal nodurilor din Internet.0.0/16 sunt nus mite adrese private [RFC 1918. a ¸ ¸ care nu au nevoie de acces direct la Internet. ˆ a ıntocmai ca ˆ cazul subretelelor. toate pachetele destinate adreselor ¸ a din bloc sunt dirijate identic.1 este totdeauna livrat nodului curent.168.0/4 sunt rezervate (a¸a-numita clas˘ E ).0. pentru fiecare nod.

c 2008, Radu-Lucian Lup¸a s
302 10.2. Protocolul IP

B: Adresele cu prefixul 128.0.0.0/2 au fost ˆ artite ˆ 16384 blocuri de ımp˘ ¸ ın cˆte 65536 adrese. Prefixul unui bloc este de 16 biti. a ¸ C: Adresele cu prefixul 192.0.0.0/3 au fost ˆ artite ˆ 221 blocuri de cˆte ımp˘ ¸ ın a 256 adrese. Lungimea prefixului unui bloc este de 24 de biti. ¸ Ideea ˆ artirii ˆ ımp˘ ¸ ıntre clasele A, B ¸i C era aceea ca, dˆndu-se o adres˘ s a a IP, s˘ se poat˘ determina lungimea prefixului blocului din care face parte. a a Acest lucru simplific˘ mult calcularea tabelelor de dirijare ¸i chiar c˘utarea ˆ a s a ın tabela de dirijare a regulii aplicabile. ˆ artirea ˆ clase s-a dovedit prea inflexibil˘. Pe de o parte, ˆ Imp˘ ¸ ın a ımp˘rtirea este ineficient˘, ducˆnd la alocarea cˆte unui bloc de clas˘ B (adic˘ a¸ a a a a a 65536 adrese) pentru institutii care nu aveau nevoie de mai mult de cˆteva ¸ a sute de adrese. Pe de alt˘ parte, nu exist˘ nici o corelatie ˆ a a ¸ ıntre blocurile de adrese alocate unor institutii diferite dar din aceea¸i zon˘ geografic˘; ˆ ¸ s a a ın consecint˘, pentru majoritatea ruterelor din Internet este nevoie de cˆte o ¸a a regul˘ de dirijare pentru fiecare institutie c˘reia i s-a alocat un bloc de adrese. a ¸ a Ca urmare s-a decis o nou˘ schem˘ de alocare a blocurilor de adrese. a a Noua schem˘ se nume¸te CIDR (engl. Classless InterDomain Routing) ¸i este a s s descris˘ ˆ [RFC 1518, 1993]. a ın ˆ schema CIDR, un prefix de bloc poate avea orice lungime. O In institutie ce dore¸te acces Internet poate solicita alocarea unui bloc de adrese, ¸ s cu un num˘r de adrese egal cu o putere a lui 2. a O institutie care furnizeaz˘ acces Internet altor institutii este ˆ ¸ a ¸ ıncurajat˘ s˘ aloce mai departe, din blocul alocat ei, sub-blocuri pentru institutiile a a ¸ c˘rora le ofer˘ acces Internet. Astfel, din afara retelei furnizorului de acces a a ¸ Internet, reteaua furnizorului ˆ ¸ ımpreun˘ cu toti clientii lui se vede ca o singur˘ a ¸ ¸ a subretea ˆ care toate adresele au acela¸i prefix. ¸ ın s CIDR mai prevede o grupare a blocurilor pe continente, astfel ˆ at ıncˆ pentru un nod aflat pe un continent toate (sau majoritatea) adreselor de pe un alt continent s˘ se dirijeze conform unei singure reguli. Aceast˘ grupare este a a aplicabil˘ doar adreselor care nu erau deja alocate la momentul introducerii a CIDR; CIDR nu ¸i-a pus problema realoc˘rii adreselor deja alocate. s a Pentru adresele IP versiunea 6 se folose¸te numai schema CIDR. s

10.2.5. Erori la dirijare ¸i protocolul ICMP s
Protocolul ICMP (Internet Control Message Protocol ) are scop diagnosticarea diverselor probleme legate de dirijarea pachetelor IP. Fiind strˆns a legat de protocolul IP, ICMP are dou˘ versiuni, ICMP pentru IPv4, descris a ˆ [RFC 792, 1981] ¸i numit uneori ICMPv4, ¸i ICMP pentru IPv6, descris ˆ ın s s ın [RFC 2463, 1998] ¸i numit ¸i ICMPv6. s s

c 2008, Radu-Lucian Lup¸a s
Capitolul 10. Internetul 303

Protocolul const˘ ˆ transmiterea, ˆ anumite situatii, a unor pachete a ın ın ¸ ICMP. Un pachet ICMP este un pachet IP ˆ care cˆmpul protocol are valın a oarea 1 pentru ICMPv4, respectiv 58 pentru ICMPv6, iar zona de date utile este structurat˘ conform standardului ICMP. a Pachetele ICMP sunt de obicei generate de modulul de retea al unui ¸ nod, ca urmare a unei erori ap˘rute ˆ livrarea unui pachet IP. Pachete ICMP a ın mai pot fi generate ¸i de programe utilizator, prin intermediul socket-urilor de s tip SOCK RAW. Astfel de aplicatii servesc la testarea function˘rii retelei. ¸ ¸ a ¸ O dat˘ generat, un pachet ICMP este transmis prin retea ca orice a ¸ alt pachet IP. Ajuns la destinatie, modulul de retea (IP) al nodului destinatie ¸ ¸ ¸ examineaz˘ cˆmpul protocol ¸i, constatˆnd c˘ este vorba de un pachet ICMP, a a s a a ˆ livreaz˘ modulului ICMP al nodului destinatie. Modulul ICMP trebuie s˘ ıl a ¸ a fie prezent ¸i functional ˆ orice nod IP; ˆ implement˘rile obi¸nuite este parte s ¸ ın ın a s a nucleului sistemului de operare al calculatorului ce constituie nodul. Datele utile sunt formatate conform standardului ICMP ¸i ˆ s ıncep cu doi ˆ ıntregi pe cˆte 8 biti reprezentˆnd tipul ¸i subtipul mesajului ICMP (vezi a ¸ a s tabelul 10.4). Formatul restului pachetului depinde de tipul mesajului ICMP; ˆ majoritatea cazurilor, este prezent˘ o copie a primilor cˆteva zeci de octeti ın a a ¸ din pachetului IP care a dus la generarea pachetului ICMP. Situatiile ce duc la generarea pachetelor ICMP, precum ¸i actiunile ¸ s ¸ ˆ ıntreprinse de un nod la primirea unui pachet ICMP, sunt descrise ˆ paraın grafele urm˘toare. a 10.2.5.1. Pachete nelivrabile Un nod declar˘ un pachet nelivrabil dac˘: a a • nici o regul˘ din tabela de dirijare a nodului nu este aplicabil˘ destinatiei a a ¸ pachetului; sau • interfata de retea prin care trebuie trimis pachetul nu este functional˘ ¸ ¸ ¸ a sau nu poate livra pachetul destinatarului (destinatarul nu r˘spunde). a ˆ aceste cazuri, nodul curent trimite un pachet ICMP, avˆnd: In a • adresa sursa: adresa nodului curent, • adresa destinatie: adresa surs˘ a pachetului nelivrabil, ¸ a • tip: destination unreachable. Pachetul ICMP mai cuprinde antetul pachetului ce nu a putut fi livrat. Destinatarul pachetului ICMP, care este de fapt sursa pachetului nelivrabil, trebuie s˘ analizeze antetul pachetului returnat ¸i s˘ informeze nivelul a s a superior (probabil TCP sau UDP) asupra problemei.

c 2008, Radu-Lucian Lup¸a s
304 10.2. Protocolul IP

Tip 3 — Destination unreachable

Subtip 0 — network unreachable 1 — host unreachable 3 — protocol unreachable 4 — fragmentation needed 5 — source route failed

Ce semnalizeaz˘ a pachet nelivrabil, conform § 10.2.5.1

11 — time exceeded

0 — TTL exceeded

1 — fragment reassembly time exceeded 12 — parameter problem 4 — source quench 5 — redirect

0 1 2 3

— — — —

network host TOS & network TOS & host

pachet prea mare ¸i s flagul nu fragmenta setat; vezi § 10.2.6.1 pachetul a avut optiunea dirijare de ¸ c˘tre surs˘ ¸i ruta speca as ificat˘ este invalid˘. a a pachetul se afl˘ de a prea mult timp ˆ retea ın ¸ (probabil cicleaz˘), a § 10.2.5.3 probabil fragment pierdut, § 10.2.6.1 pachet neconform cu standardul cerere ˆ ıncetinire surs˘, a § 10.2.5.4 redirectionare, ¸ § 10.2.5.5 cerere ecou, § 10.2.5.2 r˘spuns ecou, § 10.2.5.2 a

8 — echo request 9 — echo reply

Tabelul 10.4: Tipuri ¸i subtipuri mai importante de pachete ICMPv4 s

c 2008, Radu-Lucian Lup¸a s
Capitolul 10. Internetul 305

10.2.5.2. Diagnosticarea function˘rii rutelor ¸ a Testarea function˘rii comunicatiei la nivel retea este un test simplu ¸ a ¸ ¸ ¸i extrem de util ˆ g˘sirea penelor dintr-o retea. s ın a ¸ ˆ acest scop, pe majoritatea sistemelor exist˘ o comand˘ utilizator, In a a numit˘ ping, care testeaz˘ leg˘tura dintre nodul curent ¸i nodul specificat. a a a s Comanda ping functioneaz˘ prin trimiterea unui pachet ICMP cu ¸ a tipul echo request (rom. cerere ecou) c˘tre nodul specificat. Nodul destinatie a ¸ al unui pachet echo request r˘spunde prin trimiterea ˆ a ınapoi (c˘tre sursa paa chetului echo request) a unui pachet ICMP cu tipul echo reply (rom. r˘spuns a ecou). Pachetul echo reply este livrat comenzii ping. Pachetele echo request ¸i echo reply se mai numesc uneori ping ¸i s s pong. Pachetele cu tipurile ping ¸i pong au prev˘zute, conform standardului, s a dou˘ cˆmpuri, identificare ¸i nr. secvent˘, pe baza c˘rora nucleul sistemului a a s ¸a a ¸i comanda ping identific˘ corespondentele ˆ s a ¸ ıntre pachetele ping trimise ¸i pas chetele pong receptionate. Pachetele ping ¸i pong au prev˘zut ¸i un cˆmp, de ¸ s a s a dimensiune arbitrar˘, de date utile; scopul acestui cˆmp este testarea transa a miterii pachetelor mari. Pe lˆng˘ comanda ping care testeaz˘ functionarea unei leg˘turi, exa a a ¸ a ist˘ o comand˘, traceroute (pe sisteme de tip Unix) sau tracert (pe Wina a dows), care afi¸eaz˘ adresele ruterelor prin care trece un pachet pentru o ans a umit˘ destinatie. a ¸ Exist˘ mai multe metode pentru a afla drumul spre un anumit nod. a Metoda utilizat˘ de comanda traceroute se bazeaz˘ pe trimiterea, spre acel a a nod, a unor pachete ping cu valori mici pentru timpul de viat˘ (vezi § 10.2.5.3). ¸a Un astfel de pachet parcurge ˆ ınceputul drumului spre nodul destinatie, ˆ a, ¸ ıns˘ dup˘ parcurgerea unui num˘r de noduri intermediare egal cu valoarea initial˘ a a ¸ a a timpului de viat˘, provoac˘ trimiterea ˆ ¸a a ınapoi a unui pachet ICMP de tip TTL exceeded. Trimitˆnd pachete ping cu diferite valori pentru timpul de ¸a viat˘, se primesc pachete TTL exceeded de la diferitele noduri de pe traseul ¸a spre destinatie. ¸ O alt˘ posibilitate de-a afla ruta spre un anumit nod este furnizat˘ a a de un antet optional, standardizat ¸i ˆ IPv4 ¸i ˆ IPv6, care cere ruterelor ¸ s ın s ın s˘-¸i scrie fiecare adresa ˆ acest antet optional. as ın ¸ 10.2.5.3. Ciclarea pachetelor IP Este posibil s˘ existe (temporar) inconsistente ˆ tabelele de dirijare. a ¸ ın De exemplu, se poate ca tabela de dirijare a nodului A s˘ indice nodul B ca a nod urm˘tor pe ruta c˘tre C, iar tabela nodului B s˘ indice ca nod urm˘tor a a a a ˆ acest caz, dac˘ A prime¸te un pachet destinat lui pe ruta c˘tre C nodul A. In a a s

c 2008, Radu-Lucian Lup¸a s
306 10.2. Protocolul IP

C i-l va trimite lui B, B va pasa pachetul ˆ ınapoi lui A, ¸. a. m. d. s Pentru a preveni ciclarea nelimitat˘ a pachetelor ˆ astfel de cazuri, a ın ˆ antetul IP este prev˘zut un cˆmp numit timp de viat˘. Valoarea acestui ın a a ¸a cˆmp este initializat˘ de c˘tre nodul surs˘ al pachetului (valoarea initial˘ este a ¸ a a a ¸ a de ordinul zecilor) ¸i este sc˘zut˘ cel putin cu 1 de c˘tre fiecare nod prin care s a a ¸ a trece pachetul. Dac˘ valoarea ajunge la 0, nodul nu mai trimite mai departe a pachetul ci ˆ ignor˘ sau trimite ˆ ıl a ınapoi un pachet ICMP cu tipul time exceeded, subtipul time to live (TTL) exceeded (rom. dep˘¸ire timp de viat˘ ) pentru a as ¸a semnala situatia. ¸ 10.2.5.4. Congestia ˆ general, prin congestie se ˆ ¸elege situatia ˆ care ˆ In ınt ¸ ın ıntr-un nod intr˘ pachete ˆ a ıntr-un ritm mai rapid decˆt poate nodul s˘ retrimit˘ pachetele, a a a rezultˆnd de aici o functionare proast˘ a retelei (vezi § 5.3). a ¸ a ¸ ˆ cazul congestiei, nodul congestionat poate cere sursei s˘ reduc˘ In a a traficul prin trimiterea c˘tre aceasta a unui pachet ICMP cu tipul source a quench. 10.2.5.5. Redirectionarea ¸ Un nod, care prime¸te un pachet ¸i constat˘ c˘ trebuie trimis mai s s a a departe ˆ aceea¸i subretea din care a sosit pachetul, poate informa sursa paın s ¸ chetului cu privire la faptul c˘ pachetul a mers pe o rut˘ neoptim˘. Informarea a a a se face printr-un pachet ICMP cu tipul redirect.

192.168.7.7 192.168.7.1

192.168.1.3 192.168.1.1

192.168.1.9

Spre exterior

Figura 10.3: O retea pentru ilustrarea redirection˘rii pachetelor (vezi exemplul 10.8) ¸ ¸ a

Exemplul 10.8: Consider˘m reteaua din figura 10.3. Pentru nodurile din a ¸

c 2008, Radu-Lucian Lup¸a s
Capitolul 10. Internetul 307

subreteaua 192.168.1.0/24, ar trebui s˘ existe ˆ tabela de dirijare: ¸ a ın • o regul˘ care s˘ asocieze prefixului 192.168.7.0/24 gateway-ul 192.168.1.3; a a • o regul˘ indicˆnd ca default gateway adresa 192.168.1.1. a a ˆ practic˘, pentru simplificarea administr˘rii, se omite configurarea In a a primei reguli pe toate nodurile cu exceptia nodului 192.168.1.1. ˆ consecint˘, ¸ In ¸a o statie din subreteaua 192.168.1.0/24, de exemplu 192.168.1.9, care are de ¸ ¸ trimis un pachet c˘tre un nod din subreteaua 192.168.7.0/24, de exemplu a ¸ c˘tre 192.168.7.7, va trimite pachetul lui 192.168.1.1 ˆ loc de 192.168.1.3. a ın Nodul 192.168.1.1 trimite mai departe pachetul c˘tre 192.168.1.3 ¸i, totodat˘, a s a trimite un pachet ICMP redirect c˘tre 192.168.1.9; aceasta din urm˘ ˆsi poate a a ı¸ actualiza tabela de dirijare pentru a trimite direct la 192.168.1.3 urm˘toarele a pachete destinate nodurilor din subreteaua 192.168.7.0/24. ¸

10.2.6. Alte chestiuni privind dirijarea pachetelor
10.2.6.1. Dimensiunea maxim˘ a pachetelor ¸i fragmentarea a s Dimensiunea maxim˘ a unui pachet IP este de 64 KiB. a Pe de alt˘ parte, leg˘tura direct˘ ˆ a a a ıntre dou˘ noduri, dac˘ are notiunea a a ¸ de pachet, are o dimensiune maxim˘ a pachetului, care poate fi mai mic˘ decˆt a a a dimensiunea maxim˘ a pachetului IP: de exemplu, un pachet Ethernet are o a dimensiune maxim˘ de 1500 octeti. a ¸ Dac˘ un pachet IP de transmis este mai mare decˆt dimensiunea a a maxim˘ a pachetelor admise de leg˘tura direct˘ ˆ a a a ıntre dou˘ noduri de pe traseu, a exist˘ urm˘toarele actiuni posibile: a a ¸ • se face o fragmentare ¸i reasamblare la nivelul leg˘turii directe, ˆ mod s a ın invizibil fat˘ de nivelul retea; ¸a ¸ • se face o fragmentare ¸i reasamblare la nivelul retea (IP); s ¸ • se refuz˘ livrarea pachetelor IP ¸i se las˘ ˆ sarcina nivelului superior s˘ a s a ın a se descurce, eventual furnizˆndu-i acestuia dimensiunea maxim˘ accepta a abil˘ a pachetului. a Trebuie remarcat c˘, ˆ 1981, cˆnd s-a standardizat protocolul Intera ın a net, era mult prea mult s˘ se cear˘ fiec˘rui nod s˘ dispun˘ de cˆte 64 KiB de a a a a a a memorie pentru memorarea fiec˘rui pachet. a Fragmentarea la nivelul leg˘turii directe nu prive¸te protocolul IP. a s Protocolul IP versiunea 6 cere ca nivelul leg˘turii directe s˘ permit˘ transa a a miterea pachetelor IP de pˆn˘ la 1280 B, recomandabil pˆn˘ la 1500 B. a a a a

c 2008, Radu-Lucian Lup¸a s
308 10.2. Protocolul IP

Pentru a permite producerea, de c˘tre nivelul superior, a unor pachete a IP suficient de mici, exist˘ un protocol pentru aflarea dimensiunii maxime a a pachetelor ce pot trece prin leg˘turile directe. Protocolul este descris ˆ a ın [RFC 1981, 1996]. Protocolul Internet permite ¸i fragmentarea la nivel retea a pachetelor. s ¸ Pentru IP versiunea 4, cˆmpurile necesare pentru fragmentarea ¸i a s reasamblarea pachetelor sunt prev˘zute ˆ antetul standard. De asemenea, a ın exist˘ un flag, nu fragmenta, care cere ruterelor de pe traseu s˘ nu ˆ a a ıncerce fragmentarea ci ˆ schimb s˘ abandoneze transmiterea pachetului. ın a Pentru IP versiunea 6, cˆmpurile privind fragmentarea au fost mua tate ˆ ıntr-un antet optional, deoarece este probabil s˘ nu fie utilizate frecvent. ¸ a Fragmentarea poate fi f˘cut˘ doar de emit˘torul pachetului, ruterele de pe a a ¸a traseu fiind obligate s˘ abandoneze transmiterea ˆ cazul ˆ care pachetul este a ın ın prea mare. Fragmentele sunt pachete IP obi¸nuite, care se transmit independent s unul de altul din punctul ˆ care s-a efectuat fragmentarea. ın Nodul destinatie efectueaz˘ reasamblarea pachetelor. ˆ acest scop ¸ a In se utilizeaz˘ cˆmpurile identificare ¸i deplasament ¸i flagul mai urmeaz˘ fraga a s s a mente. Astfel, un pachet se va asambla din fragmente avˆnd toate aceea¸i a s valoare ˆ cˆmpurile identificare, adres˘ surs˘, adres˘ destinatie ¸i protoın a a a a ¸ s col. Pachetul asamblat va avea antetul identic cu al fragmentelor (mai putin ¸ cˆmpurile ce controleaz˘ fragmentarea). Datele utile vor fi reconstituite din a a datele utile ale fragmentelor. Cˆmpul deplasament al unui fragment arat˘ a a locul datelor utile din fragment ˆ cadrul pachetului (reamintim c˘ fragmentele, ın a ca orice pachete IP, se pot pierde, pot fi duplicate ¸i ordinea lor de sosire poate s fi inversat˘). Lungimea pachetului este determinat˘ din faptul c˘, ˆ ultimul a a a ın fragment, flagul mai urmeaz˘ fragmente are valoarea 0. a Destinatia ˆ ¸ ıncearc˘ reasamblarea unui pachet din momentul ˆ care a ın a primit primul fragment al pachetului. Dac˘ celelalte fragmente nu sosesc a ˆ ıntr-un interval de timp suficent de scurt, nodul abandoneaz˘ reasamblarea a ¸i trimite ˆ s ınapoi un pachet ICMP cu tipul time exceeded, subtipul fragment reassembly time exceeded. 10.2.6.2. Calitatea serviciului Dac˘ un nod este relativ aglomerat, acesta trebuie s˘ ia decizii privind a a prioritatea pachetelor: • dac˘ unele pachete trebuie trimise cˆt mai repede, fat˘ de altele care pot a a ¸a fi ¸inute mai mult ˆ coada de a¸teptare; t ın s • la umplerea memoriei ruterului, care pachete pot fi aruncate (distruse).

c 2008, Radu-Lucian Lup¸a s
Capitolul 10. Internetul 309

Cˆmpul tip serviciu din antetul IP contine informatii despre nivelul a ¸ ¸ de calitate a serviciului cerut de emit˘torul pachetului; ˆ functie de acesta, ¸a ın ¸ modulul de retea ia deciziile privind ordinea de prioritate a pachetelor. ¸

10.2.7. Configurarea ¸i testarea unei retele IP locale s ¸
10.2.7.1. Alegerea parametrilor ˆ majoritatea cazurilor, ˆ In ıntr-o retea local˘, subretelele IP, adic˘ ¸ a ¸ a leg˘turile directe ˆ a ıntre nodurile IP, se realizeaz˘ prin intermediul unor retele a ¸ din familia IEEE 802 (Ethernet sau 802.11). Primul lucru ce trebuie stabilit este alc˘tuirea subretelelor. a ¸ ˆ continuare se stabile¸te, pentru fiecare subretea IP, prefixul de In s ¸ retea corespunz˘tor. Prefixul fiec˘rei subretele trebuie, pe de o parte, s˘ per¸ a a ¸ a mit˘ alocarea unui num˘r suficient de adrese nodurilor din subretea ¸i, pe de a a ¸ s alt˘ parte, s˘ duc˘ la alocarea de adrese dintre adresele alocate de furnizorul a a a de acces Internet sau dintre adresele rezervate pentru retele private (vezi ¸i ¸ s § 10.7.2 pentru alte considerente privind utilizarea adreselor private). Pentru fiecare subretea IP, nodurile componente trebuie s˘ fac˘ parte ¸ a a din acela¸i VLAN 802.1Q (dac˘ se definesc VLAN-uri) ¸i ca urmare trebuie s a s s˘ fac˘ parte din aceea¸i retea 802 fizic˘. Aceast˘ cerint˘ este determinat˘ de a a s ¸ a a ¸a a faptul c˘, ˆ cadrul unei subretele IP, fiecare nod trebuie s˘ poat˘ comunica a ın ¸ a a cu orice alt nod al subretelei f˘r˘ a implica dirijare la nivel IP; comunicarea ¸ aa trebuie s˘ fie realizat˘ de nivelul inferior, adic˘ de reteaua 802. a a a ¸ De notat ˆ a c˘ ˆ cadrul aceleia¸i retele IEEE 802, ¸i chiar ˆ ıns˘ a ın s ¸ s ın cadrul aceluia¸i VLAN 802.1Q, se pot defini mai multe subretele IP. Astfel s ¸ de subretele lucreaz˘ independent una de cealalt˘ ¸i necesit˘ rutere pentru ¸ a a s a a fi legate logic ˆ ıntre ele. Pentru ca un nod s˘ fie membru ˆ subretelele IP a ın ¸ stabilite ˆ aceea¸i retea fizic˘ este suficient s˘ defineasc˘ mai multe adrese IP ın s ¸ a a a pe aceea¸i plac˘ de retea (vezi § 10.5, ˆ special § 10.5.1 pentru detalii). s a ¸ ın Not˘: independenta subretelelor IP de pe acela¸i VLAN este limitat˘ a ¸ ¸ s a de faptul c˘ subretelele partajeaz˘ debitul maxim de transmisie ¸i c˘ un intrus a ¸ a s a care ar sparge un calculator ar putea avea acces la toate subretelelel IP stabilite ¸ pe VLAN-ul sau reteaua fizic˘ din care face parte calculatorul spart. ¸ a Configurarea tabelelor de dirijare trebuie s˘ fie f˘cut˘ astfel ˆ at, a a a ıncˆ pentru orice nod surs˘ ¸i pentru orice nod destinatie, fiecare nod de pe traseul as ¸ unui pachet s˘ g˘seasc˘ corect urm˘torul nod. ˆ retelele cu structur˘ arboresa a a a In ¸ a cent˘ (ˆ care ˆ a ın ıntre oricare dou˘ subretele exist˘ un singur drum posibil), acest a ¸ a lucru se realizeaz˘ de regul˘ astfel: a a • Pentru fiecare subretea se alege, dintre nodurile ce actioneaz˘ ca rutere ¸ ¸ a c˘tre alte subretele, un default gateway. Acesta se alege de regul˘ ca a ¸ a

226.227.224. Pentru nodurile care fac parte din ¸ mai multe subretele.0. mai multe c˘i spre o aceea¸i destinatie.227.1 eth1: 193.0. a a pentru tolerant˘ la pene.0.255.224/28 G eth0: 193. Se obi¸nuie¸te ca nodul ales ca default gateway s˘ primeasc˘ adresa s s a a IP cea mai mic˘ din subretea (adic˘ adresa ˆ care sufixul are valoarea a ¸ a ın 1).40.192/27 S1 193.2 L2 193.3 L3 193.0.224. se ia default gateway-ul din subreteaua cea mai ¸ ¸ apropiat˘ de exterior (astfel un nod nu va avea ca default gateway pe el a ˆ si). Protocolul IP fiind nodul din subretea cel mai apropiat de ie¸irea spre restul Internet¸ s ului.0.0. a a ¸ a Mai not˘m c˘ ˆ a a ıntr-o tabel˘ de dirijare static˘ nu se pot configura.224.227.255.227.0.0.din subordine“ — subretelele mai dep˘rtate de a ¸ ¸ a leg˘tura spre exterior dec˘t subreteaua considerat˘.225 193. • Pe toate nodurile subretelei se configureaz˘ ca default gateway nodul ¸ a ales ca default gateway al subretelei. ınsu¸ • Pe nodul ales ca default gateway pentru o subretea se vor configura ¸ rutele c˘tre subretelele . Subretea secretariat ¸ 193.2.130/255.224.0.0.224..227. Dac˘ se ¸a a s ¸ a dore¸te a¸a ceva este necesar˘ instalarea unui program de calcul automat al s s a tabelei de dirijare.9 ¸ .0. Radu-Lucian Lup¸a s 310 10.4: Retea pentru exemplul 10.227.0.0.227.225.193 193.222 Subretea laboratoare ¸ 193.0/23 L1 193.0.194 S2 193.226 E1 193.238 E2 Subretea experimental˘ ¸ a eth2: 193.4 L4 eth1: 193.227.c 2008.240 Spre reteaua furnizorului ¸ Figura 10.254 eth0: 193.

Putem crea blocuri ¸ a avˆnd ca dimensiuni puteri ale lui 2: 512. 16. de 512 adrese (510 a utilizabile efectiv).0. ¸ S˘ presupunem. Switch-urile ¸i access s s point-urile nu au fost figurate explicit deoarece ele nu sunt vizibile din punctul de vedere al nivelului IP. s˘ aloc˘m 32 adrese secretariatului ¸i 16 adrese retelei exa a s ¸ perimentale. dotat cu trei pl˘ci de retea. access point-uri 802. a Fiecare subretea este construit˘ dintr-un num˘r de switch-uri Ether¸ a a net. s a Presupunem c˘ am obtinut alocarea blocului de adrese 193. respectiv pentru secretariat. 128.0. Vom aloca a a a a cele dou˘ blocuri de 32 ¸i 16 adrese din ultimul bloc de 64 de adrese din cele 512 a s libere: 193. de asemenea. 8 sau 4 adrese. Este bine s˘ le aloc˘m cˆt mai compact.192/27 pentru secretariat ¸i 193. ˆ fiecare caz.0. c˘ s-a decis ˆ artirea retelei interne a a ımp˘ ¸ ¸ ˆ trei subretele (fig. iar secretariatul a a a a s ¸ este separat fat˘ de traficul ¸i eventual atacurile dinspre laboratorarele de ¸a s informatic˘.255. ˆ artirea luat˘ ca exemplu as ¸ a Imp˘ ¸ a este o ˆ artire tipic˘ din considerente de trafic ¸i de securitate: reteaua exımp˘ ¸ a s ¸ perimental˘ trebuie s˘ poat˘ fi izolat˘ u¸or de restul retelei. L4 pentru reteaua experimental˘. dotat cu dou˘ pl˘ci de retea. a Pentru fiecare din cele trei subretele. Din blocul de 512 adrese r˘mas a (193. continˆnd 1024 de adrese. s˘ aloc˘m adresele.0/23.0/23).0/22 pentru a ¸ utilizare ˆ reteaua proprie ¸i c˘ ruterul ce asigur˘ leg˘tura cu reteaua furniın ¸ s a a a ¸ zorului de acces Internet a primit adresa (ˆ reteaua furnizorului) 193. Blocul de adrese a ¸ a a disponibile este 193. anume 193. respectiv.130 ın ¸ cu masca 255. 256.4).9: S˘ consider˘m c˘ avem de construit o retea ˆ a a a ¸ ıntr-o ¸coal˘. 64. default s ¸ a In gateway-ul este nodul cel mai apropiat de exterior. Internetul 311 Exemplul 10. 32.c 2008. Pentru conectarea celor trei subretele ˆ ¸ ımpreun˘ ¸i la Internet cona s figur˘m dou˘ rutere: G.226.11 ¸i calculatoarele respective.0/22.0.255. pentru a fi la ˆ ın ındemˆn˘ ˆ timpul experia a ın mentelor). ˆ fiecare subretea. laboratorul de inforın ¸ matic˘ ¸i o retea special˘ pentru experimente.0. a ˆ Incepem prin a aloca laboratoarelor un bloc cˆt mai mare.240 (prefix de 28 de biti).0. ¸ . exist˘ o alegere natural˘ pentru ¸ a a default gateway: G pentru reteaua secretariatului ¸i pentru reteaua din labo¸ s ¸ ratoare ¸i.227.224.226.224/28 pentru reteaua s ¸ experimental˘. reteaua din laboratoare ¸i reteaua furnizorului de acces Internet ¸i ¸ s ¸ s L4 (probabil amplasat ˆ laborator. care leag˘ reteaua secrea a a ¸ a ¸ tariatului. ¸ Odat˘ stabilite subretelele. pentru ca dintre adresele a a a nealocate s˘ p˘str˘m posibilitatea de-a aloca blocuri cˆt mai mari.224.224. adresa In ¸ dat˘ ruterului cu rol de default gateway este cea mai mic˘ adres˘ din acea a a a subretea.227.40. Radu-Lucian Lup¸a s Capitolul 10. care leag˘ reteaua experimental˘ de a a ¸ a ¸ a reteaua din laborator. 10.

0. a doua este mai complex˘ ¸i serve¸te ¸i altor a s a s s s scopuri).0. • 0. • 193.0.224/28 → eth1 .0/23 → eth2 .226.7.0.128/28 → eth0 . trebuie activat explicit.40.1 (prin eth1 )..227. • 193. • 193. o regul˘ implicit˘ indicˆnd default gateway-ul retelei furnizorului ¸ a a a ¸ de acces Internet ¸i o regul˘ pentru dirijarea spre subreteaua . Pentru nodul G avem 5 reguli: trei reguli de livrare direct˘ prin cele a trei interfete. Pentru a statii.0/23 → eth0 .224. dac˘ este dorit. a Pe sistemele de tip Linux configurarea este putin mai complicat˘.0/0 → 193. tabela de dirijare are trei reguli.2.0.0.0. ¸ a dar ¸i mult mai flexibil˘.2.224.0/0 → 193. Prin ambele interfete se realizeaz˘ atˆt modifi¸a ¸ a a carea parametrilor din modulul IP din nucleul sistemului de operare cˆt ¸i a s scrierea lor ˆ Windows registry pentru reˆ arcarea lor la repornirea sistemuın ınc˘ lui. a a Pentru nodul L4 .40.0. care asociaz˘ prefixului subretelei unica interfat˘ de retea.224/28: • 193. • 193. anume adresa IP ¸i masca de retea. tabelele sunt formate din cˆte dou˘ reguli: o regul˘ pentru livrarea ¸ a a a direct˘.227.c 2008. ¸i o regul˘ a a ¸ ¸a ¸ s a implicit˘.224/28 → 193.1 (prin eth0 ). Tabela de dirijare se ¸ afi¸eaz˘ ¸i se modific˘ cu comenzile route sau ip (prima este mai simpl˘ ¸i s as a as se g˘se¸te pe toate sistemele. care asociaz˘ prefixului vid adresa default gateway-ului.224. iar a treia este regula implicit˘: a a ¸ a • 193.0. dou˘ fiind pentru a livrarea direct˘ prin cele dou˘ interfete. Protocolul IP S˘ vedem acum cum trebuie configurate tabelele de dirijare.0.0.227. 10.227. Comportamentul de ruter.192/27 → eth1 .subordonat˘“ s a ¸ a 193. Configurarea parametrilor de retea pe diverse sisteme de ¸ operare Pe sistemele Windows.0. De remarcat c˘ oprirea unei interfete de retea cu ifconfig duce a ¸ ¸ automat la eliminarea din tabela de dirijare a tuturor regulilor ce au ca ¸int˘ t a . Radu-Lucian Lup¸a s 312 10.226. exist˘ dou˘ posibilit˘¸i de configurare: coa a at manda ipconfig (ˆ mod text) ¸i seria de casete de dialog din Start/ Control ın s panel/ Network/ interfat˘.224.129 (prin eth0 ).2. Tot comanda ifconfig ¸ ¸ s ¸ introduce ˆ tabela de dirijare regulile de livrare direct˘ (de fapt acesta este ın a motivul pentru care are nevoie de masca de retea). • 0. Comanda ifconfig seteaz˘ parametrii legati de s a a ¸ interfetele de retea.

Parametrii de retea utilizati la pornirea sistemului sunt luati de ¸ ¸ ¸ script-urile de initializare din ni¸te fi¸iere text. s Primul lucru ce trebuie testat. Dac˘ o leg˘tur˘ indirect˘ nu functioneaz˘ de¸i ¸ a a a a ¸ a s toate leg˘turile directe ce ar trebui s˘ fie utilizate functioneaz˘. dar nu ¸i cu alte calculatoare — nici m˘car cu ¸ s a default gateway-ul.. Acest lucru se face dˆnd comanda ping pentru cˆte un vecin ¸ a a a din fiecare subretea din care face parte calculatorul de pe care se efectueaz˘ ¸ a testul. fiecare distributie ¸ s s a ¸ de Linux are propriile fi¸iere de configurare.0.227. Dac˘ ping-ul nu merge ¸i pachetele ping a a s ¸ a s ¸i pong nu sunt filtrate. o statie care nu are configurat default gateway va putea ¸ comunica cu vecinii directi.3. problema este a a ¸ a de la regulile de dirijare (sau de la un filtru de pachete. Internetul 313 adrese accesibile prin acea interfat˘. dac˘ esre specificat prin alt˘ adres˘ decˆt cea din aceea¸i a a a a s subretea cu statia configurat˘. Fedora plaseaz˘ s a datele ˆ fi¸iere ˆ directorul /etc/sysconfig/network-scripts. destination unreachable ¸i time exceeded. route. ¸ ¸ a ¸ dac˘ pe nodul G nu se pune regula care asociaz˘ prefixului 193. ˆ a ınseamn˘ c˘ leg˘tura functioneaz˘ (pl˘cile de a a a ¸ a a retea. este necesar ca.224/28 a a gateway-ul 193.9. se trece la verificarea leg˘a a a turilor ˆ ıntre subretele diferite. Alt exemplu: la reteaua din exemplul 10. a Comenzile ifconfig. a ¸ De exemplu. Exist˘ dou˘ lucruri u¸or de sc˘pat s a a a s a din vedere aici: faptul c˘ pentru ca ping-ul s˘ mearg˘ este necesar ca dirijarea a a a s˘ functioneze corect ˆ ambele sensuri ¸i faptul c˘ ˆ a ¸ ın s a ıntre regulile de dirijare intr˘ inclusiv regulile de default gateway de pe statii. din p˘cate.0. a acesta s˘ permit˘ trecerea pachetelor ICMP cu tipurile echo-request.0.2. dac˘ este instalat un filtru de pachete (firewall).c 2008.224/28 ¸ . Radu-Lucian Lup¸a s Capitolul 10. Testarea ¸i depanarea retelelor s ¸ Cel mai util instrument de depanare pentru problemele de conectivitate este comanda ping. Pentru buna functionare a acesteia ¸i a comenzii ¸ s traceroute. echoa a reply.7.227. este dac˘ leg˘turile directe a a ¸ a a functioneaz˘. ip ¸i sysctl au efect imediat asupra s modulului IP din nucleu. Dac˘ ping-ul merge.4. pana trebuie c˘utat˘ printre lucrurile enumerate pˆn˘ s a a a a aici.224. ˆ cazul unei probleme de conecın tivitate sau dup˘ o lucrare mai ampl˘ la retea. Dac˘ ping-ul merge pe leg˘turile directe. switch-urile ¸i access point-urile de pe traseu) ¸i c˘ adresele ¸ s s a IP ¸i m˘¸tile de retea sunt . cablurile. ın s ın 10. Activarea comportamentului de ruter se ¸a face cu o comand˘ sysctl.suficient de bune“ pentru ca nodurile s˘ fie v˘zute s as ¸ a a ca f˘cˆnd parte din aceea¸i subretea. atunci pachetele dinspre subreteaua 193. de aceea este bine ca pachetele ping ¸i pong s˘ nu fie filtrate). dar configur˘rile respective se pierd la repornirea a sistemului. De exemplu.

aplic˘ ¸i a a a a a s el regula implicit˘ ¸i le trimite c˘tre 193. TCP ofer˘: ın a • serviciu de tip conexiune. Nivelul transport Aplicatiile nu folosesc direct protocolul IP din mai multe motive: ¸ • dac˘ dou˘ aplicatii se execut˘ pe acela¸i calculator. negrua ¸ a ¸a s ¸ pati ˆ mesaje.226.3. nefigurat pe desen).5. la care se adaug˘ uneori ni¸te functii a a s ¸ de bibliotec˘. 1981]. Radu-Lucian Lup¸a s 314 10.129 (default gateway-ul din a s a reteaua furnizorului. G.224. Adaptarea ˆ ıntre nevoile aplicatiilor ¸i serviciile oferite de nivelul retea ¸ s ¸ IP cade ˆ sarcina nivelului transport.c 2008. Serviciile a ¸ ¸ oferite aplicatiei prin socket-uri de tip stream sunt implementate utilizˆnd pro¸ a tocolul TCP.226. cu cele trei faze. Protocolul IP pot s˘ ias˘ spre Internet. bidirectional˘. pachetele pong cicleaz˘ ˆ a ıntre G ¸i 193.0. • trasnport˘ flux de octeti. • serviciul oferit direct de nivelul retea (pachete ce se pot pierde. Modulele retelei IP ¸i locul modulelor TCP ¸i UDP sunt ¸ s s ar˘tate ˆ figura 10. Conexiuni cu livrare garantat˘: protocolul TCP a Scopul protocolului TCP (Transmission Control Protocol ) este acela de a realiza o conexiune de tip flux de octeti. dar pachetele pong sunt trimise a de L2 c˘tre G (conform regulii implicite). a Componenta nivelului transport situat˘ ˆ nucleul din sistemului de a ın operare furnizeaz˘ aplicatiei functiile sistem din familia socket(). deoarece furnizorul ¸tie c˘ toat˘ reteaua 193. ˆ a pachetele dinspre Internet nu trec de nodul G.129. Astfel. ¸ ın a . s 10. pachetele ping ajung la L2 . De aici pachetele se ˆ ¸ ıntorc ˆ ınapoi spre G. pot sosi ¸ ˆ alt˘ ordine ¸i.40. ˆ acest a ıns˘ a In din urm˘ caz. comunicatie ¸i ˆ ¸ s ınchidere conexiune. Protocolul este descris ˆ [RFC 793. adic˘ emit˘torul trimite un ¸ir de octeti. a ın Mai ˆ detaliu. Serviciile oferite prin socket-uri de tip dgram sunt implementate prin protocolul UDP.0/22 este ˆ spatele s a a ¸ ın lui G. este necesar ca nucleul a a ¸ a s sistemului de operare s˘ determine c˘rei aplicatii ˆ este destinat fiecare a a ¸ ıi pachet sosit. pot fi duplicate) este de obicei inın a s ın adecvat. neavˆnd alt˘ regul˘. cu livrare garan¸ ¸ a tat˘.3. Nivelul transport const˘ dintr-o compoın a nent˘ a nucleului sistemului de operare. ˆ a c˘tre L2 nu merge. ˆ anumite cazuri. de deschidere conexiune.1.40.2. a ın 10. a a ıns˘ Un ping executat de pe E1 c˘tre L4 merge. de lungime arbitrar˘.

a¸a cum am v˘zut ˆ § 4. ¸ facilit˘¸ile oferite de reteaua IP. Pentru ˆ a a ınceput consider˘m transmisia unidirectional˘ a ¸ a ¸i conexiunea deja deschis˘. Antetul TCP este ¸ s descris ˆ tabelul 10. a a • leg˘tur˘ bidirectional˘. Internetul Nod final Aplicatie ¸ modulul TCP sau UDP Modul IP Interfat˘ ¸a de retea ¸ Modulul IP Interfat˘ ¸a de retea ¸ Interfat˘ ¸a de retea ¸ Nod intermediar Nod final Aplicatie ¸ modulul TCP sau UDP Modul IP Interfat˘ ¸a de retea ¸ 315 Retea de nivel inferior ¸ (de exemplu.3. s a Zona de date utile a unui pachet IP ce transport˘ date pentru proa tocolul TCP contine un antet TCP ¸i datele utile TCP. pentru realizarea conexiunilor TCP.3.5.1. • livrare sigur˘.c 2008. Cˆmpul num˘r de secvent˘ din antetul TCP contine num˘rul a a ¸a ¸ a de secvent˘ al primului octet din datele utile.5: Modulele unei retele IP. adic˘ octetii trimi¸i de emit˘tor ajung la receptor sigur. Ethernet) Retea de nivel inferior ¸ (de exemplu. ˆ zona de date utile. Partea inclus˘ ˆ sistemul de operare este ¸ a ın delimitat˘ cu linie punctat˘.1. Radu-Lucian Lup¸a s Capitolul 10. at ¸ 10. ¸a . a a ¸ s ¸a f˘r˘ duplicate ¸i ˆ aceea¸i ordine ˆ care au fost trimi¸i. ¸a Fiecare pachet TCP contine. Ethernet) Figura 10. octeti consecutivi au asociate numere de a a ¸a ¸ secvent˘ consecutive. aa s ın s ın s Modulul TCP are la dispozitie. un ¸ir de octeti ¸ ın s ¸ utili consecutivi. ın Fiec˘rui octet al fluxului de date utile (de transportat de c˘tre TCP) a a i se asociaz˘ un num˘r de secvent˘ . adic˘ fiecare din cei doi parteneri de comunicatie a a ¸ a a ¸ poate trimite date celuilalt. Principiul conexiunii TCP Livrarea sigur˘ este obtinut˘ pe baza unui mecanism de numerotare a ¸ a ¸i confirmare a pachetelor. Mecanismul este imples s a ın mentat dup˘ cum urmeaz˘.

Radu-Lucian Lup¸a s 316 10.3. dependent ¸ ın de dimensiunea optiunilor ¸ valoarea 0 vezi § 10.11 indic˘ faptul c˘ num˘rul de confirmare a a a este valid arat˘ c˘ pachetul trebuie trimis urgent. fereastr˘ a Suma de control Pozitie date urgente ¸ Optiuni ¸ Dim.8 suma de control a antetului vezi § 10.1. (biti) ¸ 16 16 32 32 4 6 1 1 1 1 1 1 16 16 16 variabil Observatii ¸ pozitia datelor utile ˆ pachet.c 2008.1.3. a a f˘r˘ a fi ¸inut ˆ diverse zone tampon aa t ın cere ˆ ınchiderea fortat˘ a conexiunii ¸ a cere deschiderea conexiunii cere ˆ ınchiderea conexiunii vezi § 10. Nivelul transport Nume cˆmp a Port surs˘ a Port destinatie ¸ Nr. confirmare Deplasament date Rezervat Urgent Acknowledge Push Reset Synchronize Finalize Dim.3.1.3. secvent˘ ¸a Nr.11 Tabelul 10.5: Antetul TCP .

apoi efg. 12 ¸i 13. cu num˘rul de confirmare 14 (acesta este urm˘torul num˘r de a a a secvent˘ a¸teptat).10: ˆ figura 10. Un pachet TCP de confirmare are ˆ antetul TCP flagul ın acknowledge setat ¸i ˆ cˆmpul num˘r de confirmare num˘rul de secvent˘ al s ın a a a ¸a urm˘torului octet a¸teptat de la emit˘tor. ¸i c˘ acesta este pasat modulului TCP a s s a emit˘tor ˆ etape. 11. primul dintre acestea este scris ˆ cˆmpul num˘r de s ın a a secvent˘ al antetului TCP. furnizate ¸a ¸ ¸ de aplicatie emit˘torului. ¸a s • Emit˘torul trimite acum urm˘torul pachet de date. h ¸i ˆ final i. ¸a s a • Ca urmare a primirii de la aplicatia surs˘ a urm˘torului octet. cu num˘rul de secvent˘ ta a a ¸a . Internetul 317 Modulul TCP receptor ¸ine evidenta num˘rului de secvent˘ al ultimt ¸ a ¸a ului octet primit. Datele utile. modulul receptor determin˘ a dac˘ datele utile sunt octeti deja primiti (duplicate).6 este prezentat˘ (simplificat) o parte dintr-un In a schimb de pachete corespunz˘tor unei conexiuni TCP. sunt p˘strate ˆ ¸ ¸a a ıntr-o zon˘ tampon ¸i ¸inute acolo pˆn˘ a s t a a la confirmarea primirii lor de c˘tre receptor. Exemplul 10. Radu-Lucian Lup¸a s Capitolul 10. Datele trimise ¸i neconfirmate a s ˆ ıntr-un anumit interval de timp se retransmit. ¸ a ¸ ¸ ınc˘ ıntˆ Octetii primiti ˆ continuarea celor deja primiti sunt pu¸i ˆ ¸ ¸ ın ¸ s ıntr-o coad˘ pentru a a fi livrati aplicatiei la cererea acesteia. S˘ analiz˘m as a ¸a a a putin schimbul de pachete: ¸ • Emit˘torul trimite un prim pachet. emi¸ a a ¸˘torul TCP trimite imediat urm˘torul pachet. Datele noi intrate ˆ zona ın tampon sunt trimise cu un nou pachet. Mai presupunem ¸a ın ıntˆ s s ın conexiunea TCP deja deschis˘ ¸i num˘rul curent de secvent˘ 10. octeti ce vin imediat ˆ a ¸ ¸ ¸ ın continuarea celor primiti pˆn˘ ˆ acel moment sau octeti pˆn˘ la care exist˘ ¸ a a ın ¸ a a a octeti lips˘ (nereceptionati ˆ a din cauza unui pachet pierdut sau ˆ arziat). cu num˘r de secvent˘ 10 ¸i date utile ¸a a ¸a s ¸irul de 4 octeti abcd. h. ˆ ai ¸irul abcd. ¸ ¸ La primirea unui pachet TCP. receptorul trimite ˆ ınapoi un pachet TCP de confirmare. Presupunem c˘ aplicatia a a ¸ surs˘ are de trimis ¸irul abcdefghi. cu num˘rul de sec¸a a a vent˘ 14 ¸i date utile efg. Ace¸ti 4 octeti au numere de secvent˘ respectiv s ¸ s ¸ ¸a 10. s ¸ emit˘toul poate la retrimitere s˘ concateneze datele vechi neconfirmate cu cele ¸a a noi.c 2008. ¸ s s Emit˘torul retransmite octetii neconfirmati. Un pachet cu num˘r de confirmare a s ¸a a n informeaz˘ emit˘torul c˘ toti octetii cu numere de secvent˘ mai mici sau a ¸a a ¸ ¸ ¸a egale cu n − 1 au fost primiti de receptor ¸i nu mai trebuie retransmi¸i. La primirea unui pachet TCP. Presupunem c˘ acest pachet se pierde. ¸a • La primirea acestui pachet. Dac˘ un pachet nu este confirmat ¸i a s ˆ ıntre prima trimitere ¸i momentul retrimiterii au mai sosit date de la aplicatie. receptorul r˘spunde cu un pachet de cona firmare.

=14 efghi efghi confirm=19 secv. vezi exemplul 10.=14 h secv.=17 efg h confirm=14 i secv.=10 abcd Receptor TCP confirm=14 Destinatie ¸ abcd efg secv. Radu-Lucian Lup¸a s 318 10.6: O secvent˘ de pachete TCP schimbate ˆ ¸a ıntre emit˘tor (stˆnga) ¸i re¸a a s ceptor (dreapta). Nivelul transport Surs˘ a abcd Emit˘tor TCP ¸a secv.10. .=14 efghi confirm=19 Figura 10.c 2008.3.

¸i are acela¸i num˘r de secvent˘. s a ¸a Ca urmare. emit˘torul a s s ¸a ˆ a nu ¸tie de primirea datelor de c˘tre receptor. a emit˘torul ar crede c˘ toate numerele de secvent˘ pˆn˘ la 17 inclusiv au ¸a a ¸a a a fost primite ¸i nu ar mai retrimite niciodat˘ numerele de secvent˘ 14–16. ˆ realitate.1. dup˘ expirarea time-out-ului de ¸a a la trimiterea lui. ınc˘ s a ˆ continuarea schimbului de pachete ilustrat. rezult˘ c˘ exist˘ numere de secvent˘ distincte a a a ¸a doar pentru 4 GiB de date. Radu-Lucian Lup¸a s Capitolul 10. ˆ a a a ıns˘ retrimite confirmarea cu num˘rul 19. a Aceasta nu era o problem˘ ˆ anii ’80. de¸i receptorul prime¸te un duplicat. s s a ¸a . Cum un num˘r de secvent˘ ¸ a ¸a este asociat unui octet transmis. ceea ce face foarte posibil˘ o confuzie ˆ a ıntre un pachet care s-a . • La primirea acestui pachet (cu num˘r de secvent˘ 17). Emit˘torul ˆ ¸ a a ¸a ımpacheteaz˘ acum tot a ce are de (re)trimis ˆ ıntr-un singur pachet ¸i trimite num˘rul de secventa s a ¸ 14 ¸i datele utile efghi. receptorul are dou˘ posibilit˘¸i: s˘ ignore pachetul primit a at a (adic˘ s˘ nu trimit˘ nici un pachet ˆ a a a ınapoi) sau s˘ retrimit˘ num˘rul de a a a confirmare 14.c 2008.. ˆ exemplul de fat˘ am considerat a doua variant˘.10). deoarece la 10 Mbit/s repetarea unui a ın num˘r de secvent˘ apare cel mai repede dup˘ aproape o or˘. a • Emit˘torul retrimite pachetul anterior. timp ˆ care a ¸a a a ın este putin probabil s˘ mai existe ˆ retea un pachet vechi cu acela¸i num˘r ¸ a ın ¸ s a ˆ de secvent˘.3. dac˘ ˆ ¸a a ın acest moment receptorul ar trimite un pachet cu num˘r de confirmare 18.ˆ ıncurcat“ prin retea timp de 34 s ¸i un pachet nou care poart˘ informatie sit¸ s a ¸ uat˘. s • Receptorul confirm˘ pachetul primit. • Receptorul constat˘ c˘ a primit un duplicat al datelor precedente. Netrimiterea ˆ acest moment a a ın confirm˘rii ar duce la repetarea la infinit de c˘tre emit˘tor a pachetului a a ¸a precedent. De notat c˘. Intr-o retea cu debit de 1 Gbit/s. a a ¸ a ¸a Am presupus pˆna aici c˘ numerele de secvent˘ sunt numere natua a ¸a rale care pot cre¸te nedeterminat de mult. receptorul nu ˆ a ¸a ıl poate confirma deoarece nu a primit numerele de secvent˘ 14–16. ˆ cadrul conexiunii. Internetul 319 17 ¸i date utile h (presupunem c˘ emit˘torul nu utilizeaz˘ algoritmul s a ¸a a Nagle.5) pe 32 de biti. se pot transmite 4 GiB ˆ ¸a ¸ ın 34 secunde. trimitˆnd num˘rul de confirmare a ¸a a 19. § 10. ın ¸a a • Presupunem acum c˘ pe de o parte a expirat time-out-ul emit˘torului a ¸a pentru numerele de secvent˘ 14–17 ¸i pe de alt˘ parte c˘ a primit de la ¸a s a a aplicatia surs˘ urm˘torul octet (i). numerele de secvent˘ s In ¸a sunt reprezentate (vezi tabelul 10. nu se vor mai trimite pachete In pˆn˘ ce aplicatia surs˘ nu va da emit˘torului TCP noi date de transmis. dup˘ aceea numerele de secvent˘ ˆ a ¸a ıncep s˘ se repete. 4 GiB mai ˆ a ın ıncolo. Presupunem c˘ pachetul de confirmare respectiv se pierde.

3. dar nu ¸i a unei cona a s firm˘ri.c 2008.3.2. a Totu¸i. Radu-Lucian Lup¸a s 320 10. fiecare pachet TCP contine a ¸ ˆ ıntotdeauna date pentru un sens ¸i confirmare pentru cel˘lalt sens. dac˘ un pachet TCP are flagul synchronize setat. este octetul ¸ a ¸a fictiv de pornire. prezenta lor ˆ s ın ¸ ıntr-un pachet este semnalizat˘ a prin setarea flagurilor synchronize ¸i respectiv finalize din antetul TCP. 1992]. datele utile pentru un sens sunt plasate ˆ acela¸i pachet s ın s TCP cu confirmarea pentru cel˘lalt sens. Metoda se aplic˘ a ¸ a a ˆ doar la comunicatia ˆ ¸ ıntre module TCP care implementeaz˘ RFC 1323. a a ¸ ın a a .3. cu num˘rul de secvent˘ n.1. ˆ ¸a s ¸ a ¸ ınseamn˘ c˘ pachetul a a transmite k+1 octeti dintre care primul. num˘rul a a de secvent˘ n ¸i zona de date utile continˆnd k octeti. f˘r˘ a seta flagul acknowledge (acesta este sinaa gurul pachet ce nu are flagul acknowledge setat) ¸i punˆnd o valoare ars a bitrar˘ (care va fi ignorat˘ la destinatie) ˆ cˆmpul num˘r de confirmare. Ei nu sunt ¸a s a ¸ s ¸ transmi¸i ˆ zona de date utile. Ace¸ti octetii fictivi a s ¸ au asociate numere de secvent˘ ca ¸i cˆnd ar fi octeti obi¸nuiti. ˆ cˆmpul num˘r de confirmare se repet˘ ultimul num˘r de confirmare a ın a a a a transmis. prin introducerea ˆ antetul a ın TCP a unui cˆmp optional cuprinzˆnd un marcaj de timp. atunci zona de date utile se face de dimensiune 0 iar ˆ a ın cˆmpul num˘r de secvent˘ se pune num˘rul de secvent˘ al urm˘torului octet a a ¸a a ¸a a ce va fi transmis. urmat de cei k octeti din zona de date utile. cu numere de ¸ la n + 1 la n + k. Nivelul transport Eliminarea riscului de confuzie ˆ ıntre pachete la debite mari de transmisie a datelor se realizeaz˘. Deschiderea ¸i ˆ s ınchiderea conexiunii Pentru fiecare sens de comunicatie se consider˘ cˆte doi octeti fictivi: ¸ a a ¸ un octet de pornire aflat ˆ ınaintea primului octet util al datelor transmise ¸i un s octet de ˆ ıncheiere aflat dup˘ ultimul octet al datelor utile.3. 10. Initiatorul unei comunicatii TCP trimite un pachet TCP continˆnd ¸ ¸ ¸ a un octet fictiv de pornire. 10. s a Dac˘ este necesar˘ transmiterea unor date. s Astfel. In a cazul ˆ care unul din modulele TCP nu implementeaz˘ RFC 1323. conform [RFC 1323. f˘r˘ date utile a a a aa pentru cel˘lalt sens. Comunicatia bidirectional˘ ¸ ¸ a Cele dou˘ sensuri de comunicatie ale unei conexiuni TCP functioneaz˘ a ¸ ¸ a (aproape) complet independent. Numerele de secvent˘ utilizate pe cele dou˘ ¸a a sensuri evolueaz˘ independent.1. Astfel. Dac˘ este necesar s˘ se transmit˘ doar o confirmare. oprind efectiv transmisia la nevoie. modulele ın a TCP vor avea grij˘ s˘ nu repete un num˘r de secvent˘ mai devreme de cˆteva a a a ¸a a minute.

0 124 26 127 26 130 130 29 130 30 Flaguri syn syn. Exemplul 10. O conexiune poate functiona oricˆt de mult timp cu un sens ˆ ¸ a ınchis. Internetul 321 Num˘rul de secvent˘ al octetului fictiv de pornire este la alegerea initiatorului a ¸a ¸ comunicatiei.11: Un exemplu de schimb de pachete ˆ cadrul unei conexiuni ın este dat ˆ tabelul 10. datele primite ˆ a ınainte de momentul ˆ care conexiunea este deschis˘ ın a nu pot fi livrate aplicatiei pˆn˘ la deschiderea complet˘ a conexiunii. ¸ Receptorul pachetului initial r˘spunde. a a Ca urmare. ¸ a a a ˆ Inchiderea conexiunii se face separat pe fiecare sens de comunicatie. confirm˘ pachetul de a initiere primit.c 2008. confirm. pachet 1 2 3 4 5 6 7 8 9 10 Sens A→B A←B A→B A←B A→B A←B A←B A→B A←B A→B Nr. • a primit un octet fictiv de pornire de la partener. dac˘ dore¸te s˘ accepte co¸ a a s a nexiunea. Dup˘ trimitera octetului de ˆ a ıncheiere este interzis s˘ se mai trimit˘ date noi. printr-un pachet TCP care. ¸ Marcarea ˆ ınchiderii unui sens se face trimitˆnd un octet fictiv de ˆ ¸a ıncheiere. iar pe de alt˘ parte contine la rˆndul lui un octet fictiv de ¸ a ¸ a pornire. Radu-Lucian Lup¸a s Capitolul 10. Nr. secv. ın . 123 25 124 26 127 26 26 130 29 130 Nr.ack ack ack ack. pe de o parte. Fiecare parte poate trimite date ˆ ınainte de a dispune de o conexiune deschis˘.11.fin ack ack ack ack. orice pachete (de confirmare) trimise de partea care a ˆ ınchis conexiunea vor avea ca num˘r de secvent˘ num˘rul imediat urm˘tor octetului a ¸a a a fictiv de ˆ ıncheiere ¸i date utile vide.6.6: Un exemplu de schimb de pachete ˆ cadrul unei conexiuni. Fiecare parte consider˘ conexiunea deschis˘ ˆ momentul ˆ care sunt a a ın ın satisf˘cute simultan conditiile: a ¸ • octetul fictiv de pornire trimis de ea a fost confirmat. Vezi ın exemplul 10. Octetul fictiv de ˆ s ıncheiere se confirm˘ a normal.fin ack Date utile — — abc — de — xyz — — — Tabelul 10.

deoarece din acel moment modulul a TCP partener nu va mai trimite nici un pachet (conexiunea fiind ˆ ınchis˘). A a a nu mai are voie s˘ trimit˘ date noi. • modulul TCP a primit un octet special de ˆ ıncheiere de la partener.. trebuie confirmat. Urmarea este c˘ modulul TCP partener nu cona sider˘ ˆ a ınchis˘ conexiunea (conform regulilor de mai sus) ¸i retrimite octea s tul special de ˆ ıncheiere pˆn˘ la confirmarea acestuia. ¸ a a Din punctul de vedere a lui A. din punctul de vedere al lui B conexiunea este complet deschis˘ la primirea pachetului 3. Din p˘cate.c 2008. syn xyz fin “. conexiunea este complet deschis˘ la a primirea pachetului nr. iar B trimite lui A un num˘r de 5 octeti din ¸a a ¸ care 2 fictivi. cu numerele de secvent˘ de la 25 la 29 inclusiv. ˆ a mai trebuie s˘ p˘streze un timp datele despre conexiune ıns˘ a a pentru cazul ˆ care pachetul 10 s-ar pierde ¸i B ar repeta pachetul 9. Radu-Lucian Lup¸a s 322 10. s s A poate considera de asemenea conexiunea complet ˆ ınchis˘ dup˘ trimiterea a a pachetului 10. indiferent dac˘ ace¸tia sunt a ¸ ¸ a s date utile sau octeti fictivi syn sau fin .3. cu numerele de a ¸ secvent˘ de la 123 la 129 inclusiv. Pachetele ce ¸ contin doar num˘rul de confirmare nu se confirm˘. B consider˘ conexiunea complet ˆ a a ınchis˘ dup˘ primirea pachetului a a 10 (a primit un fin de la A ¸i a trimis ¸i i s-a confirmat fin -ul propriu). Nivelul transport Pentru a urm˘ri u¸or schimbul de pachete. protocolul TCP prevede p˘strarea datelor despre cone¸ a xiune un anumit interval de timp (de ordinul cˆtorva minute) dup˘ ˆ a a ınchiderea .. Modulul TCP local a a ar trebui s˘ p˘streze informatiile despre conexiune pˆn˘ cˆnd modulul TCP a a ¸ a a a partener prime¸te confirmarea octetului s˘u de ˆ s a ıncheiere. a Din punctul de vedere al unui modul TCP. exist˘ ˆ a posibilitatea ca modulul TCP partener s˘ nu primeasc˘ cona ınc˘ a a firmarea modulului TCP local pentru octetul special de ˆ ınchidere trimis de modulul TCP partener). Dup˘ ˆ a ınchiderea conexiunii din punctul de vedere al modulului TCP local. • modulul TCP a primit confirmarea propriului octet de ˆ ıncheiere. . . s˘ remarc˘m c˘ A trimite a s a a a lui B un num˘r de 7 octeti din care 2 fictivi. conexiunea este ˆ ınchis˘ a ˆ momentul ˆ care sunt ˆ ın ın ındeplinite conditiile: ¸ • modulul TCP a trimis octetul special de ˆ ıncheiere. poate doar s˘ repete datele vechi (dac˘ a a a a nu ar fi primit pachetul 6 ar fi trebuit s˘ retrimit˘ pachetul 5) ¸i s˘ trimit˘ a a s a a confirm˘ri. 2. Ca a solutie de compromis. Dup˘ trimiterea pachetului 5. detera minarea acestui moment este imposibil˘. ın s O problem˘ special˘ legat˘ de ˆ a a a ınchiderea conexiunii este problema determin˘rii duratei de la ˆ a ınchiderea conexiunii pˆn˘ la momentul ˆ care a a ın datele asociate conexiunii nu mai sunt necesare ¸i memoria asociat˘ poate fi s a eliberat˘. ¸a Fiecare pachet care transport˘ octeti numerotati. syn abcde fin “.

c 2008, Radu-Lucian Lup¸a s
Capitolul 10. Internetul 323

conexiunii. 10.3.1.4. Alegerea num˘rului initial de secvent˘ a ¸ ¸a Num˘rul de secvent˘ al octetului fictiv de pornire, numit ¸i num˘r a ¸a s a initial de secvent˘ (engl. initial sequence number, ISN ), trebuie ales ˆ a¸a fel ¸ ¸a ın s ˆ at s˘ nu poat˘ exista confuzie ˆ ıncˆ a a ıntre numere de secvent˘ dintr-o conexiune ¸a veche ¸i cele din conexiunea curent˘ ˆ s a ıntre acelea¸i dou˘ p˘rti (acelea¸i adrese s a a¸ s IP ¸i numere de port). s Ideal, modulul TCP ar trebui s˘ p˘streze datele despre o conexiune a a atˆt timp cˆt mai pot exista ˆ retea pachete apartinˆnd conexiunii. ˆ aceste a a ın ¸ ¸ a In conditii, la redeschiderea unei conexiuni ˆ ¸ ıntre acelea¸i dou˘ p˘rti, fiecare parte s a a¸ poate atribui octetului fictiv de pornire num˘rul de secvent˘ imediat urm˘tor a ¸a a num˘rului de secvent˘ asociat octetului fictiv de ˆ a ¸a ıncheiere al conexiunii precedente. ˆ acest caz, putem privi conexiunile succesive ca fiind o singur˘ In a conexiune ˆ care transmisiile sunt delimitate prin secvente de octeti fictivi ın ¸ ¸ fin syn . Dac˘ de la precedenta conexiune a trecut destul timp pentru ca paa chetele corespunz˘toare s˘ nu mai existe ˆ retea (fie au ajuns la destinatie, fie a a ın ¸ ¸ au fost distruse ca urmare a dep˘¸irii timpului de viat˘), alegerea num˘rului as ¸a a initial de secvent˘ poate fi f˘cut˘ oricum. Exist˘ cˆteva considerente, enumer¸ ¸a a a a a ate mai jos, care duc la utilitatea unor alegeri particulare. Un prim considerent este ˆ ıngreunarea unor atacuri de tip IP spoofing. Un atac IP spoofing (numiu uneori simplu spoofing) const˘ ˆ a trima ın ite pachete IP ˆ care se falsific˘ valoarea cˆmpului adres˘ surs˘. Scopul unui ın a a a a astfel de atac este de-a ˆ sela un mecanism de autentificare bazat pe adresa ın¸ IP a partenerului de comunicatie sau de-a deturna o conexiune TCP deja ¸ ˆ acest din urm˘ caz, adversarul las˘ un client legitim s˘ se autentificat˘. In a a a a conecteze la server ¸i, dup˘ efectuarea autentific˘rii, adversarul injecteaz˘ un s a a a mesaj destinat serverului ¸i avˆnd ca adres˘ surs˘ adresa clientului autentifis a a a cat. Mesajul este interpretat de server ca provenind de la clientul autentificat ¸i, dac˘ contine o comand˘ autorizat˘ pentru client, comanda este executat˘, s a ¸ a a a de¸i ˆ realitate provine de la adversar. s ın De multe ori, ˆ ıntr-un atac de tip spoofing adversarul nu are ¸i posibilis tatea de-a determina ruterele de pe traseu s˘-i permit˘ recuperarea pachetelor a a de r˘spuns. Un atac ˆ astfel de conditii se nume¸te blind spoofing. a ın ¸ s Un atac blind spoofing se contracareaz˘ foarte simplu generˆnd aleator a a num˘rul initial de secvent˘, adic˘ f˘cˆnd ca valoarea lui s˘ fie imprevizibil˘ a ¸ ¸a a a a a a pentru adversar. Cum adversarul trebuie s˘ emit˘ pachete cu numere de a a secvent˘ ¸i de confirmare valide, ˆ cazul acestor m˘suri adversarul trebuie ¸a s ın a

c 2008, Radu-Lucian Lup¸a s
324 10.3. Nivelul transport

efectiv s˘ ghiceasc˘ num˘rul de secvent˘. a a a ¸a Un al doilea considerent este prevenirea atacului syn flooding. ˆ Intrun astfel de atac, adversarul trimite multe pachete TCP de deschidere de conexiune (cu flagul synchronize pe 1 ¸i acknowledge pe 0), cu diferite valori s pentru cˆmpurile port surs˘ ¸i uneori adres˘ surs˘ (este posibil ca adversarul a as a a s˘ execute ¸i IP spoofing). Ma¸ina atacat˘ trebuie s˘ aloce o structur˘ de date a s s a a a ˆ care s˘ memoreze datele despre conexiune pˆn˘ la terminarea conexiunii sau ın a a a la expirarea unui time-out. Adversarul ˆ a nu mai trimite nimic pe nici una ıns˘ dintre conexiuni, multumindu-se s˘ ¸in˘ ocupat˘ memorie pe ma¸ina atacat˘; ¸ at a a s a este vorba deci de un atac denial of service. Contram˘sura, numit˘ syn cookie, se realizeaz˘ astfel. O ma¸in˘ a a a s a care a¸teapt˘ cereri de conectare genereaz˘ aleator un ¸ir de biti, pe care ˆ s a a s ¸ ıl ¸ine secret. La primirea unei cereri de conectare, ma¸ina alege, ca num˘r de t s a secvent˘ initial (pentru sensul dinspre ea spre initiatorul conexiunii), valoarea ¸a ¸ ¸ unei functie de dispersie criptografic˘, aplicat˘ asupra num˘rului de secvent˘ ¸ a a a ¸a al pachetului primit concatenat cu un ¸irul secret. Apoi, ma¸ina ¸int˘ a cos s t a nexiunii trimite pachetul de r˘spuns, acceptˆnd num˘rul de secvent˘ proa a a ¸a pus de initiatorul conexiunii ¸i continˆnd num˘rul de secvent˘ astfel generat. ¸ s ¸ a a ¸a Ma¸ina ¸int˘ nu ˆ s t a ınregistreaz˘ ˆ a, ˆ tabela de conexiuni, conexiunea astfel a ınc˘ ın deschis˘. ˆ cazul unei conexiuni reale, la trimiterea urm˘torului pachet de a In a c˘tre initiatorul conexiunii, ma¸ina ¸int˘ verific˘ num˘rul de secvent˘ folosind a ¸ s t a a a ¸a aceea¸i functie de dispersie, dup˘ care memoreaz˘ conexiunea ˆ tabelul de cos ¸ a a ın nexiuni. ˆ acest fel, o conexiune creat˘ dintr-un atac syn flooding nu ocup˘ In a a memorie, ˆ schimb o conexiune legitim˘ se poate deschide. ın a 10.3.1.5. ˆ Inchiderea fortat˘ a conexiunii ¸ a Refuzul cererii de deschidere a unei conexiuni se face trimitˆnd ini¸a ¸iatorului un pachet TCP cu flagul reset setat. t La primirea unui pachet care nu corespunde unei conexiuni deschise (adic˘ pachetul este primit ˆ a ıntr-un moment ˆ care conexiunea este ˆ ın ınchis˘ a ¸i pachetul nu are flagul synchronize setat), modulul TCP trebuie s˘ trimit˘ s a a ˆ ınapoi un pachet cu flagul reset setat. Ideea este ca, dac˘ nodul curent a c˘zut a a ¸i a fost repornit, pierzˆnd evidenta conexiunilor deschise, s˘ informeze toti s a ¸ a ¸ partenerii de comunicatie care ˆ ¸ ıncearc˘ s˘ continue comunicatia cu el c˘ datele a a ¸ a despre comunicatie au fost pierdute. ¸ Un nod care a primit un pachet cu flagul reset ca r˘spuns la un a pachet TCP pentru o conexiune trebuie s˘ abandoneze fortat conexiunea. a ¸ Aplicatia ce utilizeaz˘ acea conexiune este informat˘, printr-un cod de eroare, ¸ a a la urm˘toarea operatie privind conexiunea. a ¸

c 2008, Radu-Lucian Lup¸a s
Capitolul 10. Internetul 325

Alte situatii care conduc la abandonarea unei conexiuni sunt: ¸ • dep˘¸irea unui num˘r de ˆ as a ıncerc˘ri de trimitere de date f˘r˘ a primi cona aa firmare; • primirea unui pachet ICMP cu tipul destination unreachable. Timpul cˆt emit˘torul ˆ a ¸a ıncearc˘ retrimiterea pachetelor neconfirmate, a pˆn˘ ˆ momentul ˆ care declar˘ leg˘tura c˘zut˘, este de ordinul zecilor a a ın ın a a a a de secunde pˆn˘ la 2–3 minute. Ca urmare, ˆ a a ıntreruperea pe termen scurt a unui cablu de retea nu duce la ˆ ¸ ıntreruperea conexiunilor TCP ce utilizau acel cablu. De asemenea, dac˘ un nod sau o leg˘tur˘ a retelei IP cade, dar a a a ¸ r˘mˆne un drum alternativ ˆ a a ıntre capetele conexiunii TCP, iar nivelul retea ¸ reface tabelele de dirijare pentru a folosi acel drum alternativ ¸i acest lucru se s ˆ ampl˘ suficient de repede pentru ca modulul TCP s˘ nu declare conexiunea ıntˆ a a c˘zut˘, atunci conexiunea TCP continu˘ s˘ functioneze normal, cu pachetele a a a a ¸ IP circulˆnd pe noua rut˘. a a Dac˘, pe o conexiune TCP deschis˘, toate datele vechi au fost trimise a a ¸i confirmate, atunci nu se transmit pachete IP cˆt˘ vreme nu sunt date utile s aa noi de transmis. Ca urmare, dac˘ aplicatiile nu comunic˘ vreme ˆ a ¸ a ındelungat˘ a pe o conexiune TCP deschis˘, c˘derea leg˘turii sau a unuia din capete nu este a a a detectat˘ de cel˘lalt cap˘t decˆt ˆ momentul ˆ care acesta are de transmis a a a a ın ın date. Dac˘ acel cap˘t nu are de transmis date vreme ˆ a a ındelungat˘, de exemplu a cˆteva ore sau chiar zile, conexiunea r˘mˆne deschis˘ din punctul de vedere al a a a a modulului TCP local. Pentru a evita o astfel de situatie, modulul TCP poate ¸ fi instruit — via un apel fcntl() asupra socket-ului corespunz˘tor conexiunii a — s˘ trimit˘ din cˆnd ˆ cˆnd cˆte un pachet f˘r˘ date utile, doar pentru a a a a ın a a aa solicita o confirmare de la cel˘lalt cap˘t. Optiunea aceasta se nume¸te keep a a ¸ s alive (rom. mentine ˆ viata ), de¸i mai degrab˘ ar trebui numit˘ testeaz˘ c˘ ¸ ın ¸˘ s a a a a mai este ˆ viat˘. Utilizarea optiunii keep alive are ¸i un dezavantaj: c˘derea ın ¸a ¸ s a temporar˘ a retelei are ¸anse mai mari s˘ duc˘ la abandonarea conexiunii. a ¸ s a a 10.3.1.6. Identificarea aplicatiei destinatie ¸ ¸ Pentru a identifica aplicatia c˘reia ˆ sunt destinate datele primite, ¸ a ıi conexiunile TCP sunt identificate printr-un cvadruplet format din adresele IP ale celor dou˘ capete ¸i porturile celor dou˘ capete. Porturile sunt numere ˆ a s a ın intervalul 1–65535 utilizate pentru a deosebi conexiunile stabilite ˆ ıntre acelea¸i s adrese IP. Sistemul de operare ¸ine evidenta conexiunilor deschise. Pentru fiecare t ¸ conexiune, sistemul retine adresa IP local˘, portul local, adresa IP a celuilalt ¸ a cap˘t ¸i portul de la cel˘lalt cap˘t. De asemenea, sistemul retine aplicatia a s a a ¸ ¸ care a deschis conexiunea.

c 2008, Radu-Lucian Lup¸a s
326 10.3. Nivelul transport

La primirea unui pachet TCP, sistemul ia adresele surs˘ ¸i destinatie as ¸ din antetul IP ¸i portul surs˘ ¸i destinatie din antetul TCP. Pe baza acestora s as ¸ sistemul identific˘ conexiunea c˘reia ˆ apartine pachetul. De aici sistemul a a ıi ¸ reg˘se¸te pe de o parte informatiile necesare gestion˘rii conexiunii (zone tama s ¸ a pon, numere de secvent˘, etc) ¸i pe de alt˘ parte aplicatia c˘reia ˆ sunt des¸a s a ¸ a ıi tinate datele. 10.3.1.7. Corespondenta ˆ ¸ ıntre functiile socket() ¸i actiunile modul¸ s ¸ ului TCP Functionalitatea modulului TCP este oferit˘ programului utilizator ¸ a prin intermediul functiilor sistem din familia socket(). Functiile socket() ¸i ¸ ¸ s modul lor de utilizare ˆ ıntr-o aplicatie au fost studiate ˆ § 8.1. Aici vom ar˘ta ¸ ın a leg˘tura dintre apelarea de c˘tre o aplicatie a functiilor socket ¸i actiunile a a ¸ ¸ s ¸ modulului TCP de expediere ¸i de receptie a unor pachete. s ¸ Apelul socket(PF INET, SOCK STREAM, 0) are ca efect doar crearea unei structuri de date pentru apelurile ulterioare. Pe partea de server, apelurile bind() ¸i listen() au, de asemenea, ca s efect doar completarea unor informatii ˆ structurile de date. Dac˘ aplicatia ¸ ın a ¸ a apelat direct listen() f˘r˘ a fi apelat ˆ aa ınainte bind(), sistemul (modulul TCP) ˆ aloc˘ un port liber. ıi a La primirea unui pachet de deschidere conexiune (cu flagul synchronize setat) pentru o adres˘ ¸i un num˘r de port pentru care se a¸teapt˘ deas a s a schiderea unei conexiuni (a fost deja apelat listen()), modulul TCP execut˘ schimbul de pachete de deschidere a conexiunii. Dup˘ aceea, modulul a a TCP a¸teapt˘ ca aplicatia s˘ apeleze accept() pentru a-i putea semnaliza s a ¸ a deschiderea unei noi conexiuni. ˆ cazul ˆ care nu se a¸teapt˘ deschiderea In ın s a unei conexiuni, modulul TCP trimite un pachet cu flagul reset. Dac˘, ˆ adresa local˘ dat˘ functiei bind(), s-a specificat constanta a ın a a ¸ a INADDR ANY, este acceptat un pachet de deschidere de conexiune ce specific˘ ca adres˘ destinatie oricare dintre adresele nodului curent. Dac˘ ˆ apelul bind() a ¸ a ın s-a specificat o anumit˘ adres˘ a nodului curent, este acceptat˘ deschiderea a a a conexiunii doar dac˘ adresa destinatie a pachetului de deschidere este adresa a ¸ specificat˘ ˆ apelul bind(). a ın Pe partea de client, apelul connect() este cel care determin˘ trima iterea unui pachet cu flagul synchronize. Functia connect() a¸teapt˘ fie de¸ s a schiderea complet˘ a conexiunii (confirmarea pachetului syn plus un pachet a syn de la server), fie o semnalizare de eroare (un pachet TCP cu flagul reset sau un pachet ICMP). ˆ caz favorabil, functia connect() returneaz˘ 0, ˆ In ¸ a ın caz defavorabil semnalizeaz˘ eroarea survenit˘. a a

c 2008, Radu-Lucian Lup¸a s
Capitolul 10. Internetul 327

10.3.1.8. Controlul fluxului TCP are ¸i rol de control al fluxului, adic˘ de-a ˆ s a ıncetini emit˘torul ˆ ¸a ın cazul ˆ care receptorul nu este capabil s˘ proceseze datele suficient de repede. ın a O metod˘ extrem˘ de control al fluxului este neconfirmarea de c˘tre a a a receptor a octetilor ce nu pot fi procesati. Metoda aceasta are ˆ a dezavan¸ ¸ ıns˘ tajul c˘ determin˘ emit˘torul s˘ retrimit˘ octetii respectivi, generˆnd trafic a a ¸a a a ¸ a inutil. Metoda utilizat˘ de TCP este ca receptorul s˘ semnalizeze emit˘toa a ¸a rului, prin valoarea cˆmpului dimensiune fereastr˘ din antetul TCP, num˘rul a a a de octeti pe care receptorul este capabil s˘-i receptioneze ˆ acel moment. ¸ a ¸ ın Emit˘torul nu va trimite mai multi octeti decˆt dimensiunea ferestrei trimis˘ ¸a ¸ ¸ a a de receptor. Exist˘ o singur˘ exceptie: dac˘ receptorul a semnalizat dimena a ¸ a siunea ferestrei 0, emit˘torul poate trimite un singur octet; aceasta se face ¸a pentru cazul ˆ care receptorul a anuntat o fereastr˘ de dimensiune 0 ¸i apoi ın ¸ a s a anuntat o fereastr˘ mai mare dar pachetul ce anunta m˘rirea ferestrei s-a ¸ a ¸ a pierdut. Pe lˆng˘ mecanismul sus-mentionat, emit˘torul TCP reduce debitul a a ¸ ¸a de date emise ¸i ˆ cazul ˆ care constat˘ pierderi de pachete. Ideea este c˘ s ın ın a a pachetele IP se pot pierde fie ca urmare a erorilor la nivel fizic, fie ca urmare a congestiei nodurilor intermediare. Cu exceptia transmisiei radio, erorile ¸ la nivel fizic sunt rare, astfel ˆ at pierderile de pachete IP se datoreaz˘ ˆ ıncˆ a ın majoritatea cazurilor congestiei nodurilor. 10.3.1.9. Stabilirea time-out-ului pentru retransmiterea pachetelor A¸a cum am v˘zut, pachetele TCP neconfirmate ˆ s a ıntr-un anumit interval de timp sunt retransmise. Valoarea aleas˘ a timpului dup˘ care se face a a retransmiterea influenteaz˘ performantele transferului de date. O valoare prea ¸ a ¸ mic˘ duce la repetarea inutil˘ a unor pachete ce ajung la destinatie ˆ a ˆ a a ¸ ıns˘ ıntrun timp mai lung ¸i, ca urmare, la generarea unui trafic inutil. O valoare prea s mare duce la detectarea cu ˆ arziere a pachetelor pierdute. ıntˆ Modulul TCP ˆ ıncearc˘ s˘ estimeze durata de timp necesar˘ unui a a a pachet emis s˘ ajung˘ la destinatie, s˘ fie procesat ¸i s˘ se ˆ a a ¸ a s a ıntoarc˘ ¸i s˘ se as a receptioneze confirmarea. Acest timp se nume¸te timp dus-ˆ ¸ s ıntors (engl. roundtrip time, RTT ). Timpul dus-ˆ ıntors nu este fix, ci depinde de perechea emit˘tor–receptor considerat˘ ¸i de ˆ arcarea retelei ˆ momentul considerat. ¸a as ınc˘ ¸ ın Modulul TCP estimeaz˘ statistic media ¸i dispersia timpului dus-ˆ a s ıntors pentru fiecare conexiune deschis˘ ¸i fixeaz˘ timpul dup˘ care se retrimit pachetele a s a a neconfirmate la o valoare ceva mai mare decˆt media timpului dus-ˆ a ıntors.

c 2008, Radu-Lucian Lup¸a s
328 10.3. Nivelul transport

10.3.1.10. Algoritmul lui Nagle ¸i optimizarea num˘rului de pachete s a La primirea datelor de la programul aplicatie, prin apelul sistem ¸ send(), modulul TCP poate trimite imediat un pachet sau poate a¸tepta; s a¸teptarea este util˘ dac˘ astfel se pot plasa mai multe date ˆ acela¸i pachet s a a ın s IP. Algoritmul lui Nagle prevede c˘, la primirea unor date de la utilizator a prin send(): • dac˘ nu sunt date trimise ¸i neconfirmate, sau dac˘ datele noi sunt sufia s a cient de mari pentru a umple un pachet, datele se trimit imediat; • altfel, modulul TCP a¸teapt˘ pˆn˘ la primirea confirm˘rii sau expirarea s a a a a timpului de retransmitere, ¸i abia atunci trimite datele primite ˆ s ıntre timp de la aplicatie. ¸ O alt˘ optimizare const˘ ˆ a ˆ arzia cˆteva fractiuni de secund˘ a a ın ıntˆ a ¸ a trimiterea confirm˘rii pentru un pachet TCP primit. Ideea este c˘, dac˘ a a a aplicatia care receptioneaz˘ datele din acel pachet are de trimis date ca r˘spuns ¸ ¸ a a la datele primite, datele ce constituie r˘spunsul s˘ fie trimise ˆ acela¸i pachet a a ın s cu confirmarea datelor primite. 10.3.1.11. Trimiterea datelor speciale (out of band) TCP prevede un mecanism de transmitere, ˆ cadrul fluxului normal ın de date, a unor date cu un marcaj special. Mecanismul este ˆ ıntrucˆtva echivaa lent cu a avea dou˘ fluxuri de date ata¸ate conexiunii, unul pentru datele a s ,,obi¸nuite“ ¸i cel˘lalt pentru date ,,speciale“. Datele speciale poart˘ denus s a a mirea, ˆ terminologia angloamerican˘, out of band data (OOB ). ın a O posibil˘ utilizare este urm˘toarea: presupunem o aplicatie care a a ¸ transfer˘ fi¸iere. Presupunem c˘ emit˘torul trimite mai ˆ ai lungimea fi¸iea s a ¸a ıntˆ s rului ¸i apoi continutul. Dac˘ utilizatorul lanseaz˘ trimiterea unui fi¸ier mare s ¸ a a s (s˘ zicem cˆ¸iva gigaocteti) ¸i apoi se r˘zgˆnde¸te ¸i dore¸te s˘ abandoneze a at ¸ s a a s s s a operatia, partea de emit˘tor a aplicatiei nu poate semnaliza receptorului ˆ ¸ ¸a ¸ ın nici un fel abandonarea transmiterii. Aceasta deoarece octetii transmi¸i sunt ¸ s interpretati de receptor ca fiind continutul fi¸ierului. Aici intervin datele cu ¸ ¸ s marcajul special (out of band ): emit˘torul trimite continutul fi¸ierului ca date ¸a ¸ s normale, iar o eventual˘ semnalizare de abandonare a transferului este trimis˘ a a ca date speciale. Datele speciale se consider˘ c˘ trebuie s˘ fie livrate cˆt mari repede a a a a cu putint˘ aplicatiei destinatie. ˆ terminologia TCP, ele sunt denumite date ¸a ¸ ¸ In urgente (engl. urgent data). Transmiterea lor se face astfel: • datele speciale se plaseaz˘ ˆ a ıntr-un pachet TCP f˘r˘ a fi precedate de date aa normale;

c 2008, Radu-Lucian Lup¸a s
Capitolul 10. Internetul 329

• pachetul respectiv are flagul urgent setat; • cˆmpul pozitie date urgente contine dimensiunea datelor speciale r˘mase a ¸ ¸ a de transmis (ˆ pachetul curent ¸i ˆ urm˘toarele). ın s ın a De principiu un pachet continˆnd date speciale va avea setat ¸i flagul ¸ a s push, care indic˘ faptul c˘ modulul TCP receptor ar trebui s˘ livreze datele a a a c˘tre aplicatia destinatie cˆt mai repede. a ¸ ¸ a

10.3.2. Datagrame nesigure: UDP
Exist˘ aplicatii care se descurc˘ acceptabil cu datagrame nesigure. a ¸ a Pentru acestea, nivelul transport trebuie s˘ rezolve doar problema g˘sirii a a aplicatiei c˘reia ˆ este destinat˘ datagrama. Aceast˘ problem˘ este rezolvat˘ ¸ a ıi a a a a de protocolul UDP. Fiec˘rei aplicatii ce utilizeaz˘ UDP i se acord˘, de c˘tre modulul a ¸ a a a UDP al sistemului de operare local, un port UDP . Un port UDP alocat unei aplicatii nu va fi acordat ¸i altei aplicatii decˆt dup˘ ce este eliberat de prima. ¸ s ¸ a a O datagram˘ UDP poart˘ ca adrese surs˘ ¸i destinatie perechi fora a as ¸ mate din cˆte o adres˘ IP ¸i un num˘r de port. Adresa IP este adresa nodului a a s a pe care ruleaz˘ aplicatia surs˘, respectiv destinatie, iar portul este portul aloa ¸ a ¸ cat de sistem aplicatiei. ¸ O datagram˘ UDP este construit˘ dintr-un pachet IP cu identificaa a torul protocolului UDP ˆ protocol ¸i cu zona de date utile continˆnd un antet ın s ¸ a UDP ¸i datele datagramei UDP. Antelul UDP contine portul surs˘ ¸i pors ¸ a s tul destinatie. Adresele IP surs˘ ¸i destinatie sunt cele plasate ˆ cˆmpurile ¸ as ¸ ın a corespunz˘toare ale pachetului IP. a Deoarece o datagram˘ UDP trebuie s˘ fie plasat˘ ˆ a a a ıntr-un singur pachet IP, dimensiunea datelor utile ale unei datagrame UDP este limitat˘ de a dimensiunea maxim˘ a pachetului IP. a Programul utilizator cere trimiterea unei datagrame UDP prin intermediul apelului sendto() sau sendmsg(). Programul trebuie s˘ specifice a adresa destinatie — adresa IP ¸i portul. Adresa surs˘ este adresa asociat˘ ¸ s a a socket-ului de pe care se emite pachetul. Dac˘ nu s-a asociat ˆ prealabil o a ın adres˘ (prin apelul bind()), sistemul aloc˘ automat un num˘r de port liber. a a a Deoarece, conform protocolului UDP, receptia datagramei trimise nu ¸ este confirmat˘ ˆ nici un fel, functiile sendto() sau sendmsg() nu au cum a ın ¸ s˘ returneze programului apelant informatii despre livrarea pachetului. Dealta ¸ fel, ambele functii se termin˘ (returneaz˘ controlul apelantului) ˆ ¸ a a ınainte ca pachetul s˘ fie efectiv livrat. a Functiile sistem recvfrom() ¸i recvmsg() a¸teapt˘ receptia unei ¸ s s a ¸ datagrame avˆnd ca adres˘ destinatie adresa asociat˘ socket-ului dat ca argua a ¸ a

c 2008, Radu-Lucian Lup¸a s
330 10.3. Nivelul transport

ment. Functia returneaz˘ datele utile din datagram˘ precum ¸i adresa surs˘ ¸ a a s a a datagramei.

10.4. Identificarea nodurilor dup˘ nume: sistemul a DNS
Utilizarea adreselor IP direct de c˘tre utilizatorii umani este dificil˘ a a deoarece: • adresele IP sunt greu de ¸inut minte de c˘tre oameni; t a • adresele IP sunt legate de topologia retelei ¸i se schimb˘ odat˘ cu aceasta; ¸ s a a spre exemplu, dac˘ o firm˘ schimb˘ furnizorul de Internet folosit, adresele a a a statiilor firmei este probabil s˘ se schimbe. ¸ a De fapt, adresele IP sunt similare numerelor de telefon. Ca urmare, este util˘ a o ,,carte de telefon a Internetului“. Serviciul numelor de domeniu — DNS (engl. Domain Name Service) — este un mecanism ce permite identificarea unui nod de retea printr-un nume ¸ u¸or de memorat de c˘tre om ¸i care s˘ fie independent de topologia retelei. s a s a ¸ DNS este construit ca o baz˘ de date ce cuprinde ˆ a ınregistr˘ri ce asoa ciaz˘ unui nume o adres˘ IP. Aceast˘ baz˘ de date este ˆ artit˘ ˆ a a a a ımp˘ ¸ a ıntre mai multe servere de nume, care pot fi interogate de oricine. O aplicatie care ¸ dore¸te s˘ comunice ¸i s˘ foloseasc˘ nume ˆ loc de adrese IP interogheaz˘ s a s a a ın a ˆ ai ni¸te servere de nume, pˆn˘ ce afl˘ adresa IP corespunz˘toare numelui ıntˆ s a a a a dat, dup˘ care lucreaz˘ cu adresa astfel obtinut˘. a a ¸ a Baza de date DNS este stocat˘ distribuit (pe mai multe servere, pena tru a nu avea un server supraaglomerat) ¸i redundant (exist˘ mai multe servere s a capabile s˘ r˘spund˘ la o cerere dat˘). a a a a DNS este proiectat ˆ ideea c˘ informatiile se citesc frecvent ¸i se ın a ¸ s modific˘ rar. Cu ocazia modific˘rilor se admite s˘ existe temporar incoerente a a a ¸ — un utilizator s˘ obtin˘ informatia nou˘ ˆ timp ce altul detine informatia a ¸ a ¸ a ın ¸ ¸ veche.

10.4.1. Numele de domeniu
Numele de domeniu [RFC 1034, 1987] sunt numele ce pot fi date nodurilor ¸i altor obiecte, ˆ cadrul DNS. Un nume de domeniu este compus s ın dintr-un ¸ir de componente. Fiecare component˘ este un ¸ir de caractere; s a s RFC 1034 nu impune restrictii, ˆ a recomand˘ ca fiecare component˘ s˘ fie ¸ ıns˘ a a a format˘ din cel mult 63 de caractere, ce pot fi litere, cifre sau caracterul a minus (-), cu restrictia ca primul caracter s˘ fie liter˘ ¸i ultimul caracter s˘ ¸ a as a

.ro.c 2008. interpretarea este ˆ a aa In ıns˘ diferit˘.).ro. s a t ˆ majoritatea cazurilor.cs. . a Componentele au asociat˘ o ordine ierarhic˘. O organizatie care dobˆnde¸te un a ¸ ¸ a s nume de domeniu poate crea ¸i administra dup˘ voie numele formate prin s a ad˘ugare de componente ierarhic inferioare. este decizia exclusiv˘ a Universit˘¸ii Babe¸-Bolyai. ˆ a a In particular. ¸ Aceast˘ scriere este inspirat˘ din scrierea adreselor po¸tale. din punct de vedere al ierarhiei. Dup˘ fiecare component˘ se scrie un caracter punct (. a • ubbcluj — Universitatea Babe¸-Bolyai Cluj-Napoca.cs.. componentele sunt.ro. a Structurarea numelui ˆ mai multe componente serve¸te la adminın s istrarea ierarhic˘ a spatiului de nume. www. aplicatia va ˆ a a ¸ ıncerca s˘ adauge la nume ¸iruri de componente superioare ierarhic dintr-o list˘ cona s a figurat˘ de administratorul sistemului. Crearea numelui ¸ nessie. Anume. cs. Universitatea Babe¸a s Bolyai din Cluj-Napoca a obtinut numele ubbcluj. a a Scrierea ˆ text a unui nume de domeniu se face scriind componentele. s • cs — Departamentul de Informatic˘ (din engl. ˆ lipsa punctului final. ın ˆ ıncepˆnd cu cea mai de jos. Computer Science). Exemplul 10. ¸ a a s a a .12: ˆ adresa nessie. ¸i terminˆnd cu a s a cea mai de sus. care va fi g˘sit ¸i vor fi returnate informatiile dea s ¸ spre acest nume. numele vid (format din zero componente) se scrie . ˆ a a ın ordine.cs. care ˆ a a s ıncep cu numele destinatarului ¸i se termin˘ cu ¸ara. a • nessie — numele statiei. aplicatiile accept˘ specificarea numelor de In ¸ a domenii f˘r˘ punctul final.13: Presupunem c˘ lista de c˘utare configurat˘ de adminisa a a trator pentru un sistem contine. Radu-Lucian Lup¸a s Capitolul 10. care exist˘ ˆ DNS este considerat ca fiind semnificatia numelui dat de a ın ¸ utilizator.. ˆ In ın ordine descresc˘toare ierarhic: a • ro — Romˆnia. Exemplul 10. De exemplu.cs. ˆ ordine. Primul nume de domeniu.ubbcluj. dac˘ numele nu este terminat cu punct. Internetul 331 nu fie minus.scs.cs va duce la c˘utarea.scs. Literele mari sunt echivalente cu literele mici corespunz˘toare.ubbcluj.ro.ubbcluj.ro. scs. acesta din urm˘ este g˘sit ¸i c˘utarea este ˆ a a s a ıncheiat˘.ro.cs.ubbcluj.ro ¸ ın ¸i ubbcluj.ro. O c˘utare pentru numele www. O c˘utare pentru numele www va duce la c˘utarea numelui s a a www.cs.ubbcluj. a at s O institutie care dore¸te un nume de domeniu trebuie s˘ contacteze ¸ s a institutia care administreaz˘ domeniul p˘rinte ¸i s˘ cear˘ alocarea unui nume.ubbcluj.ro. ¸i s www.ubbcluj.ubbcluj.. a numelor www. astfel cona struit.“ (un caracter punct).ro.

Anume. Cˆmpul valoare a unei ˆ a ınregistr˘ri cu tipul A ¸i clasa IN contine a s ¸ adresa IP a nodului cu numele de domeniu dat. a domeniul abc. Inregistr˘rile ın s ¸ ın a a corespunz˘toare adreselor IP au tipul A (de la address=adres˘) ¸i clasa IN (de a a s la Internet). s pot desemna simultan noduri ˆ retea.4.c 2008. ca exemplu. de¸i organizarea ierarhic˘ a numelor de domeniu a s a seam˘n˘ cu organizarea numelor de fi¸iere ¸i directoare. iar dac˘ firma ABC s. De remarcat c˘. acestea se presupune c˘ sunt ale aceluia¸i calculator sau ale unor calculatoare ce a s furnizeaz˘ servicii echivalente. . Tipul ¸i clasa se utilizeaz˘ pens s a ˆ tru a putea pune ˆ DNS ¸i alte informatii ˆ afar˘ de adrese IP.l. ın ¸ 10. Dac˘ pentru un nume exist˘ o ˆ a a ınregistrare CNAME. fie o tax˘ a s a a a a a a anual˘.ro. Institutia ce a obtinut numele este responsabil˘ de ˆ a ¸ ¸ a ıntretinerea unui ¸ server de nume (vezi § 10. s Este permis s˘ existe mai multe ˆ a ınregistr˘ri pentru acela¸i nume.7. Exemplu ipotetic. ˆ acest caz.4. Structura logic˘ a bazei de date DNS a S˘ ignor˘m deocamdat˘ problemele legate de implementarea DNS.r. DNS permite c˘utarea unei ˆ a ınregistr˘ri pentru care s-au specificat a numele de domeniu.3 ¸i § 10. clasa. valoarea ¸i termenul de valabilitate.4) pentru domeniul ce i-a fost alocat. va ın a schimba furnizorul de Internet. numele ma¸inilor firmei ABC sunt a s legate ˆ acest caz de furnizorul de acces Internet. firma XYNet. a a a DNS se prezint˘ ca un tabel cu cinci coloane: numele de domeniu. nume2 este considerat In numele canonic al acelui obiect. Cineva care obtine prin interogarea DNS as a ¸ mai multe adrese IP pentru un nume dat poate folosi oricare din adrese. ¸i cs.4. tipul CNAME ¸i valoarea nume2 define¸te a s s nume1 ca pseudonim pentru nume2. va fi nevoit˘ s˘-¸i schimbe numele de domeniu a as ale serverelor sale.ro. s Adesea firmele care ofer˘ acces Internet ofer˘ gratuit clientilor nume a a ¸ de domeniu ca subdomenii ale domeniului firmei.example. Radu-Lucian Lup¸a s 332 ˘ 10. posesoarea domeniului xynet. clasa ¸i tipul.l.r. dac˘ au valori diferite.4. nu exist˘ o restrictie a a s s a ¸ similar˘ cu aceea c˘ ˆ a a ıntr-un director nu e permis s˘ aib˘ acela¸i nume un fi¸ier ¸i a a s s s un subdirector. a O list˘ a tipurilor de ˆ a ınregistr˘ri DNS mai des utilizate este dat˘ ˆ a a ın tabelul 10. ceea ce poate duce la pierderea clientilor ce nu afl˘ noul ¸ a nume al site-ului firmei.2. ofer˘ clientului ABC s. Identificarea nodurilor dupa nume: sistemul DNS Alocarea numelui se pl˘te¸te — fie o tax˘ pl˘tit˘ o singur˘ dat˘. O ˆ a ın ınregistrare avˆnd numele nume1. Remarc˘m ˆ mod deosebit tipul CNAME (nume canonic).xynet. a s clas˘ ¸i tip. Din p˘cate. numele ubbcluj. nu este permis s˘ mai existe vreo alt˘ ˆ a a ınregistrare pentru acel nume.ubbcluj.example. a tipul.

trebuie s˘ caute o ˆ a ınregistrare cu numele canonic g˘sit a ¸i avˆnd tipul c˘utat initial. ˆ artirea ˆ domenii de autoritate Imp˘ ¸ ın Multimea numelor de domeniu este ˆ artit˘ ˆ zone. Pentru fiecare ¸ ımp˘ ¸ a ın zon˘ exist˘ unul sau mai multe servere de nume sau server DNS care detin a a ¸ toate ˆ ınregistr˘rile corespunz˘toare numelor din acea zon˘. a a a Privim spatiul de nume ca un arbore ˆ care r˘d˘cina este domeniul ¸ ın a a r˘d˘cin˘ ¸i fiecare nume are ca p˘rinte numele obtinut din el prin ˆ aturarea a a as a ¸ ınl˘ celei mai din stˆnga componente.c 2008. De remarcat c˘ r˘d˘cina a a a a a a zonei face parte din zon˘. Valoarea astfel g˘sit˘ trebuie utilizat˘ ca ¸i cˆnd s a a ¸ a a a s a ar fi fost g˘sit˘ pentru numele original. a Un server care este responsabil de o zon˘ trebuie s˘ detin˘ toate a a ¸ a ˆ ınregistr˘rile corespunz˘toare numelor din zon˘.4.7: Tipuri de ˆ ınregistr˘ri DNS mai des folosite a Mai mult. Radu-Lucian Lup¸a s Capitolul 10. 2003]) numele canonic corespunz˘tor numelui solicitat a numele canonic al nodului cu adresa IP solicitat˘. O aplicatie care caut˘ o ˆ ¸ a ınregistrare de un anumit tip pentru un nume trebuie s˘ caute ¸i o ˆ a s ınregistrare CNAME pentru acel nume. a a 10.5 NS MX numele canonic al serverului de domeniu pentru zona avˆnd ca r˘d˘cin˘ numele solicitat a a a a serverele de po¸t˘ electronic˘ pentru domeniul sa a solicitat.3.4.4.1 Tabelul 10. § 11. a a ¸ ˆ ımpreun˘ cu leg˘turile dintre ele. numele canonic din cˆmpul valoare al unei ˆ a ınregistr˘ri CNAME nu a este permis s˘ apar˘ ca nume de domeniu ˆ alt˘ ˆ a a ın a ınregistrare CNAME. vezi § 10. formeaz˘ un arbore. Dac˘ g˘se¸te o a a s ˆ ınregistrare CNAME. Internetul 333 Tip A AAAA CNAME PTR SOA Valoare adres˘ IPv4 a adres˘ IPv6 a nume de domeniu nume de domeniu date de identificare ale informatiilor ¸ despre zon˘ a nume de domeniu nume de domeniu ¸i s prioritate Observatii ¸ adresa corespunz˘toare numelui solicitat a adresa IPv6 corespunz˘toare numelui solicitat a ([RFC 3596.6 a vezi § 10. O zon˘ este o submultime de nume care. Faptul c˘ un nume care ar a a a a .

un a server de nume trebuie s˘ mai detin˘ ˆ a ¸ a ınregistr˘ri care s˘ permit˘ reg˘sirea a a a a serverelor de nume ale zonelor adiacente — zona imediat superioar˘ ierarhic a ¸i zonele imediat subordonate. serverul va r˘spunde cu ˆ a ınregistrarea sau ˆ ınregistr˘rile care a constituie r˘spunsul la interogare — eventual va spune c˘ nu exist˘ ˆ a a a ınregistr˘ri. Un server poate ¸ine ¸i alte ˆ t s ınregistr˘ri. ˆ afar˘ de ˆ a ın a ınregistr˘rile din a zonele pentru care este responsabil ¸i de ˆ s ınregistr˘rile de leg˘tur˘. ˆ Inregistr˘rile NS ale r˘d˘cinii unei zone ˆ a a a ımpreun˘ cu ˆ a ınregistr˘rile A a ale acelor nume sunt . 1987]. ın Un server de nume a¸teapt˘ cereri prin datagrame UDP trimise pe s a portul 53 ¸i prin conexiuni TCP pe portul 53. Interogarea cuprinde numele de domeniu c˘utat.c 2008. Clientul trimite cererea ˆ ai s ıntˆ ca datagram˘ UDP. Pentru numele r˘d˘cin˘ al fiec˘rei zone trebuie s˘ existe urm˘toarele a a a a a a ˆ ınregistr˘ri: a • Oˆ ınregistrare SOA (Start Of Authority). care contine ni¸te date admin¸ s istrative despre zon˘ (vezi § 10.5). ˆ artite ˆ trei categorii: a ımp˘ ¸ ın ˆ ınregistr˘ri din zonele pentru care este responsabil. Dac˘ r˘spunsul este prea lung pentru a ˆ a a a ıncape ˆ ıntr-o datagram˘ UDP atunci clientul repune ˆ a ıntrebarea printr-o conexiune TCP. dac˘ exist˘ — ¸i a serverelor de nume pentru s a a s zona r˘d˘cin˘. Aceste ˆ a a a ınregistr˘ri se numesc glue records — ˆ a ınregistr˘ri lipici a — deoarece creaz˘ leg˘tura cu zonele ˆ a a ınvecinate. pentru fiecare zon˘ exist˘ de regul˘ ¸a a a a cel putin dou˘ servere responsabile.4. a • Una sau mai multe ˆ ınregistr˘ri NS (Name Server ) care contin numele a ¸ serverelor de nume responsabile de zon˘. a ¸ Pe lˆng˘ ˆ a a ınregistr˘rile despre zonele pentru care este responsabil. a . De principiu. tipul ¸i clasa. a a a 10. Radu-Lucian Lup¸a s 334 ˘ 10. R˘sa s a punsul contine interogarea ¸i un ¸ir de ˆ ¸ s s ınregistr˘ri. a Dac˘ numele din interogare este dintr-o zon˘ pentru care serverul a a este responsabil.ˆ ınregistr˘rile lipici“ ce trebuie ¸inute de un server cu a t privire la zonele vecine. Identificarea nodurilor dupa nume: sistemul DNS apartine zonei nu figureaz˘ ˆ tabela ¸inut˘ de acel server ˆ ¸ a ın t a ınseamn˘ c˘ numele a a respectiv nu exist˘..4. tabelele despre o zon˘ dat˘ ¸ a a a ale serverelor responsabile de acea zon˘ trebuie s˘ fie identice. pot exista ˆ a a a ıns˘ temporar incoerente ˆ ¸ ıntre tabele cu ocazia modific˘rilor unor informatii. ˆ a ınregistr˘ri de leg˘tur˘ ¸i a a as alte ˆ ınregistr˘ri. Mecanismul de interogare a serverelor Protocolul utilizat pentru interogarea serverelor de nume este descris ˆ [RFC 1035.4. a Din motive de tolerant˘ la pene.4. De remarcat c˘ serverele de a a nume nu este obligatoriu s˘ fie ele ˆ a ınsele membre ale zonei.

Sincronizarea serverelor pentru un domeniu Protocolul de interogare DNS prevede posibilitatea de-a cere toate ˆ ınregistr˘rile dintr-o anumit˘ zon˘ ([RFC 1035. cum ar fi a ¸ a gethostbyname(). 1987]. dup˘ care se consider˘ c˘ informatia a a a a ¸ s-ar fi putut modifica ¸i ca urmare ˆ s ınregistrarea este aruncat˘. Serverul r˘spunde cu ˆ a ınregistr˘rile de leg˘tur˘ c˘tre zona c˘utat˘ a a a a a a de client. a a • recursiv. Radu-Lucian Lup¸a s Capitolul 10. Internetul 335 Dac˘ numele c˘utat este din afara zonei de responsabilitate. Serverul interogheaz˘ (el ˆ si) un server pentru zona vecin˘ a ınsu¸ a mai apropiat˘ de zona numelui c˘utat de client. a . a Momentele la care un server slave copiaz˘ datele de pe serverul master a depind de urm˘torii parametri din ˆ a ınregistrarea SOA a zonei: • serial este num˘rul de ordine al datelor. [RFC 1995. sunt configurate s˘ copieze periodic informatiile de pe master. ın ın 10. eventual interogheaz˘ a a a ˆ continuare servere din ˆ ın ınregistr˘rile returnate. a ¸ De notat c˘. ˆ sistemul de opera ın are exist˘ un loc standardizat unde administratorul scrie adresele IP ale unuia a sau mai multor servere de nume. locul este fi¸ieru In s /etc/resolv. exist˘ a a a dou˘ comportamente posibile pentru server: a • iterativ. Inregistr˘rile g˘site sunt plasate ˆ categoria a a a ın treia — alte ˆ ınregistr˘ri.4. iar ˆ Windows este ˆ registry. a C˘utarea adresei corespunz˘toare unui nume se face de c˘tre proa a a gramul utilizator care are de contactat nodul cu numele dat. ¸ ıncˆ a a a a f˘r˘ a mai c˘uta un server responsabil pentru numele cerut de client. denumit master . Interogarea DNS se face de regul˘ prin intermediul unor functii de bibliotec˘. pˆn˘ ce afl˘ r˘spunsul a a a a a ˆ la ˆ ıntrebarea clientului. a Un server recursiv poate fi configurat s˘ retin˘ ˆ a ¸ a ınregistr˘rile astfel a obtinute. mecanismul este invizibil a pentru cineva care face o interogare DNS pentru un nume din zon˘. Clientul urmeaz˘ s˘ interogheze alte servere.conf. ˆ sistemele de tip Unix. astfel ˆ at la o interogare ulterioar˘ s˘ poat˘ r˘spunde direct. atˆt serverul master cˆt ¸i ¸ a a s serverele slave sunt considerate responsabile de zon˘. numite slave.5. O aa a ˆ ınregistrare astfel memorat˘ este ¸inut˘ un timp cel mult egal cu tera t a menul de valabilitate al ˆ ınregistr˘rii. a a a Acest lucru se utilizeaz˘ pentru a putea ˆ a ıntretine u¸or mai multe servere re¸ s sponsabile de o anumit˘ zon˘. Aceste functii de bibliotec˘ trebuie s˘ g˘seasc˘ un prim ¸ a a a a server de nume pe care s˘-l interogheze. Pentru aceasta. Toate ˆ a a ınregistr˘rile privind zona se scriu ˆ a ın baza de date a unuia dintre servere. 1996]). Celelalte servere. ˆ a ıntr-o astfel de configuratie. administratorul zonei trebuie s˘ a a creasc˘ num˘rul serial oridecˆteori modific˘ vreo ˆ a a a a ınregistrare din zon˘.c 2008.

a Exist˘ ¸i un protocol ([RFC 1996.in-addr.34 ˆ a s a ıi corespunde numele 34.226. granitele blocurilor nu coincid cu granitele subdomeniilor lui ¸ ¸ in-addr. ˆ acest caz. . Astfel. ¸i se adaug˘ in-addr. s s De principiu.226. dac˘ firma X are alocat blocul de adrese a 193. corespunde unui bloc de adrese IP alocat unei institutii. un subdomeniu din in-addr.arpa. s ¸ ˆ situatia ˆ care alocarea blocurilor de adrese IP se face dup˘ In ¸ ın a schema CIDR. constructia este urm˘toarea: ¸ a • se creaz˘ domeniul 128/28. ea nu va putea primi ˆ administrare ˆ ın ıntregul domeniu 40.in-addr.193.225.arpa..arpa.arpa.4. Administrarea numelor din in-addr. a a 10.0. deoarece a a g˘sirea serverului ce detine ˆ a ¸ ınregistrarea ar necesita interogarea tuturor serverelor DNS din Internet. ˆ cazul ˆ care nu a reu¸it s˘ contacteze a ın ın s a serverul master.arpa.40. • retry este timpul de a¸teptare dup˘ o ˆ s a ıncercare e¸uat˘ de-a contacta s a serverul master ˆ ınainte de-a ˆ ıncerca din nou. Pentru a putea r˘spunde la ˆ a ıntreb˘ri de tipul cine are o adres˘ IP a a dat˘. cu componentele ˆ orın a a ın dine invers˘. Radu-Lucian Lup¸a s 336 ˘ 10. ın conform [RFC 2317.193. .4. 1996]) prin care serverul master as cere explicit unui server slave s˘ copieze datele despre zon˘. adresei IP 193.193. Pentru aceste nume se pun ˆ DNS ˆ ın ınregistr˘ri cu tipul PTR ¸i avˆnd a s a ca valoare numele de domeniu al nodului respectiv. Pentru exemplul dat.arpa. serverul slave trebuie s˘ nu se mai considere responsabil a de zon˘. se face. este administrat de aceea¸i institutie. C˘utarea numelui dup˘ IP a a DNS nu permite c˘utarea unei ˆ a ınregistr˘ri dup˘ valoare. • expire este timpul dup˘ care.c 2008. subdomeniul corespunz˘tor din dome¸ a niul in-addr. se utilizeaz˘ urm˘torul mecanism: a a a Fiec˘rei adrese IP versiunea 4 i se asociaz˘ un nume de domeniu a a astfel: se scrie adresa ˆ form˘ zecimal˘ cu punct. Identificarea nodurilor dupa nume: sistemul DNS Un slave nu execut˘ copierea dac˘ num˘rul serial curent al master -ului a a a coincide cu num˘rul serial propriu. .arpa. 1998]: numele corespunz˘toare IP-urilor se definesc ca a pseudonime pentru ni¸te nume din domenii create special pentru blocurile s alocate.225.226. a • refresh este timpul dup˘ care un server slave trebuie s˘ interogheze a a serverul master pentru a vedea dac˘ s-a modificat vreo ˆ a ınregistrare.0.6.40. Interogarea ¸i adminiss trarea acestor nume de domeniu se fac ˆ ıntocmai ca ¸i pentru numele obi¸nuite. De exemplu. deoarece acesta contine ¸i alte adrese decˆte cele ¸ s a ale firmei X.128/28. asociat blocului a .arpa..in-addr.

fiec˘rei adrese IPv6 i se asociaz˘ un nume ˆ ın a a ın domeniul ip6. a • apoi A trimite pachetul IP nodului B.in-addr.a. ceea ce.0. Pentru adresele IPv6 se folose¸te un mecanism asem˘n˘tor.in-addr.0.40.5.0. a c˘rui administrare este delegat˘ firmei X.0. pentru IEEE 802).3. definit s a a ˆ [RFC 3596. ˆ cadrul a ın aceleia¸i retele de nivel inferior.193.1. Anume. Exemplul 10.arpa. . din punctul de vedere al unei retele Internet In ¸ este o leg˘tur˘ direct˘.2.arpa 10.9.arpa .0.0. pˆn˘ la a a 143.128/28.0.0.arpa. ip6. Internetul 337 193.1.193. numele de domeniu asociat este b.arpa.0.0. a a • numele de domeniu de la 128.2.1.4.40.c 2008. Radu-Lucian Lup¸a s Capitolul 10.226. se face astfel: s ¸ • mai ˆ ai.in-addr.14: Pentru adresa 4321:0:1:2:3:4:567:89ab.3.0. se definesc ca pseudonime (CNAME ) pentru numele de la 128. este de fapt o leg˘tur˘ ˆ a a a a a ıntre dou˘ noduri ˆ a ıntr-o retea ¸ de alt tip.0. ¸ Transmiterea unui pachet IP de la un nod A c˘tre un nod B.226.5. nodul A determin˘ adresa. a a a • Ordinea ierarhic˘ a componentelor astfel obtinute este aceea ˆ care coma ¸ ın ponentele corespunz˘toare bitilor mai semnificativi din adresa IP sunt a ¸ superioare ierarhic componentelor corespunz˘toare bitilor mai putin sema ¸ ¸ nificativi. Numele se construie¸te astfel: s • Se iau grupuri de cˆtre 4 biti din adresa IPv6 ¸i se scrie cifra hexa corea ¸ s spunz˘toare ca o component˘ separat˘.0.40. a nodului B. Leg˘turile directe ˆ a ıntre nodurile IP 10.4.128/28. sub form˘ de date utile ˆ cadrul a ın unui pachet al retelei de nivel inferior.0. pˆn˘ la a a 143. ˆ cadrul retelei de nivel inferior ıntˆ a ın ¸ (adic˘ adresa MAC.arpa.6.40.193.128/28.40.226.226. Rezolvarea adresei — ARP ˆ multe cazuri. 2003]. O astfel de retea joac˘ rolul nivelului ¸ ¸ a leg˘turii de date ˆ contextul protocolului Internet ¸i ca urmare o vom numi a ın s aici retea de nivel inferior.0.193. pachet destinat adresei g˘site ¸ a anterior.0. de exemplu o retea IEEE 802.226.0.8.7.5.in-addr.

Mecanismul ARP este utilizat de asemnea la configurarea adresei unei interfete de retea ca verificare c˘ adresa configurat˘ este unic˘ ˆ subretea. Radu-Lucian Lup¸a s 338 ˘ 10. • La un astfel de pachet r˘spunde doar nodul cu adresa IP specificat˘ ˆ a a ın pachet — adic˘ doar nodul B ˆ cazul de fat˘. Dac˘ cererea nu prime¸te s a a s r˘spuns este probabil ca adresa s˘ fie unic˘ ¸i ca urmare sistemul o poate a a a s accepta ca adres˘ proprie. caz ˆ care sistemul tip˘re¸te un mesaj de avertisment a ın a s ¸i eventual refuz˘ configurarea adresei respective. .c 2008. sistemul emite mai ˆ ai o cerere ARP pentru adresa ce urmeaz˘ a ¸a ıntˆ a fi setat˘.eu am adresa IP cutare ¸i am adresa MAC cutare“. Trimiterea. astfel ˆ at. ˆ s a ınseamn˘ c˘ exist˘ mai multe noduri c˘rora a a a a li s-a dat din gre¸eal˘ aceea¸i adres˘ IP. mecanismul ARP este invocat doar o singur˘ dat˘. pe sistemele de tip UNIX. a ¸ nodul A p˘streaz˘ corespondenta ˆ memorie un anumit timp (de ordinul a a ¸ ın minutelor). a Informatiile despre asocierile IP → MAC cunoscute nodului curent ¸ se determin˘.. Pachetul de r˘spuns este a ın ¸a a adresat direct lui A (prin adresa MAC a lui A recuperat˘ din interogare) a ¸i contine adresa IP ¸i adresa MAC ale lui B. Dac˘ cererea prime¸te r˘spuns ˆ a a s a ınseamn˘ c˘ mai exist˘ un nod ce a a a are adresa respectiv˘. a unei cereri ARP c˘tre o statie se poate face cu ajutorul ın a a ¸ comenzii arping. dac˘ nodurile A ¸i B schimb˘ mai multe pachete ˆ ıncˆ a s a ın timp scurt. protocol de determinare a adresei ). a ˆ vedera test˘rii. s Dup˘ determinarea corespondentei IP → MAC prin mecanismul ARP. Acest pachet este un fel de ˆ ¸ a ıntrebare . Legaturile directe ˆ ıntre nodurile IP Determinarea adresei MAC a nodului B se face cu ajutorul unui mecanism numit ARP (engl. Mecanismul functioneaz˘ astfel: ¸ a • A trimite ˆ reteaua de nivel inferior un pachet de difuziune (broadcast) ın ¸ continˆnd adresa IP a lui B.5. ˆ aceast˘ situatie A ar trebui s˘ s a s a In a ¸ a semnalizeze situatia: ¸ • printr-un pachet ICMP cu tipul destination unreachable destinat sursei pachetului destinat lui B. a a Dac˘ nodul A prime¸te mai multe r˘spunsuri ARP cu adrese MAC a s a diferite pentru aceea¸i adres˘ IP. ¸i s • printr-un mesaj afi¸at pe ecran ¸i ˆ s s ınregistrat ˆ fi¸ierele jurnal ale sisın s temului de operare.cine are adresa IP cutare?“. cu ajutorul comenzii arp. dac˘ administratorul configureaz˘ o anumit˘ adres˘ IP pentru o a a a a interfat˘. ¸ ¸ a a a ın ¸ Mai exact. Address Resolution Protocol. rom.. Pachetul are semnificatia s ¸ s ¸ .

servere a ¸ at ¸ DNS) prin interog˘ri ˆ retea.255). Presupunem ˆ continuare s a ın c˘ nodul client este conectat la o singur˘ retea de tip IEEE 802. unde parametrii trebuie configurati de fiecare dat˘ ¸ ın ¸ a ˆ functie de reteaua la care este conectat. ¸ • cum determin˘ serverul parametri clientului. Configurarea automat˘ a statiilor — DHCP a ¸ Sunt situatii ˆ care este util ca un nod s˘-¸i determine propria adres˘ ¸ ın as a IP. anume portul ¸ a 67. a a ¸ s Exist˘ trei protocoale ce au fost utilizate de-a lungul timpului pentru a determinarea parametrilor de retea: RARP. Vom studia ˆ continuare: ¸ ın • cum se transmit cererea ¸i r˘spunsul DHCP. celelalte dou˘ nemaifiind utilizate ˆ prezent. a Transmiterea cererii ¸i a r˘spunsului DHCP. numele propriu. Clientul DHCP trimite o cerere. Situatii ˆ care acest a ¸ ın lucru este util sunt: • pentru un calculator f˘r˘ harddisc.0. Adresa IP surs˘ este 0. iar portul a destinatie este portul standard pe care ascult˘ serverul DHCP. Un nod care dore¸te s˘-¸i determine parametrii de retea (adresa IP s as ¸ proprie. default gateway-uri.6.c 2008. Internetul 339 10. default gateway.0. ˆ loc ca ace¸ti parametri s˘ fie stocati ˆ a ın ¸ ın s a ¸ ıntr-o memorie nevolatil˘ (disc sau memorie flash) a nodului. Pachetul IP este ˆ a ıncapsulat ˆ ıntr-un pachet Ethernet destinat adresei de broadcast (FF:FF:FF:FF:FF:FF) ¸i purtˆnd ca adres˘ surs˘ adresa pl˘cii s a a a a de retea locale. BOOTP ¸i DHCP. Radu-Lucian Lup¸a s Capitolul 10. la care r˘spunde s a un server DHCP stabilit pentru reteaua respectiv˘. ˆ ımpreun˘ cu alti cˆ¸iva parametri (masca de retea. ˆ conditiile ˆ care mods a ın ¸ ın ulul IP al clientului nu este configurat ¸i ca urmare nu este complet s functional. Vom studia ¸ s mai ˆ detaliu protocolul DHCP.255. R˘spunsul contine parametrii ¸ a a ¸ solicitati. a a ¸ Cererea DHCP este transmis˘ ca un pachet UDP. aa • pentru un laptop. masca de retea. adresele serverelor ¸ DNS) se nume¸te client DHCP. ın ¸ ¸ •ˆ ıntr-o retea mare ˆ care este de dorit ca parametrii de retea ai statiilor ¸ ın ¸ ¸ s˘ poat˘ fi schimbati u¸or de pe un calculator central. ın a ın De notat ˆ a c˘ protocolul DHCP este conceput ca o extensie a protocolului ıns˘ a BOOTP. Adresa IP destinatie a ¸ a pachetului este adresa de broadcast local˘ (255.255. PDA sau alt dispozitiv mobil. Serverul DHCP trebuie s˘ fie ˆ aceea¸i subretea cu clientul ¸ a ın s ¸ .0 (valoarea standard pentru adres˘ necunosa a cut˘). care este mutat frecvent dintr-o retea ˆ alta.

dac˘ clientul este scos din retea f˘r˘ a a ¸ aa . s a R˘spunsul DHCP este plasat la rˆndul lui ˆ a a ıntr-un pachet UDP purtˆnd ca adres˘ surs˘ adresa serverului DHCP ¸i ca adres˘ destinatie adresa a a a s a ¸ alocat˘ clientului DHCP. Asocierea IP → MAC pentru transmiterea pachetului de c˘tre server nu se face prin mecanismul a ARP (care ar e¸ua deoarece clientul DHCP nu poate ˆ a r˘spunde la cererea s ınc˘ a ARP) ci este setat˘ de c˘tre serverul DHCP prin intermediul unui apel sistem. Parametrii comuni sunt setati de administratorul serverului DHCP ¸ ˆ ıntr-un fi¸ier de configurare al serverului. ˆ primul caz administratorul trebuie s˘ scrie ˆ In a ıntrun fi¸ier de configurare al serverului toate adresele MAC ale pl˘cilor de s a retea ¸i adresele IP corespunz˘toare. Atribuirea adreselor pe perioad˘ determinat˘ are dou˘ avantaje (fat˘ a a a ¸a de atribuirea pe durat˘ nedeterminat˘): a a • la alocarea dinamic˘ a adreselor. Serverul p˘streaz˘ corespondenta dintre adresele MAC a a a ¸ ale clientilor ¸i adresele IP ce le-au fost alocate. Radu-Lucian Lup¸a s 340 ˘ Configurarea automata a statiilor — DHCP ¸ (sau s˘ existe ˆ aceea¸i subretea un server proxy DHCP care s˘ preia cererea a ın s ¸ a clientului ¸i s-o retrimit˘ serverului). aa Alocare dinamic˘: Serverul dispune de o multime de adrese pe care le a ¸ aloc˘ nodurilor. pe serverul DHCP ¸ s a In se scriu numele statiilor ¸i adresele corespunz˘toare iar pe fiecare statie ¸ s a ¸ se seteaz˘ numele statiei (a doua solutie nu este aplicabil˘ pe calculaa ¸ ¸ a toare f˘r˘ harddisc). gateway¸ ¸ uri. cu portul destinatie 68. un server DHCP trebuie s˘ aib˘ dou˘ categorii de date: ¸ a a a a parametrii comuni tuturor nodurilor din subretea (masca de retea. clientul nu mai are voie s˘ a a utilizeze adresa. Nodul client este identificat prin adresa MAC sau prin nume. Adresele se atribuie de regul˘ pe o durat˘ determinat˘.c 2008. Pentru fiecare subretea a ¸ pentru care actioneaz˘. Perioada de a a a alocare poate fi prelungit˘ la solicitarea clientului printr-o cerere DHCP de a prelungire. Dup˘ expirarea perioadei de alocare. s Pentru adresele IP ale nodurilor din retea exist˘ dou˘ strategii ce pot ¸ a a fi folosite: Alocare manual˘: Adresa fiec˘rui nod este fixat˘ manual de c˘tre ada a a a ministratorul serverului DHCP. a a Determinarea parametrilor de c˘tre server. servere DNS) ¸i parametrii specifici fiec˘rui nod ˆ parte (adresa IP a s a ın nodului). Adresele alocate pot ¸ s fi eliberate la cererea explicit˘ a clientului sau la expirarea perioadei de a alocare (vezi mai jos). Pachetul este ˆ a ¸ ıncapsulat ˆ ıntrun pachet Ethernet destinat adresei MAC a clientului. ˆ al doilea caz.

Configurarea unui filtru de pachete const˘ ˆ stabilirea unui ansamblu a ın de reguli de filtrare. • dac˘ este necesar˘ modificarea strategiei de atribuire a adreselor se pot a a opera modific˘rile necesare ˆ configurarea serverului DHCP iar clientii a ın ¸ vor primi noile adrese cu ocazia ˆ ıncerc˘rii de prelungire a atribuirii adrea sei.c 2008. ın O regul˘ de filtrare este o pereche format˘ dintr-o conditie ¸i o actiune. acesta aplic˘ prima regul˘. Aplicarea regulii ˆ ¸ a ın a ınseamn˘ executarea actiunii a ¸ specificate de regul˘. • FORWARD aplicat pachetelor generate de alt nod ¸i avˆnd ca destinatie s a ¸ alt nod (pentru care nodul curent actioneaz˘ ca ruter). 10. Aceste procedee se aplic˘ ˆ ın a ındeosebi ˆ retelele ın ¸ interne ale unor institutii. ˆ ¸ ın functie de anumite reguli. Scopul unui filtru de pachete este de-a interzice anumite actiuni ˆ ¸ ın retea. a a ¸ s ¸ Regulile sunt grupate ˆ ¸iruri numite lanturi. cu mentiunea c˘ facilit˘¸ile de baz˘ se reg˘sesc ¸ a at a a ˆ toate sistemele. Radu-Lucian Lup¸a s Capitolul 10. Situatii speciale ˆ dirijarea pachetelor ¸ ın Vom studia ˆ paragraful de fat˘ anumite procedee mai deosebite utiın ¸a lizate ˆ dirijarerea pachetelor.7. firewall ) este un nod IP care nu transmite toate pachetele conform regulilor normale de functionare ale unui nod IP ci. • OUTPUT aplicat pachetelor generate de nodul curent. Filtre de pachete (firewall) Un filtru de pachete (engl. adresa este eliberat˘ automat la expirarea pea rioadei de atribuire. Internetul 341 a elibera explicit adresa. ¸ a Pentru fiecare pachet ajuns la modulul IP. • DROP — pachetul este ignorat (ca ¸i cˆnd nu ar fi fost primit). Exist˘ trei lanturi predefinite: ın s ¸ a ¸ • INPUT aplicat pachetelor destinate nodului curent. pentru care pachetul ˆ ¸ a ındepline¸te s conditia specificat˘ ˆ regul˘. s a . din a a lantul corespunz˘tor traseului pachetului.1. a Principalele actiuni ce pot fi specificate sunt: ¸ • ACCEPT — pachetul este livrat normal. ¸ 10.7. ˆ special pentru a contracara anumite ˆ ¸ ın ıncerc˘ri de spargere a unui a calculator. ignor˘ complet sau trimite pachete ICMP de eroare ¸ a pentru anumite pachete. Prezent˘m ˆ continuare posibilit˘¸ile oferite de mecanisa ın at mul iptables din sistemul Linux.

nu ar trebui s˘ . Este adev˘rat. s • flag-uri ale diverselor protocoale. • adresa MAC surs˘ sau destinatie (pentru pachete ce intr˘. s˘ ¸in˘ a a a t a evident˘ st˘rii conexiunii. ¸ a • protocolul (TCP. Conditiile specificate ˆ ¸ ıntr-o regul˘ pot privi: a • interfata prin care a intrat pachetul (cu exceptia lantului OUTPUT ). deasupra nivelului retea. • dimensiunea pachetului. din care nu actioneaz˘ asupra pachetelor ˆ tranzit decˆt mod¸ a ın a ulul retea ¸i modulele inferioare. a ¸ ¸ • tipul ¸i subtipul ICMP (pentru pachete ICMP). apartine unei conexiuni deschise sau este un paa ¸ chet invalid. modulele de retea nu ar trebui s˘ interpreteze protocolul TCP (an¸ a tetele TCP ar trebui considerate pur ¸i simplu date utile). eventual. pachetele ce au adres˘ ce nu ˆ a ıncepe cu acel prefix). ¸ ¸ ¸ • interfat˘ prin care ar ie¸i pachetul (cu exceptia lantului INPUT ). Ca urmare. a ¸ a prin interfete ce au conceptul de adres˘ MAC). Situatii speciale ˆ dirijarea pachetelor ¸ ın • REJECT — se trimite ˆ ınapoi un pachet semnalˆnd o eroare — implicit a ICMP destination unreachable. ¸ s a ınt a Regulile de filtrare se configureaz˘ de c˘tre administratorul sistemua a lui. nodul poate stabili dac˘ un pachet ¸a a a deschide o conexiune nou˘. regulile aplicate de nucleul sistemului de operare se examineaz˘ ¸i se modific˘ cu ajutorul unei comenzi — iptables. ¸a s ¸ ¸ • adresa IP surs˘ ¸i adresa IP destinatie (se poate specifica ¸i un prefix de as ¸ s retea. respectiv ies. Ca urmare. acest lucru ˆ a ınseamn˘ o ˆ alcare a principiului separ˘rii a ınc˘ a nivelelor: TCP este un protocol de nivel transport. ICMP). a ıi ¸ Un nod (intermediar) prin care trec toate pachetele asociate unei conexiuni TCP poate.ˆ ¸eleag˘“ protocolul TCP. nodurile s intermediare. • starea conexiunii TCP c˘reia ˆ apartine pachetul (vezi mai jos).c 2008. fiind ˆ arcate dintr-un fi¸ier text. • portul surs˘ sau destinatie (pentru protocoale care au notiunea de port). Radu-Lucian Lup¸a s 342 10. ¸ Ca urmare. UDP.7. ınc˘ s . conditia fiind satisf˘cut˘ de pachetele ce au adres˘ ˆ ¸ ¸ a a a ıncepˆnd cu a acel prefix sau. examinˆnd antetul TCP al fiec˘rui pachet. Ca ¸i ˆ cazul parametrilor IP: s ın • Pe sistemele Linux. a s a Regulile valabile la initializarea sistemului sunt configurate de script¸ urile invocate la pornire..

pachete ce intr˘ dinspre o anumit˘ subretea au ca surs˘ o adres˘ ce a a ¸ a a nu face parte din subreteaua respectiv˘ ¸i nici din alte subretele ¸ as ¸ din directia respectiv˘. . Aici intr˘: a a . Solutia uzual˘ este: ¸ a . Internetul 343 • Pe sistemele Windows exist˘ o interfat˘ grafic˘ cu care se configureaz˘ a ¸a a a simultan regulile curente aplicate de nucleu ¸i ˆ acela¸i timp acele reguli s ın s sunt scrise ˆ registry pentru a fi ˆ arcate la repornirea sistemului.pentru conexiun TCP. se permit pachetele asociate unei conexiuni deja deschise. ¸ a • S˘ fie interzise conexiunile din afara retelei locale c˘tre servicii care sunt a ¸ a oferite doar pentru reteaua local˘. s Prima metod˘ este mai simpl˘ ˆ a necesit˘ lista complet˘ a serviciilor a a ıns˘ a a ce trebuie blocate.se permit conexiunile c˘tre serviciile ce se doresc a fi accesibile din a afar˘ (web. De exemplu. se permit paa chetele destinate serviciilor publice ¸i se interzic toate celelalte s pachete. .pachete ce au ca surs˘ o adres˘ de broadcast (clasa D) sau de clas˘ a a a E. a ¸ Pentru aceasta exist˘ dou˘ strategii: a a . accesul la un share ¸ a Windows este adesea de dorit s˘ nu fie posibil din afara retelei locale. ın ınc˘ Prin regulile de filtrare se urm˘resc de obicei urm˘toarele lucruri: a a • S˘ fie blocate pachetele pentru care se poate determina c˘ adresa surs˘ a a a a fost falsificat˘. Radu-Lucian Lup¸a s Capitolul 10.pachete ce intr˘ pe interfat˘ c˘tre Internet ¸i au ca adres˘ surs˘ o a ¸a a s a a adres˘ din reteaua intern˘.c 2008. ˆ a este dificil a ıns˘ de permis intrarea pachetelor de r˘spuns pentru conexiunile initiate din a ¸ interior. Aceasta se ˆ ampl˘ deoarece o conexiune initiat˘ din interior ıntˆ a ¸ a are alocat un port local cu num˘r imprevizibil. se permit conexiunile initiate din a ¸ interior ¸i se interzic toate celelalte pachete. A doua metod˘ este mai sigur˘.se blocheaz˘ pachetele destinate porturilor pe care a¸teapt˘ conea s a xiuni serviciile respective. mail. eventual ssh). ca urmare nu se poate a stabili o regul˘ simpl˘ pentru permiterea intr˘rii pachetelor destinate a a a acelui port. se permit pachetele c˘tre exterior. . a ¸ a . ˆ a a ıntrucˆt serviciile a sunt inaccesibile dac˘ nu s-a specificat explicit contrariul.

226.225. se int ¸ terzic pachetele destinate unor servicii private. cum ar fi: a .129 c˘tre subreteaua loa s ¸ a ¸ cal˘. a # blocare spoofing detectabil si alte pachete dubioase iptables -A FORWARD -i eth0 -s 193. s Traficul ˆ interiorul retelei locale ˆ permitem f˘r˘ restrictii.128/28 -j DROP iptables -A FORWARD -i eth0 -s 193.40. ın ¸ ıl aa ¸ Bloc˘m toate ˆ a ıncerc˘rile de spoofing detectabile.226.128/28. unde nu se poate ¸ine evidenta unor conexiuni.0.pachete destinate adresei de broadcast a retelei locale sau adresei ¸ de broadcast generale (255.0. s • S˘ fie interzise diferite alte pachete .dubioase“. se permit pachetele provenite de la serviciile ce se dore¸te a fi accesate ˆ exterior (serverele DNS sau NTP utilizate) s ın ¸i se interzic toate celelalte pachete.255).40.15: Fie un ruter avˆnd ˆ spate o retea intern˘ avˆnd adrese cu a ın ¸ a a prefixul 193. iar cererile DNS sunt emise de pe un port UDP mai mare sau egal cu 1024 ¸i sunt adresate portului DNS 53 de pe un nod extern. Cererile NTP provin de pe portul UDP a a 123 al ruterului ¸i sunt adresate portului UDP 123 al unui nod din s exterior.255. a a Exemplul 10.7. acestea furnizeaz˘ serviciile respective pentru reteaua local˘ a a ¸ a • permitem cererile emise de serverele DNS ¸i NTP de pe ruter. din exterior dorim s˘ nu se poat˘ deschide alte conexiuni a a a decˆt c˘tre serverul http ¸i https de pe 193.. Aces¸ a a s tea le furniz˘m astfel: a • pe ruter instal˘m un server DNS ¸i un server NTP. . s Pentru diagnosticarea function˘rii retelei vom mai permite trecerea ¸ a ¸ pachetelor ICMP ping.225. accesibile din reteaua a s ¸ local˘.226.130 ¸i c˘tre serverele ssh de a a s s a pe toate ma¸inile din reteaua local˘. Radu-Lucian Lup¸a s 344 10.0/8 -j DROP .226.0.40. precum ¸i s s r˘spunsurile corespunz˘toare.40. se permit pachetele spre exterior.255.pentru UDP.20 ¸ c˘tre exterior ¸i interfata eth1 cu adresa 193.0. a Din reteaua local˘ dorim s˘ se poat˘ deschide orice fel de conexiuni ¸ a a a TCP c˘tre exterior. destination unreachable ¸i time exceeded. s ¸ a Din reteaua local˘ dorim s˘ putem accesa servicii DNS ¸i NTP.20 -j DROP iptables -A FORWARD -i eth0 -s 127.0.pachete avˆnd ca adres˘ surs˘ sau destinatie adresa ma¸inii locale a a a ¸ s (127. pong. Ruterul are interfata eth0 cu adresa 193.1) sau o adres˘ privat˘. Situatii speciale ˆ dirijarea pachetelor ¸ ın .c 2008.0.

40.0/3 -j DROP iptables -A INPUT -i eth0 -s 10.0.0.226.226.128/28 -j DROP iptables -A FORWARD -d 255.128/28 -j DROP iptables -A INPUT -d 255.0.130 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -d 193.c 2008.255.255.0/8 -j DROP iptables -A INPUT -i eth0 -s 0.0.0.20 -j DROP iptables -A INPUT -i eth0 -s 127.0/12 -j DROP iptables -A INPUT -i eth0 -s 192.130 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -d 193.0.226.16.0/16 -j DROP iptables -A INPUT -i eth1 -s ! 193. Radu-Lucian Lup¸a s Capitolul 10.0.0/8 -j DROP iptables -A INPUT -i eth0 -s 172.0/8 -j DROP iptables -A FORWARD -i eth0 -s 224.40.0/3 -j DROP iptables -A FORWARD -i eth0 -s 10.226.0.255 -j DROP iptables -A FORWARD -i eth0 -d 193.226.226.0.225.128/28 -j DROP iptables -A INPUT -i eth0 -s 193.30.0/8 -j DROP iptables -A INPUT -i eth0 -s 224. Internetul 345 iptables -A FORWARD -i eth0 -s 0.0.0.255.255.0.40.40.255 -j DROP iptables -A INPUT -i eth0 -d 193.40.168.168.0/8 -j DROP iptables -A FORWARD -i eth0 -s 172.40.128/28 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT iptables -A INPUT -p icmp --icmp-type destination-unreachable \ -j ACCEPT iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT iptables -A FORWARD -p icmp --icmp-type echo-request -j ACCEPT iptables -A FORWARD -p icmp --icmp-type echo-reply -j ACCEPT iptables -A FORWARD -p icmp --icmp-type destination-unreachable \ -j ACCEPT iptables -A FORWARD -p icmp --icmp-type time-exceeded -j ACCEPT iptables -A INPUT -j DROP iptables -A FORWARD -j DROP .0.0/12 -j DROP iptables -A FORWARD -i eth0 -s 192.40.0.0.16.40.0.0.159 -j DROP # celelalte restrictii iptables -A INPUT -i eth1 -j ACCEPT iptables -A FORWARD -i eth1 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p udp --dport 1-1023 -j DROP iptables -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT iptables -A INPUT -i eth0 -p udp --sport 123 --dport 123 -j ACCEPT iptables -A FORWARD -d 193.226.0/16 -j DROP iptables -A FORWARD -i eth1 -s ! 193.30.226.159 -j DROP iptables -A INPUT -i eth0 -s 193.

128/28 Noduri private 192. este necesar ca adresele din Internet-ul .0/24 Noduri private 192. O institutie A a a ın ¸ are o retea proprie de calculatoare. Din aceast˘ retea proprie. adresele din reteaua local˘ s˘ fie unice ¸i s˘ nu existe suprapuneri a ¸ a a s a ˆ ıntre adresele din Internet ¸i adresele din reteaua local˘.40. Radu-Lucian Lup¸a s 346 10. a ˆ situatia descris˘.226. a c˘rei ¸ a ¸ a a calculatoare nu pot comunica direct cu calculatoarele din Internet. conectat˘ sau nu la Internet. a a s s Un pachet a c˘rui adres˘ destinatie este o adres˘ privat˘ este dirijat a a ¸ a a de c˘tre rutere astfel: a • dac˘ ruterul face parte dintr-o retea local˘ ˆ care exist˘ acea adres˘.. a ¸ a ın a a . Situatii speciale ˆ dirijarea pachetelor ¸ ın 10.7: Dou˘ retele locale avˆnd fiecare acelea¸i adrese private pentru o parte a ¸ a s din calculatoare. o parte dintre ¸ a ¸ calculatoare — s˘ le numim publice — trebuie s˘ comunice nerestrictionat cu a a ¸ alte calculatoare din Internet.public“ In ¸ a s˘ fie unice.c 2008.public“ Furnizor Internet Noduri publice 193. ¸ a Internet-ul .1.1. Retele private ¸ O retea privat˘ este o retea.7.7. de exemplu de cele ale institutiei B din figur˘.0/24 Noduri publice 193. ˆ general.0.7. O utilizare tipic˘ este cea prezentat˘ ˆ figura 10.. o adres˘ trebuie s˘ fie unic˘ doar ˆ multimea nodurilor ın a a a ın ¸ cu care un anumit nod ar putea dori s˘ comunice. a a ın Adresele calculatoarelor private pot fi refolosite de c˘tre calculatoare private a din alte astfel de retele interne. ¸ ¸ a De fapt. Calculatoarele private nu este necesar s˘ aib˘ adrese unice ˆ Internet. ˆ vreme ce restul calculatoarelor — le vom ın numi private — este acceptabil s˘ poat˘ comunica doar cu alte calculatoare a a din reteaua intern˘.0/24 Reteaua institutiei B ¸ ¸ Reteaua institutiei A ¸ ¸ Figura 10.168.168.2. Cerinta din urm˘ s ¸ a ¸ a este determinat˘ de cerinta ca nodurile cu adrese publice din reteaua proprie a ¸ ¸ s˘ poat˘ comunica ¸i cu nodurile private ¸i cu nodurile din Internet.225.

1.0/8. privat˘. iar ¸ serverul S vom presupune c˘ accept˘ conexiunea. De cele mai multe ori. Deoarece adresa clientului nu este unic˘ la a a nivelul Internet-ului (ci doar la nivelul propriei retele interne). Pachetul ajunge la destinatie. Serverul S a a ın prime¸te pachetul ca provenind de la G ¸i ca urmare r˘spunde cu un pachet s s a (de acceptarea conexiunii) destinat lui G. m˘tor: In a a a ın ¸ a avˆnd adres˘ public˘ ¸i prin care s˘ tranziteze toate pachetele de la C c˘tre a a as a a S (vezi fig. Serverul S trimite ˆ a a ınapoi un pachet IP avˆnd ca adres˘ surs˘ adresa proprie S ¸i ca adres˘ destinatie a a a s a ¸ adresa.c 2008.0/12 ¸i a ın ¸ s 192. din urm˘torul motiv: Un calculator C cu a adres˘ privat˘ care dore¸te s˘ deschid˘ o conexiune c˘tre un calculator S din a a s a a a Internet trimite un pachet IP avˆnd ca adres˘ surs˘ adresa proprie (privat˘) C.2. ruter-ul declar˘ pachetul nelivrabil. Radu-Lucian Lup¸a s Capitolul 10. a ¸ 10. a a a a ca adres˘ destinatie adresa serverului S (adres˘ care este public˘) ¸i continˆnd a ¸ a a s ¸ a o cerere de deschidere de conexiune TCP. punˆnd adresa lui C ˆ locul propriei adrese. ˆ acel moment. a • altfel. a Translatia adresei surs˘ rezolv˘ problema de mai sus ˆ modul ur¸ a a ın ˆ primul rˆnd. a pachetul de r˘spuns ajunge la G.0. Translatia adreselor (NAT) ¸ Translatia adreselor este un mecanism prin care un ruter modific˘ ¸ a adresa surs˘ sau adresa destinatie a unor pachete. Un pachet provenind de la C c˘tre S este modificat de a c˘tre G. urm˘toarele blocuri de adrese IP sunt s a ın a alocate pentru astfel de utiliz˘ri ˆ retele private: 10.1. acest lucru nu este posibil. Internetul 347 pachetul este dirijat c˘tre unicul nod din reteaua local˘ purtˆnd adresa a ¸ a a respectiv˘. 10. pentru a putea accesa pagini web. Ca urmare.4. G trebuie s˘ determine fapa In a tul c˘ pachetul este r˘spuns la o cerere adresat˘ de C. Deoarece adresa lui G este public˘.0/16.G modific˘ a a a a adresa destinatie a pachetului. 172.168.3. ¸ a ın .0.7. acesta punˆnd adresa proprie G ˆ locul adresei lui C.3. Translatia adresei surs˘ ¸ a Presupunem c˘ avem o retea privat˘ ¸i dorim ca de pe calculatoarele a ¸ as cu adrese private s˘ se poat˘ deschide conexiuni c˘tre calculatoare din Internet a a a — spre exemplu. a A¸a cum am v˘zut ˆ § 10.0. calculatoarelor private li se ofer˘ posibilit˘¸i a at limitate de-a comunica cu calculatoare din Internet. prin intermediul unor mecanisme descrise ˆ paragrafele urm˘toare. a clientului C.0.7. pachetul de ¸ r˘spuns nu poate fi livrat.16. F˘r˘ vreun mecanism aa special. ın a 10.8). trebuie s˘ existe un nod (ruter) G ˆ reteaua intern˘.

0. Asocierea (C.40. ruterul ¸ s ¸ G pune adresa destinatie C ¸i portul destinatie pc .225.8: Retea privat˘ pentru exemplificarea mecanismului de translatie a adre¸ a ¸ sei surs˘ a dup˘ care trimite mai departe pachetul c˘tre C — acest lucru este acum posia a bil deoarece G este ˆ reteaua intern˘. De regul˘.130 193.c 2008.123 deschide o conexiune TCP a a de pe portul efemer 3456 c˘tre serverul S. este necesar ca a ruterul G s˘ poat˘ determina c˘rui nod privat ˆ este destinat ˆ mod real a a a ıi ın fiecare pachet avˆnd ca adres˘ destinatie adresa G. ruterul G aloc˘ un port TCP a a local pg (de preferint˘ pg = pc . Acest lucru este cel mai simplu de f˘cut pentru conexiunile TCP.0.7.130. ¸i ca urmare adresa lui C indic˘ singurul ın ¸ a s a nod din reteaua proprie avˆnd acea adres˘. acest lucru a a ¸ a necesit˘ identificarea fiec˘rui pachet venit din Internet ca r˘spuns la un pachet a a a dinspre un nod privat spre Internet. ruterul G urm˘re¸te pachetele de deschidere a coa s nexiunii. La primirea unui pachet de deschiderea conexiunii dinspre un nod privat C.16: Pentru reteaua ilustrat˘ ˆ figura 10.1 C 192. a a Exemplul 10.0. ˆ a dac˘ pc nu este liber se poate aloca un pg ¸a ıns˘ a diferit). a a s a a a a La sosirea unui pachet cu adresa destinatie G ¸i portul destinatie pg . Radu-Lucian Lup¸a s 348 10.226. a Pentru o conexiune TCP. c˘tre un server S.20 G 192. presupunem c˘ ¸ a ın a clientul C avˆnd adresa (privat˘) 192. de pe un port pc . pg ). Situatii speciale ˆ dirijarea pachetelor ¸ ın Internet S 193.168. determinat˘ prin schimbul corespunz˘tor de pachete.8. Pachetul de deschidere a conexiunii este modificat de G astfel ˆ at ıncˆ adresa surs˘ s˘ fie G ¸i portul surs˘ s˘ fie pg . avˆnd adresa 193. G p˘streaz˘ asocierea (C.123 Retea privat˘ ¸ a Figura 10. la primirea unui pachet ¸ s ¸ cu adresa surs˘ C ¸i portul surs˘ pc ruterul G pune adresa surs˘ G ¸i pora s a a s tul surs˘ pg .0.168. pe a a .40. pg ) este p˘strat˘ pˆn˘ la ˆ a a a a a ınchiderea conexiunii.226.168. pc . ¸ a a Pentru ca mecanismul de mai sus s˘ fie realizabil. pc .

40.. s Cea de-a doua limitare poate fi eliminat˘ dac˘ G cunoa¸te protocolul a a s de nivel aplicatie dintre C ¸i S ¸i modific˘ datele despre conexiune schimbate ¸ s s a . Se poate ˆ a utiliza un timp de expirare. de ıns˘ ordinul cˆtorva minute.226. Serverul din Internet .130 192. exist˘ notiunea de port ¸i ca urmare identificarea pachetelor primite a ¸ s de G pe baza portului destinatie pg este posibil˘.8: Adresele surs˘ ¸i destinatie ale pachetelor schimbate ˆ as ¸ ıntre clientul C ¸i serverul S ˆ exemplul 10. Translatia adreselor s s a ¸ pentru astfel de pachete functioneaz˘ ˆ ¸ a ıntocmai ca ¸i ˆ cazul UDP. pc . ˆ at ınturcˆt nu exist˘ pachete de a a .130 port 3456 (pc ) port 80 193.226. Nodul privat .ˆ ınchiderea conexiunii UDP“.130 193.168. s ın Mecanismul de translatie a adresei surs˘.0. Pentru a UDP.123 port 80 port 3456 (pc ) ˆ Intre G ¸i S s surs˘ a destinatie ¸ 193. Pentru ICMP ping ¸i pong exist˘ un num˘r de identificare a a s a a care poate fi folosit cu acela¸i rol ca ¸i un num˘r de port.168.0. Internetul 349 Sens C→S C←S ˆ Intre C ¸i G s surs˘ a destinatie ¸ 192.0.40.40.225. permite ¸ a deschiderea unei conexiuni de la un nod cu adres˘ privat˘ c˘tre un nod public a a a din Internet.225.16 s ın portul 80 (pentru a aduce o pagin˘ web).are impresia“ c˘ comunic˘ direct cu serverul din a a Internet. sub forma de date utile pentru protocolul a TCP.20 193.are impresia“ c˘ comunic˘ cu ruterul G pe a a portul alocat de acesta. Fat˘ de utilizarea adreselor publice. informatii privind adresa IP ¸i portul de pe client.40. Radu-Lucian Lup¸a s Capitolul 10. asocierea este mai dificil de f˘cut.20 port 80 port 7890 (pg ) Tabelul 10. vor fi constatate ¸ s incoerente ˆ ¸ ıntre IP-ul ¸i portul clientului v˘zute de c˘tre server (acess a a tea fiind G ¸i respectiv pg ) ¸i IP-ul ¸i portul clientului v˘zute de client s s s a (acestea fiind C ¸i respectiv pc ). de exemplu. s ın Pentru alte protocoale.226. dinspre Internet c˘tre ın a un nod privat. Este ˆ a dificil de deter¸ a ıns˘ minat durata valabilit˘¸ii asocierii (C.0.225. ˆ care dac˘ nu trec pachete asocierea a ın a este desf˘cut˘.c 2008... pg ).8. utilizarea adreselor private ¸i a ¸a s translatiei adresei surs˘ are dou˘ limit˘ri majore: ¸ a a a • nu permite deschiderea conexiunilor ˆ sens invers. Adresele pachetelor transmise a ¸ a ˆ ıntre C ¸i S sunt date ˆ tabelul 10.226.0. • dac˘ pe conexiune sunt trimise.20 efectueaz˘ translatia adresei surs˘. descris mai sus. Ruterul G avˆnd adresa public˘ a a a 193.130 port 7890 (pg ) port 80 193.123 193.

punˆnd. C deschide conexiunea c˘tre G. iar C .are impresia“ c˘ a a ın a comunic˘ direct cu C. a In serverul va avea ca adres˘ publicat˘ ˆ DNS adresa lui G. S .2. conexiunile de date din protocolul FTP). a ¸ a a a un ruter G situat ˆ reteaua proprie dar avˆnd adres˘ public˘ ¸i un client C ın ¸ a a as din Internet. pentru aceasta.7. ˆ acest caz. ˆ locul propriei adrese. a • pentru a distribui cererile c˘tre un server foarte solicitat. ˆ acest caz. Printr-un a In a mecanism similar cu cel din paragraful precedent. care pune a a ca adres˘ surs˘ adresa proprie G ˆ loc de S.are impresia“ c˘ comunic˘ cu G. Clientul C dore¸te s˘ deschid˘ o conexiune c˘tre serverul S. . servere ce nu pot functiona pe aceea¸i ma¸in˘. la deschiderea unei a conexiuni c˘tre G.3. un server S cu adres˘ privat˘. Translatia adresei destinatie ¸ ¸ Presupunem c˘ avem o retea privat˘. ¸ • dac˘ dorim totu¸i acces din afar˘ c˘tre calculatoarele din reteaua intern˘. G alege un server Sk c˘tre care redirectioneaz˘ acea a a ¸ a conexiune. Mai exact. Radu-Lucian Lup¸a s 350 10. G trebuie.normal˘“ nu este posibil˘ deoarece ˆ contextul lui C a a ın adresa privat˘ a lui S nu este unic˘. s a a a Desigur. G modific˘ de data aceasta a adresa destinatie. Situatii speciale ˆ dirijarea pachetelor ¸ ın ˆ ıntre C ¸i S.. . s s a 10. Necesitatea utiliz˘rea calculatoarelor distincte a pentru aceste servicii poate rezulta din motive de securitate sau din motive legate de performantele calculatoarelor utilizate. Prima limitare poate fi eliminat˘ ˆ m˘sura ˆ care este vorba de s a ın a ın conexiuni initiate ˆ urma unor negocieri pe o conexiune anterioar˘ (de exem¸ ın a plu. Astfel. din nou. O conexiune din afar˘.c 2008. Conexiunile deschise din Internet c˘tre G vor fi redirectionate a a ¸ echilibrat c˘tre serverele S1 . c˘tre un anumit port de pe G va fi redirectionat˘ c˘tre a ¸ a a serverul SSH de pe calculatorul privat corespunz˘tor. ¸ s s a Putem furniza astfel un server HTTP ¸i un server SMTP care apar din s Internet ca fiind la aceea¸i adres˘ IP dar sunt g˘zduite ˆ realitate pe s a a ın calculatoare distincte. . prin ıi a protocolul SSH. . . Pa¸ a ın a chetul de r˘spuns de la S este de asemenea modificat de c˘tre G. comunicarea .. Sn ˆ reteaua ın ¸ intern˘. S2 . a a a Translatia adresei destinatie poate fi util˘ ˆ urm˘toarele situatii: ¸ ¸ a ın a ¸ • dac˘ avem o singur˘ adres˘ public˘ ¸i dorim s˘ avem mai multe servere a a a as a accesibile din exterior. adresa privat˘ a lui S. a s a a ¸ a De exemplu. Sn . . ˆ a vor exista a a ın ıns˘ de fapt mai multe servere pe calculatoare S1 . pe fiecare calculator ruleaz˘ un server SSH. S2 . a a Este posibil ˆ a ca adresa publicat˘ (ˆ DNS-ul public) pentru serverul ıns˘ a ın S s˘ fie adresa lui G..7. . Fiec˘rui cala a culator ˆ vom asocia un port pe ruterul G. s˘ urm˘reasc˘ comunicatia dintre C ¸i S ¸i s˘ modifice datele privitoare a a a ¸ s s a la adresa ¸i portul pe care clientul a¸teapt˘ conexiune dinspre server. Orice pachet ulterior de pe acea conexiune va fi redirectionat ¸ .

2 192.0.0/24) ¸ 192.168.1 Leg˘tur˘ direct˘ a a a (subretea 192. Conexiuni noi pot fi redirectionte c˘tre alte servere. ın • Unificarea fizic˘ a celor dou˘ retele private.0/24 192.1 192.130 Internet Figura 10.1.226.1 192. ˆ general.0.7.7.0.0/24 192.225. ¸ a a a a .9). studiate ¸ a a a a ¸ ˆ § 10.c 2008.168.168. De exemplu.168.2.2. ¸ ¸ O situatie ˆ care este necesar˘ tunelarea este aceea ˆ care exist˘ ¸ ın a ın a dou˘ retele private ¸i se dore¸te ca nodurile din cele dou˘ retele s˘ poat˘ a ¸ s s a ¸ a a comunica nerestrictionat ˆ ¸ ıntre ele. Internetul 351 c˘tre Sk . Radu-Lucian Lup¸a s Capitolul 10.40.168. Tunelarea Prin tunelare se ˆ ¸elege.9: Unificarea retelelor private printr-o leg˘tur˘ fizic˘ direct˘.3. Ne vom ocupa ˆ cele ce urmeaz˘ de tunelarea pachetelor IP. a ¸ a 10. 10.168. ˆ a ducerea unui cablu a a ıns˘ specual pentru aceasta poate fi extrem de costisitor. adic˘ de ın a a transmiterea pachetelor IP prin protocoale de nivel retea sau de nivel aplicatie.1.0. Retea privat˘ ¸ a Retea sediu A ¸ Retea sediu B ¸ 192. avem o institutie care are ¸ dou˘ sedii ¸i are o retea privat˘ in fiecare sediu. ducˆnd o leg˘tur˘ fizic˘ a a ¸ a a a a ˆ ıntre ele (fig.168. transmiterea unor date aparınt ın ¸inˆnd unui anumit protocol ca date utile ˆ cadrul unui protocol de acela¸i t a ın s nivel sau de nivel superior.20 193. ofer˘ conectivitate complet˘.4. Exist˘ mai multe solutii a s ¸ a a ¸ pentru a realiza leg˘tura: a • Translatia adreselor realizeaz˘ o leg˘tur˘ supus˘ unor restrictii.

Ca urmare. Unele a a dintre protocoale cripteaz˘ pachetele tunelate.0/24) ¸ Internet Figura 10.1 192.0/24 192.20 193.cablu a ¸ virtual“ ce preia rolul conexiunii fizice.168.226. Retea privat˘ virtual˘ (VPN) ¸ a a Retea sediu A ¸ Retea sediu B ¸ 192. Situatii speciale ˆ dirijarea pachetelor ¸ ın • Tunelarea ofer˘ conectivitate completa ca ¸i leg˘tura fizic˘ folosind lea s a a g˘turile la Internet existente. a s a ¸ Pentru tunelarea propriu-zis˘ exist˘ mai multe protocoale.1. avˆnd o a a ¸a ¸ a adres˘ IP ¸i o masc˘ de retea.0. 10.c 2008.10).168.130 192.168.0. Constructia const˘ ˆ realizarea unei coa ¸ a ın nexiuni (de exemplu TCP) ˆ ıntre dou˘ rutere cu adrese publice din cele a dou˘ retele interne (fig.2 Leg˘tur˘ virtual˘ (tunel) a a a (subretea 192.1 192.10: Unificarea retelelor private printr-un tunel ¸ Tunelul se prezint˘ fat˘ de nivelul retea ca ¸i cˆnd ar fi o leg˘tur˘ a ¸a ¸ s a a a fizic˘.168.2.168.7. a Un tunel poate avea mai mult de dou˘ capete.0.0/24 192. Conexiunea dintre rutere este un .1 192. fiecare cap˘t al tunelului este o interfat˘ de retea..0. ¸ .168.168. astfel de protocoale ofer˘ secua a ritatea unui cablu direct bine p˘zit. Radu-Lucian Lup¸a s 352 10.225.1. Un tunel cu mai multe a capete se comport˘ ca o subretea cu mai multe interfete conectate la ea — de a ¸ ¸ exemplu o retea Ethernet.2.40.

controlat de utilizatorul ce dore¸te expedierea mesajului. s a ın s a protocolul cuprinde prevederi create ˆ ideea transferului prin alte mijloace ın decˆt o leg˘tur˘ prin protocol Internet. Po¸ta electronic˘ s a Po¸ta electronic˘ serve¸te la transferul de mesaje electronice ˆ s a s ıntre utilizatori aflati pe sisteme diferite. Transferul este initiat de MTA-ul emit˘tor ¸i utilizeaz˘ ¸ ¸a s a tot protocolul SMTP. a a a Arhitectura sistemului cuprinde urm˘toarele elemente (vezi fig. Protocolul a fost creat initial pentru ¸ ¸ mesaje text ¸i a fost modificat ulterior pentru a permite transferul de fi¸iere s s cu continut arbitrar. La final. pentru a putea functiona pe sisteme a a ¸ ce nu dispun de o leg˘tur˘ permanent˘ ˆ retea. mail user agent-ul trimite mesajul unui proces de tip mail transfer agent (MTA). Acesta interactioneaz˘ cu utilizatorul s ¸ a pentru a-l asista ˆ compunerea mesajului ¸i stabilirea adresei destiın s natarului.2. Odat˘ mesajul ajuns la a a .1): a • Un proces de tip mail user agent (MUA). Transferul este initiat de MUA-ul uti¸ lizatorului expeditor ¸i utilizeaz˘ protocolul SMTP (§ 11.1. s a • O serie de procese de tip mail transfer agent care trimit fiecare urm˘toa rului mesajul. a a a ın ¸ Po¸ta electronic˘ este una dintre primele aplicatii ale retelelor de s a ¸ ¸ calculatoare ¸i a fost dezvoltat˘ ˆ aceea¸i perioad˘ cu Internet-ul.c 2008. Sistemul este conceput ˆ ideea c˘ este acceptabil ca ¸ ın a transferul mesajului s˘ dureze cˆteva ore. • De fiecare adres˘ destinatie este r˘spunz˘tor un mail transfer agent care a ¸ a a memoreaz˘ mesajele destinate acelei adrese. 11.1). Ca urmare.1. Radu-Lucian Lup¸a s 353 Capitolul 11 Aplicatii ˆ retele ¸ ın ¸ 11.

. caractere a a In carriage return izolate sau caractere line feed izolate nu sunt permise. el este memoa a ¸ rat local (afar˘ de cazul ˆ care are loc aici o rescriere de adres˘. S˘getile s a ¸ arat˘ sensul ˆ care se initiaz˘ comunicatia (de la client spre server). vezi a ın a § 11. • Utilizatorul destinatie cite¸te mesajul cu ajutorul unui proces de tip mail ¸ s user agent. Exist˘ dou˘ protocoale ¸ a a a utilizate pentru transfer: POP3 ¸i IMAP. Rˆndurile sunt delimitate prin a secvente formate din caracterul carriage return (cod 13) urmat de line feed ¸ (cod 10). Trans¸ s a ferul este initiat de MUA (adic˘ de receptor).1. ˆ particular.1: Elementele sistemului de transmitere a po¸tei electronice. Acesta contacteaz˘ mail transfer agent-ul responsabil de a adresa utilizatorului destinatie ¸i recupereaz˘ mesajul de la el. Caracterele de control (cu a a a codul ˆ ıntre 0 ¸i 31 sau egal cu 127) nu sunt permise.1. Rˆndurile nu au voie s˘ aib˘ lungime mai mare de 998 caractere ¸i se a a a s recomand˘ s˘ nu aib˘ mai mult de 78 de caractere.1. adresa destinatarului.2. nu sensul ˆ care a ın ¸ a ¸ ın se transfer˘ mesajul de po¸t˘ electronic˘.1.c 2008. cu exceptia secventelor s ¸ ¸ carriage return – line feed care separ˘ rˆndurile. 2001] (care ˆ ın ınlocuie¸te s . s a ¸ Dup˘ antet urmeaz˘ corpul mesajului. 1982]). data ¸i alte cˆteva informatii. a sa a mail transfer agent-ul r˘spunz˘tor de adresa destinatie. Fiecare mesaj ˆ ıncepe cu un antet cuprinzˆnd a adresa expeditorului.3). Posta electronica ¸ Destinatar Mail user agent (MUA) SMTP Mail transfer agent (MTA) Mail transfer agent (MTA) Mail user agent (MUA) POP3 sau IMAP Mail transfer agent (MTA) responsabil de adresa dest. Radu-Lucian Lup¸a s 354 Expeditor ˘ 11. care contine mesajul propriu-zis.clasicul“ [RFC 822.. a a ¸ ˆ Intreg mesajul este de tip text ASCII. s 11. SMTP SMTP Figura 11. Formatul mesajelor Formatul mesajelor este definit ˆ [RFC 2822.

fiecare cˆmp este un rˆnd a a s a a separat continˆnd numele. caracterul dou˘ puncte (:) ¸i valoarea.1. informatiile de pe plic sunt cele utilizate efectiv ˆ transmiterea ¸ ın mesajului. Ana tentul se termin˘ cu dou˘ secvente carriage return – line feed consecutive. s Datorit˘ unor protocoale folosite pentru transmiterea ¸i pentru stoa s carea mesajelor.c 2008. secventa ¸ a a s ¸ carriage return urmat de line feed actioneaz˘ ca separator ˆ ¸ a ıntre cˆmpuri. se impun urm˘toarele restrictii suplimentare asupra continutului a ¸ ¸ mesajelor: • nici un rˆnd s˘ nu constea doar dintr-un caracter punct.1: Un posibil document (vezi mai jos explicatiile privind sem¸ nificatiile diverselor cˆmpuri): ¸ a From: Radu Lupsa <rlupsa@cs. a a • un rˆnd ce urmeaz˘ dup˘ un rˆnd vid s˘ nu ˆ a a a a a ınceap˘ cu cuvˆntul From. Radu-Lucian Lup¸a s Capitolul 11. envelope) al mesajului.20070901101220. Aplicatii ˆ retele ¸ ın ¸ 355 Pentru a permite transmiterea mesajelor prin linii seriale incapabile s˘ transmit˘ caractere de 8 biti (ci doar caractere de 7 biti). spatiile ¸i tab-urile de la ˆ a ¸ ¸ s ınceputul rˆndurilor urm˘toare se consider˘ ca f˘cˆnd parte din cˆmp. a a ¸ Dac˘ un cˆmp este prea lung pentru a ˆ a a ıncape ˆ ıntr-un rˆnd (standardul a recomand˘ ca rˆndurile s˘ nu dep˘¸easc˘ 78 de caractere ¸i interzice rˆndurile a a a as a s a mai lungi de 998 caractere). fiecare a a cˆmp avˆnd un nume ¸i o valoare. De principiu. a a De mentionat c˘ ˆ protocolul de comunicatie dintre dou˘ mail trans¸ a ın ¸ a fer agent-uri sunt transferate informatii privind adresa expeditorului ¸i adresa ¸ s destinatarului. este recomandabil a a ¸ ¸ ca mesajele s˘ nu contin˘ caractere cu codul ˆ a ¸ a ıntre 128 ¸i 255.53462@nessie. 11.ubbcluj. a a a a a a Exemplul 11.com> Date: Sat. a a a care trebuie s˘ ˆ a ınceap˘ cu spatiu sau tab. independente de cele plasate ˆ antetul mesajului.1. Antetul mesajelor Antetul mesajelor este constituit dintr-un num˘r de cˆmpuri.1. Mesajul acesta este doar un exemplu.ubbcluj. . cˆmpul poate fi continuat pe rˆndurile urm˘toare. Aceste ın informatii formeaz˘ a¸a-numitul plic (engl. Expedi¸ a s torul ¸i destinatarul date ˆ antetul mesajului sunt informatii pentru utilizas ın ¸ torul uman.ro> To: Test User <test@example. 1 Sep 2007 10:12:20 +0300 Message-ID: my-emailer.cs.ro Subject: Un mesaj dat ca exemplu Salut.

ˆ lipsa unui cˆmp Reply-to. MUA-ul ofer˘ a ¸ a a implicit. Dac˘ o persoan˘ trimite un mesaj ˆ nuın a a a ın mele unei organizatii. a In a MUA-ul ofer˘ adresa din cˆmpul From. De asemenea. a Cˆmpul Sender este utilizat atunci cˆnd o persoan˘ trimite un a a a mesaj ˆ numele altei persoane sau ˆ numele unei organizatii pe care o ın ın ¸ reprezint˘. atunci adresa organizatiei va fi trecut˘ ˆ cˆmpul ¸ ¸ a ın a From ¸i adresa persoanei ce scrie mesajul va fi plasat˘ ˆ cˆmpul Sender. angajatul va pune adresa s clientului ˆ cˆmpul To (deoarece acestuia ˆ este destinat mesajul). ¸ Adresele din cˆmpul Bcc reprezint˘ pesoane c˘rora le va fi livrat a a a mesajul. Sender ¸i Reply-to reprezint˘ adresa expeditorului ¸i adresa la s a s care trebuie r˘spuns. Radu-Lucian Lup¸a s 356 ˘ 11. Mesajul se transmite centrului de s . este bine ca MUA-ul s˘ ofere posibilitatea de-a a a trimite r˘spunsul la adresa din cˆmpul From. Cc ¸i Bcc reprezint˘ adresele la care trebuie livrat mesajul. iar adresa s s a ın a secretarei ˆ cˆmpul Sender. cˆmpul Reply-to reprezint˘ adresa la care trebuie trimis In a a un eventual r˘spuns la mesaj. s a Adresele din cˆmpul To reprezint˘ persoanele c˘rora le este adresat a a a mesajul. de exemplu. utia a a lizˆnd functionalitatea de reply a mail user agent-ului s˘u.1. dac˘ aceast˘ adres˘ este diferit˘ de adresa a a a a a din cˆmpul From. Exist˘ dou˘ situatii practice care conduc la aceast˘ situatie: a a a ¸ a ¸ Dac˘ mesajul provine de la ¸ef. Adresele din cˆmpul Cc reprezint˘ persoane ce trebuie informate a a de trimiterea mesajului. • From. reprezentˆnd In ¸ s ¸ a a adresa expeditorului mesajului ¸i totodat˘ adresa la care trebuie trimis s a un eventual r˘spuns. adresa preluat˘ din a ¸ a a cˆmpul Reply-to a mesajului original. s a ın a ˆ fine. f˘r˘ ca ceilalti destinatari s˘ fie informati despre aceasta. Cˆmpul aa ¸ a ¸ a Bcc este completat de c˘tre mail user agent ¸i este eliminat de c˘tre a s a primul mail transfer agent de pe traseu. ca adres˘ destinatie a mesajului de r˘spuns. atunci adresa ¸efului este pus˘ ˆ cˆmpul From. dar este scris ¸i trimis efectiv de secrea s s tara ¸efului. Posta electronica ¸ Principalele cˆmpuri ce pot apare ˆ a ıntr-un mesaj sunt: • To. chiar ˆ prezenta a a ın ¸ unui cˆmp Reply-to. a a Un exemplu de utilizare a cˆmpului Reply-to este urm˘torul: a a un mesaj adresat unei liste de discutii are ca From adresa autorului ¸ mesajului ¸i ca To adresa listei. un mesaj contine doar cˆmpul From.c 2008. ˆ corespondenta oficial˘ ˆ ın ¸ a ıntre un angajat al unei firme ¸i un client al firmei. a ˆ conditii obi¸nuite. Dac˘ destinatarul r˘spunde la un mesaj primit. iar ın a ıi ˆ cˆmpul Cc va pune adresa ¸efului (care trebuie informat cu privire la ın a s comunicatie).

ˆ ore ¸i minute.c 2008. ˆ a a s a ıntrucˆt uneori a r˘spunsul este bine s˘ ajung˘ doar la autorul mesajului original. care retransmite mesajul ¸ c˘tre abonatii listei. a • Received ¸i Return-path au ca rol diagnosticarea sistemului de livrare a s mesajelor. un caracter a a a a a virgul˘. To adresa listei ¸i Reply-to tot s adresa listei. cuprinzˆnd data ¸i ora local˘ a expeditorului precum ¸i indicativul fusua s a s lui orar pe care se g˘se¸te expeditorul. Ultimul mail transfer agent adaug˘ un cˆmp Return-path. a ın a a . care reprezint˘ destia natarul unui eventual r˘spuns dat de utilizator la mesaj. a • Date reprezint˘ data gener˘rii mesajului.3.plicul“ ıi ¸ mesajului. a Cˆmpurile Received ¸i Return-path sunt utilizate pentru a rea s turna un mesaj la autorul s˘u ˆ cazul ˆ care apar probleme la livrarea a ın ın mesajului. Indicativul fusului orar cuprinde diferenta. un caracter dou˘ puncte. Este ˆ mod normal completat a a ın de mail user agent-ul expeditorului mesajului. Astfel. Fiecare mail transfer agent de pe traseul mesajului adaug˘ a ˆ fata mesajului un cˆmp Received ˆ care scrie numele ma¸inii sale. . ˆ ordine invers˘. De notat diferenta ˆ ¸ ıntre Reply-to. minutul. ora. ¸i Return-path. e bine ca a ¸ ın a s utilizatorul s˘ nu foloseasc˘ orbe¸te aceast˘ facilitate. mesajul primit de a a abonat are From autorul mesajului. Faptul c˘ ora local˘ este or˘ de var˘ sau nu apare ˆ indicativul a a a a ın de fus orar. Radu-Lucian Lup¸a s Capitolul 11. Mesajul retransmis c˘tre abonati va avea ad˘ugat a ¸ a ¸ a un cˆmp Reply-to indicˆnd adresa listei. un mesaj ˆ a ıncepe cu un ¸ir de antete Received continˆnd. nodurile prin s ¸ a ın a care a trecut mesajul. ziua din lun˘.1 pentru dea s a a talii). anul. Astfel. cona a ¸inˆnd adresa surs˘ a mesajului conform plicului (datele furnizate de t a a MTA-ul surs˘). Are un format standard. Romˆnia are ˆ timpul iernii ora local˘ egal˘ cu UTC+2h. Formatul cuprinde: ziua din a s s˘pt˘mˆn˘ (prescurtare de trei litere din limba englez˘). luna (prescurtarea de trei litere din limba ena a glez˘). Abonatul listei va r˘spunde foarte u¸or pe adresa listei a s deoarece mail user agent-ul s˘u va prelua adresa listei din Reply-to ¸i a s o va pune ca adres˘ destinatie ˆ mesajul de r˘spuns. nu cei din cˆmpurile To sau From). Totu¸i. ın ¸ a ın s numele ¸i adresa IP a mail transfer agent-ului care i-a trimis mesajul. nu la a a a toat˘ lista. . s data ¸i ora curent˘ ¸i emit˘torul ¸i destinatarul mesajului conform cererii s as ¸a s mail transfer agent-ului care ˆ transmite mesajul (cei indicati pe . optional ˆ a un a a ¸ ınc˘ caracter dou˘ puncte urmat de secund˘ ¸i ˆ final indicativul fusului a a s ın orar. Aplicatii ˆ retele ¸ ın ¸ 357 distributie al listei (un mail transfer agent). ˆ ¸ ın s ıntre ora local˘ ¸i ora universal˘ coordonat˘ (UTC . a s care reprezint˘ destinatarul unui eventual mesaj de eroare. vezi § 7..

cˆmpurile din antetul mesajului original In a (inclusiv From. . s ın [RFC 2046.c 2008. reflectˆnd expeditorul. dar se refer˘ la retransmitere. To sau Date) sunt p˘strate. ˆ acest caz. Resent-cc. 1996].1. Semnificatia fiec˘ruia dintre a ¸ a aceste cˆmpuri Resent-. etc. Radu-Lucian Lup¸a s 358 ˘ 11. desa tinatarii mesajului retransmis. a • Message-ID.1. mesajul de r˘spuns contine un cˆmp In-reply-to avˆnd ca a ¸ a a valoare Message-ID-ul mesajului la care se r˘spunde. Valoarea cˆmpului Message-ID este un ¸ir de caractere care identific˘ a s a unic mesajul. 1996]. s Extensiile MIME servesc ˆ principal pentru a putea transmite fi¸iere ın s ata¸ate unui mesaj de po¸t˘ electronic˘. a a s ˆ cazul r˘spunsului la un mesaj prin functia reply a mail user In a ¸ agent-ului. . 1996] ¸i [RFC 2047. Cˆmpurile Reference ¸i Message-ID pot fi a a s folosite de exemplu pentru afi¸area. Valoarea cˆmpului a a Reference se creaz˘ din cˆmpurile Reference ¸i Message-ID ale mesajua a s lui la care se r˘spunde. s a ¸ a succesiunilor de mesaje legate de o anumit˘ problem˘ ¸i date fiecare a as ca replic˘ la precedentul. Resent-to. Posta electronica ¸ iar ˆ timpul verii UTC+3h. O s a a aa a a astfel de retrimitere se poate efectua printr-o comand˘ bounce sau rea send a MUA-ului. Pentru informatiile privind s ¸ retransmiterea (adresa utilizatorului ce efectueaz˘ retransmiterea. destia a natarii ¸i data trimiterii mesajului original.2. a • Resent-from. a a a a dat˘ de autorul mesajului. In-reply-to. Resent-sender. c˘tre altcineva. Resent-date ¸i Resent-msg-id sunt utilizate dac˘ destinatarul unui s a mesaj dore¸te s˘ retrimit˘ mesajul. de la ora curent˘ ¸i de la ni¸te a s s numere aleatoare.1. astfel ˆ at s˘ fie extrem de improbabil ca dou˘ mesaje ıncˆ a a s˘ aib˘ acela¸i Message-ID. ın • Subject reprezint˘ o scurt˘ descriere (cˆt mai sugestiv˘) a mesajului. nu la mesajul a a original. f˘r˘ modific˘ri. Acestea sunt cunoscute sub numele Multipurpose Internet Mail Extension (MIME ) ¸i sunt descrise ˆ [RFC 2045. Extensii MIME Standardul original pentru mesaje de po¸t˘ electronic˘ (rfc 822) a sa a suferit o serie de extensii.corespunz˘tor. este identic˘ cu semnificatia cˆmpului f˘r˘ a a ¸ a aa Resent. data retransmiterii. 11. Reference servesc la identificarea mesajelor. enumerate mai sus. . s sa a .). . Resent-bcc. de c˘tre mail user agent-ul destinatie. se utilizeaz˘ a cˆmpurile Resent-. El este construit de c˘tre mail user agent-ul expeditorului a pornind de la numele calculatorului.

iar partea a doua arat˘ formatul (codificarea) utilizat˘. un mesaj de tip multipart/subtip este format de fapt din mai multe . Valoarea cˆmpului este versiunea standardua lui MIME ˆ conformitate cu care a fost creat mesajul. de obicei una dintre p˘rti este mesajul propriu-zis. a s a • multipart/alternative arat˘ c˘ p˘rtile sunt variante echivalente ale a a a¸ aceluia¸i document. Astfel. ın 11. o imaga a ine va avea Content-type de forma image/format.2. similar s cu un mesaj de sine st˘t˘tor. Exemple de tipuri ¸ s ın sunt: text/plain (text normal). Un mesaj cu ata¸amente a¸ s este dat ˆ exemplul 11. Este scris sub forma (utilizabil˘ ¸i ˆ alte cˆmpuri ¸i pena s ın a s .1. etc. etc. Antetul p˘rtii poate contine doar cˆmpuri aa a¸ ¸ a specifice MIME.. Mesajele ce contin doar text obi¸nuit trebuie s˘ aib˘ Content-type: ¸ s a a text/plain. care permite formarea unui mesaj din mai multe p˘rti. ın Fiecare mesaj are ˆ antet un cˆmp. Mecanismul se ˆ sa a ıncadreaz˘ ˆ a ıntr-unul mai general. Astfel. image/gif.1. care poate fi ˆ particular ın chiar un multipart. iar fiecare dintre celelalte a¸ p˘rti este cˆte un fi¸ier ata¸at. Content-type. Mesajele cu ata¸amente au Content-type: multipart/mixed. Cele mai importante subtipuri ale tipului multipart sunt: • multipart/mixed ˆ ınseamn˘ pur ¸i simplu mai multe componente puse a s ˆ ımpreun˘. Acesta este dealtfel tipul implicit ˆ cazul absentei cˆmpului ın ¸ a Content-type.3. image/jpeg (imagine ˆ format JPEG). ˆ s s a Intr-un mesaj multipart/mixed. Radu-Lucian Lup¸a s Capitolul 11.fi¸iere“ (oarecum ca un fi¸ier arhiv˘ zip). a¸ a s s Fiecare parte a unui mesaj multipart are un antet ¸i un corp. image/jpeg. ˆ s In general. ce nu apare ˆ nici una dintre p˘rtile mesajua ¸ ın a¸ lui. ın De regul˘.c 2008. de exemplu. ˆ formate diferite. Aplicatii ˆ retele ¸ ın ¸ 359 Un mesaj conform standardului MIME trebuie s˘ aib˘ un cˆmp ˆ a a a ın antet cu numele Mime-version. s ın Separarea p˘rtilor unui mesaj de tip multipart se face printr-un a¸ rˆnd ce contine un anumit text. Ata¸area fi¸ierelor ¸i mesaje din mai multe p˘rti s s s a ¸ Standardul MIME ofer˘ posibilitatea ata¸˘rii unor fi¸iere la un mesaj a sa s de po¸t˘ electronic˘. care arat˘ ce ın a a tip de date contine ¸i ˆ ce format sunt ele reprezentate. fiecare parte are propriul tip. Textul utilizat ca separator este plasat ˆ cˆmpul Content-type dup˘ ın a a multipart/subtip. partea din fata caracterului slash (/) arat˘ tipul de docua ¸ a ment. ca un fi¸ier arhiv˘. text/html (document HTML).

Sint ¸ a gurele caractere de control (cele cu codurile ˆ ıntre 0 ¸i 31) admise sunt carriage s return (cod 13) ¸i line feed (cod 10). ˆ caz a a ıntˆ In contrar. cu utilizare restrictionat˘ a caracterelor de control.1.4. a Transmiterea unui continut arbitrar se face printr-o recodificare a ¸ acestuia utilizˆnd doar caracterele permise ˆ corpul mesajului. Posta electronica ¸ tru alte informatii) unui ¸ir boundary=¸ir situat dup˘ ¸irul multipart/subtip ¸ s s as ¸i separat prin punct ¸i virgul˘ fat˘ de aceasta. De notat c˘. s a s 11. Valoarea acestui cˆmp arat˘ ce a a trebuie s˘ fac˘ mail user agent-ul destinatie cu partea de mesaj ˆ care se a a ¸ ın g˘se¸te acest antet. a • dup˘ ultima parte se g˘se¸te un rˆnd format doar din textul de dup˘ a a s a a boundary=.1. utilizate pentru separarea rˆndurilor din s a mesaj. transmiterea unui fi¸ier arbitrar (inclusiv a unui text s ISO-8859) nu este posibil˘ direct. se recomand˘ s˘ nu se utilizeze caracterele cu coduri a a ˆ ıntre 128 ¸i 255. Exemplu: s s a ¸a Content-type: multipart/mixed. s a at ın Ca urmare. arat˘ numele sugerat pentru salvarea a a p˘rtii respective. 1997].1.c 2008. Ca urmare. De asemenea. Fiecare parte a unui mesaj de tip multipart/mixed are un cˆmp a Content-disposition [RFC 2183. a ın . ci s˘ cear˘ mai ˆ ai permisiunea utilizatorului. cu care s˘ suprascrie un fi¸ier al destinatarului. Codificarea corpului mesajului ¸i a ata¸amentelor s s Standardul original al formatului mesajelor prevede c˘ mesajele cona ¸in doar text ASCII. datorit˘ imposibilit˘¸ii transmisiei lor ˆ unele sisteme. din motive de securitate. Valori posibile sunt: a s • inline arat˘ c˘ mesajul sau partea de mesaj trebuie s˘ fie afi¸at˘ utia a a s a lizatorului. Un astfel de cˆmp poate avea ˆ continuare o informatie a a ın ¸ suplimentar˘. Radu-Lucian Lup¸a s 360 ˘ 11. boundary="abcdxxxx" Corpul mesajului multipart este separat dup˘ cum urmeaz˘: a a • ˆ fata primei p˘rti precum ¸i ˆ ın ¸ a¸ s ıntre fiecare dou˘ p˘rti consecutive se a a¸ g˘se¸te un rˆnd format doar din textul de dup˘ boundary= precedat de a s a a dou˘ caractere minus (--). un adversar poate s˘ trimit˘ un fi¸ier avˆnd ata¸at un anumit a a s a s fi¸ier. filename=nume. • attachment arat˘ c˘ mesajul sau partea de mesaj nu trebuie afi¸at˘ a a s a decˆt la cerere. mail user agenta¸ a ul destinatie trebuie s˘ nu salveze orbe¸te partea de mesaj sub numele ¸ a s extras din mesaj.

iar ˆ cazul primirii unui a a ın astfel de mesaj ˆ va afi¸a ˆ ıl s ıntr-un mod mai putin inteligibil pentru utilizator. 1996] sunt: a • 7bit — ˆ ınseamn˘ de fapt lipsa oric˘rei recodific˘ri. s partea corespunz˘toare mesajului propriu-zis este codificat˘ 7bit sau quoted-printables. Un mail user agent vechi. a a iar p˘rtile corespunz˘toare ata¸amentelor sunt codificate base64. Aplicatii ˆ retele ¸ ın ¸ 361 mesajele apar. mesajul (respectiv partea) nu este permis s˘ fie codificat decˆt 7bit sau 8bit. dar poate contine orice a a ¸ caractere (cu coduri ˆ ıntre 0 ¸i 255). caracterul egal se a recodific˘ =3D. ˆ a a a ıns˘ fiecare parte a unui multipart poate fi codificat˘ independent de restul. ¸ Recodificarea este aplicat˘ doar asupra corpului mesajului. a a a s ¸ Codific˘rile definite de [RFC 2045. Content-transfer-encoding.4.53462@nessie. a¸ a s Exemplul 11.20070901101220.ubbcluj. ˆ plus. De exemplu. ¸ a a c˘rui valoare arat˘ dac˘ ¸i ce recodificare s-a aplicat asupra continutului. se presupune In codificarea 7bit.cs.0 Content-transfer-encoding: 7bit Content-type: multipart/mixed.c 2008. a • base64 — corpul mesajului a fost recodificat ˆ baza 64 (vezi § 7.ro Subject: Un mesaj cu fisiere atasate MIME-Version: 1. s • 8bit — arat˘ c˘ mesajul nu a fost recodificat. fat˘ de mail transfer agent-uri. de exemplu litera a poate fi scris˘ a sau =61.ubbcluj.ubbcluj. Restul a a caracterelor pot fi scrise direct sau pot fi recodificate ca ¸i caracterele s speciale. identice cu cele conforme for¸a matului original. iar caracterul escape (cod 27) se recodific˘ =1B. arat˘ c˘ a a a In a a mesajul nu contine decˆt caractere ASCII (cu codurile cuprinse ˆ ¸ a ıntre 0 ¸i 127). acestea din urm˘ a a reprezint˘ codul caracterului original. Radu-Lucian Lup¸a s Capitolul 11.ro> To: Test User <test@cs. s • quoted-printables — arat˘ c˘ fiecare caracter de control ¸i fiecare cara a s acter egal (=) a fost recodificat ca o secvent˘ de trei caractere. format˘ ¸a a dintr-un caracter egal (=) urmat de dou˘ cifre hexa. 1 Sep 2007 10:12:20 +0300 Message-ID: my-emailer.ro> Date: Sat. nu ¸i a s asupra antetului. ın ˆ lipsa vreunui antet Content-transfer-encoding.2). Pentru un mesaj (sau o parte de mesaj) de tip multipart.2: Un mesaj cu fi¸iere ata¸ate este dat ˆ continuare: s s ın From: Radu Lupsa <rlupsa@cs. Antetul contine un cˆmp. ˆ a In mod curent. nu va fi capabil s˘ transmit˘ un mesaj cu extensii MIME. boundary="qwertyuiop" . conform standardului original. un mesaj cu ata¸amente are corpul mesajului codificat 7bit.

qwertyuiop 11. R˘spunsurile sunt formate dintr-un ¸a a num˘r. construit de obicei peste o conexiune TCP. la care serverul r˘spunde cu un cod ce arat˘ dac˘ cererea a fost exea a a cutat˘ cu succes sau nu.2. filename="test. --qwertyuiop Content-type: application/octet-stream Content-disposition: attachment. a Dup˘ deschiderea conexiunii.1. Clientul ¸ s deschide o conexiune TCP c˘tre portul 25 al serverului. determin˘ urm˘torul MTA ¸i-i paseaz˘ mesajul.2. rolul de server apartine MTA-ului ce prime¸te mesajul. cu exceptia a ¸ ¸ ultimului. ˆ continuare. serverul trimite un mesaj continˆnd un a ¸ a cod de r˘spuns urmat de numele serverului. filename="test. Cererile sunt formate de a regul˘ dintr-un cuvˆnt-cheie urmat de eventuali parametri ¸i se ˆ a a s ıncheie printro secvent˘ carriage return – line feed. urmat de un text explicativ. Posta electronica ¸ --qwertyuiop Content-type: text/plain Content-transfer-encoding: 7bit Content-disposition: inline Acesta este mesajul propriu-zis. urmat de un text explicativ.1. Num˘rul a ¸a a . s a ın fiecare mesaj parcurgˆnd un lant de MTA-uri. transmis ca secvent˘ de cifre. Rolul de client SMTP ˆ are MTA-ul ce are mesajul de trimis mai ıl departe. a a s a 11.1. charset=utf-8 Content-disposition: attachment. clientul trimite cˆte a In a o cerere. Fiecare MTA. mesajele sunt transmise din aproape ˆ aproape.dat" Content-transfer-encoding: base64 eAAXLRQ= --qwertyuiop Content-type: text/plain. Radu-Lucian Lup¸a s 362 ˘ 11.txt" Content-transfer-encoding: quoted-printables =C8=98i =C3=AEnc=C4=83 un text. Este un a protocol de tip text.c 2008. Protocolul SMTP Protocolul utilizat pentru transmiterea mesajelor de la un MTA la urm˘torul este protocolul Simple Mail Transfer Protocol — SMTP .1. Transmiterea mesajelor A¸a cum am v˘zut.

3: Fie mesajul din exemplul 11.com decurge astfel (rˆndurile transa a mise de la cs. Dac˘ trimiterea mai departe nu este posia bil˘ imediat. clientul va trimite una sau mai multe a cereri RCPT TO:.ro .. adic˘ a ¸ a parametrii comenzilor MAIL FROM: ¸i RCPT TO:. ¸i nu valorile cˆmpurilor From s s a sau To din antetul mesajului. Dup˘ un num˘r de ˆ a a a ıncerc˘ri e¸uate sau ˆ cazul unei erori netempoa s ın rare (de exemplu. a Dac˘ adresa destinatie este local˘. clientul trima ın In ite corpul mesajului. mesajul este p˘strat ˆ coad˘ ¸i MTA-ul reˆ a a ın as ıncearc˘ periodic s˘-l a a trimit˘. Fiecare a ¸ cerere RCPT TO: poate fi acceptat˘ sau refuzat˘ de c˘tre server independent a a a de celelalte. Serverul acceptate.cs. a ınc˘ a Mesajele primite de MTA sunt plasate ˆ ıntr-o coad˘ de a¸teptare. Prin aceasta clientul se identific˘ fat˘ de server. Exemplul 11. In aa r˘spunde. Textul cuprinde informatii suplimentare s ¸ pentru diagnosticarea manual˘ a transmiterii mesajelor. clientul trimite o cerere DATA f˘r˘ parametrii. a s De notat c˘ ˆ trimiterea mai departe. Transmiterea lui de la MTAul de pe cs. ˆ ıncheiat cu un rˆnd pe care se g˘se¸te doar caracterul a a s punct. dac˘ nu exist˘ adresa destinatie). MTA-ul abandoneaz˘ ¸i a a ¸ as ˆ ıncearc˘ trimiterea unui mesaj (e-mail) de eroare ˆ a ınapoi c˘tre expeditor.ro c˘tre example. ˆ a ıntr-o form˘ u¸or de procesat de c˘tre calculator. Dup˘ acceptarea de a a c˘tre server a comenzii MAIL FROM:. a Clientul trebuie s˘ ˆ a ınceap˘ printr-o cerere HELO care are ca parametru a numele ma¸inii clientului. MTA-ul receptor ˆ a ın s ıncearc˘ imediat s˘ trimit˘ a a a mai departe fiecare mesaj primit.c 2008.com sunt precedate de o s˘geat˘ la a a dreapta. stoa s cat˘ de obicei ˆ fi¸iere pe disc.ia de bun“ numele transmis de client. avˆnd ca parametru adresa expeditorului mesajului. serverul a a a a este nevoit s˘ . ˆ mod normal cu un cod de succes.ubbcluj. serverul trimite ˆ a un r˘spuns. Dup˘ primirea corpului mesajului. fiecare cerere are ca parametru o adres˘ destinatie. livrarea local˘ sau trimiterea a ın a unui mesaj de eroare. MTA-ul plaseaz˘ mesajul ˆ fi¸ierul a ¸ a a ın s corespunz˘tor cutiei po¸tale a destinatarului. ˆ caz de succes. clientul poate transmite serverua lui mai multe mesaje de po¸t˘ electronic˘.com → HELO nessie.1. a Dup˘ identificarea prin cererea HELO. sa a Transmiterea fiec˘rui mesaj va ˆ a ıncepe printr-o cerere MAIL FROM:.ubbcluj.ro la example. MTA-ul utilizeaz˘ doar informatiile de pe plic. Aplicatii ˆ retele ¸ ın ¸ 363 arat˘. Radu-Lucian Lup¸a s Capitolul 11. iar rˆndurile transmise ˆ sens invers de o s˘geat˘ la stˆnga): a ın a a a ← 220 example. De s a ¸a notat c˘ nu exist˘ posibilitatea autentific˘rii clientului de c˘tre server. Serverul va transmite mesajul fiec˘reia dintre adresele destinatie a ¸ ˆ final. dac˘ cererea s-a exea s a a cutat cu succes sau nu ¸i cauza erorii.ubbcluj.

example. 250 Ok: queued QUIT 221 Bye Exemplul 11.cs.ro Subject: Un mesaj dat ca exemplu Salut.c 2008.example> Cc: Organizatia omuletilor verzi <office@greenmen.534@roswell.com.example> Sender: Ion Ionescu <ion@greenmen.com MAIL FROM: <rlupsa@cs.greenmen.20070830222222.example> Date: Sat.com> Date: Sat. avˆnd adresa test@example. Mesajul acesta este doar un exemplu.greenmen. 1 Sep 2007 10:12:20 +0300 Message-ID: my-emailer.example . Posta electronica ¸ 250 example. 31 Aug 2007 22:09:23 -0700 Reply-to: Forumul OZN <ozn@comunitati-online.<CR><LF> From: Radu Lupsa <rlupsa@cs.ubbcluj.example Received: from server27. 1 Sep 2007 08:09:20 +0300 From: Organizatia omuletilor verzi <office@greenmen.20070901101220.comunitati-online.example for ozn@comunitati-online. 1 Sep 2007 05:09:21 +0000 Received: from localhost by roswell.20070901101220. Mesajul este reprodus a¸a cum s ajunge la un abonat al listei.ubbcluj.1.example In-reply-to: my-emailer.ro> To: Test User <test@example.ro> 250 Ok RCPT TO: <test@example.ubbcluj.example for ozn@comunitati-online.example> To: Forumul OZN <ozn@comunitati-online.com> 250 Ok DATA 354 End data with <CR><LF>.com.53462@nessie. utilizarea cˆmpului Sender de c˘tre cineva care transmite a a a un mesaj ˆ numele altcuiva ¸i a cˆmpului Cc. .greenmen.321@ufo.example by server27. Mesajul ilusa treaz˘.example.com for test@example. de asemenea. 1 Sep 2007 10:12:20 +0300 Message-ID: my-emailer.4: Urm˘torul mesaj ilustreaz˘ utilizarea cˆmpurilor ˆ cazul a a a ın unui mesaj transmis unei liste de utilizatori. Radu-Lucian Lup¸a s 364 ← → ← → ← → ← → → → → → → → → → ← → ← ˘ 11.example> Received: from roswell.comunitati-online. ın s a Return-path: errors-26345@comunitati-online.example by example.

Dac˘ g˘se¸te o astfel de ˆ a a s ınregistrare. Aplicatii ˆ retele ¸ ın ¸ Subject: Re: Incident Organizatiei omuletilor verzi anunta ca nu a avut nici un amestec in incidentul de la balul anual E.1. MTA-ul caut˘ mai ˆ ai. a 2.3). Dac˘ nu exist˘ nici un server cu numele de domeniu din adresa destinatie.1. MTAa a ¸ ¸ ul caut˘ ˆ DNS o ˆ a ın ınregistrare cu tipul MX pentru numele de domeniu din adresa destinatie. O astfel de ˆ ¸ ınregistrare contine una sau mai ¸ multe nume de servere SMTP capabile s˘ preia mesajele destinate unei a adrese din acel domeniu. MUA-urile a ın ¸ contacteaz˘ implicit MTA-ul de pe ma¸ina local˘ (localhost). Dac˘ nu exist˘ nici ˆ a a ınregistr˘ri MX. MTA-ul contacteaz˘ una din ma¸inile specificate ˆ ˆ a s ın ınregistr˘rile MX g˘site ¸i-i a a s transmite mesajul. a s a .2. 3. ˆ memoreaz˘ lo¸ ıl a cal. Pe sistemele de tip UNIX. dac˘ are vreo regul˘ privind adresa destinatie. Dac˘ MTA-ul este poart˘ de intrare a mesajelor pentru MTA-urile a a din reteaua local˘. Un MUA lucreaz˘. printre informatiile sale de configurare (vezi a ıntˆ ¸ § 11.2. Dac˘ nu exist˘ informatii de configurare pentru adresa destinatie. atunci MTA-ul a a s a declar˘ c˘ mesajul este nelivrabil ¸i transmite ˆ a a s ınapoi spre emit˘tor un ¸a mesaj de eroare. Determinarea urm˘torului MTA a Un MTA care are un mesaj de transmis c˘tre o anumit˘ adres˘ dea a a termin˘ urm˘torul MTA c˘ruia trebuie s˘-i transmit˘ mesajul astfel: a a a a a 1. Pentru trans¸ miterea oric˘rui mesaj. transmite mesajul c˘tre MTA-ul determinat conform ¸ a a configur˘rii. de obicei. a a ¸ adic˘ dac˘ toate cele trei variante de mai sus e¸ueaz˘. ¸ s 4. MTA-ul contacteaz˘ ma¸ina cu a a s numele de domeniu din adresa destinatie ¸i-i transmite mesajul. mult mai simplu. un MUA contacteaz˘ un acela¸i MTA. Dac˘ MTAa a ¸ a ul este responsabil de adresa destinatie a mesajului.2. Ion Ionescu. Radu-Lucian Lup¸a s Capitolul 11. Presedintele Organizatiei omuletilor verzi 365 11. Acest lucru duce la a simplificarea MUA-ului prin separarea clar˘ a rolurilor: MUA-ul trebuie s˘ a a ofere facilit˘¸i de editare ¸i s˘ prezinte utilizatorului o interfat˘ prietenoas˘. a c˘rui adres˘ a a s a a este configurat˘ ˆ optiunile MUA-ului.T. at s a ¸a a iar MTA-ul are toate complicatiile legate de livrarea mesajelor.c 2008.

De asemenea. MTA-ul memoreaz˘ ¸ a In a local mesajele adresate acestor utilizatori ¸i le ofer˘ acestora posibilitatea de s a a le citi prin IMAP sau POP3.c 2008. preia mesajele din extea rior destinate tuturor adreselor din reteaua local˘ ¸i le retrimite MTA-urilor. ˆ mesajul primit. Pe sistemele de tip UNIX. Posta electronica ¸ 11.1. aceast˘ configurare se face prin directive a plasate ˆ fi¸ierele . descrise prin exın ¸ ¸ s presii regulare. mesajul poate fi plasat ˆ fi¸iere specificate ın ın s . un MTA actioneaz˘ ca punct de treIn ¸ ¸ a cere pentru mesajele care pleac˘ sau sosesc la un grup de MTA-uri dintr-o a retea local˘. a • ce transform˘ri trebuie aplicate mesajelor. ın a ın Fi¸ierul . MTA-ul preia ¸i transmite spre s exterior mesajele utilizatorilor. Configurarea unui MTA De cele mai multe ori. un mesaj adresat unui utilizator local este ad˘ugat la finalul unui fi¸ier avˆnd ca nume numele utilizatorului ¸i situat a s a s ˆ directorul /var/mail. ¸ a Un mail gateway poate fi util ca unic filtru contra viru¸ilor ¸i spam-urilor pens s tru o ˆ ıntreag˘ retea local˘ (ˆ opozitie cu a configura fiecare MTA din reteaua a ¸ a ın ¸ ¸ local˘ ca filtru). a Un MTA trebuie configurat cu privire la urm˘toarele aspecte: a • care sunt adresele locale ¸i cum se livreaz˘ mesajele destinate acestor s a adrese.procmailrc cuprinde instructiuni mai complexe de proces ¸ sare a mesajelor primite: ˆ functie de aparitia unor ¸iruri.forward ¸i . un MTA consider˘ ca fiind adrese locale acele adrese care a au numele de domeniu identic cu numele ma¸inii pe care ruleaz˘ MTA-ul ¸i s a s avˆnd partea de utilizator identic˘ cu un nume de utilizator al ma¸inii locale. a a s Pe sistemele de operare de tip UNIX. ¸ a ˆ configuratii mai complicate. ¸ as din reteaua local˘. responsabile. doar din reteaua local˘) de la care se s ın ¸ a accept˘ mesaje spre a fi trimise mai departe spre Internet. El preia mesajele de la toate MTA-urile din reteaua local˘ ˆ ¸ a ¸ a ın scopul retransmiterii lor c˘tre exterior. generate de MUA-urile ce ruleaz˘ pe calculaa toarele din reteaua local˘. un MTA este resposnabil de adresele utilizatorilor calculatoarelor dintr-o retea local˘. Radu-Lucian Lup¸a s 366 ˘ 11. ˆ acest caz. De asemenea.forward contine un ¸ir de adrese la care trebuie retrimis s ¸ s mesajul ˆ loc s˘ fie livrat local ˆ /var/mail/user. • care sunt ma¸inile (ˆ principiu. Fi¸ierul . a Implicit.3.procmailrc din directorul personal al utilizaın s s torului. Un astfel de MTA este numit mail gateway. ın MTA-ul responsabil de o anumit˘ adres˘ destinatie poate fi configurat a a ¸ de c˘tre utilizatorul destinatar s˘ execute anumite prelucr˘ri asupra mesajului a a a primit.2.1.

ro s˘ apar˘ cu adresa a ıl a a From: ion@freebsd.ubbcluj. Aplicatii ˆ retele ¸ ın ¸ 367 ˆ .scs.ubbcluj.ro. dac˘ un acela¸i utilizator are cont pe sa a a s mai multe ma¸ini. a s De exemplu. a ın un mesaj trimis la aceast˘ adres˘ nu este plasat ˆ /var/mail/root ci a a ın este retrimis utilizatorilor (configurati ˆ fi¸ierul /etc/aliases) care se ¸ ın s ocup˘ de administrarea sistemului. situate ˆ domeniul numelui a sa ın ma¸inii locale. se poate configura MTA-ul de pe nessie.ubbcluj. De exemplu.ro.ubbcluj.cs.ro a s mesajul s˘ apar˘ avˆnd adresa surs˘ From: ion@linux. a a a a iar dac˘ ˆ scrie de pe freebsd.scs.procmailrc sau poate fi pasat unor comenzi care s˘-l proceseze. un MTA poate fi configurat de c˘tre a administrator s˘ execute lucruri mai complicate: a • Este posibil s˘ se configureze adrese de po¸t˘.ro este configurat˘ ˆ acest fel. Un astfel de mecanism este utilizat ˆ a ın mod curent de furnizorii de servicii Internet pentru a g˘zdui po¸ta eleca s tronic˘ a unor clienti care au nume propriu de domeniu dar nu detin a ¸ ¸ servere de po¸t˘ electronic˘ care s˘ preia po¸ta adresat˘ adreselor din sa a a s a domeniul respectiv. de regul˘ locale. Pentru fiecare astfel de adres˘ trebuie definit˘ o list˘ a a a de adrese. Pentru aceasta.ro s˘ accepte mesajele destinate lui ion@example. ın a Pentru cazuri mai complicate.cs.com ¸i s˘ le livreze utia s a lizatorului local gheorghe. MTA-ul care se ocup˘ de livrarea spre exterior a mesajelor generate ˆ reteaua ina ın ¸ tern˘ va schimba.cs.scs. mai trebuie ca mesajul s˘ ajung˘ a a a a pˆn˘ la nessie.ro. trebuie ca MUA-ul exa a peditor sau un MTA de pe traseu s˘ determine ca urm˘tor MTA ma¸ina a a s nessie. adresa root@cs.scs.ubbcluj. a Ca exemplu.com s˘ poat˘ fi livrat. nu este de dorit ca numele ma¸inii interne s˘ apar˘ ˆ adresa de a s a a ın po¸t˘ electronic˘.com indicˆnd a c˘tre nessie. Radu-Lucian Lup¸a s Capitolul 11. lucru care se ˆ ampl˘ dac˘ ˆ DNS se pune ıntˆ a a ın oˆ ınregistrare MX pentru numele de domeniu example. • Dac˘ utilizatorii expediaz˘ mesaje de pe mai multe ma¸ini dintr-o retea a a s ¸ local˘.ubbcluj.ubbcluj. nu este de dorit ca adresa expeditorului s˘ depind˘ s a a de ma¸ina de pe care utilizatorul scrie efectiv mesajul. eliminˆnd numele ma¸inii locale ¸i p˘strˆnd doar a s s a a .ubbcluj.plic“ (valoarea parametrului comenzii SMTP MAIL FROM:). nu s este de dorit ca dac˘ scrie un mesaj pe ma¸ina linux. atˆt ˆ antetul mesajului (valoarea cˆmpului From) a a ın a cˆt ¸i pe ..c 2008. care s˘ fie considerate valide chiar dac˘ nu exist˘ utilizas a a a tori cu acele nume. De exemplu. ale c˘ror nume nu au nimic comun cu numele ma¸inii MTA-ului. a • Un MTA poate fi configurat s˘ se considere responsabil de mai multe a domenii.ro. la care se va distribui fiecare mesaj primit.ubbcluj. a s adresa expeditorului. Pentru aceasta.ro. Desigur.cs. pentru ca un mesaj destinat lui ion@example.

OpenPGP [RFC 2440.com ¸i s˘ le livreze utilizatorus a lui local gheorghe. Radu-Lucian Lup¸a s 368 ˘ 11. ata¸ate unui mesaj elecs s tronic. un MTA trebuie s˘ In a accepte mesajele generate de calculatoarele din reteaua local˘ ¸i mesajele ¸ as destinate adreselor locale.ro ˆ ion@example.3. ]. nu este luat˘ nici o m˘sur˘ de autentificare a s a a a a expeditorului. de obicei publicitare. deoarece este adesea utilizat de utilizatori r˘u-voitori pentru a trimite mesaje a ascunzˆndu-¸i identitatea. ın • Un alt element important de configurare prive¸te decizia unui MTA de a s accepta sau nu spre livrare un mesaj. a ın Un open relay este privit de obicei ca un risc pentru securitate. a c˘ror executie sau respectiv vizualizare duce la trimiterea de a ¸ mesaje electronice c˘tre alti destinatari.ro este configurat s˘ aca a a cepte mesajele destinate lui ion@example.ubbcluj. Falsificarea adresei surs˘ (spoofing) poate fi depistat˘ ˆ anumite a a ın cazuri examinˆnd cˆmpurile Received din antetul mesajului ¸i verificˆnd dac˘ a a s a a exist˘ neconcordante ˆ a ¸ ıntre numele declarat prin HELO a unui client SMTP ¸i adresa sa IP sau neconcordante ˆ s ¸ ıntre numele primului MTA ¸i partea de s domeniu din adresa expeditorului.ubbcluj. ˆ cazul ˆ care c˘sutele po¸tale dintr-un domeniu sunt ¸inute de un ın ın a ¸ s t calculator al c˘rui nume nu face parte din acel domeniu (vezi § 11.ro.com.3).ubbcluj. Securitatea po¸tei electronice s Principalele probleme privind securitatea sunt: • spoofing-ul — falsificarea adresei surs˘ (From sau Sender).cs. s . a • spam-urile — mesaje. a s 11. s aa ¸ • viru¸ii — programe executabile sau documente. trimise unui num˘r mare de a persoane ¸i f˘r˘ a fi legate de informatii pe care destinatarii le-ar dori.1. din In adres˘ r˘mˆne doar ion@scs. Un MTA care s ın accept˘ spre livrare orice mesaje este numit ˆ mod curent open relay.1.1. a ¸ Falsificarea adresei surs˘ este extrem de simpl˘ deoarece. ˆ mod normal.c 2008. Modificarea poate fi mai a a a complex˘: astfel. 2007. ˆ exemplul de mai sus.cs. De notat c˘ anumite neconcordante pot fi a ¸ legitime. dac˘ nessie. 2001] ¸i S-MIME [S/MIME. RFC 3156. Posta electronica ¸ restul componentelor numelui de domeniu. Exist˘ dou˘ standarde de semn˘tur˘ electronic˘ utia a a a a a lizate. este probabil de dorit ca pentru mesajele compuse de utilizatorul local gheorghe s˘ fac˘ transformarea adresei surs˘ din a a a gheorghe@nessie. dar s˘ nu accepte trimiterea mai departe a a mesajelor provenite din exterior ¸i destinate ˆ exterior. ˆ transa a ın miterea obi¸nuit˘ a mesajelor. a O metod˘ mai eficient˘ pentru depistarea falsurilor este utilizarea a a semn˘turii electronice.2.

de c˘tre autorul spama a urilor. s˘ fie ¸ters din gre¸eal˘. s De mentionat filtrele anti-spam nu pot fi f˘cute 100% sigure deoarece ¸ a nu exist˘ un criteriu clar de diferentiere. ˆ ınrudite dar disˆ general. Denumirea corect˘ pentru un ın a a a astfel de program este aceea de cal troian. In a executie duce la inserarea unor c´pii ale sale ˆ alte programe de pe calcula¸ o ın torul pe care se execut˘ virusul. a a a a sistemul de po¸t˘ electronic˘ trebuie s˘ asigure livrarea mesajelor nesemnate sa a a ¸i ˆ consecint˘ cu risc de a fi falsificate.. s ın ¸a U¸urinta falsific˘rii adresei surs˘ ¸i u¸urinta p˘str˘rii anonimatului s ¸ a a s s ¸ a a autorului unui mesaj a dus la proliferarea excrocheriilor. a corect. Astfel de detectoare se instaleaz˘ pe ¸ a MTA-uri ¸i resping sau marcheaz˘ prin antete speciale mesajele detectate ca s a spam-uri. ei primesc sesiz˘ri ¸i ˆ autorilor. Un MTA care detecteaz˘ ¸i respinge sau marcheaz˘ spam-urile se as a nume¸te filtru anti-spam. a tot ceea ce arat˘ a s a ın a a adres˘ de po¸t˘ electronic˘. Majoritatea furnizorilor de servicii Internet nu permit. Pˆn˘ la generalizarea utiliz˘rii mesajelor semnate. Aplicatii ˆ retele ¸ ın ¸ 369 Verificarea semn˘turii necesit˘ ˆ a ca destinatarul s˘ dispun˘ de cheia public˘ a a ıns˘ a a a autentic˘ a expeditorului.c 2008. doar ˆ forme dificil de procesat automat — de ın exemplu. a a ¸ Spam-urile d˘uneaz˘ deoarece consum˘ ˆ mod inutil timpul destia a a ın ˆ plus. In a s ıntretin liste cu adresele de la ¸ care provin spam-urile (liste negre — blacklist). a unui num˘r mare de adrese valide de po¸t˘ electronic˘. inserat ˆ ıntr-un program util. In a ıngropat“ ˆ ıntre multe spam-uri. s Termenul de virus poate desemna mai multe lucruri. prin virus se mai desemneaz˘ un a a fragment. bazate pe diferite metode a din domeniul inteligentei artificiale. doar fragmentelor de program capabile s˘ se reproduc˘ (s˘-¸i insereze a a as . prin contract. Contram˘sura la aceast˘ recoltare este scrierea a sa a a a adreselor. orice filtru anti-spam va a ¸ l˘sa s˘ treac˘ un anumit num˘r de spam-uri ¸i exist˘ ¸i riscul de-a respinge a a a a s as mesaje legitime. Ca urmare. exist˘ riscul ca un mesaj legitim. Radu-Lucian Lup¸a s Capitolul 11. . clientilor s˘ trimit˘ spam-uri ¸i depun eforturi pentru depistarea ¸i penalizarea ¸ a a s s ˆ acest scop.ˆ natarului. Adesea excrocheriile constau ˆ trimiterea de mesaje unui num˘r mare de utilizatori (acest fapt ın a ˆ sine este spam) ˆ speranta de-a g˘si printre ace¸tia unii care s˘ se lase ın ın ¸ a s a p˘c˘liti. un virus informatic este un fragment de program a c˘rui tincte. ˆ paginile web. a s s a Exist˘ detectoare automate de spam-uri. Acest lucru a sa a se realizeaz˘ cel mai u¸or prin c˘utarea. gif sau png). ca imagine (ˆ ıntr-un fi¸ier jpeg. Impropriu. Trimiterea spam-urilor necesit˘ recoltarea. care execut˘ actiuni nocive utilizatorua ¸ lui ˆ contul c˘ruia se execut˘ acel program. din paginile web. Denumirea de virus poate fi dat˘.

pentru a-¸i realiza scopul. de exemplu dintr-un cont separat. ci s˘ scrie un mic text explicativ. virusul a ¸ o In utilizeaz˘. mesajul este adesea construit ca ¸i cˆnd ar proveni de s a la administratorul de sistem sau de la un prieten al destinatarului. Virusul se poate repros s duce fie prin mijloace independente de po¸ta electronic˘.c 2008. Astfel. ˆ acest al doilea caz. un virus ¸ s trebuie s˘ ajung˘ s˘ determine executia. Metodele de prevenire a viru¸ilor de po¸t˘ electronic˘ sunt acelea¸i s sa a s ca ¸i metodele de prevenire a viru¸ilor ˆ general. atunci programul poate fi semnat electronic. fie prin expedierea. Pentru programele exes s ın cutabile. a adreselor a t a partenerilor de corespondent˘ ai utilizatorului care prime¸te mesajul virusat. Pentru programe provenite din surse ce nu sunt de ˆ ıncredere. cu drepturi minime. a • Virusul este un document astfel construit ˆ at. exist˘ cˆteva actiuni care mic¸oa a a a ¸ s reaz˘ riscul sau consecintele executiei unui virus. ¸a s Indiferent de forma de propagare (infectarea fi¸ierelor locale sau transs miterea de mesaje spre alti utilizatori). cu drepturile utilizatorului victim˘. pe care utilizatorul ˆ exeıl cut˘. Radu-Lucian Lup¸a s 370 ˘ 11. ¸inut˘ de MUA. autorul este o firm˘ de soft de ˆ a ıncredere). s˘ determine proa gramul de vizualizare s˘ execute actiunea dorit˘ de autorul virusului. pentru aceasta. Alt˘ m˘sur˘ prea a a ventiv˘ este aceea de a nu vizualiza sau executa fi¸ierele ata¸ate unui mesaj a s s suspect. Posta electronica ¸ c´pii ˆ alte programe). a a a s s s . a a a a ¸ a unei secvente de instructiuni aleas˘ de autorul virusului. exploatˆnd o eroare din ıncˆ a programul utilizat pentru vizualizarea documentului. s a c˘tre alti utilizatori. un virus este un fragment dintr-un In s program plasat ca fi¸ier ata¸at la un mesaj electronic.1. a unor c´pii ale mesajului. dac˘ utilizatorul are ˆ a ıncredere ˆ autorul declarat al programului (de ın exemplu. a a Pe lˆng˘ aceste metode de prevenire. de obicei. a ¸ a Pentru a p˘c˘li destinatarul ¸i a-l determina s˘ execute sau s˘ vizuala a s a a izeze fi¸ierul ata¸t. este bine ca expeditorul unui mesaj s˘ nu trimit˘ a a niciodat˘ un mesaj numai cu fi¸iere ata¸ate. Acest lucru se poate ¸ ¸ a ˆ ampla ˆ dou˘ moduri: ıntˆ ın a • Virusul se g˘se¸te ˆ a s ıntr-un program executabil. executia lor se poate face ˆ ¸ ıntr-un mediu controlat. Una dintre ele este reducerea a ¸ ¸ la minimul necesar a lucrului din cont de administrator. Aceast˘ a ¸ ¸ a din urm˘ abordare este utilizat˘ de applet-urile Java. corpul mesajului este construit astfel ˆ at s˘ cˆ¸tige ˆ s s ıncˆ a as ıncrederea utilizatorului. iar utilizatorul poate verifica aceast˘ semn˘tur˘ pentru a se a a a convinge de autenticitatea programului. a s s a care s˘-i permit˘ destinatarului s˘ identifice autorul ¸i scopul fi¸ierelor ata¸ate. sau prin intermediul unui interpretor care s˘ nu execute instructiunile potential nocive. o ın ˆ contextul po¸tei electronice. adrese extrase din lista.

etc.2. driver terminal hard Terminal fizic Figura 11. celelalte fiind .2: Componentele implicate ˆ ıntr-o sesiune interactiv˘ local˘ a a ˆ general ne gˆndim c˘ pe un astfel de sistem lucreaz˘ un singur utiIn a a a lizator la un moment dat. PC-urile au repetat. ¸ ın sistemele fiind numite cu time-sharig. fie prin comutatoare speciale (KVM a switch).x). ecranul ¸i eventual alte dispozitive cu ajutorul c˘rora utilizatorul a s a interactioneaz˘ cu sistemul de calcul (mouse. pˆn˘ la un punct. Radu-Lucian Lup¸a s Capitolul 11. Conectarea as a este realizat˘ printr-o interfat˘ hardware de conectare a dispozitivelor pera ¸a iferice (RS232.) este coneca a tat la un singur calculator. Sistemul permite comutarea ˆ ¸ ıntre sesiuni. Sesiuni interactive la distant˘ ¸a O sesiune interactiv˘ local˘ a unui utilizator (vezi fig. bazat pe solutii ¸ ad-hoc (deturnarea ˆ ıntreruperilor ˆ DOS. PS/2. VGA. etc. ˆ felul acesta lucrˆnd sia s ın a multan mai multi utilizatori. ecran.c 2008.) sunt conectate ¸ a direct la calculatorul pe care se desf˘¸oar˘ sesiunea utilizatorului. au continuat cu un multitasking primitiv. 11. mutarea lui de la un calculator la altul putˆndu-se a face fie prin mutarea fizic˘ a conectorului. pentru acela¸i utilizator sau s a s pentru utilizatori distincti..ˆ ınghetate“. DVI). . exist˘ ¸i posibilitatea de-a conecta mai multe s as ansambluri tastatur˘–ecran la un acela¸i calculator. sistemul Windows pˆn˘ la versiuın a a nile 3. etc). Aplicatii ˆ retele ¸ ın ¸ 371 11. sisteme multitasking f˘r˘ protectie ˆ aa ¸ ıntre utilizatori (Windows 9x ¸i s ME) ¸i ˆ final sisteme multitasking propriu-zise (Windows NT/2000/XP ¸i s ın s sistemele de tip UNIX — Linux ¸i porturile FreeBSD. a a istoria calculatoarelor mari: au ˆ ınceput ca sisteme monoutilizator. Solaris. Un dispozitiv (tastatur˘. difuzoare. s Linux (prin mecanismul consolelor virtuale) ¸i Windows XP (prin s mecanismul switch user ) permit deschiderea simultan˘ a mai multor sesiuni a locale de la acela¸i ansamblu tastatur˘–ecran. O singur˘ sesiune poate fi activ˘ la un moment ¸ a a dat. Acest mecanism s-a utilizat masiv ˆ anii 1970. monotasking (sistemul DOS). Totu¸i. care permite leg˘turi pe distante de a ¸ cel mult cˆteva zeci de metri.2) presupune a a c˘ tastatura. O. login bash S. USB.

2. O. cu conditia s˘ aib˘ un cont acolo). motiv pentru care este un client. driver pseudoterminal hard client telnet S.3) ¸a const˘ din dou˘ componente majore: a a • Pe sistemul la care este conectat fizic utilizatorul ruleaz˘ o aplicatie care a ¸ trimite prin retea ceea ce utilizatorul introduce de la tastatur˘ ¸i afi¸eaz˘ ¸ as s a pe ecran ceea ce trimite sistemul de la distant˘. ˆ felul acesta. conectat prin retea la calculatorul pe care se a ¸ desf˘¸oar˘ sesiunea. un utilizator aflat ˆ fata unui calcuas a In ın ¸ lator conectat la Internet poate deschide o sesiune la distant˘ c˘tre orice alt ¸a a calculator din Internet (bineˆ ¸eles. Aceast˘ aplicatie este s s ¸ a ¸ lansat˘ la pornirea sistemului ¸i a¸teapt˘ conexiuni — fiind ˆ acest sens a s s a ın un server. ın . a ¸a Sistemul pentru deschiderea sesiunilor la distant˘ (vezi fig. Radu-Lucian Lup¸a s 372 11. La conectarea unui client. Aceast˘ aplicatie deschide ˆ mod activ a a ¸ ın conexiunea la deschiderea sesiunii.3: Componentele implicate ˆ ıntr-o sesiune interactiv˘ la distant˘. Acest mecanism poate fi utilizat pentru s a deschiderea unei sesiuni ca alt utilizator. server login bash telnet S.c 2008. aplicatia server autentific˘ clientul ¸ a dup˘ care (ˆ cazul unei autentific˘ri cu succes) lanseaz˘ procesele care a ın a a sunt lansate ˆ mod normal la deschiderea unei sesiuni. conectat In ¸a ın printr-o interfat˘ specializat˘ la calculatorul pe care se desf˘¸oar˘ sesiunea. Sesiuni interactive la distanta ¸˘ ˆ cazul unei sesiuni la distant˘. De exemplu. Prinınt ¸ a a cipial. 11. f˘r˘ a ˆ a a ınchide prima sesiune. pe care are loc sesiunea. s a Deschiderea unei sesiuni prin mecanismul de sesiune la distant˘ se ¸a poate face ¸i c˘tre calculatorul local. ¸a a as a se utilizeaz˘ un calculator. ˆ locul unui terminal. driver terminal hard Calculator server Retea ¸ Calculator client Terminal fizic Figura 11. num˘rul de sesiuni deschise simultan c˘tre un calculator este limitat a a doar de resursele calculatorului (memorie ¸i vitez˘ de procesare). preia datele de a ın ie¸ire ale acestor procese — datele care ˆ cazul unei sesiuni locale s-ar s ın afi¸a pe ecran — ¸i le trimite prin retea clientului. O. Afi¸area se poate face pe ¸a s tot ecranul sau ˆ ıntr-o fereastr˘. De asemenea. • Pe sistemul de la distant˘. ruleaz˘ o aplicatie ¸a a ¸ care prime¸te prin retea datele trimise de aplicatia client ¸i le livreaz˘ s ¸ ¸ s a proceselor ce ruleaz˘ ˆ cadrul sesiunii.

permitˆnd tunelarea protejat˘ ıns˘ ¸a a criptografic a conexiunilor TCP pentru alte aplicatii. De a a ın notat c˘. ce ar rula ˆ sesiunea ın utilizatorului. a este necesar ca sistemul de operare s˘ ofere un mecanism adecvat de a comunicatie ˆ ¸ ıntre procese. tunelarea unor ın a conexiuni TCP arbitrare.1. Protocolul este un exemplu instructiv de utilizare praca tic˘ a primitivelor criptografice. Comunicatia decurge complet independent ˆ cele ¸ ¸ ın dou˘ sensuri. Mecanismul de comunicatie trebuie s˘ apar˘ ¸ a a fat˘ de procesele din sesiunea utilizatorului ca ¸i cˆnd ar fi tastatura ¸a s a ¸i ecranul adev˘rate. a a la telnet. unui editor de texte. transferul de fi¸iere ¸i transmiterea informatiilor de s s ¸ autentificare criptografic˘ pentru alte sesiuni ssh.2. 11. Nivelul cel a a mai de deasupra cuprinde aplicatia propriu-zis˘ ¸i permite sesiuni de lucru. Conexiunea ssh protejat˘ criptografic a Descriem ˆ continuare modul ˆ care ssh realizeaz˘ protejarea cripın ın a tografic˘ a conexiunii.1.2. protejat˘ criptografic. de exemplu. acest mecanism s a In este mecanismul pseudoterminalelor . De notat c˘ mecanismul pipe nu a este adecvat deoarece un pipe nu apare procesului ca un terminal ¸i s nu permite. Radu-Lucian Lup¸a s Capitolul 11. s˘ solicite primirea fiec˘rui caracter tastat ˆ parte. serverul lanseaz˘ ˆ executie un shell ın a ın ¸ rulˆnd ˆ contul utilizatorului. compresie ¸i dispersie cu cheie utilizati pentru a s ¸ fiecare sens al comunicatiei. ˆ mod normal. ˆ cazul sistemelor de tip UNIX. Aplicatii ˆ retele ¸ ın ¸ 373 ˆ cazul unui sistem de tip UNIX. Protocolul ssh Protocolul ssh a fost dezvoltat ca o alternativ˘. ¸ Protocolul ssh este construit pe mai multe nivele. ˆ mod text. a ˆ secventa de initializare a conexiunii — care va fi descris˘ mai jos In ¸ ¸ a — clientul ¸i serverul stabilesc un identificator de sesiune ¸i. o cheie de criptare ¸i o cheie de autentificare. a 11. un proces prime¸te cˆte o linie ˆ momentul a ın s a ın ˆ care utilizatorul apas˘ enter . se stabilesc s algoritmii de criptare simetric˘. Nivelul a urm˘tor realizeaz˘ multiplexarea conexiunii protejate criptografic. a . 2006] realizeaz˘ protejarea criptografic˘ a conexiunii ¸i se a a s bazeaz˘ pe serviciile de conexiune TCP oferite de sistemul de operare. pentru fiecare s s sens.1.c 2008. Nivelul cel mai de jos [RFC 4253. Protocolul ssh este ˆ a extensibil. a ın Pentru ca serverul s˘ comunice cu procesele din cadrul sesiunii. c˘tre sisteme de tip UNIX. De asemenea. pˆn˘ atunci nucleul sistemului permite ın a a a utilizatorului editarea liniei. ¸ a s interactive sau nu.

criptare ¸i dispersie cu cheie se face ˆ clar. Apoi. Num˘rul de ordine al blocului s a fiind cunoscut receptorului. un ¸ir de octeti aleatori. Pentru fiecare pachet de date utile. Datele utile sunt comprimate utilizˆnd algoritmul de compresie curent a pentru sensul de comunicatie curent. Se adaug˘. dup˘ care din rezultatul concaten˘rii a a se calculeaz˘ dispersia cu cheia de autentificare curent˘. Num˘rul de octeti aleatori ad˘ugati trebuie astfel a ¸ a ¸ a ¸ ales ˆ at s˘ rezulte ˆ urma concaten˘rii un ¸ir de lungime multiplu de ıncˆ a ın a s lungimea blocului cifrului utilizat. compresia. de ın dimensiune variabil˘. compresia a a cre¸te entropia datelor de criptat. f˘cˆnd dificil˘ determinarea lungimii datelor utile din blocul s a a a a criptat. criptarea ¸i dispersia cu s cheie sunt dezactivate. f˘cˆnd mai dificil˘ spargerea cifrului. iar ˆ fata a a s ¸ ın ¸ lor se adaug˘ un octet reprezentˆnd lungimea ¸irului aleator. ¸ 5. Lungimea complet˘rii aleatoare este a a ¸i ea criptat˘. datele de transmis sunt grupate ˆ pachete. nivelul TCP ¸i nivelele inferioare corectˆnd erorile a s a de transmisie la nivel fizic ¸i eventualele pierderi de pachete IP datorate unei s congestii ˆ retea. fapt ce permite ¸ a s a receptorului s˘ verifice c˘ datele sunt autentice ¸i c˘ sunt proaspete — num˘rul a a s a a de ordine al blocului primit este cel a¸teptat. In ¸ a a de ordine al pachetului curent. Pachetul transmis efectiv este rezultatul concaten˘rii pachetului criptat a (rezultat din pasul 3) cu dispersia cu cheie (rezultat˘ din pasul 4).2. Radu-Lucian Lup¸a s 374 11. Remarc˘m faptul c˘ o astfel a a a de nepotrivire poate fi cauzat˘ doar de o tentativ˘ de modificare a datelor a a de c˘tre un adversar activ. ın ¸ La deschiderea conexiunii ssh. Negocierea primului set de chei ¸i a algoritmilor de s compresie. Num˘rul de a a a ordine ˆ ıncepe de la 0 ¸i cre¸te cu 1 la fiecare pachet independent de s s eventuala schimbare a cheilor sau algoritmilor criptografici utilizati. O dat˘ alese cheile s ın a .c 2008. dup˘ datele comprimate. 3. reprezen¸ s ¸ a a s tat˘ pe patru octeti. ˆ a a s ın fata ¸irului astfel obtinut. dispersia criptografic˘ cu cheie se calculeaz˘ dintra a a un bloc continˆnd datele utile ¸i num˘rul de ordine al blocului. Pe de o parte. se adaug˘ lungimea total˘ a ¸irului. Rezultatul pasului precedent se cripteaz˘. nu este nevoie s˘ fie trimis efectiv. Pe de alt˘ parte. Octetii s a a a ¸ ad˘ugati la finalul blocului fac ca ˆ cazul repet˘rii aceluia¸i bloc de date a ¸ ın a s utile s˘ rezulte blocuri criptate diferite. a ˆ fata blocului (necriptat) rezultat din pasul 2 se adaug˘ num˘rul 4. a Rolul acestor transform˘ri este urm˘torul. conexiunea este abandonat˘. se construie¸te ¸i se a s s transmite pe conexiune un pachet generat astfel: 1. ¸ 2. a ˆ cazul vreunei nepotriviri privitoare la dispersia criptografic˘ cu In a cheie a unui bloc. Sesiuni interactive la distanta ¸˘ Pentru fiecare sens.

asupra ˆ a a a a ıntregului schimb de informatie de pˆn˘ atunci — adic˘ listele de algoritmi suportati ¸i pachetele ¸ a a a ¸ s corespunz˘toare protocolul Diffie-Hellman. a ın Pentru facilitarea r˘spˆndirii utiliz˘rii protocolului ssh. avertizeaz˘ utilizatorul. emise de ambele p˘rti. utilizarea de ınc˘ a c˘tre client a cheii publice transmise de server prezint˘ riscul ca un adversar a a activ s˘ se dea drept serverul autentic. a serverului cu ¸a a ¸a care comunic˘ acesta) se face dup˘ cum urmeaz˘. a¸ a Negocierea cheilor ¸i algoritmilor se face dup˘ cum urmeaz˘. clientul compar˘ cheia primit˘ de la server cu cea stoa a a a cat˘ locat. Clientul trebuie s˘ aib˘ cheia public˘ a a a a a a a serverului. serverul trimite cliena tului o semn˘tur˘. dispersie cu cheie. ¸a existˆnd ˆ acest scop mai multe mecanisme posibile (vezi § 11. pentru fiecare categorie. dintre cei acceptati de server). clientul se asigur˘ c˘ negocierea a avut loc ˆ a a a ıntr-adev˘r a cu serverul autentic. Dup˘ realizarea schimbului Diffie-Hellman. Din informatia secret˘ construit˘ prin schimbul Diffie¸ a a Hellman se construiesc (pe baza unor functii de dispersie f˘r˘ cheie) cheile ¸ aa secrete pentru criptare ¸i pentru autentificare pentru fiecare sens.c 2008. compresie. s Mai r˘mˆne de autentificat schimbul Diffie-Hellman. semn˘tur˘ digital˘ ¸i schimb de chei sua a as portate.2). a a La aceast˘ prim˘ conectare. La a a urm˘toarele conect˘ri. singur. clientul stocheaz˘ local cheia primit˘ de la server. Dac˘ ˆ a adversarul n-a modificat a a ıns˘ cheia public˘ transmis˘ de server. dac˘ sunt diferite. Radu-Lucian Lup¸a s Capitolul 11. Aplicatii ˆ retele ¸ ın ¸ 375 ¸i algoritmii. orice a a atac ulterior din partea unui adversar activ este descoperit˘. cu algoritmii de ın a ¸ criptare.1. Autentificarea clientului fat˘ de server se face ulterior. Serverul are o pereche de a a a chei pentru semn˘tur˘ electronic˘.2. Mai mult. ˆ a a ımpiedicarea unui atac al unui eventual adversar . Urmeaz˘ schimbul de mesaje con¸ a form protocolului Diffie-Hellman (ssh nu are definite deocamdat˘ alte metode a de schimb de chei). acestea sunt activate ¸i se poate ˆ s s ıncepe comunicatia ˆ folosul ¸ ın aplicatiilor. ˆ ordinea descresc˘toare a preferintei. Algoritmul utilizat. este vulnerabil la atacul unui adversar activ. restul comunicatiei este sigur. ˆ acest fel. a a ¸ la prima conectare. Prin vera a¸ ificarea semn˘turii. serverul transa a a mite la deschiderea conexiunii cheia sa public˘ c˘tre client. fat˘ de client. Autentifia a carea cheii fat˘ de client (adic˘ autentificarea. Algoritmii ¸i cheile pot fi renegociate ulterior oridecˆteori una ¸ s a dintre p˘rti (clientul sau serverul) o solicit˘. a La prima conectare a programului client ssh la un server nou. calculat˘ cu cheia sa secret˘. dac˘ la a a a In a prima conectare cheia primit˘ de client de la server este cea autentic˘. Fiecare s a a parte trimite liste. Not˘m c˘. despre care am a a v˘zut c˘. deoarece a a a a transmisia cheii publice a serverului nu poate fi ˆ a autentificat˘. este primul algoritm de pe lista clientului care se reg˘se¸te ¸i ˆ lista serverului (adic˘ cel mai favorabil a s s ın a clientului. clientul avertizeaz˘ utilizatorul cu privire la faptul c˘ nu poate verifica cheia serverului.

2. de pe ma¸ina server a s sau dintr-o surs˘ autentificat˘. Ca urmare clientul s ¸ ¸ nu risc˘ s˘ trimit˘ parola unui adversar ¸i nici ca un adversar ce capteaz˘ a a a s a comunicatia criptat˘ s˘ retrimit˘ datele interceptate pentru a repeta o sesiune ¸ a a a legitim˘. ˆ ıntocmai ca ˆ cazul unei sesiuni ulterioare. Clientul poate fi autentificat de server prin mai multe metode. Aceste fi¸iere pot fi citite de orice utilizator s al sistemului. cheia a a a trimis˘ de server este autentic˘.ssh/known_hosts. cheile publice ale serverului (pentru diferitele protocoale de semn˘tur˘) se g˘sesc ˆ directorul /etc/ssh. clientul ssh poate verifica cheia serverului chiar de la prima sesiune. exist˘ autentificare reciproc˘ ˆ In a a ıntre client ¸i server.pub. Radu-Lucian Lup¸a s 376 11. Metode de autentificare ˆ ssh ın ˆ ssh.2. serverul se autentific˘ fat˘ de client cu ajutorul s a a ¸a unui mecanism cu cheie privat˘ ¸i cheie public˘.c 2008. Amprenta cheii dintr-un astfel de fi¸ier se determin˘ cu comanda s a ssh-keygen -l -f fi¸ier. ˆ fi¸ierele ssh_host_rsa_key. a as a Autentificarea prin parol˘ presupune trimiterea de c˘tre client a parolei. cheia public˘ a serverului ¸i o introduce a a a s manual ˆ lista de chei memorate local de programul client ssh. a Autentificarea prin semn˘tur˘ digital˘ presupune ca ˆ faza de initia a a ın ¸ alizare utilizatorul s˘ configureze pe server o cheie public˘. vorbind la ¸ a a telefon cu administratorul ma¸inii server). este rˆndul clientului s˘-¸i declare identitatea (numele de utilizator) ¸i s˘ a as s a se autentifice. ˆ acest ın In fel. in¸ a s ¸ tegritatea ¸i prospetimea comunicatiei sunt protejate. Dac˘ cele dou˘ dispersii coincid. a a Pe sistemele de tip UNIX.2. utilizatorul copiaz˘. Cleintul ssh memoreaz˘ cheile serverelor ˆ fi¸ierul s a ın s ~/. corespunz˘toare a a a . Cele mai comune sunt autentificarea prin parol˘ ¸i autentificarea prin semn˘tur˘ a s a a digital˘ (numit˘ ¸i autentificare cu cheie public˘). dintr-o surs˘ autentificat˘ (de exemplu.1. a a Este esential faptul c˘ serverul este deja autentificat ¸i confidentialitatea. a a a ın ın s respectiv ssh_host_dsa_key. utilizatorul compar˘ dispersia a astfel obtinut˘ cu dispersia cheii trimise de server (aceasta este afi¸at˘ ¸ a s a de clientul ssh ˆ ımpreun˘ cu mesajul de avertisment prin care anunt˘ a ¸a imposibilitatea verific˘rii cheii). Sesiuni interactive la distanta ¸˘ se poate face ˆ dou˘ moduri: ın a • ˆ Inainte de prima conectare. dispersia criptografic˘ a cheii s a publice a serverului. as a Dup˘ initializarea mecanismului de protectie criptografic˘ a conexiua ¸ ¸ a nii.pub. 11. La prima conectare. s A¸a cum am v˘zut. ın • Utilizatorul obtine.

Ultima solutie ¸ ofer˘ avantajul c˘. s˘ scrie noua a a a cheie public˘ ˆ fi¸ierul ~/. ˆ form˘ criptat˘ ˆ fi¸iere. Fi¸ierul ~/. cu a ¸a a cheia sa secret˘. asupra identificatorului de sesiune creat ˆ faza de stabilire a ın a comunicatiei protejate criptografic. clientul se autentific˘ trimitˆnd semn˘tura. a a ın Perechile de chei se genereaz˘ cu ajutorul utilitarului ssh-keygen.ssh/autthorized_keys poate contine mai multe chei. La conectare. exist˘ dou˘ posia a a bilit˘¸i. s˘ se configureze lansarea a unei anumite aplicatii. Criptarea a ın s ın a a ın s . Dac˘ fi¸ierul contine cheia secret˘ ca atare. utilizatorul trebuie s˘ genereze o nou˘ pereche de chei. ¸ a Pentru schimbarea cheii. ˆ acest caz. ˆ cazul stoc˘rii ca ın a atare a cheii secrete. i se va lansa automat aplicatia respectiv˘ ¸i nu o sesiune ¸ a s nerestrictionat˘. s ¸ ˆ acest caz. oricare dintre cheile secrete corespunz˘toare este valid˘ pentru In a a autentificare.ssh/authorized_keys (sub directorul personal al utiın s lizatorului). a Cheia public˘ admisibil˘ pentru conectarea ˆ contul unui utilizator a a ın se scrie ˆ fi¸ierul ~/. pe sistemele de tip UNIX a a avˆnd server OpenSSH. trebuie fie s˘ poarte cheia cu el pe s a un suport amovibil. a a ¸ a compromiterea sistemului server nu duce la compromiterea. Serverul verific˘ semn˘tura utilizˆnd ¸ a a a cheia public˘ ce a fost configurat˘. ˆ mod obi¸nuit. Dac˘ utilizatorul dore¸te s˘ aa a a a s a se conecteze de pe ma¸ini (client) diferite. Aplicatii ˆ retele ¸ ın ¸ 377 cheii sale secrete. este a a ın necesar˘ schimbarea cheii secrete doar de pe acel sistem. este descris˘ ˆ continuare. ˆ cazul compromiterii unuia dintre sistemele client. Radu-Lucian Lup¸a s Capitolul 11. Acesta este un avantaj fat˘ de cazul autentific˘rii a ¸a a prin parole. dac˘ clientul utilizeaz˘ cheia pereche pen¸ ın a a tru autentificare. la compromiterea imediat˘ a contului utilizatorului. doar posesorul contului poate stabili cheia admisibil˘ pentru auta entificare. s˘ ¸tearg˘ vechea cheie a ın s a s a public˘ din acest fi¸ier ¸i s˘ furnizeze noua cheie secret˘ clientului ssh la a s s a a conect˘rile ulterioare. s a Pentru furnizarea cheii secrete c˘tre clientul ssh. ¸i deci la neces sitatea schimb˘rii. unde compromiterea serverului duce la compromiterea parolei ¸i s la necesitatea schimb˘rii parolei nu numai pe acel sistem ci ¸i pe alte sisteme a s pe care utilizatorul avea aceea¸i parol˘. cheile a secrete se stocheaz˘. Prima posibilitate este ca fi¸ierul cu cheia secret˘ s˘ fie f˘cut disponiat s a a a bil clientului ssh.c 2008. pentru anumite chei. Este posibil ca. fie s˘ a a a utilizeze chei diferite pentru conectarea de pe fiecare sistem. cheii. Deoarece acest fi¸ier poate fi modificat doar de c˘tre posesorul s a contului. a Deoarece compromiterea unui sistem client duce.ssh/authorized_keys. de exemplu ˆ cazul compromiterii cheii seın crete. a a Configurarea autentific˘rii cu cheie public˘. fie s˘ pun˘ copii ale cheii secrete pe fiecare sistem. Deoarece cheia public˘ nu este o informatie secret˘. conectarea se a s ¸ a face f˘r˘ ca utilizatorul s˘ mai dea vreo parol˘.

In a a a Deschiderea sesiunii c˘tre ma¸ina server se face f˘r˘ a solicita utilizatorului a s aa vreo parol˘. a a a s ın nu se stocheaz˘ pe disc. pe durata a a ¸ a ıns˘ . Cererile de semn˘tur˘ primite de serverul ssh sunt trimise prin a a conexiunea ssh c˘tre client. Dac˘ cheia ses s s a cret˘ este stocat˘ criptat. cˆt ¸a a ¸ a a s a a ¸i parola de decriptare a acestuia). la deschiderea sesiunii. contacteaz˘ agentul de autentificare ¸i-i soa a s licit˘ accesul la cheile secrete stocate de acesta. Comunicatia fiind local˘. a La lansare. Clientul ssh paseaz˘ agentului a a identificatorul de sesiune ¸i prime¸te ˆ s s ınapoi semn˘tura cu cheia secret˘ asupra a a acestuia. a a a Cheia secret˘ decriptat˘ se g˘se¸te doar ˆ memoria agentului de autentificare. serverul ssh actioneaz˘ ¸i ca un agent de ¸ a s autentificare. Clientul ssh se conecteaz˘ la agentul de ın a a autentificare pentru a obtine accesul la cheie. Protocolul ssh permite constructia unei conexiuni securizate dinspre ¸ ma¸ina server ssh spre agentul de autentificare de pe ma¸ina client ssh. ˆ a. Prelungirea nu se poate face ˆ lipsa unui agent de autentificare pe ın ma¸ina client. al c˘rui nume este pus ˆ a ın variabila de mediu SSH_AUTH_SOCK. Agena tul de autentificare este un proces server care are ˆ memorie cheia secret˘ a ın a utilizatorului. ˆ s s In acest caz. Stocarea cheii numai ˆ form˘ criptat˘ ofer˘ un a a ın a a a plus de sigurant˘ (un intrus trebuie s˘ obtin˘ atˆt fi¸ierul cu cheia secret˘.2. iar clientul le trimite agentului local (de pe ma¸ina a s client). clientul ssh caut˘ s˘ vad˘ dac˘ pe ma¸ina local˘ ruleaz˘ a a a a s a a un agent de autentificare. Sesiuni interactive la distanta ¸˘ se realizeaz˘ printr-un algoritm simetric cu ajutorul unei chei derivate dintr-o a parol˘ aleas˘ de utilizator. ˆ a duce la necesitatea de a da clientului s ıns˘ ssh parola de decriptare la fiecare utilizare. clientul ssh nu ajunge s˘ cunoasc˘ efectiv cheia secret˘. ˆ acest fel. se a lanseaz˘ de regul˘ la deschiderea sesiunii pe ma¸ina client.c 2008. Autentificarea clientului (ssh sau ssh-add ) se face a a prin aceea c˘ drepturile de acces la socket-ul corespunz˘tor sunt acordate doar a a proprietarului agentului de autentificare. Dac˘ da. a Comunicatia dintre clientul ssh sau utilitarul ssh-add ¸i agentul de ¸ s autentificare se face printr-un socket de tip UNIX. Cheile secrete se a a s ˆ ıncarc˘ ˆ agentul de autentificare cu ajutorul unui program numit ssh-add. A doua posibilitate de a furniza aplicatiei client accesul la cheia se¸ cret˘ este prin intermediul unui program numit agent de autentificare. Radu-Lucian Lup¸a s 378 11. a ın Acest program permite ¸i listarea ¸i ¸tergerea cheilor secrete. ea nu poate fi ¸ a interceptat˘ sau modificat˘. avˆnd ca nume de executabil ssh-agent. ¸ Agentul de autentificare. ssh-add solicit˘ utilizatorului parola de decriptare. s Analizˆnd securitatea prelungirii conexiunii la agentul de autentifia care. observ˘m c˘ serverul nu obtine efectiv cheia secret˘. ˆ forma decriptat˘.

ubbcluj. tunelarea ¸i aplicatii s ¸ O dat˘ deschis˘ conexiunea ¸i realizat˘ autentificarea clientului. Din acest motiv. ¸a ın Descriem ˆ continuare arhitectura X Window. 11.c 2008. O aplicatie ce are nevoie de acces la un ecran grafic ¸i la s ¸ s . dezvoltat de Massachuttes Institute of Technology pe la mijlocul anilor 1980. Multiplexarea conexiunii.2. adic˘ ˆ a ın esent˘ lansarea unui shell ˆ contul utilizatorului autentificat.1. a 11. a unui fi¸ier lista. Tot la solic¸a ın itarea clientului.ro din directorul s s personal al utilizatorului rlupsa.2. Aplicatii ˆ retele ¸ ın ¸ 379 conexiunii. Sistemul X-Window Sistemul X-Window. Redirectionˆnd pe s a a ¸ a client intrarea sau ie¸irea standard a comenzii ssh.2. Mention˘m c˘ este ın ¸ a a diferit˘ fat˘ de sistemele studiate pˆn˘ aici. care gestioneaz˘ tastatura a a a ¸i ecranul local. comanda specificat˘ de utilizator este transIn a mis˘ serverului ¸i acesta o execut˘ cu intrarea ¸i ie¸irea redirectionate c˘tre a s a s s ¸ a server ¸i prelungite prin conexiunea securizat˘ c˘tre client.3. Radu-Lucian Lup¸a s Capitolul 11. pe ma¸ina local˘.ubbcluj. continˆnd s a s ¸ a lista numelor de fi¸iere de pe ma¸ina nessie.cs.ro ls -l > lista are ca efect final crearea. clientul a ın ssh nu face prelungirea conexiunii la agentul de autentificare decˆt la cererea a explicit˘ a utilizatorului. poate deschide sesiuni ˆ numele clientului c˘tre orice ma¸in˘ care ın a s a accept˘ cheile stocate ˆ agentul de autentificare. Acesta este un a a proces. canalul de comunicatie creat de server ˆ ¸ ıntre server ¸i shell -ul s lansat poate fi realizat printr-un pseudoterminal (cazul obi¸nuit al unei sesiuni s interactive) sau printr-o pereche de pipe-uri. se realizeaz˘. s a a ¸a Exemplul 11.5: Comanda ssh rlupsa@nessie. Diferenta provine ˆ primul rˆnd a ¸a a a ¸ ın a din faptul c˘ sistemul X Window are ¸i scopul de-a asigura proceselor acces la a s ecranul grafic local. este un sistem ce permite stabilirea de sesiuni la distant˘ ˆ mod grafic. ˆ acest caz.cs. per ansams a blu. redirectionarea intr˘rii sau ie¸irii standard c˘tre fi¸iere sau pipe-uri de pe ¸ a s a s ma¸ina local˘ pentru comanda executat˘ la distant˘. O prim˘ component˘ a sistemului este serverul X. A doua variant˘ se utilizeaz˘ ˆ a a ın cazul ˆ care utilizatorul a lansat clientul ssh cu specificarea unei comenzi de ın executat pe server. cliena a s a tul ssh poate solicita serverului deschiderea unei sesiuni de lucru. avˆnd de regul˘ acces privilegiat la sistem.

de exemplu. acestea conventii pe care aplicatiile se recomand˘ s˘ le respecte. s ın ¸ at . a 11. dup˘ autetificare. Ca urmare.c 2008. un client nu are nevoie ¸ ¸ de privilegii speciale ca s˘ actioneze ca window manager. inclusiv de pe calcula¸ ¸ toare diferite. iar ˆ fiecare fereastr˘ se pot deschide subferestre. Sesiuni interactive la distanta ¸˘ tastatura ata¸at˘ se nume¸te client X. window manager -ul adaug˘ bara de titlu ¸i marginile. Transferul fi¸ierelor ˆ retea s ın ¸ Cerinta de-a transfera fi¸iere ˆ retea poate avea diferite particu¸ s ın ¸ larit˘¸i. a a a Comutarea ˆ ıntre aplicatii. Exist˘ mai multe protocoale ¸i mai multe aplicatii pentru transferul at a s ¸ fi¸ierelor ˆ retea. cˆteva dina ¸ s a tre operatiile de care are nevoie un window manager ca s˘ functioneze sunt ¸ a ¸ acordate de serverul X doar unui client la un moment dat. exist˘ ni¸te a s ˆ linii mari. Window manager -ul se conecteaz˘ ¸i se autentific˘ ca un a s a client obi¸nuit. Serverul a ın a ¸ine evidenta modului ˆ care se suprapun ferestrele ¸i determin˘ ce parte din t ¸ ın s a desenul efectuat ˆ ıntr-o fereastr˘ este vizibil ¸i trebuie desenat pe ecran. De principiu. c˘ un client poate s˘ deseneze a a a ˆ ıntr-o fereastr˘ deschis˘ de alt client ¸i poate s˘ capteze tot ceea ce tasteaz˘ a a s a a utilizatorul ˆ acea fereastr˘. Deoarece oricum a a s nu exist˘ protectie ˆ a ¸ ıntre clientii conectati la un server X. Radu-Lucian Lup¸a s 380 11. Totu¸i. a a a • s˘ solicite s˘ primeasc˘ inform˘ri cu privire la tastele ap˘sate de utilizator a a a a a ¸i la mi¸c˘rile mouse-ului. Un client X se conecteaz˘ la serverul X s a s a ¸i. Serverul ¸ine evidenta unor ferestre. precum ¸i mutarea ¸i redimensionarea fer¸ s s estrelor principale ale aplicatiilor. ¸ a ın s Pentru ca aplicatii distincte s˘ nu se ˆ ¸ a ıncurce reciproc. a s Un client autentificat are acces deplin la tastatura ¸i ecranul gestions ate de server. In ¸ ¸ a a prev˘d ca o aplicatie s˘ nu deseneze ˆ ferestrele deschise de alt˘ aplicatie ¸i a ¸ a ın a ¸ s s˘ nu capteze tastele cˆnd nu este activ˘. s s a La un server se pot conecta simultan mai multi clienti. adaptate pentru diferite necesit˘¸i. nu pot exista dou˘ window manager -e simultan. dup˘ care solicit˘ serverului s˘ fie informat de cererile de des a a a schidere de ferestre trimise de ceilalti clienti.3. poate: s a • s˘ cear˘ serverului s˘ deseneze diverse lucruri pe ecran. Ecranul cu totul este consida a a ın a erat o fereastr˘. sunt admise la un moment dat s˘ ın a a se conecteze doar aplicatii rulˆnd ˆ contul aceluia¸i utilizator. La fiecare fereastr˘ principal˘ de¸ ¸ a a schis˘. Asta ˆ ınseamn˘. fiecare operatie de desenare at ¸ ¸ vˆnd specificat˘ o fereastr˘ ˆ care s˘ deseneze.2. cad ˆ sarcina unui client mai special numit ¸ ın window manager .

De principiu s s a s fi¸ierele respective sunt private. Pentru a detalii. avˆnd ca parametrii respectiv numele utia s a lizatorului ¸i parola acestuia. clientul transmite comenzi ˆ format text. ¸ Autentificarea se face la solicitarea clientului. dup˘ a a a care urmeaz˘ un text ce descrie. Radu-Lucian Lup¸a s Capitolul 11. Protocolul ftp Descriem pe scurt conceptele de baz˘ ale protocolului ftp. Protocoalele utilizate aici sunt SMB (utilizat ˆ retelele Windows) ¸i NFS. s s Protocoalele din aceast˘ categorie trebuie s˘ satisfac˘ dou˘ cerinte specifice a a a a ¸ (fat˘ de prima categorie): s˘ permit˘ transferul doar a unei p˘rti mici dintr¸a a a a¸ un fi¸ier ¸i s˘ permit˘ controlul partaj˘rii fi¸ierului ˆ s s a a a s ıntre procese. textul a ¸ ın a din r˘spuns nu este interpretat de c˘tre aplicatia client. USER ¸i PASS. reglementarea drepturilor de acces se face de obicei astfel: la lansare. descris˘ mai jos). Prin conexiunea de cona s trol. El este ˆ a afi¸at. Initial se utiliza protocolul ftp ˆ acest scop. Clientul trimite succesiv dou˘ comenzi. ın ıns˘ O a treia categorie pive¸te accesul proceselor de pe un calculator la s fi¸iere stocate pe alt calculator ca ¸i cˆnd fi¸ierele ar fi locale. 1985].c 2008. a serverul accept˘ s˘ efectueze operatiile cerute de client doar dac˘ utilizatorul a a ¸ a ˆ contul c˘ruia s-a f˘cut autentificarea are dreptul la operatiile respective. Cu o singur˘ exceptie (ˆ cazul comenzii PASV. a s ¸ s ın transferul fi¸ierelor unui utilizator de pe o ma¸in˘ pe alta. ın ¸ s 11. Dup˘ autentificare. ˆ limbaj natural. Protocoalele construite pentru aceasta s sunt ftp ¸i ssh. ın a a Fiecare comand˘ ˆ a ıncepe cu numele comenzii urmat de eventuali parametrii. ın a a ¸ Pe sistemele de tip UNIX. atˆt fat˘ de numele comenzii cˆt ¸i ˆ ¸ ¸ a ¸a a s ıntre ei. Clientul deschide o conexiune TCP c˘tre portul 21 al serverului. rezultatul executiei comena ın ¸ zii. de a a ¸ ıns˘ s obicei. la conectarea unui client. a aceast˘ conexiune se nume¸te conexiune de control. a a s ¸ ın Protocolul utilizat ˆ mod curent este ˆ a http. cˆte o comand˘ pe o linie. serverul ruleaz˘ din contul root. fiecare r˘spuns ˆ a ın a ıncepˆnd cu un cod a care arat˘ dac˘ comanda s-a executat cu succes sau ce erori s-au produs. De notat c˘ ¸i po¸ta electronic˘ poate servi ca mecanism de s as s a transfer de fi¸iere. ˆ principal.3. a se vedea [RFC 765. ca ¸i pentru prima categorie de protocoale. Parametrii sunt separati prin spatii. a .1. ˆ conditiile ˆ care s s a ın ¸ ın utilizatorul are cont pe ambele ma¸ini. Aplicatii ˆ retele ¸ ın ¸ 381 O prim˘ categorie de protocoale ¸i aplicatii prive¸te. s O a doua categorie prive¸te transferul fi¸ierelor publice de la un cals s culator ce stocheaz˘ astfel de fi¸iere la calculatorul unui utilizator ce dore¸te a s s s˘ citeasc˘ fi¸ierele respective. pe ecran utilizatorului aplicatiei client. Serverul refuz˘ executia majorit˘¸ii comenzilor s a ¸ at clientului ˆ ınainte de autentificarea cu succes a acestuia. Serverul r˘spunde tot ˆ format text.

dina spre un port oarecare al s˘u.2. Pentru fiecare fi¸ier se deschide a a s o nou˘ conexiune de date. serverul accept˘ orice comenzi ın a de la client ¸i ˆ s ıncearc˘ s˘ le execute. a a s Pentru transferul de fi¸iere publice. ˆ continuare.3. s a Listarea fi¸ierelor de pe server este solicitat˘ de client prin comanda s a LIST. s-a renuntat la acest obicei. Conexiunea se deschide ca urmare a comenzii de transfer (SEND sau RETR). care se ˆ a ınchide la finalul transferului fi¸ierului. pe post de parol˘. a • Modul pasiv prevede deschiderea conexiunii de date de c˘tre client. iar verificarea drepturilor de acces este a a f˘cut˘ de nucleul sistemului de operare ˆ momentul ˆ care procesul server a a ın ın fiu ˆ ıncearc˘ s˘ acceseze sistemul de fi¸iere. Clientul specific˘ portul pe care a¸teapt˘ conexiunea prin coa s a manda PORT. Protocolul HTTP HyperText Transmission Protocol (HTTP) este un protocol elaborat pentru transferul dinspre server spre client a fi¸ierelor cu informatii disponibile s ¸ . ¸ a Acesta este singurul caz ˆ care clientul interpreteaz˘ din r˘spunsul ın a a serverului ¸i altceva decˆt codul returnat. s Exist˘ dou˘ moduri de deschidere a conexiunii de date: a a • Modul activ prevede c˘ serverul deschide conexiunea de date ca o conea xiune TCP dinspre portul 20 al serverului c˘tre un port specificat de a client. nu imediat dup˘ primirea comenzii PORT. Transferul propriu-zis are loc printr-o s conexiune separat˘. 11. s Dimensiunea fi¸ierului nu este specificat˘ explicit nic˘ieri. O dat˘ cu r˘spˆndirea s a sa a a a a spam-urilor. Comenzile au ca argument numele s de pe server al fi¸ierului de transferat. se obi¸nuia ca un utilizator ce dorea acces la fi¸iere publice s˘s s a ¸i dea. dup˘ autentificare. receptorul fi¸ierului s a a s obtinˆnd lungimea din faptul c˘ emit˘torul ˆ ¸ a a ¸a ınchide conexiunea de date la finalul fi¸ierului. procesul fiu trece ˆ contul utilizatorului auta ın entificat (prin apelul setuid()). Radu-Lucian Lup¸a s 382 11. In a s a ınceput ale Internet-ului. c˘tre un port specificat de server. ¸ Transferul fi¸ierelor se cere prin comenzile SEND (dinspre client spre s server) ¸i RETR (dinspre server spre client). Trasnferul listei de fi¸iere se face tot printr-o conexiune de date. Portul a a specificat de server se obtine ca r˘spuns al comenzii PASV date de client. ca ¸i ˆ s s ın cazul comenzii RETR. serverul este configurat s˘ accepte s a autentificare cu numele de utilizator ftp sau anonymous f˘r˘ s˘ solicite parol˘ aa a a ˆ vremurile de ˆ sau acceptˆnd orice ¸ir de caractere pe post de parol˘. adresa sa de po¸t˘ electronic˘.3. numit˘ conexiune de date. Transferul fisierelor ˆ retea ¸ ın ¸ serverul creaz˘ (prin apelul sistem fork()) un proces fiu care se ocup˘ de a a acel client.c 2008.

va trebui s˘ deschid˘ cˆte o conexiune pentru s s a a a fiecare fi¸ier. ¸ 11. unor adrese In IP diferite. fie numele serverelor corespund. dup˘ linia goal˘ se g˘se¸te un continut. Pe prima linie se afl˘ a a identificatorul versiunii HTTP. ˆ antet se g˘se¸te o linie cu numele Content-length s In a s avˆnd ca valoare lungimea fi¸ierului. Determinarea sfˆr¸itului continutului a s as ¸ propriu-zis de c˘tre client trebuie f˘cut˘ prin num˘rea octetilor din partea de a a a a ¸ continut. num˘r de trei cifre ¸i un text.3. a a a ın ¸ a a . Aplicatii ˆ retele ¸ ın ¸ 383 public. El ˆ ınlocuie¸te protocolul ftp utilizat cu conectare ca utilizator anonys mous. ajungˆnd s˘ fie folosit ca protocol de ıns˘ a a transfer de date pentru aplicatii de orice tip. este o descriere ˆ cuvinte a semnificatiei codului de trei cifre. numele este ¸ a s GET. un cuvˆnt reprezentˆnd numele a a operatiei cerut˘. ¸ Protocolul de baz˘ const˘ ˆ trimiterea de c˘tre client a unei cereri. dar apartinˆnd aceluia¸i calculator. ˆ acest a a a s ¸ In caz. Dac˘ clientul dore¸te mai a s a s multe fi¸iere de pe acela¸i server. ¸ Adesea. Structura cererilor ¸i a r˘spunsurilor s a Formatul comunicatiei este mixt. De¸i numele protocolului face referire la hipertext. ¸ a a s a Partea de ˆ ınceput este text. el poate fi utilizat s pentru a transfera orice fel de continut. ¸ s ¸ s s ¸ s conexiunea se ˆ ınchide dup˘ transferul unui fi¸ier. Pentru solicitarea unui fi¸ier public de pe server. iar textul. atˆt la cereri cˆt ¸i la r˘spunsuri. mai multe servere HTTP sunt g˘zduite fizic pe acela¸i cala s culator.2.1. Num˘rul arat˘ a s a a dac˘ cererea a fost satisf˘cut˘ cu succes sau nu. ˆ acest caz. prin DNS. caz ˆ care serverul este con¸ a s ın figurat s˘ r˘spund˘ ˆ functie de IP-ul c˘tre care a fost deschis˘ conexiunea. a ¸ Urm˘toarele linii sunt de forma nume:valoare. dat˘ ca ¸ir de cifre zecimale. una dintre liniile din antet are numele Content-length ¸i are ca valoare s lungimea continutului. Dup˘ numele operatiei urmeaz˘ numele fi¸ierului ¸i apoi identificarea a ¸ a s s versiunii de protocol ˆ conformitate cu care este format˘ cererea. R˘spunsul serverului ın ¸ a s a contine ni¸te informatii despre fi¸ier ¸i continutul efectiv al fi¸ierului. similar cu antetul unui a mesaj de po¸t˘ electronic˘. pe prima linie. ın ¸ Urm˘toarele linii sunt de forma nume:valoare ¸i dau informatii despre fi¸ierul a s ¸ s solicitat. sa a a a a Pentru unele tipuri de cereri. Cele trei ın a elemente sunt separate prin cˆte un spatiu. ¸ a s R˘spunsul este structurat similar cu cererea. a a ın a ˆ care informatia principal˘ este numele fi¸ierului cerut. Implicit. iar continutul fi¸ierului este binar. Dup˘ ultima linie de antet urmeaz˘ o linie vid˘. s Protocolul a fost ˆ a extins. Dup˘ ultima linie de antet urmeaz˘ o linie vid˘ ¸i apoi continutul a a as ¸ (binar) al fi¸ierului.c 2008. neinterpretat a a a de client. ¸ s Cererea cuprinde. Radu-Lucian Lup¸a s Capitolul 11.

Aceast˘ utilizare este nerecomandat˘. ˆ cererea clientului. ˆ a s ın a s In principiu. Toate acestea necesit˘ referiri dintr-un fi¸ier HTML c˘tre alte a s a fi¸iere disponibile ˆ acces public. https. ea este calea complet˘ a fi¸ierului cerut. PNG. din mai multe fi¸iere. mailto. a URL-urile se pot utiliza ¸i se utilizeaz˘ efectiv ˆ multe alte scopuri s a ın decˆt identificarea paginilor web. URL-urile au ap˘rut ca un format standard de scriere a numelor a fi¸ierelor referite din paginile web. De asemenea. ¸i alte fi¸iere.3. a a a a • Calea identific˘ resursa (fi¸ierul) ˆ cadrul serverului care o g˘zduie¸te.2. s ın O pagin˘ web const˘. Exist˘ un fi¸ier a a s a s de baz˘. fixat. Acest lucru se realizeaz˘ prin ın a a aceea c˘. a ftp. scris ˆ limbajul HTML. al documentelor publice. Referirea acestor fi¸iere se face prin nume s ın s care s˘ permit˘ reg˘sirea lor u¸oar˘. De exemplu. Radu-Lucian Lup¸a s 384 11. o pagin˘ contine ˆ general leg˘turi (link -uri) a ¸ ın a spre alte pagini. Standardul original prevedea ¸i posibilitatea de-a scrie ˆ URL parola s ın necesar˘ conect˘rii. caz ˆ care este necesar ca s ın ˆ cererea HTTP s˘ fie specificat serverul dorit. separat de acesta prin caracterul a ın ¸ s @. de obicei. Transferul fisierelor ˆ retea ¸ ın ¸ fie numele serverelor corespund aceleia¸i adrese IP. a a a s a Un Universal Resource Locator (URL) este un nume prin care se poate identifica ¸i cu ajutorul c˘rora se potate reg˘si o resurs˘ disponibile ˆ s a a a ın Internet. ele permit ˆ a utiliz˘ri mult mai vaste. 11. ˆ cadrul acestei componente se poate a a s ın ad˘uga numele de utilizator ˆ contul c˘ruia trebuie s˘ se autentifice un a ın a a client pentru a obtine accesul dorit la resurs˘. se plaseaz˘ un antet cu numele Host ¸i avˆnd a ın a s a ca valoare numele de server dorit. sistemul SubVersion (SVN) a utilizeaz˘ URL-uri de forma svn://ma¸in˘ /cale pentru a referi fi¸ierele dintra s a s un repository. relativ˘ la un director a s a de baz˘.2.3. a s s Pe lˆng˘ numele ma¸inii.c 2008. specific˘ri de formatare a paginii (fi¸iere Cascading Style a s Sheet — CSS). ın s ın applet-uri (Java). Exemple mai cunoscute sunt: http. continˆnd anumite elemente ale a ın s s ¸ a paginii: imagini (ˆ fi¸iere separate ˆ formate specifice — JPEG. • Numele ma¸inii este numele de domeniu sau adresa IP a ma¸inii pe care s s se g˘se¸te resursa (fi¸ierul). s ıns˘ a Un URL este alc˘tuit ˆ general din trei componente: a ın • Tipul identific˘ protocolul utilizat. URL-urile O pagin˘ web este ˆ general un fi¸ier scris ˆ HyperText Markup a ın s ın Language (HTTP) ¸i oferit ˆ acces public prin protocolul HTTP. Numele de utilizator se ¸ a d˘ ˆ fata numelui sau adresei ma¸inii. GIF). .

3.2. s as a din cererea clientului. limbi sau codific˘ri. cel a a ¸ mai adesea dac˘ a fost modificat mai recent decˆt o anumit˘ dat˘ specificat˘ a a a a a . Content-type: text/html. sunt: Accept. a ın ¸ De exemplu. Dac˘ o a ¸a ın a a a variant˘ ˆ limba romˆn˘ nu este disponibil˘.fr solicit˘ serverului. limb˘ ¸i codificare. Tot ca ¸i ˆ cazul lui s a s ın Mime-type.3. Pentru a ¸ ın a a selectiona varianta dorit˘. charset=utf-8 ˆ ınseamn˘ c˘ fi¸ierul este de tip HTML. Radu-Lucian Lup¸a s Capitolul 11. O cerere partial˘ este util˘ dac˘ fi¸ierul cerut este mare ¸i clientul dore¸te t ¸ a a a s s s s˘-l aduc˘ din buc˘¸i sau dac˘ la o cerere precedent˘ a c˘zut leg˘tura dup˘ a a at a a a a a transferul unei p˘rti din fi¸ier. ın ın a Protocolul HTTP permite formularea de cereri conditionate sau par¸ ¸iale. • Data ultimei modific˘ri a fi¸ierului este specificat˘ prin valoarea antetului a s a cu numele Date. tipul continutului poate fi urmat de specificarea codific˘rii ¸ a utilizate pentru text. Este posibil ca unui URL s˘-i corespund˘ mai multe fi¸iere pe server. Alte facilit˘¸i HTTP at Antetul r˘spunsului HTTP ofer˘ mai multe informatii despre fi¸ierul a a ¸ s returnat: • Tipul continutului fi¸ierului este specificat de c˘tre server prin intermediul ¸ s a unui antet cu numale Content-type ¸i cu valoarea construit˘ ca ¸i ˆ s a s ın cazul antetului Mime-type de la po¸ta electronic˘. Antetele corespunz˘toare. de preferint˘. se solicit˘ una ˆ limba englez˘. Aplicatii ˆ retele ¸ ın ¸ 385 11. Accept-language: ro. de exemplu.en.c 2008. • Limba ˆ care este scris textul din fi¸ier (dac˘ este cazul) este returnat˘ ın s a a ca valoare a antetului Language:. varianta ˆ limba romˆn˘ a textului. dar ˆ diverse formate. iar codificarea utilizat˘ pentru a a s a caractere este UTF-8. clientul poate anunta posibilit˘¸ile ¸i preferintele ¸ a ¸ at s ¸ sale cu privire la tipul de fi¸ier. a a s avˆnd continut echivalent. O cerere conditionat˘ determin˘ serverul s˘ a¸ s ¸ a a a transmit˘ clientului fi¸ierul numai dac˘ este ˆ a s a ındeplinit˘ o anumit˘ conditie. Accept-language ¸i Accept-encoding. s Fiecare dintre acestea are ca valoare o list˘ de variante. a ın a a a a ın a iar ˆ lipsa acesteia una ˆ limba francez˘. ˆ ordinea preferintei. • Tipul de compresie utilizat (dac˘ fi¸ierul returnat este comprimat) este a s dat ca valoare a antetului Content-transfer-encoding.

serverul d˘ un r˘spuns format a ¸ a a doar din antet. programul s ¸ In client nu afi¸eaz˘ continutul returnat de server (continut care ˆ mod normal s a ¸ ¸ ın lipse¸te complet).3. clientul cere p˘strarea deschis˘ pe durata mai multor cereri. Radu-Lucian Lup¸a s 386 11. f˘r˘ continutul propriu-zis. ci cere ¸i afi¸eaz˘ continutul de la URL-ul indicat ˆ antetul s s s a ¸ ın Location. iar pentru satisfacerea cererii contacteaz˘ a a serverul solicitat de client ¸i actioneaz˘.2. Dac˘ nu este ˆ a ındeplinit˘ conditia. fat˘ de acest server. iar la urm˘toarele a a a cereri o serve¸te clientilor din memoria local˘. actio¸a ¸ neaz˘ aproape ca un server HTTP. iar apoi are de adus imaginile ¸i eventual alte s s obiecte din document). ¸ a a Pentru optimizarea traficului. s ¸ a ¸a Un proxy HTTP este utilizat ˆ mod normal pentru urm˘toarele ın a functii: ¸ • dac˘ dintr-o retea local˘ exist˘ ¸anse mari ca mai multi utilizatori s˘ a ¸ a a s ¸ a acceseze acelea¸i pagini web: ˆ acest caz. ˆ cazul ˆ care un client dore¸te mai ın ın s multe fi¸iere de pe acela¸i server (aceasta se ˆ ampl˘ adesea ˆ cazul ˆ care s s ıntˆ a ın ın clientul aduce un fi¸ier html.c 2008. ¸ a a a s a la prima cerere proxy-ul memoreaz˘ pagina adus˘. cererea ¸ a a a conditionat˘ se specific˘ prin antetul If-modified-since. Aceast˘ redirectionare se face prin trima a iterea de c˘tre server a unui antet cu numele Location ¸i avˆnd drept continut a s a ¸ URL-ul spre care se dore¸te redirectionarea clientului. Aceasta se ˆ ampl˘ dac˘ administratorul saitt a ıntˆ a a ului decide o reorganizare a paginilor ¸i dore¸te ca utilizatorii care au retinut s s ¸ URL-uri desfiintate ˆ urma reorganiz˘rii s˘ fie redirectionati c˘tre paginile ¸ ın a a ¸ ¸ a corespunz˘toare din noua organizare. serverul trebuie configa as t a urat s˘ ˆ a ınchid˘ automat conexiunea dac˘ nu se transfer˘ date o perioad˘ de a a a a timp.4. In a a conexiunii deschise. Cererea a partial˘ se specific˘ de c˘tre client prin intermediul antetului Range. Transferul fisierelor ˆ retea ¸ ın ¸ de client. ca un client. 11.3. Aceast˘ facilitate este util˘ dac˘ aa ¸ a a a clientul detine o copie a unui fi¸ier ¸i dore¸te ˆ ¸ s s s ımprosp˘tarea acesteia. este prev˘zut˘ posibilitatea de-a p˘stra conexiunea a a a ˆ acest scop. plasˆnd ˆ cerere antetul a ın Connection: keep-alive Pentru a nu permite unor clienti s˘ deschid˘ o conexiune ¸i apoi s˘ o lase ¸ a a s a deschis˘ la nesfˆr¸it. Proxy HTTP Un proxy HTTP este un proces care. ¸inˆnd ocupate resurse pe server. clientii HTTP ai calculas In ¸ toarelor din retea se configureaz˘ s˘ utilizeze un acela¸i proxy HTTP ¸ a a s din reteaua local˘. Dac˘ exist˘ mai multe cereri pentru aceea¸i pagin˘. fat˘ de un client HTTP. Este uneori util ca un utilizator care acceseaz˘ un URL s˘ fie redireca a ¸ionat automat c˘tre alt URL. s ¸ a . ˆ acest caz.

¸a a a la protocolul client-server urmeaz˘ calea local˘ din URL. dinspre server s ˆ ınapoi spre client. TLS [RFC 4346.7. dup˘ o cerere (de exemplu. ˆ schimb permite tunelarea oric˘rui s a ın a protocol (nu numai a protocolului HTTP) ˆ ıntre un client dintr-o retea cu ¸ adrese interne ¸i un server din Internet. pentru a ˆ ımpiedica accesul direct. Ca urmare.2. O a doua diferent˘ este dat˘ de existenta unei cereri. Clientul acceseaz˘ ¸ a a s a a a proxy-ul prin reteaua local˘. reciproc. Aplicatii ˆ retele ¸ ın ¸ 387 • dac˘ ˆ a ıntr-o retea se utilizeaz˘ adrese IP locale (vezi § 10. O diferenta ˆ ¸ ıntre protocolul de comunicatie dintre un client ¸i un ¸ s proxy fat˘ de protocolul client-server este c˘. poate ¸ a a a a accesa f˘r˘ restrictii serverul dorit.5.1) care s˘ blocheze pachetele adresate portului TCP 80 a al serverelor exterioare.3. nivelul conexiunilor securizate — este un protocol pentru securizarea conexiunilor. A fost creat de firma Netscape ˆ vederea securiz˘rii comunicatiei ˆ ın a ¸ ıntre clientul ¸i serverul HTTP. ˆ cazul unei cereri CONNECT. aa ¸ • dac˘ este de dorit un control fin asupra paginilor ce pot fi accesate dintra o retea local˘ (de exemplu. CONNECT.2. proxya ul deschide o conexiune c˘tre serverul specificat ˆ comanda CONNECT ¸i apoi a ın s retrimite datele dinspre client direct spre server ¸i.2) ¸i ¸ a s s nu se dore¸te configurarea unui mecanism de translatie de adrese (NAT. s 11.7.4. avˆnd adres˘ public˘. La primirea unei cereri CONNECT. Conexiuni securizate: SSL/TLS SSL — Secure Sockets Layer .c 2008. proxy-ul nu se implic˘ mai In a departe ˆ comunicatia dintre client ¸i server. se configa In ureaz˘ un proxy ˆ care se configureaz˘ toate restrictiile de acces dorite. s ¸ § 10.7. 2006] — Transport a a a Layer Security. se instaleaz˘ un proxy HTTP pe un calculator In a din reteaua local˘ dar avˆnd ¸i adres˘ IP public˘. pentru a restrictiona accesul angajatilor la ¸ a ¸ ¸ saituri nelegate de activitatea lor normal˘).1 ¸i § 10. iar la protocolul a a client-proxy urmeaz˘ URL-ul solicitat (inclusiv numele protocolului ¸i numele a s serverului). securitate la nivel transport — este derivat din SSL versiunea 3. ˆ acest caz.3): ˆ acest caz. dar dezvoltat de IETF (Internet Engineering Task Force). Radu-Lucian Lup¸a s Capitolul 11. s Protocolul este ˆ a suficient de flexibil pentru a permite oric˘rei aplicatii ce ıns˘ a ¸ comunic˘ prin conexiuni s˘-l foloseasc˘. prin evitarea proxy-ului. iar proxy-ul. a ın a ¸ Apoi. rom. pe ruterul ce leag˘ reteaua intern˘ la Internet se configureaz˘ un filtru de a ¸ a a pachete (§ 10. GET). ˆ acest caz proxy-ul ın ¸ s ın nu mai memoreaz˘ paginile aduse ¸i nu permite filtrarea cererilor decˆt dup˘ a s a a serverul ¸i portul la care se conecteaz˘. ˆ cele ce In . ce ¸a a ¸ poate fi adresat˘ doar unui proxy. rom.

Certificatul unei autorit˘¸i de certificare poate fi semnat de c˘tre o at a alt˘ autoritate de certificare sau chiar de c˘tre autoritatea posesoare a certia a ficatului. Pro¸ a tocolul ale c˘rui date sunt transportate ca date utile de c˘tre TLS este numit a a tunelat prin TLS. ˆ final.3. Pentru distribuirea sigur˘ a cheilor publice. o conexiune TCP.4). sau a bilateral˘. s Protocolul TLS presupune existenta unei leg˘turi nesecurizate ˆ ¸ a ıntre un client (entitatea care initiaz˘ activ comunicatia) ¸i un server (entitatea ¸ a ¸ s care a¸teapt˘ s˘ fie contactat˘ de c˘tre client).3. pentru cheia public˘. se poate utiliza o autentificare a a In a clientului fat˘ de server ˆ cadrul protocolului tunelat. ˆ acest din urm˘ caz. La initierea conexiunii TLS. semnat de o autoritate ˆ care clientul are ˆ s ın ıncredere.c 2008. Transferul fisierelor ˆ retea ¸ ın ¸ urmeaz˘. utilizeaz˘ cheia public˘ din certificatul clientului pentru a autens ın a a tifica stabilirea cheii de sesiune. Datele utile transportate de TLS pot apartine oric˘rui protocol. certificatul se nume¸te certificat autosemnat In a s . plasat˘ tot ˆ at ın s a ıntr-un certificat. s ˆ vederea verific˘rii semn˘turii din certificat ¸i a faptului c˘ semIn a a s a natarul (autoritatea de certificare) este de ˆ ıncredere. c˘ autoritatea de certificare este de ˆ a a ıncredere ¸i. se realizeaz˘ stabilirea unei In ¸ a chei de sesiune care este utilizat˘ ˆ continuare pentru securizarea transportua ın lui datelor utile. Cheia unei autorit˘¸i de certificare este. ın a a Serverul trebuie s˘ aib˘ o pereche de chei pentru semn˘tur˘ digital˘ a a a a a ¸i un certificat. Protocolul TLS ofer˘ un serviciu de tip ın s a conexiune. o ¸a a a a a pereche de chei ¸i un certificat. ˆ acest caz. Radu-Lucian Lup¸a s 388 11. ˆ mod obi¸nuit. Dac˘ se dore¸te ¸i autentificarea clientului a s s fat˘ de server tot prin TLS. serverul transmite clientului certia ¸ ficatul s˘u Clientul verific˘ faptul c˘ numele din certificat coincide cu numele a a a serverului la care dorea conectarea. ˆ a toate chestiunile prezentate sunt a ıns˘ valabile ¸i pentru SSL. autentificarea clientului poate fi f˘cut˘ prin a a parol˘. fiecare dintre parteneri trebuie s˘ aib˘ o list˘ cu cheile autorit˘¸ilor de certificare de ˆ a a a at ıncredere. TLS asigur˘ confidentialitatea ¸i autenticitatea datelor utile transa ¸ s portate. s a a a a a a ˆ mod obi¸nuit. vom discuta doar despre TLS. ˆ cazul autentific˘rii unilaterale. la rˆndul s˘u. deoarece ¸a ın In serverul este deja autentificat. f˘r˘ riscul ca parola s˘ fie transmis˘ unui adversar. utilizate a a a a ˆ cadrul autentific˘rii. doar cliena tul autentificˆnd serverul cu care a realizat negocierea cheii de sesiune. ˆ cadrul initierii unei conexiuni TLS. Leg˘tura nesecurizat˘ este. a aa a a Autentificarea stabilirii cheii de sesiune se face printr-un mecanism de semn˘tur˘ digital˘. atunci clientul trebuie s˘ aib˘. se utilizeaz˘ certificate (§ 6. Autentificarea stabilirii cheii poate fi unilateral˘. c˘ semn˘tura autorit˘¸ii de certificare a a at asupra certificatului este valid˘.

ale unor autorit˘¸i de certificare larg recunoscute. clientul a ın a a deschide conexiunea c˘tre portul 443 al serverului (ˆ loc de portul 80. Exist˘ mai multe produse soft pentru crearea perechilor de chei ¸i a s pentru crearea ¸i semnarea certificatelor. stabilit˘ prin intermediul a a proxy-ului. root certificate). cererile ¸i r˘spunsurile HTTP constituie s a date utile pentru nivelul SSL sau TLS. s a Atragem atentia asupra unor particularit˘¸i legate de utilizarea HTTPS: ¸ at • Deoarece autentificarea serverului. se transmit mesajele SSL sau TLS. fie un lant de coa ¸ nexiuni TCP prin intermediul proxy-ului). clientul are o multime de certificate autosemnate ale ¸ autorit˘¸ilor ˆ care are ˆ at ın ıncredere. ¸ a s URL-urile resurselor accesibile prin conexiuni securizate au. precum ıns˘ a ¸i s˘ adauge alte certificate.c 2008. ˆ general. prin canalul securizat are loc un dialog conform protocolului HTTP. Utilizarea TLS pentru web Transferul securizat al paginilor web se realizeaz˘ prin tunelarea proa tocolului HTTP peste SSL sau TLS. • La deschiderea conexiunii (fie conexiune TCP direct˘. ca nume al protocolului. a ın implicit pentru HTTP). Prin aceast˘ conexiune. necesit˘. Dup˘ initializarea conea ¸ xiunii securizate. a ın a a clientul trimite serverului proxy o cerere CONNECT pentru stabilirea conexiunii spre server. ˆ a a ın partea de protocol. execut˘ urm˘toarele: a a • Afar˘ de cazul ˆ care URL-ul specific˘ explicit un num˘r de port. produc˘torii de navigatoare ˆ In a ıncorporeaz˘ a ˆ acestea ni¸te certificate. s ın Un navigator web care are de adus o pagin˘ a c˘rei URL are. a¸a ın a s cum am v˘zut.2. are loc mai ˆ ai schimbul de ıntˆ mesaje legat de stabilirea cheii SSL sau TLS. ca navigatorul web s˘ dispun˘ de certificatele autorit˘¸ilor de a a a at certificare de ˆ ıncredere. certificatul trimis de server nu poate depinde de antetul Host transmis de c˘tre client. ˆ cadrul c˘rora se transın a mit datele HTTP.6.3. ¸irul de caractere https (ˆ loc de http). s disponibil pe sistemele de tip UNIX. Aplicatii ˆ retele ¸ ın ¸ 389 (engl. Un astfel de produs este OpenSSL. se utilizeaz˘ un proxy. Autentificarea serverului. Ca urmare. Cu alte cuvinte. self-signed certificate) sau certificat r˘d˘cin˘ (engl. • Dac˘. ˆ locul contact˘rii directe a serverului web. se face ˆ ınaintea trimiterii cererii HTTP. ˆ cadrul protocolului TLS. Constructia realizat˘ se nume¸te HTTPS. 11. prin mecanismul TLS. dac˘ mai multe a a . ın s at Utilizatorul poate ˆ a s˘ dezactiveze oricare dintre aceste certificate. ˆ a a a In majoritatea cazurilor. Radu-Lucian Lup¸a s Capitolul 11. https.

a 11. a s a ˆ aceste conditii. din mai multe obiecte. ˆ consecint˘. fiecare utilizator GnuPG trebuie s˘ aib˘ ni¸te perechi In a a s de chei pentru criptare asimetric˘ ¸i pentru semn˘tur˘. cu statut de soft liber. ˆ acest scop. PGP/GPG Preety Good Privacy (PGP) este un program pentru criptarea ¸i s semnarea digital˘ a mesajelor de po¸t˘ electronic˘ ¸i a fi¸ierelor ˆ general. precum ¸i operatiile ın s ¸ ce pot fi executate asupra cheilor memorate local. este posibil ca diferite elemente s˘ provin˘ de pe saituri diferite. abreviat GPG sau GnuPG. unele dintre eles a mente s˘ fie securizate ¸i celelalte elemente s˘ fie nesecurizate. ˆ In ¸ ıntr-o aceea¸i pagin˘. Radu-Lucian Lup¸a s 390 11. cu a a ın s URL-uri diferite (pagina HTML propriu-zis˘ ¸i imaginile din pagin˘).3. precum ¸i cheile publice ale a s partenerilor utilizatorului ce execut˘ gpg.4. ˆ cazul ˆ care s-ar utiliza doar antetul Host pentru ca serverul s˘ In ın a determine saitul cerut de client. a Descriem ˆ continuare structura cheilor GnuPG. a ın Afi¸area cheilor publice din fi¸ierele gestionate de GnuPG se face prin s s comanda gpg --list-keys . as a a GnuPG memoreaz˘. a a ˆ autentificate prin certificate diferite.c 2008. ˆ ni¸te fi¸iere gestionate de el. Ca urmare. este necea s sar ca aceste saituri s˘ fie distinse prin adresa IP sau prin num˘rul de a a port. Structura cheilor GnuPG PGP cripteaz˘ mesajele.2. Prezent˘m ˆ continuare principalele concepte legate de constructia a ın ¸ ¸i functionarea GnuPG. ˆ mod obi¸nuit. • O pagin˘ web este format˘. Transferul fisierelor ˆ retea ¸ ın ¸ saituri web securizate sunt g˘zduite de un acela¸i calculator.1. utilizˆnd metode simetrice ¸i chei efemere. a a s transmite cheile efemere prin criptare asimetric˘ ¸i creaz˘ semn˘turi electronas a a ice asupra mesajelor. a sa as s ın Gnu Privacy Guard. Intr-un astfel de caz.4. Transmiterea cheilor publice ˆ ıntre utilizatori va fi descris˘ ˆ § 11.4. este posibil ca. navigatorul web trebuie s˘ avertizeze utilizatorul. De asemea s a nea. cheile publice ¸i a ın s s s private ale utilizatorului ce execut˘ comanda gpg. este o reimplementare a PGP. s In ¸a clientul ar declara saitul ca fiind unul fals. s ¸ 11. ar exista o nepotrivire ˆ ıntre numele din certificat ¸i numele saitului solicitat de client. serverul ar trimite acela¸i certificat ins diferent de saitul dorit de client.

Fiecare subcheie poate fi cheie de a criptare sau cheie de semn˘tur˘. fiecare pereche de chei (fie ea primar˘ sau subcheie) are asociate doi identificatori de cheie (engl. Aceasta este un ¸ir de biti.4. O cheie a s primar˘ (de fapt. s ˆ locul amprentei cheii. O subcheie (de fapt. Dac˘. Radu-Lucian Lup¸a s Capitolul 11. printr-o functie de s ¸ ¸ ¸ dispersie criptografic˘. a a s a key fingerprint). key a ID): • Identificatorul lung (engl. sub-pereche de chei) este a a a subordonat˘ unei anumite perechi primare.c 2008. Identificatorul unei perechi de chei este calculat. printr-o functie de dispersie. ın at • Identificatorul scurt (engl. ˆ a ıntr-un anumit context. se poate da comanda . a Identificatorii scurti ai cheilor pot fi listati prin comanda ¸ ¸ gpg --list-keys Pentru a lista identificatorii lungi. nu exist˘ a dou˘ chei cu acela¸i identificator scurt. ˆ modul cel mai simplu de lucru. Chei primare ¸i subchei s Cheile GnuPG sunt de dou˘ tipuri: chei primare ¸i subchei. din cheia public˘ respectiv˘. pentru verificarea autenticit˘¸ii acesteia. Aplicatii ˆ retele ¸ ın ¸ 391 Afi¸area cheilor secrete se face prin comanda s gpg --list-secret-keys 11. ¸ din cheia public˘ din pereche.1. astfel ˆ at identificatorul lung este suficient pentru a ıncˆ identifica unic orice cheie.1. el poate fi folosit pentru a ne a s referi la o cheie. short key ID) este format din ultimele 8 cifre hexa ale identificatorului lung. fiecare utilizator In GnuPG are asociate. calculati. Perechea de chei de semn˘tur˘ este folosit˘ atunci a a a cˆnd posesorul trimite mesaje semnate. dou˘ perechi de chei: o pereche primar˘ de chei pena a tru semn˘tur˘ digital˘ ¸i o sub-pereche de chei pentru criptare asimetric˘. a Fiecare cheie public˘ are asociat˘ a¸a-numita amprent˘ a cheii (engl. Sansele ca dou˘ chei distincte s˘ aib˘ acela¸i identificator lung sunt ¸ a a a s extrem de mici. identificatorul lung nu este utilizabil. subordonate acesteia. zero as sau mai multe subchei. long key ID) este format din 16 cifre hexa. a a a Pentru a ne putea referi la o pereche de chei. a a Fiecare utilizator are o cheie primar˘ ¸i. o pereche primar˘ de chei) este ˆ a a ıntotdeauna o pereche de chei pentru semn˘tur˘ digital˘. Totu¸i. a a a s a Perechea de chei de criptare este folosit˘ pentru a trimite mesaje secrete posa esorului perechii de chei.

cheia primar˘ a unui utilizator expir˘ sau este revocat˘. un acela¸i nume complet poate fi asociat mai multor chei s primare. format din trei componente: numele real (numele ¸i prenumele persoanei). nus mele complet al utilizatorului ¸i parola utilizat˘ pentru criptarea cheii secrete.4. iar comentariul se s scrie ˆ ıntre paranteze. un comentariu. a a a at Acest lucru este util dac˘ un utilizator are mai multe adrese de po¸t˘ eleca sa tronic˘ ¸i dore¸te asocierea tuturor acestora cu aceea¸i cheie. a a s a s Mai mult.1.com> Gheorghe Ionescu (Presedinte ONG) <gion@ong. 11. Utilizatori ¸i identit˘¸i s at Fiec˘rei chei primare ˆ este asociat˘ una sau mai multe identit˘¸i. as s s Reciproc. Optional. s a Comanda genereaz˘ o pereche primar˘ de chei (de semn˘tur˘) ¸i ˆ a a a a s ıi asociaz˘ o identitate. Exemple: Ion Popescu <ion@example. optional.4. solicitˆnd utilizatorului urm˘toarele informatii: tipul a a a ¸ cheilor generate ¸i dimensiunea acestora. comanda poate genera ¸i o sub-pereche de a ¸ s . In a s ¸ po¸t˘ electronic˘ se scrie ˆ sa a ıntre semne mai mic ¸i mai mare. In a a a a ¸ utilizatorul poate crea o nou˘ cheie primar˘ c˘reia s˘-i asocieze acela¸i nume a a a a s complet. a ıi a at Fiecare identitate este un nume complet de utilizator. fie numele real. PGP/GPG Amprenta unei chei primare se poate afla prin comanda gpg --fingerprint id-cheie unde id-cheie este fie identificatorul scurt sau lung al cheii primare sau al unei subchei subordonate acesteia. 11. adresa de po¸t˘ electronic˘ sau sa a numele complet al proprietarului cheii.3. durata de valabilitate a cheilor. Acest lucru se ˆ ampl˘ deoarece nu poate nimeni s˘ ˆ ıntˆ a a ımpiedice doi utilizatori s˘ genereze dou˘ chei ¸i s˘ le asocieze acela¸i nume complet.2. Radu-Lucian Lup¸a s 392 gpg --with-colons --list-keys 11.4.com> Este posibil ca o cheie primar˘ s˘ aib˘ asociate mai multe identit˘¸i. adresa de po¸t˘ elecs sa ˆ scrierea numelui complet. Generarea ¸i modificarea cheilor s Generarea unei chei primare se face cu comanda gpg --gen-key Comanda este interactiv˘. adresa de tronic˘ ¸i.example. aceast˘ posibilitate este utilizat˘ frecvent ˆ situatia ˆ care a a ın ¸ ın ˆ aceast˘ situatie.1.c 2008.

Este bine ca utilizatorul s˘ noteze amprenta cheii generate. mai ˆ ai. Pentru acestea. eventual. uid. s at s s at La generarea cheilor. se a s a lanseaz˘ comanda a gpg --edit-key cheie ¸i apoi se utilizeaz˘ subcomenzile: adduid. se lanseaz˘ comanda s a gpg --edit-key cheie La lansarea acestei comenzi. se pot ad˘uga noi a a subchei ¸i identit˘¸i sau se pot ¸terge subcheile ¸i identit˘¸ile asociate. Ulterior. Radu-Lucian Lup¸a s Capitolul 11.c 2008.4. subcomanda a ıntˆ save pentru a memora efectiv modific˘rile efectuate. este necesar˘ rea at a transmiterea cheii spre partenerii de comunicatie (vezi § 11. perioada de valabilitate poate fi modificat˘ cu comanda a gpg --edit-key cheie . ¸i prin revocarea cheii. a ¸ Pentru o cheie primar˘ dat˘. revuid.1). subcomenzi pentru s a modificarea unor date privitoare la cheia primar˘ identificat˘ prin parametrul a a cheie. solutia este revocarea suba a a a ¸ cheii ¸i nu ¸tergerea ei.4. Terminarea seriei de subcomenzi se face dˆnd.1. deluid. Acest lucru a este util la transmiterea cheii publice c˘tre partenerii de comunicatie. dup˘ expirarea c˘reia cheia nu mai este a a valid˘. Aplicatii ˆ retele ¸ ın ¸ 393 chei de criptare. Ulterior. Controlul valabilit˘¸ii unei chei este necesar a s at pentru a preˆ ampina utilizarea unei chei publice ˆ cazul ˆ care cheia secret˘ ıntˆ ın ın a corespunz˘toare a fost aflat˘ de o persoan˘ neautorizat˘. a a a a Perioada de valabilitate a unei chei sau subchei se fixeaz˘ la generarea a acesteia. Ca urmare. deja a s transmis˘ partenerilor s˘i. urmat˘ de subcomanda a a quit. s˘ nu mai fie utilizat˘. primary. ¸ 11. dac˘ proprietarul dore¸te ca o subcheie. gpg a¸teapt˘. s a s Stergerea unei subchei este util˘ doar dac˘ subcheia nu a fost ˆ a transmis˘ ¸ a a ınc˘ a nim˘nui. ¸terge sau revoca o identitate asociat˘ unei chei. s a Dup˘ modificarea identit˘¸ilor asociate unei chei primare.4.2. Subcheia creat˘ poate fi o cheie de criptare sau o cheie de semn˘tur˘. subordonat˘ perechii primare. Crearea unei noi subchei se face cu subcomanda addkey. proprietarul ei poate crea (¸i. a a a La ¸tergerea unei subchei se utilizeaz˘ subcomenzile key ¸i delkey. de la utilizatori. GnuPG afi¸eaz˘ amprenta a cheii primare gens a erate. Nu exist˘ o metod˘ simpl˘ de a propaga ¸tergerea asupra c´piilor a a a a s o subcheii respective. Controlul perioadei de valabilitate a cheilor Valabilitatea unei chei sau subchei este controlat˘ pe dou˘ c˘i: prin a a a fixarea unei perioade de valabilitate. s s Pentru a ad˘uga. a a s ¸terge) subchei.

semnat de proprietarul subcheii. Pentru ca revocarea ın s s s˘ aib˘ efect. dup˘ revocarea sau schimbarea perioadei de valabilitate a a a unei subchei. gpg d˘ un mesaj a a de avertisment. Certificatul de revocare se transmite apoi partenerilor de comunicatie.2. certificatul de revocare trebuie s˘ a nu poat˘ fi citit de nimeni. a semnat de proprietarul cheii primare. ˆ cazul ˆ care pierde cheia sau b˘nuie¸te c˘ acea cheie In ın a s a secret˘ a fost aflat˘ de un adversar. la orice utilizare a acelei chei sau a unei subchei gpg d˘ s ın a un avertisment. a a Revocarea unei subchei const˘ ˆ ad˘ugarea la subcheie a unui mara ın a caj. Revocarea unei subchei se face cu ajutorul comenzii gpg --edit-key cheie cu subcomenzile key ¸i revkey. a a Ca utilizare recomandabil˘. ˆ general. certificatul de revocare trebuie importat prin comanda a a gpg --import fi¸ier s Odat˘ importat un certificat de revocare pentru o cheie primar˘. PGP/GPG cu subcomenzile key ¸i expire. s De notat c˘. De asemenea. Radu-Lucian Lup¸a s 394 11. atunci cˆnd acea cheie primar˘ este transmis˘ a a a spre alti utilizatori (vezi § 11. subcheia modificat˘ trebuie s˘ ajung˘ la partenerii propria a a etarului cheii (vezi § 11. . O subcheie revocat˘ este tratat˘ similar cu o a a a a subcheie sau cheie expirat˘: dac˘ se ˆ a a ıncearc˘ utilizarea ei. ˆ caz contrar.c 2008. un adversar care obtine certificatul a ın de revocare poate provoca nepl˘ceri proprietarului revocˆndu-i cheia. s Pentru revocarea unei chei primare. ¸ Generarea certificatului de revocare se face prin comanda gpg -a -o fi¸ier --edit-key cheie s Certificatul de revocare este scris ˆ fi¸ierul cu nume fi¸ier. la crearea unei chei primare.4.2. prin care se anunt˘ c˘ acea subcheie ¸a a trebuie s˘ nu mai fie utilizat˘. proprietarul transmite partenerilor s˘i a a a certificatul de revocare.4.1). este bine ca. semn˘turile a a a create cu acea cheie primar˘ sau cu o subcheie a acesteia sunt considerate a invalide ¸i. a proprietarul ei s˘ genereze imediat un certificat de revocare pe care s˘-l ¸in˘ a a t a ˆ ıntr-un loc sigur.1). se creaz˘ un certificat de revocare.4. certificatul de revocare este transmis ¸ ˆ ımpreun˘ cu cheia revocat˘. ˆ Inainte de revocare.

criptate cu o parol˘ dat˘ de utilizator.1.4. s Acest fi¸ier este creat cu drepturi de citire (ˆ sistemul de operare) doar pentru s ın utilizatorul curent. f˘r˘ ˆ a a risca compromiterea cheii primare ˆ a a a ıns˘ ın cazul ˆ care cineva ar sparge acel calculator. ın a a Parola de criptare poate fi schimbat˘ cu comanda a gpg --edit-key cheie subcomanda passwd.4. a ¸ ¸ 11.2).2). Transmiterea ¸i certificarea cheilor publice s 11.4. subcheile publice subordonate cheilor primare ¸i cerat s tificatele de revocare ale cheilor primare sau subcheilor sunt memorate ˆ ıntr-un fi¸ier gestionat de GnuPG. Transmiterea cheilor publice Cheile publice primare. Pentru o astfel de utilizare. Cheile sunt. prin comanda gpg -a -o fi¸ier --export-secret-keys cheie s Aceast˘ comand˘ export˘ cheia secret˘ primar˘ identificat˘ prin parametrul a a a a a a cheie.4. Cheia secret˘ este s a s a exportat˘ ˆ forma criptat˘. a a a s a Cheia primar˘ este bine s˘ aib˘ durat˘ lung˘ de utilizare pentru a beneficia a a a a a de semn˘turile obtinute de la alti utilizatori asupra ei (vezi § 11.1. a ın a Exist˘ posibilitatea de-a exporta doar subcheile secrete ale unei chei a primare. Cheile secrete pot fi importate prin s comanda gpg --import fi¸ier s Acest lucru este util dac˘ utilizatorul lucreaz˘ pe mai multe calculatoare ¸i a a s dore¸te s˘ utilizeze aceea¸i chei pe mai multe calculatoare.5. precum ¸i subcheile sale secrete. el poate utiliza ¸ ıl a In calculatorul mai nesigur pentru transmite mesaje semnate ¸i primi mesaje s criptate utilizˆnd subcheile. Radu-Lucian Lup¸a s Capitolul 11.2. Acest lucru se face prin comanda gpg -a -o fi¸ier --export-secret-subkeys cheie s Cu ajutorul acestei comenzi. Cheile secrete pot fi exportate. un utilizator poate ¸ine cheia primar˘ secret˘ t a a pe un calculator sigur ¸i poate transmite subcheile secrete c˘tre un calculator s a mai putin sigur pe care ˆ utilizeaz˘ frecvent. ˆ acest mod. ın subcheile se creaz˘ cu durat˘ de valabilitate scurt˘ ¸i se revoc˘ la nevoie.2. ˆ mod normal. Gestiunea cheilor secrete GnuPG plaseaz˘ cheile secrete ˆ a ıntr-un fi¸ier gestionat de GnuPG. identit˘¸ile asociate. semn˘turile asupra idenat a tit˘¸ilor (vezi § 11.4. Aplicatii ˆ retele ¸ ın ¸ 395 11.c 2008. s .2.2.

s ıi a ¸ ın Exportul unei chei publice primare. pe un a server de chei. eventual. prin po¸t˘ electronic˘ sau prin web). le modific˘ pe acestea. se face prin a s comanda gpg -a -o fi¸ier --export cheie s unde parametrul cheie este identificatorul cheii sau a uneia dintre subchei sau numele utilizatorului c˘reia ˆ apartine. cheile ¸i celelalte obiecte de transmis. semn˘turile. a ¸ identit˘¸i sau semn˘turi se poate face doar prin revocarea acesteia ¸i apoi at a s transmiterea certificatului de revocare. subchei. subcheile ¸i certificatele a at a s de revocare asociate acelor chei primare. s sa a • prin servere de chei. Importarea unei chei dintr-un fi¸ier se face prin comanda s gpg --import fi¸ier s Prin operatia de import. pe o dischet˘ sau prin s s sa a a alte mijloace) ¸i ˆ import˘ continutul ˆ GnuPG-ul local.4. ˆ ımpreun˘ cu identit˘¸ile. La transmiterea prin servere de chei. identit˘¸i sau semn˘turi nu s at a poate fi transmis˘ asupra partenerilor de comunicatie. Parametrul cheie poate lipsi sau poate s˘ s ın a nu identifice o unic˘ cheie primar˘. toate cheile primare respective a a ın sunt exportate. ¸tergerea unei chei primare. a Transmiterea unei chei primare ¸i a obiectelor asociate c˘tre un server s a de chei se face prin comanda gpg --keyserver server --send-key cheie Desc˘rcarea unei chei ¸i a obiectelor asociate de pe un server de chei a s se face prin comanda gpg --keyserver server --recv-key cheie . primul utilizator ˆ ıncarc˘. Din s a a ın s acest motiv. La transmiterea prin fi¸iere. ˆ ımpreun˘ cu toate identit˘¸ile. un utilizator export˘ una sau mai multe s a chei primare. iar parametrul fi¸ier reprezint˘ a ıi ¸ s a fi¸ierul ˆ care se vor scrie datele. de exemplu.c 2008. web. iar cel˘lalt utilizator le s a descarc˘ de pe serverul de chei. Niciodat˘ ˆ a a a a ıns˘ nu sunt ¸terse obiecte locale pe motiv c˘ nu se reg˘sesc ˆ fi¸ierul importat. semn˘turile ¸i certificatele de revocare asociate. ˆ acest caz. ˆ ıntr-un fi¸ier. a at subcheile publice. PGP/GPG Transmiterea acestor obiecte de la un utilizator la altul se poate face prin dou˘ metode: a • prin fi¸iere (transmise. cheile ¸i celelalte obiecte din fi¸ierul importat ¸ s s sunt ad˘ugate celor locale sau. Cel˘lalt utilizator s a prime¸te fi¸ierul (transmis prin po¸t˘ electronic˘. Invalidarea unei chei. Radu-Lucian Lup¸a s 396 11.

4. . fie ˆ fi¸ierul cu optiunile implicite.4). GnuPG consider˘ o cheie autentic˘ numai dac˘ dispune a a a a de un certificat valid pentru ea ¸i mai sunt ˆ s ındeplinite urm˘toarele conditii: a ¸ • cheia cu care este semnat certificatul este deja declarat˘ ca autentic˘. O sub-cheie este ˆ mod normal semnat˘ cu cheia primar˘ c˘reia ˆ ın a a a ıi este subordonat˘. O sub-cheie a c˘rei semn˘tur˘ este valid˘ este considerat˘ a a a a a a autentic˘ dac˘ ¸i numai dac˘ cheia primar˘ coresunz˘toare este considerat˘ a a s a a a a autentic˘. proprietarua lui acelei chei.c 2008. Verificarea autenticit˘¸ii cheilor at GnuPG verific˘ automat. at a ın a 11. Aplicatii ˆ retele ¸ ın ¸ 397 unde cheie este identificatorul unei chei (nu poate fi numele posesorului cheii). implicit. ˆ terminologia GnuPG.3. ˆ a ınainte de utilizarea unei chei publice. Autenticitatea cheilor se verific˘ cu ajutorul certificatelor a (vezi § 6. Aflarea identificatorului cheii unui utilizator se poate face prin comanda gpg --keyserver server --search-key nume-utilizator Este important de notat c˘. Reamintim ¸a a c˘ o cheie primar˘ este ˆ a a ıntotdeauna o cheie de semn˘tur˘. La utilizarea unei chei publice a c˘rei a a a a autenticitate nu a putut fi verificat˘. acordat de utilizatorul care execut˘ gpg. dou˘ informatii (inde¸ a a ¸ pendente una de alta): • dac˘ autenticitatea ei este verificat˘ sau nu. ˆ consecint˘. a a O cheie public˘ pentru care GnuPG dispune de cheia secret˘ corea a spunz˘toare este automat considerat˘ autentic˘. un certificat este numit semn˘tur˘ In a a asupra unei chei. autenticitatea acesteia. GnuPG d˘ un mesaj de avertizare.2. sub-cheile respective sunt imediat considerate autentice. asociate fiec˘rei chei primare. GnuPG retine. a a Restul paragrafului de fat˘ trateaz˘ doar cheile primare. a a • semnatatul certificatului este considerat de ˆ ıncredere. Vera a ificarea autenticit˘¸ii este descris˘ ˆ paragraful urm˘tor. GnuPG nu consider˘ o cheie a a proasp˘t importat˘ ca fiind autentic˘. a a • nivelul de ˆ ıncredere.2. este consida a a erat˘ autentic˘ orice cheie specificat˘ printr-o optiune a a a ¸ --trusted-key cheie fie la executia comenzii gpg. De asemenea. dac˘ se import˘ noi sub-chei pentru o cheie primar˘ a In ¸a a a a declarat˘ autentic˘. ˆ afara ¸ ın s ¸ In acestor dou˘ cazuri. Radu-Lucian Lup¸a s Capitolul 11.

ˆ utilizatorul a a ın care lanseaz˘ comanda gpg). a •ˆ ıncredere minimal˘ (marginally trusting) — o identitate semnat˘ doar de a a utilizatori de ˆ ıncredere minimal˘ s˘ fie considerat˘ verificat˘ este necesar a a a a un anumit num˘r de astfel de semn˘turi (implicit 3). ca un utilizator s˘ nu ¸ a semneze un set de chei f˘r˘ s˘-i verifice mai ˆ ai autenticitatea.1). la importarea ¸i semnarea setului a s de chei. a a • zero ˆ ıncredere (no trusting) — semn˘tura unui astfel de utilizator nu este a luat˘ ˆ considerare. precum ¸i ˆ proprietarii cheilor specificate prin a s ın optiunea --trusted-key. Apoi. GnuPG are ˆ ıncredere deplin˘ ˆ proprietarul unei chei pena ın tru care dispune de cheia secret˘ corespunz˘toare (altfel spus. semn˘tura poate fi transmis˘ ¸i altor utilizaIn a as tori GnuPG (vezi § 11.4. Radu-Lucian Lup¸a s 398 11. A doua comand˘ creaz˘ o semn˘tur˘ pentru uz a a a a local. • ˆ ai. a ın Nivelul de ˆ ıncredere acordat proprietarului unei chei este implicit zero. ¸ Crearea. El poate fi modificat cu comanda gpg --edit-key cheie ¸i subcomanda trust a acesteia. a . Autenticitatea aa a ıntˆ setului de chei se poate asigura ˆ dou˘ moduri: ın a • Fi¸ierul din care se import˘ setul de chei este adus pe o cale sigur˘. a unei semn˘turi asupra a a a unei identit˘¸i asociate unei chei se face prin comanda at gpg --sign-key cheie sau gpg --lsign-key cheie ˆ cazul primeia dintre comenzi. de c˘tre utilizatorul ce execut˘ gpg. s Implicit. de s a a exemplu printr-o dischet˘ dat˘ personal de c˘tre proprietarul cheii sau a a a este desc˘rcat de pe un sait web securizat (https) ¸i de ˆ a s ıncredere. Este esential. amprenta cheii primare este transmis˘ pe o cale sigur˘. de exemIntˆ a a plu pe un bilet scris de c˘tre proprietarul cheii sau printr-o convorbire a telefonic˘ cu proprietarul cheii.4. PGP/GPG Un utilizator poate acorda proprietarului unei chei: •ˆ ıncredere deplin˘ (full trusting) — semn˘tura acelui utilizator asupra a a unei identit˘¸i este suficient˘ pentru ca acea identitate s˘ fie considerat˘ at a a a verificat˘. pentru securitatea sistemului.c 2008. utilizatorul verific˘ amprenta cheii primare din set.2.

iar fi¸-ie¸ire este fi¸ierul ˆ care s s s s s s ın comanda gpg va pune rezultatul decript˘rii. at a a a ın a a s as a a ın Semn˘tura inclus˘ se genereaz˘ similar cu generarea unui mesaj cripa a a tat ¸i semnat. dar lipsesc destinatarii (optiunile -r) ¸i ˆ loc de -se se d˘ doar s ¸ s ın a -s. iar cheie-dest reprezint˘ s a numele utilizatorului destinatie sau identificatorul cheii de criptare de utilizate. pentru aceasta. Dac˘ sunt mai multi destinatari. Comanda de decriptare este identic˘ cu s ın a cea pentru un mesaj criptat ¸i semnat.4. utia a lizˆnd cheia public˘ a acelui destinatar. Transmiterea unui mesaj criptat dar nesemnat nu este recomandabil˘. cˆte o copie a cheii efemere. Transmiterea mesajelor criptate sau semnate Crearea unui mesaj criptat ¸i semnat se face astfel: s gpg -o fi¸-ie¸ire -r cheie-dest -se fi¸-intrare s s s sau gpg -a -o fi¸-ie¸ire -r cheie-dest -se fi¸-intrare s s s unde fi¸-intrare este fi¸ierul ce trebuie semnat ¸i criptat. GnuPG genereaz˘ aleator o cheie efemer˘. iar apoi cripteaz˘ cheia efemer˘ a a a a a utilizˆnd cheia public˘ a destinatarului. Radu-Lucian Lup¸a s Capitolul 11. mai multe optiuni -r. a a a ¸ GnuPG cripteaz˘. s Pentru generarea unui mesaj semnat dar necriptat exist˘ trei posia bilit˘¸i: semn˘tur˘ inclus˘ ˆ mesaj. Extragerea datelor s ¸ s a . a a Decriptarea unui mesaj se face prin comanda gpg -o fi¸-ie¸ire --decrypt fi¸-intrare s s s unde fi¸-intrare este fi¸ierul semnat ¸i criptat. prin recodificare ˆ baza a s ın 64. Comanda de criptare este similar˘ cu cea pentru criptare at a ¸i semnare. Fi¸ierul generat contine datele originale ¸i semn˘tura. pentru fiecare destinatar. a deoarece destinatarul nu poate avea nici un fel de certitudine asupra autenticit˘¸ii mesajului. semn˘tur˘ deta¸at˘ ¸i semn˘tur˘ ˆ clar. s s a a Se pot genera mesaje numai criptate sau numai semnate. Aplicatii ˆ retele ¸ ın ¸ 399 11.3. Un mesaj poate fi adresat mai multor destinatari. se pot da.c 2008. Oricare dintre destinatarii astfel specificati poate ¸ ¸ s˘ decripteze mesajul criptat. fiecare urmat˘ de numele ın ¸ a unui utilizator destinatie. fi¸-ie¸ire este fi¸ierul ˆ s s s s s s ın care comanda gpg va pune datele criptate ¸i semnate. a a cripteaz˘ textul clar utilizˆnd cheia efemer˘. dar cu -e ˆ loc de -se. Comanda verific˘ ¸i semn˘tura a as a ¸i afi¸eaz˘ pe ecran rezultatul verific˘rii. ¸ Cea de-a doua variant˘ produce un fi¸ier text ASCII. ˆ comanda gpg. a La criptarea unui mesaj.

iar semn˘tura s a este ad˘ugat˘ la sfˆr¸it. datele utile ¸i semn˘tura sunt puse ˆ s a s a ıntr-un singur fi¸ier. fi¸-sign. a ın a Acestea r˘mˆn u¸or de citit de c˘tre om ¸i. permite mai multor utilizatori s˘ semneze un acela¸i fi¸ier de date.c 2008. se distribuie un fi¸ier ce contine a s ¸ semn˘tura deta¸at˘ a fi¸ierului ce contine programul. § 11. Semn˘tura se genereaz˘ prin comanda: a a gpg -o fi¸-ie¸ire --clearsing fi¸-intrare s s s Fi¸ierul astfel produs este un fi¸ier text. se poate specifica ce cheie trebuie utilizat˘ pentru a a a crearea semn˘turii. a s a s ¸ . care poate fi citit u¸or de c˘tre utis s s a lizatorul uman. spre deosebire de semn˘tura a a s a s a deta¸at˘. Specificarea cheii se face ad˘ugˆnd optiunea a a a ¸ -u cheie GnuPG se utilizeaz˘ curent pentru autentificarea softului liber. semn˘tura ˆ clar se poate utiliza doar dac˘ datele sunt text In a ın a ASCII. a s s ˆ fine. este mic ¸i contine doar semn˘tura.1. Fi¸ierul produs. nefiind nevoie de gpg pentru recuperarea datelor. Verificarea semn˘turii se face prin a comanda: gpg --verify fi¸-sign fi¸-date s s Semn˘tura deta¸at˘ este util˘ deoarece p˘streaz˘ intact fi¸ierul de a s a a a a s date.1) a utilizabile pentru semn˘tur˘. ˆ a In acest scop. PGP/GPG ¸i verificarea semn˘turii se face exact ca ˆ cazul unui mesaj criptat ¸i semnat. s a ın s adic˘ prin comanda: a gpg -o fi¸-ie¸ire --decrypt fi¸-intrare s s s Semn˘tura deta¸at˘ se genereaz˘ prin comanda a s a a gpg -a -o fi¸-sign --detach-sign fi¸-date s s Rezultatul comenzii este scrierea ˆ fi¸ierul fi¸-sign a semn˘turii continutului ın s s a ¸ fi¸ierului fi¸-date. s s s s s ¸ a datele utile nu pot fi recuperate din el. Verificarea semn˘turii se face prin comanda: a a as a gpg --verify fi¸ s Semn˘tura ˆ clar este util˘ pentru semnarea documentelor text. Radu-Lucian Lup¸a s 400 11. s Dac˘ GnuPG are mai multe chei secrete (inclusiv subchei. Textul original este pus ˆ ıntre ni¸te marcaje. De asemenea.4. al˘turi de programul distribuit.4.

1981. 1981] B. [IEEE 802. Microsoft Press. 802. 2004.11. Neuhaus. [IEEE 802. Programarea distribuit˘ ˆ Internet.ietf.11F. N. http://www.11iTM Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. a ın Editura Albastr˘. Neagu. Radu-Lucian Lup¸a s 401 Bibliografie [Boian 1999] Florian Mircea Boian. Crstici. Bucure¸ti. T Banzaru. David LeBlanc. [IANA. . a [Cohen 1980] Danny Cohen. D.11FTM IEEE Trial-Use Recommended Practice for Multi-Vendor Access Point Interoperability via an Inter-Access Point Protocol Across Distribution Systems Supporting IEEE 802.txt. as a s [Howard & LeBlanc 2003] Michael Howard. B.c 2008. Rendi. Lipovan. 1999. Writing secure code. 2004] IEEE Computer Society. Neamtu.org.11TM Operation. I Sturz. 1999. 2004. 2004] IEEE Computer Society. 802. Amendment 6: Medium Access Control (MAC) Security Enhancements. O. [IEEE 802.11i. On holy wars and a plea for peace.iana. Rendi. ˆ [Crstici et al. ] http://www. 1980. M. Matem¸ atici speciale.org/rfc/ien/ien137. Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications. 2003] IEEE Computer Society. Editura didactic˘ ¸i pedagogic˘. 1999] IEEE Computer Society.1D. N. 2003. [IEEE 802. Media Access Control (MAC) Bridges. 2003.

[IEEE 802. 2003. IEEE Standards for Local and metropolitan area networks: Virtual Bridged Local Area Networks. 1996] Path MTU Discovery for IP version 6. 2003. 1994. Kurose. [RFC 1035. [RFC 1918. AddisonWesley.1X. 1987. [RFC 1981. Editura tehnic˘. Port-Based Network Access Control. . 1993] 1993. 1992] TCP Extensions for High Performance. 2003. 1996] Icremental Zone Transfer in DNS. 2001. [RFC 1323. [RFC 1700. 1992. S.1QTM .1Q. [Kurose & Ross 2003] James F. [Menezed et al. Radiotehnica. 1987] Domain names — concepts and facilities. Handbook of Applied Cryptography. Menezed. 802. 802.3. [RFC 1661. 1990] A Standard for the Transmission of IP Datagrams on Avian Carriers. 1996. 1994] The Point-to-Point Protocol (PPP). 1987. 1997] A. 1994. 1994] Assigned numbers. 1996] Address Allocation for Private Internets. [RFC 1995. [RFC 1034. 2001] IEEE Computer Society. a s [Prasad 2003] K. [RFC 1149. 1997. Computer networking — A top-down approach featuring the Internet. Ross. Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications. 1987. Manualul inginerului electronist. 2003] IEEE Computer Society. Keith W. Bucure¸ti. Prasad. An Architecture for IP Address Allocation with CIDR. 1996. [Nicolau 1987] Edmond Nicolau. 1996. 1990. 1987] Domain names — implementation and specification.V. 2005. Vanstone. P. [IEEE 802. Principles of Digital Communication Systems and Computer Networks. [RFC 1518. CRC Press. 2005] IEEE Computer Society. Charles River Media.1XTM . van Oorschot. Radu-Lucian Lup¸a s 402 Bibliografie [IEEE 802.c 2008.

2007. 1997. 1997. 2001. 2001] Internet Message Format. 1997] HMAC: Keyed-Hashing for Message Authentication. 1985] File Transfer Protocol (FTP). 1981] Internet Control Message Protocol — DARPA Internet Program Protocol Specification. [RFC 792. 2001] MIME Security with OpenPGP. 1998] Classless IN-ADDR. [RFC 2183. 1998. 2003. . 2004. 2006. 1998. Version 6 (IPv6) Specification. 1981] Internet Protocol — DARPA Internet Program Protocol Specification. [RFC 3156. 1996.1.ARPA delegation. [RFC 2047. [RFC 2046. 1981. 1985. 2006. 1998] Internet Protocol. Radu-Lucian Lup¸a s Bibliografie 403 [RFC 1996. 1996] A Mechanism for Prompt Notification of Zone Changes (DNS NOTIFY). [RFC 2440. [RFC 2460. [RFC 2104. [RFC 791. 2004] Extensible Authentication Protocol (EAP). 1998] Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification. [RFC 4346.c 2008. 2001. 2006] The Transport Layer Security (TLS) Protocol Version 1. [RFC 3748. 2006] The Secure Shell (SSH) Transport Layer Protocol. [RFC 765. 1996] Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies. [RFC 4253. 2007] OpenPGP Message Format. [RFC 2463. 1981. 1996] Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types. 1996. [RFC 3596. 1996] Multipurpose Internet Mail Extensions (MIME) Part Three: Message Header Extensions for Non-ASCII Text. [RFC 2822. 1997] Communicating Presentation Information in Internet Messages: The Content-Disposition Header Field. 1996. [RFC 2045. 1998. 2003] DNS Extensions to Support IP Version 6. [RFC 2317. 1996.

Editura a ¸ Tehnic˘.html. Bucure¸ti. http://www. http://www. Rogaway.cs. 1994. TCP-IP illustrated. a s [Stevens 1994] Richard Stevens. .charters/smime-charter.txt. Tanenbaum. [Tanenbaum 1995] Andrew S. Radu-Lucian Lup¸a s 404 Bibliografie [RFC 793. 1981] Transmission Control Protocol — DARPA Internet Program Protocol Specification. [S/MIME. 1982. Distributed Operating Systems. 1981. Spataru. Prentice Hall.edu/~rogaway/papers/ draft-rogaway-ipsec-commen% ts-00.ietf. 1965.org/html. Problems with Proposed IP Cryptography. [RFC 822.c 2008.ucdavis. Addison-Wesley. Teoria transmisiunii informatiei. ˘ [Sp˘taru 1965] Al. Retele de calculatoare. [Rogaway 1995] P. 1995. Byb¸ los. 2003. ] S/MIME Mail Security (smime). [Tanenbaum 2003] Andrew S> Tanenbaum. 1982] Standard for the format of ARPA Internet text messages. 1995.

98. 271 1000 Base T. 98.0.0.0. 61 AUI.0. 303 240. pg. 303 10 Base T. Internet a MAC. cu scopul obtinerii sau a a. translatie.1. 297.0. Vezi a . . schimbate ˆ ıntre dou˘ entit˘ti. 303 A access point.0. Un adversar care intercepteaz˘ a doar comunicatia.0.168. 272 127. 17 AP. 303. Un adversar care intercepteaz˘ a si modific˘ dup˘ voie mesajele a a . 340 atenuare. 266 a Internet. benzii de trecere. O entitate care intercepteaz˘ sau a modific˘ mesajele schimbate ˆ a ıntre alte dou˘ entit˘ti.c 2008. lui m˘surat la bornele receptorua lui. modific˘rii informatiei transmise. 348. 278 autentificare entitate.16. 303.0. fica.0/8.0. 340 a a privat˘.0.0.0/16. 294. Vezi modulatie de amplitudine . 349 . Vezi IBSS adres˘ a fizic˘.0. 349 224. Diferenta dintre frecventa a. Prin abuz . maxim˘ si frecventa minim˘ a a . 149 surs˘. 297 ın . Radu-Lucian Lup¸a s 405 Index Speciale 0. 349 a de retea. 149 activ. Vezi pg. a . Vezi adres˘ fizic˘. 61 factor de. Vezi confirmare acknowledge. 300 IP. 150 a B B. adversar. pg. 302 . 150 mesaj. 286 ACK. 78 a anycast. 303 172. 303. 349 100 Base Tx.0/4. 149 pasiv. 380 Aloha.0. 349 192. 100 AM.a . . ˆ subretea.0.0.0. 268 10. 119 . Raportul ˆ ıntre puterea semnalului m˘surat la bornele a emit˘torului si puterea semnalu. . Vezi bel band˘ a lateral˘.0/4. Vezi a a.0/8. 303 127.0. unei subretele. anten˘. 303. f˘r˘ a o modia a .0/8. Vezi access point ARP. 303. 149 agent de autentificare. 341 0. Vezi pg. Vezi confirmare ad hoc (wireless). 70 a l˘time de.0/12. Vezi adres˘.

52 detector de erori. 266. Vezi celul˘ wireless a BSS-ID. a Indic˘ faptul c˘ a a num˘rul din fata unit˘tii este un loga a. 157 flux. 27 codificare ˆ baza 64. Vezi codificare ˆ baza 64 ın BCD. 27 unic decodabil. semnalul se transmite cu distorsiuni acceptabil de mici prin dispozitivul considerat. 114 corectarea erorilor. 151 bloc. CSMA. Pseudo-unitate de m˘sur˘ pentru logaa a ritmul raportului ˆ ıntre dou˘ m˘rimi. 101. 51 capacitate. Are simbolul B. 103. 52 instantaneu. 271 celul˘ a Index: Basic Service Set–CSMA/CD wireless. 25 corector de erori. Vezi canal cu zgomot . 150. 230 a little endian. congestie. 318 . 101. 277 . 151 cryptographic hash function. 65. 288 cod. 140 a BSS. 285 C cablu inversor. 25 cu perturbatii. 288 bel. 308 controlul fluxului. Vezi difuziune complet˘. 303 clear to send. pg. 65. 255 . 255 binar-zecimal˘ (pentru numere). 269 canal de comunicatie. 28 a prefix. 287 CSMA/CD. Vezi cheie efemer˘ a stabilire. 157 ciphertext. Vezi codificare binar-zecimal˘ (pentru a numere) beacon. 269 unu-la-unu. 334 IP. 231 Cat 3. 174 CIDR. Vezi . 149 . continuu. 72 de trecere. 269 Cat 5. Vezi text cifrat clas˘ a DNS. 267 confidentialitate. text (pentru numere). 152 de durat˘ lung˘. 303. a a de regul˘ m˘rimile fiind puterile a a a dou˘ semnale. 92 a a Basic Service Set. 216 coliziune. Vezi dispersie criptografic˘. Vezi pg. cu zgomot. 72 de trecere (fibr˘ optic˘).c 2008. 102 si retransmitere. 285 certificat. 231 ın big endian. Vezi celul˘ wireless a baza 64. 17 caracter de evitare. mai are sensul de debit maxim al unui canal de transmitere a informatiei. 62 BNC. functie de a . a 216 binar˘ (pentru numere). 304 cifrare. 175 a de sesiune. confirmare. 51 criptare. Radu-Lucian Lup¸a s 406 de limbaj. aritm zecimal. 25 discret. 100 CSMA/CA. 255 retea (pentru numere). Interval de frecvente ˆ care . 277 comutator. 31 de lungime fix˘. ın dac˘ se ˆ a ıncadreaz˘ spectrul unui a semnal. Prin abuz de limbaj. 255 a hexazecimal˘. mai are sensul de debit maxim de transmitere a informatiei al unui dispozitiv. 286. Este utilizat mai mult submultiplul numit decibel. . 175 a a efemer˘. 25 . 182 cheie. 279 broadcast. Vezi pg. . Vezi criptare cifru.

c 2008. 92 a distorsiune. Vezi decriptare destinatie. 92 multimod. a . a ıntˆ . 59 . Pseudo-unitate de m˘sur˘ pentru logaritmul puterii unui a a semnal. Vezi criptare envelope. 330 utile. 62 distribution system. 371 IP. 42 emit˘tor. diferit˘ de ˆ arziere si atenuare. detectarea erorilor. 17. 59 . 17. Vezi fals ales existential. Vezi controlul fluxului FM. 25. 255 htons. ai raportului dintre puterea semnalului m˘surat si o putere de 1 mW. cerere ecou cerere. 69 a FTP. 384 407 .a encryption. 165 existent. . opozitie cu zgomotul care este aleator. Vezi nod final htonl. ˆ decia ın beli. 17 complet˘. . 62 decriptare.a unui cod. Vezi Distribution System duplex leg˘tur˘ Ethernet. r˘spuns a request. 62 decibel-miliwatt. Vezi decibel-miliwatt debit. 315. 21. 255 HTTP. 25. Vezi pg. 166 criptografic˘ a functie de. Vezi pg. 73 eficient˘ . 343 MAC. Vezi pg. 17 decibel. functie de. Vezi clear to send D date de control. indicˆnd logaritmul.a purt˘toare. Vezi ecou.a forgery choosen. 140 a dirijare. a . 282 firewall. 299 default. 151 decryption. Vezi dispersie. Pseudo-unitate de m˘sur˘ avˆnd ca a a a valoare o zecime de bel. 59 dB. 383 G gateway. 166 . Vezi fals existent format. Vezi modulatie de frecvent˘ . 286 DS. 126. host. Vezi plic F fals ales. semnal prin acelasi dispozitiv. 91 filtru anti-spam. 307 a ecran. Vezi decriptare descifrare. Vezi filtru IP flow control. 62 difuziune. 300 H hash function. 77 . Modificare determinist˘ a sema nalului receptionat fat˘ de cel emis. Zgomot ce are ca provenient˘ un . . Vezi ecou. intermodal˘. Distorsiuniea se manifest˘ la fel a oridecˆteori se transmite un acelasi a . Vezi pg. Vezi decibel dBm. ˆ ın . functie de . 166 .a semnal transmis pe un mediu apropiat fizic de mediul ce transmite semnalul considerat. 165 fibr˘ a monomod. Are simbolul dB. 307 r˘spuns. 22 speciale (TCP). Vezi codificare frecvent˘. 51 diafonie. Radu-Lucian Lup¸a s Index: CTS–HTTP CTS. 140 a selectiv˘. 298 dispersie. 268 a a E echo reply.

master DNS. transmiterea semnalelor corespunz˘toare comunicatiilor prin a . 369 N NAT. lob al antenei. 293 Internet Control Message Protocol. 77 MIME. a ˆ lungimea de und˘. a . fizic˘ de la emit˘tor la receptor. Vezi fibr˘ multia a mod multiplexare ˆ frecvent˘.a Vezi pg. 302 . . dial˘ construit˘ pe baza protocolului a a internet Vezi pg. 25 . Vezi difuziune selectiv˘ a multimod (fibra optic˘). Vezi band˘. Vezi pg. Procedeu prin care mai ın . nerepudiabilitate. de intrare. Vezi cheie efemer˘ a L l˘time a. Vezi infrastructur˘ a masc˘ a de retea.a de retea. 286 a ˆ arziere. Dispozitiv capabil s˘ a transmit˘ la distant˘ o actiune a . 27 microunde. Internet. 304 IMAP. 91 modulatie. 360 mod de propagare (fibre optice). 150 interfat˘ . 149 network . 296 . modulatie utilizˆnd frecvente a . 68 . 364 user agent. 93 a a . 355 managed (wireless). 2. 294 K key. purt˘toare diferite. Vezi Internet Control Message Protocol ICMPv4. Vezi cheie de durat˘ lung˘ a a session. 355. 391 hub. 286 ICMP. 70 a de frecvent˘. 267 I IBSS. 304 ICMPv6. 367 MUA. 265. 117 ın MX. 81 lungimea de und˘. 294 IPv6. Vezi mail transfer agent.a caracteristic˘. 40 infrastructur˘ (wireless). Vezi und˘. 74 a de iesire. partaja acelasi mediu fizic prin . Vezi cheie efemer˘ a long-term.a . 61 ıntˆ integritate verificare. ˆ timp. 1. Vezi adversar IP. de band˘. l˘time a a a. Vezi adres˘. cantitate de. Radu-Lucian Lup¸a s 408 HTTPS. 75. 337 mediu de transmisie.c 2008. de amplitudine. 356 impedant˘ . 75 .a MTA. 59 mesaj. Vezi protocolul Internet IPv4. 304 intrus. 70 ın a de faz˘. 265 a Index: HTTPS–network mail transfer agent. 367. Vezi mail user agent multicast. nivel retea.a multe comunicatii simultane pot . 69 ˆ cuadratur˘. Retea la scar˘ mona . translatie a . Protocol de comunicatie de . . Procedeu de mulın a tiplexare ˆ care mai multe semın nale optice utilizˆnd lungimi de a und˘ diferite sunt transmise prin a aceeasi fibr˘ optic˘. lungime de a a M magistral˘. 75 informatie. 70 . Vezi cheie ephemeral.

301 simpl˘. 119 a ruter. 25. 119.a R raport semnal/zgomot. purt˘toare a a . interface card. 356 port. 301 a ntohl. Vezi request to send RTT. privat˘. 16 purt˘toare. nod. 337 SMTP. 346 blind. 42 . c˘tre mediu pˆn˘ la receptor si care a a a . verificare. 348 a RJ45. 62 receptor. 288 retea . Vezi num˘r unic a notatie . 298 reliable transmission. 293 nonce. 318 . 57 pong. Vezi nod intermediar S securizare. 293 final. 63 simbol de cod. a translatie . 332 O OOB. 26 slave DNS. Vezi ecou. 331 portal. 64 spoofing.a unic. 233 spectru. 297. 266 TCP. produs˘ de emit˘tor si transmis˘ de a a . 25 . Vezi SSID NIC. 25. Vezi timp dus-ˆ ıntors rut˘. 16. cerere plaintext. este utilizat˘ efectiv ca purt˘toare a a a informatiei. 255 ntohs. 119.a . 55 pereche torsadat˘. Vezi pg. Vezi date speciale out of band. 278 409 prospetime . Vezi timp dus-ˆ ıntors router. 326 .a .a regul˘ a de dirijare.a . 357 polinom generator. 355. Vezi date speciale P pachet. Vezi verificare prospetime . Vezi interfat˘ de retea . Vezi repetor repetor. 269 a a ping. 268 a torsadat˘ neecranat˘. Vezi nod intermediar RTS. 295 paritate. Vezi adres˘. zecimal˘ a cu punct. 62 prefix de retea. r˘spuns a POP3. 22 punct la punct. 286 prag de sensibilitate. Vezi text clar plic. request to send. 119. 59 redundant˘. Vezi transmisie sigur˘ a repeater. 293 Internet. 97 semnal. 255 num˘r a de secvent˘. 149 semi-duplex.c 2008. 266 reprezentare a informatiei. 171 nume de domeniu. name (wireless). priz˘ a vampir. Vezi frecvent˘. modulat. 59 . 73. 104. 293 intermediar. 302 . Radu-Lucian Lup¸a s Index: NIC–spoofing address translation. 364 socket. M˘rimea fizic˘ ce m˘soar˘ actiunea a a a a . 269 round-trip time. 327 UDP. 69 sinusoidal. Vezi ecou. Vezi interfat˘ de retea . protocol.

verificare integritate. subretea. 382 Z zgomot. . 77 radio. 18 de valabilitate (DNS). 151 text clar. IP. Vezi pereche torsadat˘ neecranat˘ a a UTP. Vezi adres˘. Vezi timp. 375 SSID. 151 time to live. 126. 282 TTL. 136 . . surs˘. de viat˘ . Vezi pg. 283 VLAN-ID. .a twisted pair. 337 de viat˘ (pachet IP). 59 a switch. 308 . 62 zon˘ a DNS. Vezi nod final . 317 terminator. 103 a trunking. Vezi perechi torsadate neecranate V vecin. Vezi integritate. 389 statie. 334. 255 ˘ Index: SSH–zona uint32 t.a tip ˆ ınregistrare DNS. 325 SSH. 297 ın . Vezi timp. verificare prospetime. 18. translatie a . 150 . 77 unicast. 77 a lungime de. Vezi multiplexare ˆ lungimea de und˘ ın a WDM. 255 und˘ a electromagnetic˘. Vezi comutator T tabel˘ a de dirijare. transmisie sigur˘.c 2008. 119 vector de initializare. 298 TCP.a Pentru comparatie. 25. 16 unshielded twisted pairs. . Modificare nedeterminist˘ a sema nalului receptionat fat˘ de cel emis.a timp dus-ˆ ıntors. . Radu-Lucian Lup¸a s 410 IP. 154 . Vezi pereche torsadata U uint16 t. 286 SSL. vezi si distorsiune. VLAN. 76 text cifrat. Vezi multiplexare ˆ lungimea de ın und˘ a window manager. 389 translatia adresei. 296 sufix ˆ subretea. de viat˘ . 334 TLS. 329 de propagare. 283 W wavelength division multiplexing. 335 .