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.4 Functia listen() . . . . . . . . . . . . . . . . 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 . . . . . a 7. . . . . a 7.3. . a 7. . . . . 7. .2 Codificarea textelor . . . . . s 7. a 8. . .1. . . . . . . . .2 Codificarea ˆ baza 64 . . . . . . . . . a 7. . .1.11 Functiile sendto() ¸i recvfrom() . . . . . . . . . .3 Formate utilizate ˆ practic˘ . . ¸ a 8. . . . .2. . . . . . . . . .3. . . . . . . . . 7. . . . . . . .1. . . . . .3. . .2 Comunicare prin datagrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Reprezentarea datei ¸i orei . . . . . . . . .2. . . . . . . . . . . . . .3. . . . .c 2008. . . . . . . . . . . . . 7.2. . . .1. . . . . . . . . . . . . 8. . . . . . . .3.1 Interfata de programare socket BSD . . . . . . ın a 7. . . . . . . . .2 Formatarea datelor . . . . .1.1. . .3. . . . . . . . . . . ın 7. . . .4. . . . . . . . . . . . . . . . ¸ 8. . . . ¸ s 8. . .1.1 Comunicatia prin conexiuni . . ¸ 8.4. . . .3 Comunicatia propriu-zis˘ . . . . . . . . .2. . . . . .1. . . . . . . . Radu-Lucian Lup¸a s Cuprins 7. . . . . . . . . . . . . . .2 Functia connect() . s 7. . . . . . . . . . . . . .3. . . . . .3. . . . . . . . . . . . . . . . . . . . . . .1. . .1 Codificarea ASCII . . . . . . .2. . . . . . . . . . . . .1. . .1. . . . . . .4. .3. . . . . .4 Exemple . . . . . . . . . .3. . . . .3. . . .4. . . . .3. . . . . . .1. .1. .2 Comunicatia prin datagrame . . . . . . . . . . . . .3 Principalele apeluri sistem . . . . . .1 Comunicare prin conexiune .2 Obiectivele ˆ alegerea reprezent˘rii timpului ˆ calculator ın a ın 7.3. . . . . ¸ 8. . . . . . . . . . . . . . . . . . . . . . . . . .9 Functiile send() ¸i recv() . . . . . . .10 Functiile shutdown() ¸i close() . . . . . . . . . . . . . . . . . a 7. . . .1 Deschiderea conexiunii de c˘tre client . . . . . . . . . . . . .4 TAI 64 . .1. . .1.8 Functiile getsockname() ¸i getpeername() ¸ s 8. . . . accept() . s a 7. a 8. . . . . . . . . . . . . . . . .3. . . .3. ¸ 8. ¸ 8.3. . . . . . . . . .2.3. . . . . . . .3 Codific˘rile UTF-32 . . . . . .1. . .3. . . .1. . . . . . . . . . . . 8. . . . . . .3. . . . . . .1 Formatul utilizat de po¸ta electronic˘ . . . . . . . . .3 Functia bind() . . . . . . . . . . . . 8.1 Codificarea UTF-8 . . . . . . . .3. . . . . .1. . . . . . . . . . . . . . . . . . . . . . . . . . . . ¸ 8.2 Codific˘rile UTF-16 . . . . . . . . . .1. . . ¸ 8. . . . . . .1. . . . . . . . . . . a ¸ 8 Programarea ˆ retea — introducere ın ¸ 8. . .3. . . . . . . .3 Timpul POSIX . . . . . 7. .1. . . . .3 Codific˘rile Unicode .1 Codificarea hexazecimal˘ . . . . . . . . .2 ISO-8601 ¸i RFC-3339 . . . . . . . . . . . listen() ¸i ¸ s 8. . . . ¸ 8. .4 ˆ Inchiderea conexiunii . . . . . .1. ¸ s 8.1 M˘surarea timpului .1. . . .4 Recodific˘ri . . . . . . . . . . . . . .3 Codific˘ri bazate pe secvente de evitare . . . . . . . . . . . . . . . . . . . .3. .5 Functia accept() . . . . . . . . . . . . .6 Formatul adreselor .3. . a 7. 8. . . . . . . . . .7 Interactiunea dintre connect(). . . . . . . . . . . . . . . . . . .2 Deschiderea conexiunii de c˘tre server . . . . . . .1. .2 Codific˘rile ISO-8859 . . . . . . . . . ¸ s 8. . . . . . . . . . . . . . . . . . . 8. .4. . . . . . . .3. . . . . . . . . . 7. . . . . .1. . . .1 Functia socket() . . . . . . . a 7. . . . 8. . . . . . .

4 Alocarea adreselor IP ¸i prefixelor de retea s ¸ 10. . 8. . . . .3 Probleme de concurent˘ ˆ comunicatie . . . a 9. . .2 Alocarea adreselor ¸i dirijarea ierarhic˘ s a . . .1. .3 Variabile compuse (struct-uri) . . . . . .1 Leg˘turi punct la punct prin perechi de conductoare a 9. . . . Radu-Lucian Lup¸a s 10 8. . .1. . . . . . . . . . . . . .1. . . . . . . . . . . . .2. . . . 10. . . . . . . . . . . . . . 9. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8. . . . . .6. . . . . . . . . .1 Tipuri ˆ ıntregi . . . .2 Filtrare pe baz˘ de adrese MAC . . . 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.3 Tabela de dirijare . . . . . . . . . . .2. . . ¸ s 8. . . . . . . . . . . . . . . . . . a 9. .2. . . . . . . . . . . .2. . . . . . . . . . . .1 Switch-uri configurabile . . . . . .1 Alocarea pe utiliz˘ri . 10. . . . a 9. . . . . . ¸ s ¸ 10. . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . s 10. . 10. . . . . . . . . . .2. . . . . . . .2 Formate text . . . . . . .6. . . . . . . . . . ¸a ın ¸ 9 . . . . . . . . .2. .1 Formate binare . . . . . . . . .11 (Wireless) .2.1. ¸ 9. . . . .2 Siruri de caractere ¸i tablouri . . . . . .1. . .2 Leg˘turi prin fibre optice . . . . . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . .1. . . . . .2. . ¸ 10. . . . . . . . . . . . . . . . . . . . . . . .1.1. . .3 Generarea pachetelor beacon . ¸ 9.1 Arhitectura retelei . . . 10. . . . . . . 10 Internetul 10. . . .1.2. . . . . Cuprins . . . . . . . . . . . . . .2 Accesul la mediu . . . . . . . . .1. . . . . . . . . 9. .3 Leg˘turi prin cablu magistral˘ .2. . . . . . . . . .7 Considerente privind proiectarea unei retele . . . . . . . . . . . . . . . . . . . . .2. . . . . . a 10. . . . . . . . . . . . . s 9.1 Retele IEEE 802. .2. . . .6. . . . . . 8. . . . 8. .2. . . .2 Retele IEEE 802. .1. . . . . . . . . . . . . . . .2. . . . . . . . .6.4 Pointeri . . . . . . . . . . .2 Bazele dirij˘rii pachetelor IP . . . .2. . .6. . . . . . . . . . . . . . . . . . . .3. 9. . . . . . . . . . . . . . . . . . . . . . . . . 9. . . . . . ¸ s 8. . . . . . . . .2. . . . . . . . . . .4 Repetoarele ¸i comutatoarele .3. . . .2. .2 Prefixul de retea . . . . ¸ 9. .1.6 Facilit˘¸i avansate ale switch-urilor . . . . .5 Dirijarea efectuat˘ de comutatoare (switch-uri) . . . . . . . . . . . . . .1 Structura pachetului IP . . .2. . . . .11 .1. . . . ¸ 10. . . . . . . . . . . . . . .1. . ¸ 10. . . . . at 9. . . ¸ 9.2. . . . a 9. .4. . . . . . . . .4 Probleme privind costul apelurilor sistem 8. . . .2. . . . . . a a 9. . . . . . .5 Retele virtuale (VLAN) . . .3 Trunking . . . . . . . ¸ 9. . . . . .3 Probleme de robustete ¸i securitate . . . . . . . . . . . . . . . . . . . . . . .2 Protocolul IP . . . . . . . . . . . . . . . .2 Scrierea prefixelor de retea . .4 Securitatea retelelor 802. . . . . . . . . . .3 (Ethernet) . .2. . . . . a 10. . . . . .2. . . . . . . . . .1 Scrierea adreselor IP . . . . . . . . . . . . . . . .2.1 Subretele ¸i interfete . . . . . . . . . . . .c 2008. . . . . . . . . . . . . . . . .1 Arhitectura retelei . . . . . . . . . . . . .1.2.2. ¸ . . . . 8. . . .4 Leg˘turi redundante . .3 Scrierea ca text a adreselor ¸i prefixelor . . . . . . . .1. . .

. . . . . . . . .1. . . . . . . . .2 Comunicatia bidirectional˘ . . . .1 Rezolvarea adresei — ARP . . . . . . . . . . .4 Mecanismul de interogare a serverelor . . . . . . . . . . . . . . .3. . . . . .3. . . . . . . . . . . . .5 Redirectionarea . . . 10. . . . . . . . . . . . . . . . ¸ ın 10. . . . . . .2. .1. .3. . . 10. . . . . . . . . . . . . . . . .2 Calitatea serviciului . . . . . . . . . . . . . . . 10. . . . . .6 Identificarea aplicatiei destinatie . . . . . . . . . . . . . . 10. . . . . . . .3 Nivelul transport .2. . . . . . 10. . . .1 Filtre de pachete (firewall) . . . . . . . . . .1. . . . . . . . . . . . . . . . . .11Trimiterea datelor speciale (out of band) . .3 Translatia adreselor (NAT) . . . . .7. . .2. .5. . . . . . . . ¸ a 10. . ¸ ¸ 10.5. . . . .4 Alegerea num˘rului initial de secvent˘ . . . . . . . . . . . . . .1 Numele de domeniu . . . .3. . . . . . . .4. . . . . . . . . . 10. . . . . 10. .2. . . . . .1. . . . . . . . . . .1 Dimensiunea maxim˘ a pachetelor ¸i fragmentarea . . .8 Controlul fluxului . . . . . . .3. ¸ ¸ a 10. . . . . . . . . 10. .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Datagrame nesigure: UDP . . .3.4. . . . . . . . . . . . 10. . .2. . .3. . . . .10Algoritmul lui Nagle ¸i optimizarea num˘rului de pachete . ¸ 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 . . . . .3. . . . . a 10. . . 10.7. .4. . . . . . . . . . . . . . . . . . 10. . . 10. . . . .2. .7 Configurarea ¸i testarea unei retele IP locale .3. . . .5. . . . . . . . . . . . .2 Structura logic˘ a bazei de date DNS . . s 10.6 Configurarea automat˘ a statiilor — DHCP . .1 Conexiuni cu livrare garantat˘: protocolul TCP . .5 Leg˘turile directe ˆ a ıntre nodurile IP . . .1. . . .2 Diagnosticarea function˘rii rutelor . . . . . . . . . . . . . . . . . . . .4. . ¸ 10. . .9 Stabilirea time-out-ului pentru retransmiterea pachetelor . a ¸ 10. . . . . . .7. .6 Alte chestiuni privind dirijarea pachetelor . . . . . . . . 10. . . . . . . . . . ¸ 10. .2. .2 Retele private . . . . . . .3 Deschiderea ¸i ˆ s ınchiderea conexiunii . . . . .5 Sincronizarea serverelor pentru un domeniu . . .3 Testarea ¸i depanarea retelelor . . . . 10.1. . .1 Pachete nelivrabile . . . . . . . .2. . . . .2. . . . . . . . . . . .4. .6. . . a ¸ ¸a 10. . .2 Configurarea parametrilor de retea pe diverse sisteme de op¸ erare . . . . .5. . . . . . . . . .3. . . . . .6 C˘utarea numelui dup˘ IP . . . . . . . . . . . . 10. . . .3. . . . 10.4 Congestia .7.5. . . . . ¸ 10. . . 10. s a 10. . . . . . . .2. .2. . . . . . . . . .7. . . . . . . . . . . . . . s ¸ 10. . . . . . . . . . . . . . . . . . a a 10.1. . . . . . . .3.2. . 10.1 Principiul conexiunii TCP . . .1. . Radu-Lucian Lup¸a s Cuprins 10. .7.7. . . . . . . . 10. . . . s ¸ 10. .2. . . . . . Imp˘ ¸ ın 10. .5 ˆ Inchiderea fortat˘ a conexiunii . . . . . . . . . . . . . . . .6. . . . . . .3. a 10. a 10. . . . .1. . . . . . . . . . . .1 Alegerea parametrilor . . . . . . . . .1. . . .4 Identificarea nodurilor dup˘ nume: sistemul DNS . . . . . .1.7 Situatii speciale ˆ dirijarea pachetelor . . . . . . . . .5. . . . . . . . . . . . .3 ˆ artirea ˆ domenii de autoritate . . . 10. a s 10. . .c 2008. .5 Erori la dirijare ¸i protocolul ICMP . .3 Ciclarea pachetelor IP . . . . . . . . . . . . . . ¸ a 10. .3. . . . . . . . . . . . . 10. . . . . . .1 Translatia adresei surs˘ . .7 Corespondenta ˆ ¸ ıntre functiile socket() ¸i actiunile modulu¸ s ¸ lui TCP .

3 Configurarea unui MTA . . . 11. . . . . . . . . . . .1. . . . . . .1. . . . .3. . . . . . . . .1. . . . . .2. . . .5 Conexiuni securizate: SSL/TLS . . . . .2. . . . . . .1. . . 11.4. . . . . . . . . . . . .4 Tunelarea . . . . . . . . . . . . . . . 11.1. . . . . . . . . . . . 11. . . . . . . . . . . . .3. . 11. . . 11. . .2.1. . .2 Translatia adresei destinatie . . . . . . . . . . 11. . . . . .3. . . . . . . . . .1. .4 Controlul perioadei de valabilitate a cheilor . .2.1 Protocolul SMTP . . . . . . . . .3 Generarea ¸i modificarea cheilor . . . . . . . . . . . . . .1 Antetul mesajelor .2 Transmiterea ¸i certificarea cheilor publice . . . . . . . . .2 Extensii MIME . .2 Transmiterea mesajelor . .1. . . . . . . . . . . . . . . . . . . . . . . . . .3. . . .2.2 Determinarea urm˘torului MTA . . . . . . 11. . . . . 11. . . . . . . . . . . . .3. 11. . . . . . . . . . . .4. . . . . . . . . . . s 11. . . . . . ın 11. . . .3 Transferul fi¸ierelor ˆ retea . . . . . . . . .3. .1. .3 Ata¸area fi¸ierelor ¸i mesaje din mai multe p˘rti s s s a¸ 11. . . . . . . . . .c 2008. . . . . . . . . . . s 11. . . . .1. . . . . . .2. . . . . . . . . .3 Alte facilit˘¸i HTTP . .2. . . . . .4. . . . . . . . .2. . . . . . . .4. . . .2 Sistemul X-Window . at 11. . . . . .3. .6 Utilizarea TLS pentru web . . . . . . . . . . . .4 PGP/GPG . . . . . . . . . . . . . . . .1 Chei primare ¸i subchei . .2. s 11. . . . . . .1 Structura cererilor ¸i a r˘spunsurilor . . . . . . . . . . . . . . . . . 350 ¸ ¸ 10.1. .4. .1.1.1 Transmiterea cheilor publice . .7. . . s ¸ 11. .2. . . . . . . . . . . at 11. .1 Formatul mesajelor . . . . . . . . . . . s at 11. .3 Transmiterea mesajelor criptate sau semnate . . . .1 Protocolul ssh .2.4 Proxy HTTP . . . 11. . . . 11.2 Metode de autentificare ˆ ssh . . . . . . . . . 11. .4. . . . . . . .1 Structura cheilor GnuPG . . . . .2. . . . . . . a 11. . . . . . . . . . . . . . . . . . . . a 11. . . . . . . . .4. . . . . . . . . . . . . s 11. . .2. . . . . . . . . . .5 Gestiunea cheilor secrete . . . . . . . . .3.1. . . . . . . . . . .4. . . . . . . . . . . . . . . . . . . . .1.2. . 11. . . . . . . . . . . . . .1. . . . . . . . .1. s a 11. . . . . s a 11. . . . . . . . . . .1. . . . . . . . . . . . . . . . . 351 11 Aplicatii ˆ retele ¸ ın ¸ 11. . 11. . . . . . . 11.3. . . . . . . . . . . . . . . . . . .2 Protocolul HTTP . . . . . . .2 Utilizatori ¸i identit˘¸i . . . . . .1. . . . . . Radu-Lucian Lup¸a s 12 Cuprins 10. . . . .1.4. . . . . . .1. . . . . . . . . . . . . . . . ¸a 11.1 Protocolul ftp . . .4 Codificarea corpului mesajului ¸i a ata¸amentelor s s 11. . . . . 11. . . .2. . . . . . .2. . .4. . . . . . . . . . . . . . . . . 11. . . . . . . .2 Sesiuni interactive la distant˘ . . . .2 URL-urile . . . .3 Securitatea po¸tei electronice . . . .1. . . . . . 11.2 Verificarea autenticit˘¸ii cheilor . . s ın ¸ 11. .1 Conexiunea ssh protejat˘ criptografic . .3 Multiplexarea conexiunii. . . . . . . . . . . . . . . . . .1 Po¸ta electronic˘ . . . . . . . . . . . . . . . . . . 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 . . tunelarea ¸i aplicatii . . . . . .7. . . . . . .

este inutil In a ¸ s˘ mai subliniem importanta acestui domeniu. ˆ consecint˘. precum ¸i privind functionarea s ¸ a s ¸ sistemelor de operare. prezint˘ cˆteva dintre cele mai a a a r˘spˆndite protocoale ¸i mecanisme utilizate ˆ retelele de calculatoare. Sunt presupuse. din partea ın ¸ s ¸ cititorului. ˆ orice domeniu. 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. Retelele de a s ¸ calculatoare nu fac exceptie. protocoale. a ¸ In ¸a prima parte a lucr˘rii de fat˘. Ca un avertisment pentru programatori. este extrem de u¸or pentru oricine ¸ s s˘ se piard˘ ˆ nenum˘ratele detalii ˆ permanent˘ schimbare. mention˘m c˘. o bun˘ prezentare trebuie s˘ porneasc˘ a a ın a a a de la principiile de baz˘. precum ¸i a principiilor constructiei ¸ s ¸ posibilelor solutii ale acestor probleme. Ea este a a s ın ¸ construit˘ pentru a oferi cititorului o privire de ansamblu asupra protocoalelor a studiate. ¸ Partea a doua a lucr˘rii.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. ˆ predarea unui curs de Retele de calculatoare la aceast˘ facın ¸ a . cuno¸tinte de baz˘ de programare. a a ın a ın a Consider˘m c˘. este totu¸i util˘ ˆ ın ın ¸ ın ¸ s a ın vederea unei bune ˆ ¸elegeri a acestor platforme ¸i biblioteci. Radu-Lucian Lup¸a s 13 Prefat˘ ¸a ˆ contextul prezent al dezvolt˘rii retelelor de calculatoare. Aceast˘ privire de ansamblu poate fi suficient˘ pentru unii cititori. a a ˆ caz contrar fiind probabil necesar˘ citirea efectiv˘ a standardelor. Ca urmare. a ¸ Lucrarea de fat˘ se adreseaz˘ ˆ principal programatorilor de aplicatii ¸a a ın ¸ ˆ retea ¸i administratorilor de retele complexe. ı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. este dedicat˘ studierii problemelor ce a ¸a a trebuie rezolvate de o retea de calculatoare. ı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.

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

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

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

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

c 2008. Radu-Lucian Lup¸a s 18 1. ˆ a a a ıns˘ diferite aplicatii au cerinte diferite: ¸ ¸ . 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. cum ar fi telefonia. . ˆ loc de timpul de propagare se utilizeaz˘ o alt˘ m˘rime. a Evident. de exemplul legate de transfer de fi¸iere. 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. Serviciile oferite de retea ¸ Exist˘ aplicatii. De ¸ exemplu.sare ˆ ın ınainte“ datorit˘ scurt˘rii timpua a lui de propagare. ın a a a timpul dus-ˆ ıntors.La unele aplicatii timpul de propagare nu este prea important.La difuzarea de materiale audio sau video. s . a a a a a ˆ a o capacitate mai mare nu este util˘.1. timpul de propagare prin leg˘turi prin satelit nu poate a fi mai scurt de cˆteva zecimi de secund˘.ˆ ıngheat˘“ datorit˘ cre¸terii timpului de propagare ¸i ¸a a s s momente ˆ care imaginea . de exemplu. 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. transmisia video (de exemplu ¸ pentru teleconferinte) sau alte aplicatii ˆ timp real. 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. din acest moas ın tiv. un timp de propagare mare nu este deranjant. 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. pentru a ¸ s care este important ca reteaua s˘ ofere o capacitate medie cˆt mai mare. ˆ a este important s˘ nu fie momente ˆ care ıns˘ a ın imaginea . este important s˘ ¸ ¸ ın a nu scad˘ niciodat˘ capacitatea leg˘turii sub o anumit˘ valoare minim˘. iar ¸a ımp˘ ¸ a viteza de propagare nu poate dep˘¸i viteza luminii ˆ vid. timpul de propagare e bine s˘ fie cˆt mai scurt.. ¸ a a Penttru alte aplicatii.. la care oricum timpul de s transfer este mare. timpul de propagare influenteaz˘ foarte putin ¸ a ¸ timpul total necesar transmiterii fi¸ierului. Timpul dus-ˆ ıntors este suma dintre timpii de propagare pentru cele dou˘ sensuri ¸i timpul de procesare pentru crearea a s r˘spunsului. ˆ a este important ca el s˘ fie constant ıns˘ a ˆ timp. s Uneori. ı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. la transferul unui fi¸ier mare.

.Timpul de propagare (sau. ı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 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.4. Securitatea comunicatiei ˆ ınseamn˘ c˘ un adversar care controleaz˘ o a a a parte din retea s˘ nu poat˘ obtine informatia transmis˘. 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˘. probabilitatea unui cataclism devastator care a a s˘ distrug˘ toat˘ reteaua).3 ¸i § 4. a a ıns˘ Cel mai adesea. ¸a Posibilitatea existentei erorilor de transmisie: Erorile de transmisie ¸ apar ca urmare a diverselor perturbatii ce afecteaz˘ transmiterea sem¸ a nalelor. Realizarea transmisiei ¸ ın ¸ sigure este studiat˘ ˆ § 4. de exemplu. costul este cre¸terea ¸i fluctuatia timpului de propagare.c 2008. Exa emple de astfel de aplicatii sunt: telefonie. 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. a ın s Transmisia sigur˘ este evident util˘. Metodele de reducere a probabilit˘¸ii erorilor a a a ¸ at de transmisie sunt studiate ˆ § 2. s s ¸ deoarece mesajele pierdute trebuie retransmise. a a cu pretul pierderii.4 ¸i § 4. videoconferinte. Exist˘ metode de-a mic¸ora oricˆt de mult probabilitatea ca a s a un mesaj s˘ fie afectat de erori. sesiuni ¸ ¸ interactive la distant˘. din cˆnd ˆ cˆnd. Introducere 19 . La o transmisie audiovideo. este adesea preferabil˘ p˘strarea unui timp de propagare redus. 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˘. 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.1. a unor fractiuni de secund˘ de ¸ a ın a ¸ a material audio-video. ˆ a vine cu un anumit cost. Radu-Lucian Lup¸a s Capitolul 1. echivalent. studiate ˆ ¸ ¸ ın capitolul 6. Mesajele se pot pierde datorit˘ erorilor de transmisie. s a a at a Securitatea comunicatiei se obtine prin metode criptografice.

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

dar ˆ continuare cu restrictia c˘ transferul este posibil doar ˆ ın ¸ a ıntre calculatoare conectate direct.2: Componentele unei p˘rti dintr-o retea de calculatoare. Sunt figurate a¸ ¸ doar componentele implicate ˆ comunicatia dintre dou˘ aplicatii. 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). Radu-Lucian Lup¸a s Capitolul 1. a a similare celor oferite de retea aplicatiilor (a¸a cum am v˘zut ˆ § 1. etc. de pe acela¸i nivel.). dar ser¸ ¸ s a ın viciile oferite sunt mai primitive. ¸ ¸ s a telefonie prin Internet ¸i videoconferinte). 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. web. fibre optice sau leg˘turi radio prin satelit). 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.c 2008. comunicatie a a ¸ ¸ posibil˘ doar pentru un singur proces aplicatie la un moment dat.1). dar ˆ a neadeca ¸ ınc˘ vate utiliz˘rii directe de c˘tre aplicatii (lipsa transmisiei sigure. 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. Astfel. ˆ proiectarea ın nivelului retea. 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. 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˘. De exemplu. nici cum este construit nivelul fizic s ¸ (perechi de conductoare. a Modulele.

a protocoalelor de comunicatie stabilite. dificil˘. ¸ 1. 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.c 2008. • Implement˘ri diferite ale unui protocol se pot abate ˆ moduri diferite de a ın la specificatia protocolului.2. 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˘. ˆ general. Este bine ca mici abateri ale partenerului ¸ de comunicatie s˘ fie tolerate. ı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. sau. 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. circa 1944). Radu-Lucian Lup¸a s 22 1.3. Este necesar ca o defectiune s˘ afecteze cˆt mai putin ¸ a a ¸ din retea. eventual nici una. studiate pe larg ˆ capitolele urm˘a a ¸ ¸ ın a toare. a a • Protocoalele totu¸i evolueaz˘. de c˘tre toate ¸ a ¸ a a modulele implicate. de organizare a acestora ˆ mesaje. iar oprirea ˆ s a ıntregii retele ˆ vederea schimb˘rii ¸ ın a echipamentelor afectate de schimbarea protocolului nu este rezonabil˘. rezult˘ un protocol a ınt as ¸ a prost. iar componentele a c˘ror defectare duce la c˘derea ˆ ¸ a a ıntregii retele trebuie s˘ fie cˆt mai putine. ın s ¸ pe care le vom ˆ sira pe scurt ˆ continuare: ın¸ ın • Deoarece o retea este format˘ din multe componente. Reteaua ın a ¸ trebuie s˘ ofere mecanisme prin care orice defectiune s˘ fie u¸or de loa ¸ a s calizat. ¸ a a ¸ • G˘sirea unei pene ˆ a ıntr-un sistem complex este. 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. a ¸ Functionarea corect˘ a unei retele necesit˘ respectarea. ¸ a • Reteaua trebuie s˘ functioneze ast˘zi. exist˘ riscul creerii unui protocol perfect. ˆ elaborarea ¸i implementarea protocoalelor intervin ratiuni practice. a at Regulile de reprezentare a acestor date. dup˘ ce s-a r˘spˆndit deja a a a a a un protocol acceptabil. dac˘ standardizarea apare prea tˆrziu. 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. 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. a .

se rea a curge la protocoale ce au posibilitatea de-a fi implementate doar partial. 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. Protocoale complexe a a a duc la implement˘ri scumpe ¸i cu riscuri mari de-a avea erori. de a la prima versiune a protocolului. Introducere 23 Ca urmare. 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. a actiunilor unui dispozitiv. la primirea unui mesaj a neprev˘zut ˆ acea versiune. ducˆnd la un protocol prea complex. Radu-Lucian Lup¸a s Capitolul 1. Alt˘ posibilitate este stabilirea. Dac˘ o astfel de a ¸ ¸ a a abordare nu este fezabil˘. iar apoi comunicatia s s ¸ decurge conform versiunii celei mai recente ¸i cu cele mai multe extens sii suportate de ambii parteneri. Tranzitia este mult u¸urat˘ dac˘ protoa ¸ s a a colul vechi prevede anumite facilit˘¸i.c 2008. a ın • Cerinte diferite ale diferitelor aplicatii duc la tendinta de-a elabora proto¸ ¸ ¸ coale complexe. ¸ . ce im¸ plementeaz˘ o versiune veche a protocolului. 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˘. care s˘ satisfac˘ pe toat˘ lumea. ¸ metodele utilizabile ˆ acest scop sunt similare cu cele descrise mai sus ın pentru facilitarea evolutiei protocoalelor.

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

caz ˆ care canalul este numit discret.c 2008. ˆ 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. ¸ a ın Deoarece canalul nu poate transmite direct informatia sursei. numit emit˘tor . fie un ¸ir de simboluri a ın s dintr-o multime finit˘.1). ¸ ınt s ¸ at ˆ cele ce urmeaz˘. numit˘ semnal (ˆ esent˘. caz ˆ care canalul este numit continuu. dup˘ caz. al c˘rui rol este de-a efectua operatia invers˘. Surs˘ a Emit˘tor ¸a Canal Receptor Destinatie ¸ Figura 2. ne va interesa problema transmiterii unei inforIn a matii de la o surs˘ la o destinatie. ˆ ¸ a a a ıntr-un semnal sau. produs˘ de surs˘. Ca urmare. ¸i anume de-a exa ¸ a s trage din semnal sau din ¸irul de simboluri informatia util˘ pentru destinatie s ¸ a ¸ (fig. care transform˘ as ¸a a informatia util˘. o functie real˘ a a ın a ın ¸a ¸ a continu˘). a priori ¸ ¸ informatia de transmis poate fi v˘zut˘ ca o variabil˘ aleatoare. 2. Informatia de transmis nu este cunoscut˘ ¸ a ¸ ¸ a initial nici de destinatie.1: Transmisia informatiei de la surs˘ la destinatie ¸ a ¸ . numit s ¸ a receptor . ˆ a ıntr-un ¸ir de s simboluri. ˆ ¸ ıntre surs˘ ¸i canal avem nevoie de un dispozitiv. ˆ ıntre canal ¸i destinatie se plaseaz˘ un dispozitiv. Canalul de comunicatie este capabil s˘ transmit˘ ¸ ¸ a a fie o m˘rime variabil˘ ˆ timp. nici de sistemul de transmitere. Similar. ¸ a a a Comunicatia dintre surs˘ ¸i destinatie se desf˘¸oar˘ prin intermediul ¸ as ¸ as a unui canal de comunicatie. s a ¸ a Prin informatie ˆ ¸elegem cuno¸tintele unei entit˘¸i. 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.

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

dac˘ functia c : M ∗ → S ∗ dat˘ prin a ¸ ˆ a c(m1 . a a ıncˆ Numim multimea cuvintelor de cod multimea W = c(M ). a • cod cu proprietatea de prefix sau cod prefix. . litere. . ¸ a a a a s Fiecare mesaj este un element dintr-o multime M de mesaje posibile. ¸ as a ¸ a Fiecare mesaj m ∈ M va fi codificat prin ¸irul c(m) ∈ S ∗ . astfel ˆ at c(m1 ) s˘ fie prefix pentru c(m2 ) ¸i ˆ plus ıncˆ a s ın c(m) = ε. De cele ¸ as a a mai multe ori M este finit˘. etc. cel mult num˘rabil˘. Ca urmare. a a cu m1 = m2 . nu¸ mere. De remarcat c˘ ˆ urma concaten˘rii se pierd delimit˘rile dintre codific˘rile a ın a a a mesajelor individuale. finit˘ ¸i avˆnd cel putin dou˘ elemente. . ∀u ∈ S ∗ . 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. aceea de-a fi unic decodabil: a Definitia 2.1 Numim functie de codificare sau cod orice functie injectiv˘ ¸ ¸ ¸ a ∗ . . . (2.1) . a s • ε este ¸irul vid. avem |u · v| = |u| + |v|. iar c : M → S ¸ a a S este multimea simbolurilor de cod. Mesajele ¸ provin din universul utilizatorului sistemului. a Definitia 2. · c(mk ). . m2 ∈ M . avem |ε| = 0 ¸i u · ε = ε · u = u. unde M este multimea de mesaje. . . dac˘ nu exist˘ m1 . m2 . ele pot fi propozitii. .c 2008.3 Un cod c : M → S ∗ se nume¸te: ¸ s • cod unic decodabil. Radu-Lucian Lup¸a s Capitolul 2.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). . ∀m ∈ M . s s Informatia transmis˘ de c˘tre surs˘ const˘ dintr-un ¸ir de mesaje. ∀u. 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 ) · . Multimea de mesaje M este nevid˘ ¸i cel mult num˘rabil˘. s Definitia 2. mk ) = c(m1 ) · c(m2 ) · c(mk ) ˆ este injectiv˘. Notiuni de teoria informatiei ¸ ¸ 27 • |u| reprezint˘ lungimea ¸irului u. ¸ ¸ Un ¸ir de mesaje (m1 . v ∈ S ∗ .

Exemplul 2. a a → 0 b → 101 c → 11 d → 100 Exemplul 2.4 Au loc urm˘toarele propriet˘¸i: ¸ a at 1. Urm˘torul cod are proprietatea de prefix. valoarea l se nume¸te lungimea codului.2: Urm˘torul cod. s . b. 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. Demonstratia este imediat˘.1. obtinut prin oglindirea cuvintelor codului din a ¸ exemplul anterior. Radu-Lucian Lup¸a s 28 ˘ 2. Orice cod prefix este unic decodabil.c 2008.1: Consider˘m multimea mesajelor M = {a. ¸ a Exemplul 2. Problema codificarii informatiei pentru un canal discret ¸ • cod de lungime fix˘. ∀m ∈ M . s Propozitia 2. d} ¸i multimea a ¸ s ¸ simbolurilor de cod S = {0. a 2. 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. c. 1}. Orice cod de lungime fix˘ este cod prefix.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. dac˘ exist˘ o constant˘ l ∈ I \ {0} astfel ˆ at a a a a N ıncˆ |c(m)| = l.

Exemplul 2. trebuie s˘ ne extindem la clase mai largi decˆt cea In ¸ a a a codurilor de lungime fix˘.2: Arborele ata¸at unui cod prefix s Exemplul 2. ın s a 2. e.2.5: Fie codul prefix pentru multimea mesajelor ¸ M = {a.1 arborele este reprezentat ˆ ın figura 2. ¸a a ın ¸ s ˆ acela¸i timp. M este multimea numerelor naturale). permite decodificarea destul de simpl˘ a transmisiei. clasa codurilor prefix este suficient˘ ˆ situatiile enumerate mai sus ¸i. a a ¸ ˆ aceste situatii. c.2.2. ¸ a a a dac˘ probabilit˘¸ile diverselor mesaje din M sunt diferite (M este mula at ¸imea mesajelor sursei).1 (Genereaz˘ ar¸ a bore). 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.4: Pentru codul din exemplul 2. 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.c 2008. adic˘ avˆnd cuvinte cˆt mai scurte. Coduri cu proprietatea de prefix De¸i simple. b. 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. h} . Notiuni de teoria informatiei ¸ ¸ 29 2. muchiile descendente sunt cel mult ˆ num˘r ın a de |S| ¸i sunt etichetate cu simboluri distincte din S. f. 0 a 0 0 d 1 b 1 1 c Figura 2. s • fiecare frunz˘ este etichetat˘ cu cˆte un mesaj distinct din M . A¸a cum vom vedea ˆ continuarea paragrafului a s ın de fat˘. d. ¸ s a a s a Constructia arborelui se face conform algoritmului 2.1. t • dac˘ M nu este finit˘ (de exemplu. g.

. Radu-Lucian Lup¸a s 30 2.1: Generarea arborelui asociat unui cod prefix . .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. sl ):=c(m) x:=r pentru i:=1. 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.c 2008. . 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 . .

2. s 2. a De remarcat c˘ fiecare mesaj este decodificat de ˆ a ındat˘ ce ultimul a simbol din reprezentarea sa a fost citit ¸i prelucrat. decodifia s carea se poate face prin algoritmul 2. 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 . Acest lucru este posibil s numai pentru codurile prefix. Notiuni de teoria informatiei ¸ ¸ 31 ¸i multimea simbolurilor de cod S = {0. Radu-Lucian Lup¸a s Capitolul 2.2.6: Fie codul prefix din exemplul 2. codurile prefix se mai numesc ¸i coduri instantanee.3: Arborele ata¸at codului prefix din exemplul 2. 1.5. Acesta ruleaz˘ ˆ timp proportional a ın ¸ cu num˘rul de simboluri de cod din reprezentarea datelor de decodificat. Decodificarea ˆ cazul codurilor prefix ın Dac˘ avem un ¸ir de mesaje codificat printr-un cod prefix. din acest motiv. 2. s Exemplul 2.5 (vezi fig.2.c 2008.3. 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.

. sl ) ∈ S ∗ un ¸ir finit de simboluri de cod s ie¸irea: m = (m1 . Coduri cu proprietatea de prefix Algoritmul Decodeaz˘ a intrarea: T arborele unui cod prefix c : M → S ∗ s = (s1 . . . s2 . mk ) ∈ M ∗ ¸irul mesajelor a c˘ror codificare este s s a s1 . m2 . 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. . . .2: Decodificarea unei reprezent˘ri printr-un cod prefix a . . . Radu-Lucian Lup¸a s 32 2. .c 2008. sl algoritmul: m:=ε x:=r˘d˘cina lui T a a pentru i:=1. .

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

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

Notiuni de teoria informatiei ¸ ¸ 35 Algoritmul Construie¸te cod s intrarea: (lm )m∈M ⊆ I satisf˘cˆnd (2. Radu-Lucian Lup¸a s Capitolul 2.c 2008.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.2) N a a ie¸irea: c : M → S ∗ cod prefix cu |c(m)| = lm .3: Constructia unui cod prefix cu lungimi date ale cuvintelor de cod ¸ . ∀m ∈ M s algoritmul: E:={ε} pentru l=1.

as a a a S˘ demonstr˘m acum reciproca. Ca urmare. a ın Mai trebuie ar˘tat c˘ exist˘ ˆ a a a ıntotdeauna ˆ E o valoare de atribuit lui ın c(m). 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 . cuvˆntul de cod respectiv este eliminat din Ek . Coduri cu proprietatea de prefix permut˘ri a seriei cu termeni pozitivi m∈M d−lm . S˘ ar˘t˘m acum c˘ se obtine un cod prefix. Constructia codului va fi realizat˘ de a ¸ ¸ a algoritmul 2. Radu-Lucian Lup¸a s 36 2. |Ek | = d ¸i ¸ s dk−lm = d · K ≤ d = |E| m∈M lm ≥k Presupunˆnd c˘ (2. ˆ a a ¸ a ın care l = k + 1. pentru a demonstra c˘ lungimile cuvintelor de cod sunt ıntˆ a ˆ ıntr-adev˘r cele dorite. vom ar˘ta c˘ a a dk−lm ≤ |Ek | m∈M lm ≥k (2. 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 . Pentru aceasta. la prima iteratie cuvintele din E1 se obtin prin concatenarea a ¸ ¸ cˆte unui simbol din S la ¸irul vid.3) La prima iteratie.c 2008.3. 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. Dac˘ un cuvˆnt din Ek a aa a ¸ a a este atribuit unui mesaj. a ¸ ¸ Mai ˆ ai. la iteratia urm˘toare. a a aa a ˆ Intr-adev˘r.3) are loc la iteratia cu l = k.2. s˘ ar˘t˘m c˘ toate cuvintele din Ek au lungime k. 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. cuvintele din Ek+1 a a sunt de lungime k. a Cuvintele ce vor fi atribuite ˆ continuare pot avea prefixe de lungime k ın doar dintre cuvintele r˘mase ˆ Ek . ¸i anume c˘ inegalitatea lui Kraft a a s a implic˘ existenta unui cod prefix. Demonstr˘m ˆ continuare corectitudinea acestui algoritm.

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. le = 3.♦ a ın 37 Exemplul 2.4: Constructia unui cod prefix cu lungimi fixate ale cuvintelor de cod ¸ (exemplul 2.c 2008. ld = 3. exist˘ ˆ Ek suficiente cuvinte. a as a Constructia propriu-zis˘ este ar˘tat˘ ˆ figura 2. d.b“ (c) Iteratia l = 2: ¸ E = {10. 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 . e} ¸i multimea de simboluri de cod S = {0. 11} 0 b 0 0 a 1 1 1 c 0 d 1 e (d) Ultima iteratie. lc = 3.. c. Cerculetele de¸ a a a ın ¸ semneaz˘ nodurile corespunz˘toare elementelor din multimea E. lb = 1. 1} cu urm˘toarele s ¸ a lungimi ale cuvintelor de cod: la = 3.4. b. ¸ a a Observ˘m acum c˘ suma din inegalitatea (2.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.7) . ca a ¸ s urmare. Radu-Lucian Lup¸a s Capitolul 2. m∈M inegalitatea este satisf˘cut˘ ¸i prin urmare exist˘ un cod prefix. l = 3: E = ∅ ¸ ¸i codul este complet generat s Figura 2. 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.7: Dorim construirea unui cod prefix pentru multimea M = ¸ {a.

.5) = Regrup˘m acum termenii din (2.5) pentru care lm1 + . + lmk = l. obtinem: ın ¸ E ≤ k lmax · k l=k dl · d−l = lmax · k − k + 1 ≤ lmax · k. Radu-Lucian Lup¸a s 38 2. nu doar a celor prefix. · d−lmk d−(lm1 +. l) · d−l . .c 2008. m ∈ M ¸i d = |S|. vom nota cu N (k.5) dup˘ valorile sumei lm1 + . l) ≤ dl . S˘ not˘m ¸ a ıntˆ a a a a n cu E = m∈M d−lm .6) l=k (m1 ... a s aceste codific˘ri sunt distincte ¸i ca urmare N (k. Deoarece codul este unic decodabil.. . s Demonstratie. + lmk ≤ lmax · k unde lmax este maximul lungimii cuvintelor de cod (lmax = maxm∈M lm ). . Cu alte cuvinte. Avem: a ¸ Teorema 2. . (2.. S˘ observ˘m acum c˘ N (k. l) num˘rul de termeni din dezvoltarea a (2. . (2. Consider˘m mai ˆ ai cazul cˆnd M este finit˘.7) adic˘ a E k ≤ lmax · k. l) = Mai observ˘m c˘ a a k ≤ lm1 + . .mk )∈M k (2.+lmk ) (m1 .2.6). mk ) ∈ M k : lm1 + . . . . 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.8) .. + lmk = l . .4) unde lm = |c(m)|. Obtinem: ¸ lmax · k Ek = N (k. . 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.. .. adic˘ a s a N (k. + lmk . (2.6 (McMillan) Pentru orice cod unic decodabil c : M → |S| are loc inegalitatea: n d−lm ≤ 1 m∈M (2. N (k.mk )∈M k d−lm1 · .. l) este num˘rul de ¸iruri de k mesaje pentru a a a a s care lungimea codific˘rii ¸irului este l. a a Pentru aceasta. .. ˆ Inlocuind ˆ (2. .

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

m2 .8: Dac˘ emit˘torul anunt˘ receptorului rezultatul arunc˘rii unei a ¸a ¸a a monede. 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. de asemenea. a¸a cum vom vedea.mt−1 este minus logaritmul probabilit˘¸ii a a a at ca al t-lea mesaj s˘ fie mt .3. mt−1 ). . ˆ cazul unei surse ergotice. cantitatea de informatie adus˘ de un mesaj mt ˆ contex¸ a ın tul (adic˘ urmˆnd dup˘) m1 . putem. 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. conditionat˘ de faptul c˘ mesajele precedente au a ¸ a a fost m1 . . ¸i anume. Coduri optime 2. . 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. ¸ Definitia 2. . mesajul a c˘zut cu fata ˆ sus poart˘ o cantitate de informatie egal˘ a ¸ ın a ¸ a 1 cu − log2 2 = −(−1) = 1bit. a De notat c˘ cantitatea de informatie nu are nici o leg˘tur˘ cu utilia ¸ a a tatea informatiei. m2 . . 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. m2 . . s˘ not˘m cu pm probabilitatea ca un anumit mesaj din ¸irul a a s de mesaje s˘ aib˘ valoarea m. . a s ca m˘sura informatiei s˘ fie aditiv˘.8 Fie o surs˘ care emite un ¸ir de mesaje m1 .mt−1 . pentru ¸ a ın s fiecare m ∈ M . . ¸ a s Cantitatea de informatie adus˘ de mesajul mt este ¸ a info(mt ) = − log2 Pr(mt |m1 . . Radu-Lucian Lup¸a s 40 2. .c 2008. 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˘. pentru a transmite un bit de ¸ s s informatie avem nevoie cel putin de un bit (cifr˘ binar˘). Altfel spus. . m2 . ˆ sensul c˘ privind ca un singur mesaj a ¸ a a ın a o succesiune de dou˘ mesaje. A¸a cum vom vedea ˆ continuare. mt ∈ M . Exist˘ o leg˘tur˘ ˆ ¸ a a a a a ıntre aceste notiuni. 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. . . Unitatea de m˘sur˘ pentru cantitatea de informatie este bitul.. ¸ ¸ a a Exemplul 2. Este de dorit.1. .. Atunci cantitatea de informatie adus˘ de un a a ¸ a mesaj m este info(m) = − log2 pm . .3.

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

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

. .mk )∈M k p(m1 . + log2 pmk ) = (m1 . 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. .. · pmk .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 . · pmk  ·  )∈M k−1 = i=1  · − mi ∈M k pmi · log2 pmi  = = i=1 1·H = =k · H Conform teoremei 2.14. ale c˘rei mesaje vor fi suca N. (2.mk k pm1 · . Avem Hk = − (m1 .mk )∈M k  pm1 · .... . .mk ) = pm1 · .. l(k) . 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. ....mi−1 . at Vom nota cu Hk entropia noii surse... log2 |S| log2 |S| .mk k )∈M k =− =− i=1 (m1 . · pmi−1 · pmi+1 · . fie a a ¸ H entropia sursei ¸i fie S o multime de simboluri de cod.... ˆ detaliu.. Radu-Lucian Lup¸a s Capitolul 2.. . a a a cesiuni de k mesaje ale sursei originale. . . exist˘ un cod c : M k → S ∗ pentru care a lungimea medie a cuvintelor de cod. constructia este urm˘toarea: In ¸ a Fix˘m k ∈ I Consider˘m o a doua surs˘.. . Probabilit˘¸ile mesajelor sunt p(m1 ... · pmk · log2 pmi =   (m1 . · pmk · (log2 pm1 + .mk ) = pm1 · . . .mi+1 .. Multimea de mesaje ale noii surse este ¸ prin urmare M k .mk ) log2 p(m1 .14 Fie o surs˘ ergotic˘ ce emite mesaje dintr-o multime M .... ..c 2008... satisface Hk Hk ≤ l(k) < + 1...

log2 |S| k log2 |S| k Prin urmare. La fiecare a unire.. pc = 0.c 2008. Oricare dintre alegeri duce la un . c˘ nu s-ar putea uni de fiecare dat˘ exact |S| arbori.4).b“ cu . b.11: Fie o surs˘ avˆnd multimea mesajelor posibile a a ¸ M = {a. 2. 2. Acestea pot a at s fi .3.. la prima unire se vor a a uni (n − 2) mod (|S| − 1) + 2 arbori. Coduri optime Num˘rul mediu de simboluri de cod utilizate pentru a transmite un mesaj din a (k) M este l k . 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.. Ca idee de baz˘.3.3. Radu-Lucian Lup¸a s 44 2.15.5(a)). se iau arborii cu sumele probabilit˘¸ilor mesajelor asociate cele mai at mici.d“ sau . 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. ˆ caz de egalitate ˆ ın ıntre probabilit˘¸i. pb = 0.35. d.20 ¸i fie alfabetul canalului S = {0. a a s ın a a a a Exemplul 2.. • Alegem dou˘ noduri cu cele mai mici probabilit˘¸i ¸i le unim.c“.15.. pd = 0. at a pe = 0. . Algoritmul se termin˘ ˆ momentul ˆ care r˘mˆne un at a ın ın a a singur arbore.b“ cu . Generarea codului optim se s face astfel (vezi fig. astfel ˆ at la toate celelalte uniri s˘ se ıncˆ a uneasc˘ cˆte |S| arbori ¸i ˆ final s˘ r˘mˆn˘ exact un arbore. c..d“.c“ cu . log2 |S| k log2 |S| 2. Dac˘ |S| > 2 ¸i n nu este de forma (|S| − 1)k + 1 cu k ∈ I astfel a s N. 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˘. 1}. pentru orice ε > 0.15. care este delimitat de H l(k) H 1 ≤ < + .5): • ˆ prima faz˘ creem noduri izolate corespunz˘toare mesajelor sursei In a a (fig. e} cu probabilit˘¸ile corepsunz˘toare pa = 0. Algoritmul cel mai a at utilizat pentru aceasta este algoritmul lui Huffman (algoritmul 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 ≤ < + ε. se iau oricare dintre arborii de at probabilit˘¸i egale.

. m ∈ M . d } execut˘ a pune ei ca fiu al lui t s(t. d } . . .4: Algoritmul lui Huffman .ei ) :=si sfˆr¸it pentru as pt := d pei i=1 E:=(E \ {e1 . at m∈M pm = 1 S = {s1 . . . 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 . . ∀e∗ ∈ E \ {e1 . . Notiuni de teoria informatiei ¸ ¸ 45 Algoritmul Huffman intrarea: M multime finit˘ de mesaje ¸ a pm ∈ (0. . . . ed } creaz˘ t unic a pentru i ∈ {1. s2 . . .c 2008. . . . . . Radu-Lucian Lup¸a s Capitolul 2. ed ∈ E cu pei ≤ pe∗ . . sd } multime finit˘ de simboluri de cod. probabilit˘¸ile mesajelor. . . . 1). . . . ∀i ∈ {1. 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.

15 + 0. a ˆ final unim cei doi arbori r˘ma¸i.a“.. Radu-Lucian Lup¸a s 46 2. c(b) = 100.30 0. exemplul 2. c(c) = 101. Calcul˘m ¸i probabilitatea arborelui a a s rezultat: 0.15 log2 0.e“.c 2008.226121 0.15 + 0.b“ cu .c“ poate a at ¸ s fi unit fie cu arborele format din .35 a 0.20 e 0.15 · 3 + 0..c“..15 d 0.35 + 0.b“ ¸i pe .15 = 0.15 · 3 + 0..35 0.15 c (a) Pasul 1 0.35 · 1 + 0. (fig.35 a 0.35 log2 0. 2.15 + 0.20 e a b c (b) Pasul 2 0.15 log2 0. Lungimea medie a cuvintelor de cod este l = 0.5(b)). Coduri optime cod optim..30 0. S˘ alegem .3. s • Avem acum dou˘ posibilit˘¸i: arborele ce contine pe .5(c)).15 b 0. Alegem a doua variant˘.35 0.. 2. acum ace¸tia In at s sunt ..2 log2 0.3 Pentru comparatie.2 ≈2. • In a s Avem acum codurile mesajelor: c(a) = 0.2 · 3 = 2.15 d 0.15+ + 0.35 a b c d e 0.3.11 ¸ . fie cu arborele format din .15 log2 0.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. entropia este ¸ H = − 0. • ˆ continuare unim din nou arborii de probabilit˘¸i minime. c(d) = 110.e“ (fig. c(e) = 111.5: Functionarea algoritmului Huffman.d“ ¸i s ...15 · 3 + 0.d“ ¸i .

s Pentru orice mesaje m1 . s ın S˘ observ˘m c˘ se obtine exact aceea¸i lungime medie a cuvintelor de cod: a a a ¸ s l = 0. Radu-Lucian Lup¸a s Capitolul 2. pf = 0.15 · 3 + 0.1. Lema 2.6(a) ¸i ˆ final arborele asociat codului prefix din figura 2. ¸ 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.6 = l log2 |S| 1. pb = 0. pc = 0.5849625 Teorema 2. dac˘ pm1 < pm2 atunci |c(m1 )| ≥ |c(m2 )|.3 0. f} cu probabilit˘¸ile corepsunz˘toare pa = 0. m ∈ M . ar fi rezultat multimea a a ¸ de arbori din figura 2. Lungimea medie a cuvintelor de cod este l = 1.12: Fie o surs˘ avˆnd multimea mesajelor posibile a a ¸ M = {a. pd = 0.15. probabilit˘¸ile ¸ at mesajelor sursei. 1.4. s Constructia codului prin algoritmul lui Huffman este prezentat˘ ˆ ¸ a ın figura 2. at a pe = 0. Notiuni de teoria informatiei ¸ ¸ 47 Dac˘ la pasul 4 s-ar fi ales cealalt˘ posibilitate.15 · 2 + 0.c 2008.35 · 2 + 0.7.15.16 Fie M multimea mesajelor sursei. 2}. In at a medie a cuvintelor unui cod c. c.15 · 3 + 0.15 Codul obtinut prin algoritmul Huffman este optim.11) a a s s Exemplul 2.6: Variant˘ alternativ˘ pentru pa¸ii 4 ¸i 5 (exemplul 2.6. a . b.6(b).346439 ¸i avem s H 2. m2 ∈ M .346439 ≈ ≈ 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. e. fie S alfabetul canalului ¸i fie c : M → S ∗ un cod optim. entropia este H ≈ 2.65 0.4804382 ≤ 1.1 ¸i fie alfabetul canalului S = {0.2 · 2 = 2.1. fie pm . d.

m ∈ M \ {m1 . Radu-Lucian Lup¸a s 48 0. 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)|).2 0. fie S alfabetul canalu¸ lui. exemplul 2.1 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.7: Functionarea algoritmului lui Huffman. Deoarece ne intereseaz˘ doar s a .15 0. prin interschimbarea cuvintelor de cod asociate mesajelor m1 ¸i m2 : s   c(m2 ) .17 Fie M multimea mesajelor sursei. Presupunem contrariul: ∃m1 .1 a b c d (b) Pasul 2 f e a b c d e f (a) Pasul 1 0. m2 ∈ M .4 0.♦ a Lema 2. |M | ≥ 2.15 0.1 2.1 0.4 0.c 2008. Construim atunci un alt cod.4 0. Coduri optime 0. exist˘ un cod prefix cu acelea¸i ¸ a s lungimi ale cuvintelor de cod ca ¸i codul c.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. Demonstratie.7.15 0. de unde rezult˘ a a a a c˘ c nu este cod optim. m = m1 c(m1 ) . Atunci exist˘ cel putin (n − 2) mod (|S| − a ¸ 1) + 2 cuvinte de cod de lungime lmax . Conform corolarului 2.12 ¸ Demonstratie. m = m2 c (m) =  c(m) .3.15 0.4 0. c : M → S ∗ . pm1 < pm2 ¸i ¸ s |c(m1 )| < |c(m2 )|.

Acum t are un singur descendent. ¸ ¸ 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. 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 Pentru un arbore cu k noduri interne ¸i cu num˘rul total de pozitii s a ¸ libere 0. num˘rul pozitiilor libere este cel mult |S| − 2. ˆ 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˘. Radu-Lucian Lup¸a s Capitolul 2. 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. f˘r˘ a restrˆnge generalitatea. deoarece |M | ≥ 2. num˘rul de frunze. Dac˘ arborele are ˆ total j pozitii libere. Mut˘m k − 1 dintre descendentii lui t pe pozitii a ¸ ¸ libere ale altor noduri ale penultimului nivel. putem. fiecare nod intern are zero pozitii ¸ ¸ libere ˆ Intr-adev˘r. 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. ceea a a ce contrazice din nou ipoteza c˘ c e optim. aceasta are cel putin 2 fii. care este egal cu num˘rul n de mesaje. de unde rezult˘ c˘ ¸ a a pe ultimul nivel exist˘ cel putin |S| − j frunze. contrazicˆnd ipoteza c˘ c este optim. Fie t un nod intern de a ¸ pe penultimul nivel ¸i fie k num˘rul de descendenti ai s˘i. este a a n = k · (|S|−1)+1. ¸i. Putem elimina a a nodul t subordonˆnd unicul s˘u descendent direct parintelui lui t. 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. Nodul t s a ¸ a are |S| − k pozitii libere. Acest lucru se demonstreaz˘ imediat prin inductie dup˘ a ¸ a k. Dac˘ arborele are ˆ altime 1. a a ¸ s ˆ consecint˘. a a • Suma numerelor pozitiilor libere ale nodurilor penultimului nivel este ¸ cel mult |S| − 2. a Consider˘m arborele asociat codului c. atunci unicul nod a ın˘ ¸ intern este r˘d˘cina. deci mai r˘mˆn cel putin k − 1 pozitii libere ¸ a a ¸ ¸ la celelalte noduri. Notiuni de teoria informatiei ¸ ¸ lungimile cuvintelor de cod. prin completarea acestora cu a ın ¸ frunze ar rezulta un arbore cu 0 pozitii libere ¸i n + j frunze. s˘ preaa a a supune c˘ c este cod prefix. Observ˘m urm˘toarele: a a a • Cu exceptia penultimului nivel. lungimile cuvintelor de cod se p˘streaz˘.c 2008. 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˘. prin urmare ¸ s n = k · (|S| − 1) + 1 − j Notˆnd q = |S| − j − 2.

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

atunci receptorul poate recalcula codul folosit de emit˘tor (folosind acela¸i algoritm ca ¸i emit˘torul). s ¸ 2. • 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. ca urmare. Metodele adaptative presupun as ¸ a c˘ emit˘torul ˆ a ¸a ıncepe emisia cu un cod standard. ˆ ıntotdeauna r˘mˆne posibilitatea ca erorile de transa a misie s˘ transforme un cuvˆnt de cod ˆ alt cuvˆnt de cod ¸i. ¸ Utilizarea oric˘rui cod presupune c˘ receptorul cunoa¸te codul folosit a a s de emit˘tor. nu e posibil˘ decˆt cantitatea de informatie transmis˘. In a ¸ a ¸ a compresia. dup˘ care ˆ modific˘ pena ıl a tru a-l optimiza conform frecventelor observate ˆ date. ˆ cazul a a In unui cuvˆnt alterat: a • detectarea erorilor presupune c˘ receptorul informeaz˘ destinatia de acest a a ¸ lucru. dar care altereaz˘ ¸irul de simboluri de cod trans¸ as mise. ˆ practic˘. ca urmare. Ca o consecint˘. Transmiterea separat˘ a codului c˘tre receptor risc˘ s˘ contrabal¸a a a a a anseze cˆ¸tigul obtinut prin codare optimal˘.c 2008. a a Ca principiu. 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. ¸a s s ¸a De notat c˘ nici un cod nu poate folosi mai putini biti pentru codare a ¸ ¸ ˆ lipsa redundantei. Desigur.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. Coduri detectoare ¸i corectoare de erori s Vom studia ˆ cele ce urmeaz˘ problema transmisiei informatiei ˆ ın a ¸ ın situatia unui canal discret. 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. Radu-Lucian Lup¸a s Capitolul 2. erorile a a ın a s . din acest motiv un astfel de canal se nume¸te canal cu zgomot sau canal cu perturbatii. Notiuni de teoria informatiei ¸ ¸ 51 Algoritmii de compresie utilizati ˆ practic˘ se folosesc ¸i de depen¸ ın a s dentele ˆ ¸ ıntre octetii succesivi. nici un program de compresie nu poate comprima ¸a un ¸ir aleator de octeti. o astfel de alterare este efectul zgomotelor ce se suprapun In a peste semnalul transmis de nivelul fizic (vezi capitolul 3). 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. 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.

ˆ ımpreun˘ cu decalarea corespunz˘toare a bitilor urm˘tori. a a s a Erorile fiind independente. pentru fiecare modificare a ¸irului de simboluri transmis de canal. rezult˘ c˘ orice cod detector sau corector de erori are a a redundant˘. Cu un cod bine ales. ˆ a. pentru aceasta este necesar a a a ca multimea cuvintelor de cod s˘ fie o submultime .1. 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. a a ¸ a Transmisia unui ¸ir de biti poate fi afectat˘ simultan de mai multe s ¸ a erori distincte. Prin urmare. posibilit˘¸ile de detectare a erorilor ¸in de constructia at t ¸ codului. Cu alte cuvinte. care schimb˘ valoarea unui bit din 0 ˆ 1 sau reciproc. probabilitatea ca o secvent˘ de l biti s˘ ¸a ¸ a n . 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. 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.rar˘“ a multimii secventelor ¸ a ¸ a ¸ ¸ de simboluri de cod. care determin˘ pierderea unui bit sau introducerea a unui bit. • erori de sincronizare. s ıncˆ a a a Este deci esential˘ constructia unui model probabilistic al erorilor. 1}. s a probabilit˘¸ii corespunz˘toare. 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. adic˘ de¸ a ¸ a terminarea. Coduri detectoare ¸i corectoare de erori s s˘ scape nedetectate. care schimb˘ o parte dintr-un ¸ir de bitˆ (nu neap˘rat a s ı a toti). 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 . a ın • rafale de erori. Evident.4. Radu-Lucian Lup¸a s 52 2. probabilitatea s ın produc˘ dou˘ erori este p2 = 2 p (1 − p) a a . ¸a ˆ cele ce urmeaz˘ vom considera alfabetul canalului S = {0. ˆ general. at a Distingem urm˘toarele tipuri de erori: a • erori individuale.4.c 2008. In a 2. probabilitatea unei erori nedea ıns˘ tectate poate fi f˘cut˘ suficient de mic˘. probabilitatea s˘ se a a l(l−1) 2 l−2 ¸i. De aici denumirea de cod detector de erori . Lungimea rafalei este num˘rul de biti dintre primul ¸i ultimul bit ¸ a ¸ s modificat..

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

Ca urmare. obtinuti prin codificarea s ¸ ¸ ¸ datelor din universul aplicatiei. ws ) ≥ d(w .c 2008. u.21 Fie codul c : M → {0. as a S˘ analiz˘m acum eficienta codului. totodat˘. avˆnd log2l|W | cˆt a s a a a mai mare pentru o eficient˘ cˆt mai mare a codului. pentru orice cuvˆnt de cod w ∈ W = c(M ). 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 . ¸ Propozitia 2.20 Spunem despre codul c : M → {0. multimea mesajelor este multimea ¸ ¸ ¸ ¸irurilor de n biti. w). pentru o valoare n dat˘. 1}n . Propozitia 2. datele utile pentru un a a ¸ cod detector sau corector de erori sunt ¸iruri de biti. 1}l cu dmin (W ) suficient de mare pentru ¸ num˘rul de erori de detectat sau corectat ¸i.4. M = {0. probabilitatea oric˘rui mesaj fiind aceea¸i: pm = |M | = 2−n . 1}l ¸i W = c(M ). a s ∀m ∈ M . Ca urmare. 1}l c˘ corecteaz˘ k erori ¸ a a individuale dac˘. 1}l ¸i W = c(M ). a a a Constructia efectiv˘ a unui cod detector sau corector de erori cuprinde ¸ a dou˘ aspecte: a • constructia unei multimi W ⊆ {0. Mesajele sunt s ¸ a 1 echiprobabile. s ¸ . eficienta codului este ¸ n H = . l l S˘ mai not˘m c˘ |M | = |W | = 2n . Codul c detecteaz˘ ¸ s a k erori dac˘ ¸i numai dac˘ dmin (W ) ≥ k + 1. Coduri detectoare ¸i corectoare de erori s Not˘m acum a dmin (W ) = min d(u. De obicei. ¸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). Radu-Lucian Lup¸a s 54 2. v). a a Definitia 2.v∈W u=v unde W este multimea cuvintelor de cod ale codului considerat.19 Fie codul c : M → {0. Codul c corecteaz˘ ¸ s a k erori dac˘ ¸i numai dac˘ dmin (W ) ≥ 2k + 1. as a S˘ examin˘m acum codurile corectoare de erori. d(w .

In ¸ ˆ general. Exist˘ dou˘ sisteme. iar ultimii l − n biti a a ¸ a ¸ poart˘ numele de biti de control. ¸irul de biti a s s ¸ 1010110 se codific˘ 10101101 (bitul de control este 1). ¸ as a a Exemplul 2.13: Pentru codul cu paritate par˘ ¸i n = 7.1.4. Sirul 11001100 nu este cuvˆnt de cod valid.3. cu n1 ¸i n2 fixati. Codul are l = (n1 + 1) · (n2 + ¸ s ¸ . 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.c 2008. ¸i paritate impar˘ (engl. cˆteva coduri detectoare sau corecın a toare de erori. Exemplul 2. Notiuni de teoria informatiei ¸ ¸ 55 2. 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. a ¸ Pentru un astfel de cod.4. a a ¸ 2. Sirul 11001100 este cuvˆntul de cod a ¸ a corespunz˘tor informatiei utile 1100110. Radu-Lucian Lup¸a s Capitolul 2.14: Pentru codul cu paritate impar˘ ¸i n = 7. 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. ¸ a a iar ultimii l − n biti sunt unic determinati de primii n biti. emit˘torul prime¸te de la surs˘ n biti ce ¸a s a ¸ constituie informatia util˘.3. s a a ¸ ¸ 2. pe scurt. Receptorul cite¸te informatia util˘ ¸i bitii de control. Sirul 1110110 se codific˘ a ¸ a 11101100 (bit de control 1). ˆ care W este definit˘ ca fiind multimea a ın a ¸ ¸irurilor de l biti continˆnd num˘r par de valori 1. Sirul ¸ a ¸ 11001101 este cuvˆntul de cod corespunz˘tor informatiei utile 1100110. ˆ care W este multimea ¸irurilor de l biti continˆnd un num˘r ın ¸ s ¸ ¸ a a impar de valori 1. Sirul 11001101 nu este cuvˆnt de cod a ¸ ¸ a valid. 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. 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. a a paritate par˘ (engl. even parity). Primii n biti din ¸ ¸ ¸ ¸ cuvˆntul de cod poart˘ denumirea de informatie util˘. Unicul bit de control se mai nume¸te bit de paritate. 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. Ca urmare n = n1 · n2 . s ¸ ¸ a a s a odd parity).4.2.3. Sirul 1110110 ¸ a a ¸ se codific˘ 11101101 (bit de control 1). Cˆteva coduri detectoare sau corectoare de erori a Descriem ˆ continuare. ˆ descrierea lor vom utiliza notatiile din paragraful precedent. ¸irul de biti 1010110 as s ¸ (informatie util˘) se codific˘ 10101100 (bitul de control este 0).

. 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 + .c 2008. + vk−1 X + vk . . ambele variante duc ¸ la acela¸i rezultat. . ¸ fie ca bit de paritate ai bitilor de paritate ai coloanelor. vk ) ∈ {0. Presupunˆnd c˘ s-a produs o singur˘ eroare. 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. Bitul eronat este la intersectia liniei ¸i coloanei g˘site. a a a s a Prin urmare. s a ¸ s a Exemplul 2. s Exemplul 2. ¸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. cuvˆntul de cod rezultat este ¸irul: 1011101010110001111011011.3.3. prin urmare codul detecteaz˘ 3 a s a a erori sau corecteaz˘ 1 eroare. a Codificarea ¸i detectarea erorilor se face calculˆnd bitul de paritate s a pentru fiecare linie ¸i pentru fiecare coloan˘. . a s Pentru corectarea erorilor. . 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. Coduri polinomiale Oric˘rui ¸ir de biti v = (v1 . De remarcat c˘ ultimul bit din s a a matrice trebuie calculat fie ca bit de paritate al bitilor de paritate ai liniilor. Radu-Lucian Lup¸a s 56 2. fiind 0 ˆ original. se caut˘ mai ˆ ai liniile ¸i coloanele care a ıntˆ s ˆ ıncalc˘ paritatea. 2. Datele ın utile sunt deci: 1010010101100111.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˘.4. Coduri detectoare ¸i corectoare de erori s 1). va exista exact a a a a o linie ¸i o coloan˘. a a Se poate ar˘ta u¸or c˘ dmin (W ) = 4. primul bit de pe linia a 2 este eronat.15: Pentru n1 = n2 = 4.4. . .

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).c 2008. · ).obi¸nuite“. . 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). rl−n a a ¸ s a s al c˘rui polinom asociat este a v(X) =i1 X l−1 + . 1}. . se observ˘ c˘ pozitiile erorilor nu a s a a ¸ depind decˆt de restul ˆ artirii polinomului asociat ¸irului de biti receptionat. . + in X l−n + r1 X l−n−1 + . . 2. r1 . Codurile polinomiale sunt mult utilizate datorit˘ simplit˘¸ii construca at ¸iei unor circuite (hardware) care calculeaz˘ bitii de control. . Deoarece ˆ F2 avem c˘ ın a 1 + 1 = 0 rezult˘ c˘ r(X) = −r(X). . . . 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 . ¸ s ımp˘ ¸ Pentru constructia unui cod polinomial.4. +. De aici rezult˘ c˘ v(X) este divizibil cu a a a a g(X). at s ın sc˘derea ¸i ˆ a s ınmultirea ¸i are loc teorema ˆ artirii cu rest. unde + este operatia sau exclusiv. Pentru a ne convinge de corectitudinea algoritmului de mai sus. s˘ a observ˘m c˘ obtinem ca ¸i cuvˆnt de cod un ¸ir de forma i1 . . a ımp˘ ¸ s ¸ ¸ v (X). + rl−n = =i(X) · X l−n + r(X). t a ¸ Dac˘ se dore¸te corectarea erorilor. la g(X). . ¸ .4. in . a s Sirul bitilor de control se calculeaz˘ astfel: ¸ ¸ a • se construie¸te polinomul i(X) asociat informatiei utile. . .. rezult˘ c˘ poliımp˘ ¸ a a nomul i(X) · X l−n − r(X) este divizibil cu g(X). iar · este operatia ¸i. iar n este num˘rul de biti ai informatiei utile. 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. Deoarece r(X) este restul ˆ artirii lui i(X) · X l−n la g(X). 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. Radu-Lucian Lup¸a s Capitolul 2. n < l). ˆ particular se poate defini la fel adunarea.

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

ˆ cons ¸a s ¸ a s ın formitate cu valorile lor. nivelul s ¸ ¸ ¸ fizic trebuie s˘ fie capabil s˘ transmit˘ datele ˆ folosul acestora. ın ¸ semnalul poate fi tensiunea electric˘ dintre conductoare sau intensitatea curena tului prin conductoare. Semnalul este ˆ ¸ s ıntotdeauna analizat ca o functie continu˘ de timp. ¸ 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.clientii“ sistemului de comunicatie. ¸ a ¸a ¸a a Sursa ¸i destinatia sunt .1.. De exemplu. Problema transmisiei informatiei la nivelul fizic ¸ Sarcina nivelului fizic este aceea de-a transmite un ¸ir de biti (sau. a a a ın Sirul de biti ce trebuie transmis poart˘ denumirea de date utile.c 2008. 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 . nivelul fizic dispune de un mediu de a transmisie.1). Radu-Lucian Lup¸a s 59 Capitolul 3 Nivelul fizic 3. s ¸ ˆ general. Receptorul sesizeaz˘ ¸ a a actiunile emit˘torului asupra mediului ¸i reconstituie ¸irul de biti produs de ¸ ¸a s s ¸ surs˘. Sirul de biti reconstituit este livrat destinatiei. ¸ ¸ a Pentru ˆ ındeplinirea scopului s˘u. ¸ a Nivelul fizic cuprinde trei elemente: mediul de transmisie. . Emit˘torul prime¸te bitii de la surs˘ ¸i. Sursa ¸i ın s a a ¸ s destinatia se afl˘ la distant˘ una fat˘ de cealalt˘. 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˘. actioneaz˘ asupra mediului. emitatorul ¸˘ ¸i receptorul (vezi fig. 3. pentru transmisia prin perechi de conductoare. un ¸ir de simboluri) produs de o surs˘ c˘tre o destinatie.

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

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

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

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

(3. Frecventele f pentru care amplitudinile corespunz˘toare a(f ) sunt ¸ a nenule alc˘tuiesc spectrul semnalului. (3.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. semnalul de ie¸ire se poate calcula des scompunˆnd ˆ sinusoide semnalul de intrare. Radu-Lucian Lup¸a s 64 3. ın a ın se poate descompune sub forma: ∞ U (t) = 0 a(f ) · cos (2πf t + φ(f )) df.1) Not˘: relatia (3. 1981]. Orice semnal se poate scrie unic ca o sum˘ de semnale sinusoidale. Relatia (3. a Pentru un dispozitiv liniar. a (Nota: conditiile matematice asupra semnalului. T Un semnal limitat ˆ timp. aici facem doar o a prezentare semi-intuitiv˘).c 2008. T ]. calculˆnd efectul dispozitivului a ın a asupra fiec˘rei sinusoide ˆ parte ¸i ˆ a ın s ınsumˆnd ˆ final ie¸irile: a ın s .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 ).2. ¸i alte detalii se g˘sesc ˆ ¸ s a ın lucr˘rile de specialitate.2) ˆ unde U este o functie complex˘ care se nume¸te transformata Fourier a functiei ¸ a s ¸ U. adic˘ nul ˆ afara unui interval finit [0. Transmiterea semnalelor unde g(f ) ¸i θ(f ) depind doar de cum este construit dispozitivul ¸i de frecventa s s ¸ f a semnalului. 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 .

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

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

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. ¸irul a a s transmis trebuie s˘ aib˘ ca lungime un multiplu de n biti. fiecare grup ¸ ¸ a ıntˆ de n biti consecutivi se ˆ ¸ ınlocuie¸te cu ¸irul de m biti asociat. Nivelul fizic 67 Retelele Ethernet de 10 Mbit/s utilizeaz˘ codificarea Manchester. Radu-Lucian Lup¸a s Capitolul 3. Semnalul are o tranzitie la ˆ ¸ a ¸ ınceputul fiec˘rui interval de bit. un bit 0 fiind reprezentat printr-o ¸ ¸ a valoare a tensiunii ¸i un bit 1 prin alt˘ valoare. cu s ¸ s ¸ restrictia ca ˆ ¸ ıntre cei m biti s˘ nu fie prea multe valori egale consecutive. s s a a Sirul de biti de codificat se codific˘ astfel: mai ˆ ai.c 2008.5). ¸ a 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). 3. 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˘. Dac˘ bitul este 1 atunci semnalul mai are a a o tranzitie la mijlocul intervalului (fig. s . Apoi ¸irul s s ¸ s de biti astfel obtinut se codific˘ direct. ¸ U ∆t 0 1 1 0 0 0 t Figura 3.4: Codificarea Manchester Codificarea Manchester diferential˘. unde m > n este fixat.

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. descris˘ ˆ continuare. Trecute printr-un mediu de a comunicatie care are o l˘¸ime de band˘ finit˘. cu o band˘ de trecere dat˘. La codurile de grup. Modulatia ¸ Exist˘ situatii ˆ care este necesar ca spectrul semnalului s˘ ocupe a ¸ ın a o band˘ departe de frecventa zero. τ = ∆t. k 3. Radu-Lucian Lup¸a s 68 3. ¸ a 2 1 Dac˘ banda de trecere a mediului include intervalul 0. ˆ aceste situatii. atunci a mediul p˘streaz˘ suficient din forma semnalului pentru ca receptorul s˘ poat˘ a a a a decodifica informatia transmis˘.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˘. fie pentru a putea transmite mai multe semnale pe acela¸i mediu prin multiplexare ˆ frecvent˘ s ın ¸a (vezi § 3. durata unui s a bit este egal˘ cu τ ¸i deci k = 1. Dac˘ frecventa maxim˘ a benzii de trecere ¸ a a ¸ a este mai mic˘ decˆt 2τ . Dac˘ limita superioar˘ a benzii de trecere este fmax . 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 codificarile Manchester ¸i Manchester a s diferential˘. 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). ¸ a Pentru un mediu dat..3. τ = 1 ∆t. ¸ a a 1 valoarea minim˘ este τ = 2fmax . Debitul maxim cu care se pot transmite n n datele este fmax . a Semnalele de form˘ rectangular˘ descrise mai sus au spectru ina a finit (spectrul lor nu este m˘rginit superior). prin urmare. semnalele vor fi . ¸ S˘ not˘m cu τ durata elementar˘ a unui palier al semnalului ideal a a a (durata minim˘ ˆ care semnalul ideal are o valoare constant˘).2. a ¸ ¸ a ın . La codific˘rile Manchester ¸i Manchester a s a s diferential˘.. a a a o valoare minim˘ a lui τ pentru care receptorul poate extrage informatia util˘ a ¸ a din semnalul receptionat. a Diversele codific˘ri studiate mai sus au diferite rapoarte k ˆ a ıntre durata medie a unui bit ¸i valoarea lui τ .3). atunci un semnal rectangular care are. 2τ .rotunjite“ mai ¸ at a a mult sau mai putin. Pentru a ın a codificarea direct˘. La codificarea direct˘.3.. exist˘.3. semnalul rezultat direct ˆ urma uneia dintre schemele In ¸ ın de codificare descrise ˆ paragraful precedent nu poate fi transmis direct. alternativ. O ın posibil˘ solutie este modulatia. durata unui bit este 2τ ¸i avem k = 2.c 2008.

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

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

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˘). const˘ ˆ transmiterea mai multor semnale ın a ın independente prin acela¸i mediu de transmisie. fmax ) nu poate purta mai mult˘ informatie decˆt e¸antioanele sema ¸ a s 1 nalului luate la interval 2fmax unul de altul. ın Emit˘toarele produc semnale cu spectre disjuncte prin modulatie uti¸a ¸ lizˆnd frecvente purt˘toare diferite. a a Este util s˘ avem ˆ vedere existenta acestei limite. fmax ) este unic determinat de 1 valorile sale la momente de timp situate la intervale egale cu ∆t = 2fmax unul de altul. 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.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. ¸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. 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.3. . 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. 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.c 2008.4. Multiplexarea ˆ frecvent˘ ın ¸a Multiplexarea. un semnal al c˘rui spectru este inclus ˆ intervalul a ın [0. ˆ general. a ¸a a 3.3. 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. Pentru un mediu cu l˘¸imea de band˘ ∆f ¸i cu raportul semnal/zgoat a s mot s/n. debitul maxim de informatie ce poate fi transmis este proportional ¸ ¸ cu ∆f · log(s/n + 1). Ca urmare. ˆ 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. Radu-Lucian Lup¸a s Capitolul 3. Acest rezultat provine din urm˘toarele dou˘ observatii: a a ¸ 1.

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

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

adic˘ semnalul se propag˘ a a a din aproape. Orice cablu este ˆ a¸urat cel putin ˆ ¸ ınf˘s ¸ ıntr-o manta de protectie. Mantaua de protectie t s a ¸ este fabricat˘ de obicei din PVC. Se specific˘ de obicei prin raportare la viteza luminii ˆ a ın vid (notat˘ c. perechea s ¸ a In ¸ de conductoare are comportament de linie lung˘. ˆ consecint˘.4. un cablu contine elemente cu rol a a ¸ de protectie. Se a at a a . ˆ ımbr˘cˆnd ˆ a a ıntreg cablul.4. Impedanta caracteristic˘ a mediului. Radu-Lucian Lup¸a s 74 3. d˘m cˆteva valori tipice: ın a a 17 dB/km pentru cablu coaxial . Factorul de atenuare cre¸te exponential cu lungimea s ¸ mediului. a a 3. s ¸ Atenuarea semnalului.. a Ecranul unui cablu poate fi colectiv. Imb˘ a ın a ¸ ¸ la mic¸orarea frecventei maxime a benzii de trecere.c 2008. ˆ mod tipic v ≈ 0.2. 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. 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˘. 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). pentru un tip de cablu se specific˘ rapora tul dintre logaritmul factorului de atenuare ¸i lungimea corespunz˘toare. a Un cablu destinat mont˘rii aerian trebuie s˘ fie prev˘zut cu un cablu a a a de otel pentru sustinere mecanic˘. Ca urmare. 120 dB/km pentru cablu torsadat Ethernet. de-a lungul perechii de conductoare. 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 at Limit˘rile sunt date de dou˘ fenomene independente. Cu titlu de exemplu.67×c ≈ 2 × 108 m/s a In Banda de trecere a mediului. s a ˆ decibeli pe kilometru. Pe lˆng˘ elementele cu rol electric.Ethernet gros“. ˆ aceste conditii. Este identic˘ cu viteza a de propagare a undelor electromagnetice ˆ materialul dielectric dintre ın conductoare. c ≈ 3 × 108 m/s). Transmisia prin perechi de conductoare c˘tre elemente de ecranare ale echipamentelor la care este conectat cablul). sub forma unei unde. ¸ care ¸ine la un loc ¸i protejeaz˘ mecanic conductoarele. logaritmul factorului de atenuare cre¸te liniar cu In ¸a s lungimea mediului. sau individual pentru fiecare pereche de conductoare. Propriet˘¸ile electrice mai importante ale mediului sunt: at Viteza de propagare a semnalului prin mediu. Un cablu destinat mont˘rii subteran trebuie ¸ ¸ a a prev˘zut cu un scut metalic contra roz˘toarelor.

jonctiunea respectiv˘ ¸a In ¸ a reflect˘ o parte din semnalul incident (este analog reflexiei luminii la a trecerea din aer ˆ sticl˘. O astfel de pereche de conductoare la care se leag˘ mai multe dispoza itive se nume¸te magistral˘ . ˆ acest caz. 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. a s ¸a definit˘ ca raportul dintre tensiunea aplicat˘ la bornele receptorului ¸i a a s intensitatea curentului absorbit de receptor. ˆ distorsioneaz˘. ıntˆ ¸a ıl a Impedanta se m˘soar˘ ˆ ohmi (simbol Ω). ˆ punctul de ramificatie. iar pe de alt˘ parte un semnal ce a sufer˘ dou˘ reflexii succesive se poate suprapune peste semnalul util ¸i. o neadaptare de impedant˘. ¸ 3. 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. la ramificarea unei perechi apare.4. la ¸a ın In simpla conectare a trei perechi de conductoare sau. Radu-Lucian Lup¸a s Capitolul 3. ¸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. s a Realizarea mediului fizic. Reflexia produce dou˘ neajunsuri: pe de o parte scade puterea a semnalului util ce ajunge la receptor. sau ˆ general ˆ ın a ın ıntre medii cu indice de refractie ¸ diferit). spunem c˘ a ¸a a ¸ a a avem o neadaptare de impedant˘. Cablul torsadat Ethernet are 100 Ω. este complicat˘ de necesitatea ın a de a avea adaptare de impedant˘ ˆ fiecare punct al mediului. echivalent. Cablul pentru televiz¸ a a ın iune are impedanta de 75 Ω. Raportul dintre a ¸ a tensiune ¸i intensitate se nume¸te impedanta caracteristic˘ a cablului. ˆ acest caz. Cablul coaxial pentru retea Ethernet are ¸ ¸ impedanta de 50 Ω. ˆ general.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 . Leg˘tur˘ magistral˘ a a a La o pereche de conductoare pot fi conectate mai multe emit˘toare ¸a sau receptoare.c 2008. Emit˘torul se caracter¸a izeaz˘ printr-o impedanta de ie¸ire. 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. a a s fiind ˆ arziat fat˘ de acesta. s s ¸ a Receptorul se caracterizeaz˘ ¸i el printr-o impedant˘ de intrare.

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

Nivelul fizic 77 toare este expus atingerii cu mˆna (este cazul la retelele Ethernet cu cablu a ¸ coaxial. Viteza de propagare depinde de mediul ˆ care se propag˘ unda. limita de jos a a ın ¸ frecventelor undelor radio este cuprins˘ ˆ ¸ a ıntre 30 Hz (λ = 10000 km) ¸i 3 kHz s (λ = 100 km). Lungimea de und˘ se noteaz˘ cu λ ¸i are ¸ a a s v ¸ s valoarea λ = f . ¸ a Aceste oscilatii se propag˘ din aproape ˆ aproape. ˆ 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 a a ¸ s a a 3. a Undele radio sunt unde electromagnetice avˆnd frecvente la care a ¸ pot s˘ lucreze dispozitivele electronice. fie amplasarea unor a s a a desc˘rc˘toare care s˘ limiteze tensiunea dintre conductoarele retelei ¸i p˘mˆnt.5. unde conductorul exterior este legat la partea metalic˘ exterioar˘ a a a conectoarelor). Deoarece ˆ mod a a a s a ın normal conductoarele retelei sunt izolate fat˘ de reteaua de p˘mˆntare. standardele de protectie la electrocutare cer legarea la p˘mˆnt ¸ a a a conductorului respectiv. ˆ cazul unor cabluri de retea duse prin exteriorul cl˘dirilor. ¸ 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). putˆnd duce la distrugerea echipamentelor retelei. 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. Ca ura ¸ mare. a a ın Lungimea de und˘ se utilizeaz˘ adesea ˆ locul frecventei pentru a a a ın ¸ caracteriza unda. lungimea ın a de und˘ se modific˘ la trecerea dintr-un mediu ˆ altul. Radu-Lucian Lup¸a s Capitolul 3. ˆ functie de autori. ¸ Lungimea de und˘ a unei unde este distanta parcurs˘ de und˘ ˆ a ¸ a a ın timpul unei oscilatii complete. fenomenele ¸ ¸a ¸ a a atmosferice pot induce tensiuni ridicate ˆ ıntre conductoarele retelei ¸i carcasele ¸ s echipamentelor. unde f este frecventa ¸i v este viteza de propagare. este neceın ¸ a sar˘ fie ecranarea cablului ¸i legarea ecranului la p˘mˆnt. ın Viteza de propagare ˆ aer este foarte apropiat˘ de viteza ˆ vid. ın a ın pentru majoritatea scopurilor cele dou˘ viteze pot fi considerate egale. 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 . Ca urmare.c 2008. Transmisia prin unde radio Undele electromagnetice sunt oscilatii ale cˆmpului electromagnetic. ¸ 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).

sau echivalent.1. Radu-Lucian Lup¸a s 78 3. paralel ¸i mult mai lat s decˆt lungimea de und˘.5. care converte¸te semnalul din s a s s tensiune ¸i intensitate electric˘ ˆ cˆmp electromagnetic. iar frecventa ¸ ¸ purt˘toare este cel putin de cˆteva zeci de ori mai mare decˆt l˘¸imea de band˘. ¸ ˆ Intr-un sistem de transmisie prin unde radio.5. s La transmisia prin unde radio. 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. Transmisia prin unde radio De interes practic ˆ retelele de calculatoare sunt undele radio ˆ ın ¸ ın intervalul 300 MHz – 30 GHz. notat˘ cu B. transmisia prin unde radio este ˆ a ıntotdeauna cu modulatie. ¸ a notat˘ cu E. cu lungimile de und˘ cuprinse a ˆ ıntre 1 m ¸i 1 cm. emit˘torul cuprinde ¸a dou˘ blocuri distincte: un dispozitiv electronic. Propagarea undelor 3. a s ¸ Dac˘ E are directie constant˘ ¸i ˆ variaz˘ doar sensul ¸i modulul. care plasat˘ ˆ calea a a a ın undelor electromagnetice transform˘ semnalul din cˆmp electromangetic ˆ a a ın tensiune ¸i intensitate electric˘. m˘rimile fizice utilizate ca semnal a sunt intensitatea cˆmpului electric ¸i inductia magnetic˘. a s ¸ a a ˆ Intr-un fascicul de unde electromagnetice. ¸i un dispozitiv electronic. Din aceast˘ a ın a a cauz˘. care produce un semnal de a tip tensiune ¸i intensitate electric˘. definite pentru fiecare punct din spatiu: intensitatea cˆmpului electric. (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. a ¸ 3. ¸i inductia magnetic˘. 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. a ¸ a s ıi a s . s a ın a Receptorul const˘ de asemenea dintr-o anten˘. raportul ˆ a ıntre l˘¸imea benzii ¸i limita at s inferioar˘ a benzii este ˆ mod tipic de cel mult cˆteva procente. Polarizarea Cˆmpul electromagnetic se caracterizeaz˘ prin dou˘ m˘rimi vectoa a a a riale.c 2008. care decodific˘ s a s a semnalul electric. pentru care frecventa at a a ¸ purt˘toare va fi de cel putin 200 MHz.1.) 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. ¸i antena. Orice anten˘ poate servi atˆt la emisie cˆt ¸i la receptie. vectorii E ¸i B sunt ˆ a a s ıntotdeauna perpendiculari unul pe cel˘lalt ¸i pe directia de deplasare a undelor. a ¸ a a at a De exemplu.1.5.

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

unda receptionat˘ ˆ acel punct as ¸ a ın este suma undelor ce ajung pe toate c˘ile. semnalele propagate pe cele dou˘ c˘i se bruiaz˘ a a a a a reciproc. 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). ¸ ¸a ¸a Ca urmare. 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. semnalul receptionat fiind slab sau nul. undele se suprapun ˆ faz˘ a a a ın a ¸i se adun˘.5. iar Pe este puterea emit˘torului. Transmisia prin unde radio 3.4. Interferenta undelor ¸ Dac˘ ˆ a ıntr-un punct ajung unde pe mai multe c˘i.5. a ¸ a ¸ 3.1. ˆ a nu ¸ a a ıns˘ poate fi corectat˘ decˆt prin mutarea statiilor fat˘ de obstacolele ce produc a a ¸ ¸a reflexiile. 3. Situatia apare mult mai rar decˆt cea prezentat˘ mai sus. aceasta din urm˘ duce la o a ¸ ın a sc˘dere exponential˘ cu distanta a puterii semnalului. Schimbarea lungimii s de und˘ pe care se face transmisia poate de asemenea modifica mult efectul.5. 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.2.c 2008. semnalul receptionat fiind mai puternic. Densitatea puterii este invers proportional˘ a a ¸ a cu suprafata frontului de und˘. Divergenta undelor ¸ Pe m˘sur˘ ce ne dep˘rt˘m de emit˘tor. Dac˘ diferenta de drum s a ¸ a ¸ este apropiat˘ de un num˘r impar de lungimi de und˘. a Dac˘ diferenta de drum ˆ a ¸ ıntre dou˘ c˘i este un num˘r ˆ a a a ıntreg de lungimi de und˘. Radu-Lucian Lup¸a s 80 3.5.5. ˆ ın as a ¸ In aceste situatii. care la rˆndul ei este proportional˘ cu p˘tratul ¸ a a ¸ a a distantei fat˘ de emit˘tor. 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 . ¸ ¸a Sc˘derea puterii datorit˘ extinderii frontului de und˘ este indepena a a dent˘ de eventuala absorbtie a undelor ˆ mediu. dar mult mai mic˘ decˆt lungimea unui bit. de exemplu o cale a direct˘ ¸i o cale prin reflexia pe un obstacol. undele se suprapun a a a ˆ antifaz˘ ¸i se anuleaz˘ reciproc.1. puterea semnalului scade daa a a a ¸a torit˘ extinderii frontului de und˘.

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

se poate calcula puterea receptionat˘. iar λ este lungimea de und˘. +20 dBm) ¸i frecventa f = 2. Relatia este: a as ¸ ¸ S=G λ2 4π (3. Pe este puterea a aplicat˘ la bornele antenei emit˘toare. a (0.c 2008. d este distanta dintre emit˘tor ¸i recepa ¸a ¸ ¸a s tor.9 · 10−9 W.125 m)2 · 2 ≈ 3. echivalent. 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. 16π 2 (100 m)2 .6).4 GHz (lungimea de und˘ s ¸ a este atunci λ = 0. Mai presupunem c˘ receptorul se g˘se¸te la o a a s distant˘ d = 100 m fat˘ de emit˘tor. un calculator dintr-o a ¸a retea IEEE 802. Radu-Lucian Lup¸a s 82 3. as s ¸ ¸a Exemplul 3. Ge este cˆ¸tigul emit˘torului pe directia spre receptor. Apertura fat˘ de o anumit˘ directie a undei incidente este proporti¸a a ¸ ¸ onal˘ cu cˆ¸tigul antenei pe acea directie.5. 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.11 — wireless) care emite un semnal cu puterea Pe = 100 mW ¸ (sau. Apertura poate fi privit˘ s a a ca suprafata. transversal˘ pe directia de propagare a undelor. a as a Utilizˆnd relatia (3.6) unde S este aria efectiv˘. Apertura depinde de directia considerat˘ a undei ¸ a incidente. 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. de pe care an¸ a ¸ tena preia ˆ ıntreaga energie. G este cˆ¸tigul.125 m). 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. 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. as ¸ ¸ Rezult˘ puterea semnalului receptionat: a ¸ Pr = 10−1 W · 2 · adic˘ aproximativ −84 dBm.

(In a ¸ a a ın a parte. cˆmp electromagnetic este a a numai unul. Radu-Lucian Lup¸a s Capitolul 3. Tipuri de antene Antenele nedirective sunt de cele mai multe ori un simplu baston metalic (de fapt.3. 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). . . dup˘ caz.c 2008. antena propriu-zis˘ este plasat˘ ˆ alt˘ tena propriu-zis˘. pentru a extinde domeniul a a ıi a de actiune. 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.5. D˘m ˆ continuare factorii care influenteaz˘ raza de actiune a unei a ın ¸ a ¸ leg˘turi radio.5. Antenele directive cele mai r˘spˆndite pentru comunicatii de date a a ¸ sunt a¸a-numitele antene parabolice (denumire improprie. Undele produse sunt polarizate vertical. Rotirea antenelor ˆ jurul dreptei ce le une¸te nu are efect. ˆ 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.2. Mai mult. O asrfel de anten˘ este alc˘tuit˘ dintra a a a o oglind˘ ˆ form˘ de paraboloid de rotatie.5. Uneori vom dori s˘ ˆ contracar˘m. pentru c˘ forma s a parabolic˘ este a reflectorului antenei). alteori dimpotriv˘.2.1. o anten˘ po¸ a a larizant˘ circular va receptiona o emisie polarizat˘ liniar. reciproc.5. o transmisie polarizat˘ circular.3. din a ¸ a cauza interferentei dintre undele reflectate pe diferite c˘i. bastonul este un pol. este cel˘lalt pol). 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. Polarizarea Antenele cele mai simple au polarizare liniar˘: unda emis˘ este poa a larizat˘ liniar. pe o directie stabilit˘ prin constructia antenei. ¸ a Cabluri electrice sau optice putem duce cˆte dorim. este dificil de analizat ¸ a . Nivelul fizic 83 3. a P˘mˆntul. leg˘turile prin unde radio nu pot fi delimitate net la un anumit a domeniu.3. iar carcasa aparatului sau. ˆ focarul c˘reia este plasat˘ ana ın a ¸ ın a a ˆ alte constructii. iar unda electromagnetic˘ este adus˘ ˆ focarul reflectorului parabolic a a ın printr-un tub metalic numit ghid de und˘.) a 3. indiferent de directia de polarizare. s a ¸ O anten˘ polarizant˘ liniar va receptiona ˆ a a ¸ ıntotdeauna. Obstacolele Obstacolele limiteaz˘ raza de actiune a leg˘turii radio. 3. Raza de actiune a unei leg˘turi radio ¸ a Spre deosebire de leg˘turile prin perechi de conductoare sau prin a fibre optice.2. a ın s 3.

7 · 1. Distanta la linia orizontului cre¸te ˆ ¸ s ıncet cu ˆ altimea. prin curbura suprafetei sale. Linia orizontului Unul dintre obstacolele ce limiteaz˘ raza de actiune a undelor radio a ¸ este ˆ si P˘mˆntul. 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. O statie aflat˘ ˆ ¸ a ıntr-un astfel de turn poate comunica cu un radiotelefon ¸inut ˆ mˆn˘ la o distant˘ de 16 km+4.5. Radu-Lucian Lup¸a s 84 3. ¸ a 3. distanta la linia orizontului cre¸te cu un factor de 2 ≈ 1.7 · 50 km ≈ 25 km. ın Exemple: Distanta pˆn˘ la linia orizontului pentru un observator aflat la 1.3.5 km = 20.6 m ¸ a a deasupra p˘mˆntului (de exemplu un radiotelefon ¸inut ˆ mˆn˘) este d = a a t ın a a √ 12.5.5 km (de t ın a a ¸a regul˘ raza de actiune a unui releu GSM este limitat˘ de alte considerente). d ≈ 2rh.5. √ • dac˘ h a r.5 km. 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. a ¸ ˆ cˆmpie.6 km ≈ 4. ¸ a a ¸ Dou˘ statii pot comunica dac˘ exist˘ cel putin un punct comun orizontului a ¸ a a ¸ celor dou˘ statii.7 × 10 s ın ¸ a ˆ kilometri. iar h este ˆ altimea antenei deasupra suprafetei P˘mˆntului): a a ın˘ ¸ ¸ a a • m˘surat˘ de-a lungul curburii. distanta la linia orizontului ın˘ ¸ ¸ √ este d = 12. • m˘surat˘ ˆ linie dreapt˘ de la observator: a a ın a d= (r + h)2 − r2 = h(2r + h).3. De remarcat c˘ dac˘ exprim˘m numeric 2r ˆ a a a ın 3 km) ¸i h ˆ metri. de la baza turnului ˆ care se afl˘ obsera a ın a r vatorul: d = r · arccos h+r . Dup˘ altitudinea la care ¸ a . √ a se dubleaz˘ ın˘ ¸ dac˘ a ˆ altimea.c 2008. ın˘ ¸ ¸ s 3. distanta pˆn˘ la linia orizontului este (r desemneaz˘ raza In a ¸ a a a P˘mˆntului. Transmisia prin unde radio exact punctele ˆ care este posibil˘ receptia unei emisii radio ¸i punctele ˆ ın a ¸ s ın care emisia este obstructionat˘.4. Un turn cu ˆ altimea de 20 m (obi¸nuit pentru un releu GSM) are ın˘ ¸ s linia orizontului la 16 km.2. distanta d rezult˘ mii de kilometri (2r ≈ 12.3. a ¸ a De pe un turn cu ˆ altimea de 50 m. 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.

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

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

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

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

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

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

a a 3. a¸ • prin conectoare optice. este s a nedemontabil˘. Nivelul fizic 91 ˆ mai multe straturi cu rol de protectie mecanic˘. Intuitiv. Conectarea prin lipire necesit˘ echipamente mai scumpe. Conectarea fibrelor optice Problemele legate de conectarea fibrelor optice reprezint˘ principalul a dezavantaj al fibrelor optice fat˘ de perechile de conductoare. numite moduri ¸ a a ¸ de propagare.2. O lipitur˘ produce o atenuare a semnalului ˆ jur de 0. modelul opticii geometrice — propagarea luminii sub forma a de raze — nu mai este o aproximare acceptabil˘ a fenomenelor ce au loc. doar anumite unghiuri sunt permise.c 2008. Reflexia trebuie s˘ fie cu pierderi ın a extrem de mici. Conectarea cap ¸a la cap a dou˘ tronsoane de fibr˘ se poate face: a a • prin lipire. a 3. ˆ fibre suficient de subtiri. ¸a ın ¸ Dac˘ o fibr˘ permite existenta mai multor moduri de propagare a a a ¸ luminii. a traversˆnd ˆ mod repetat. Propagarea semnalului optic 3. axul fibrei ¸i p˘strˆnd un unghi fixat a ın ın s a a fat˘ de acesta. fibra se nume¸te multimod .6. ˆ zig-zag. Radu-Lucian Lup¸a s Capitolul 3. 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.1.1 dB. Modurile diferite se propag˘ ˆ general s a ın cu viteze putin diferite.6. 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. din a a ın cauza reflexiei unei p˘rti a luminii incidente.6.1. Eventual. ı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. reducˆnd astfel reflexia la cap˘tul fibrei. Piesele metalice ata¸ate a a s capetelor de fibr˘ se strˆng una fat˘ de cealalt˘.1. Intuitiv. dar perturb˘ cel mai putin transmiterea semnalului prin a a ¸ fibr˘. deoarece o raz˘ se va reflecta de multe ori de la un cap˘t la a a cel˘lalt al fibrei.2. ˆ 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. 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. Moduri de propagare Dac˘ diametrul fibrei nu este mai mare de cˆteva zeci de ori lungimea a a de und˘ a luminii. realizˆnd alinierea fat˘ a a ¸a a a ¸a ˆ fat˘ a capetelor de fibr˘. un mod este un posibil traseu al razei de lumin˘. care depinde de unghiul dintre directia ¸ . Din a studiul ecuatiei undelor rezult˘ doar un num˘r finit de solutii.

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

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

Din acest motiv. dar blocheaz˘ infraro¸iile transmise prin fibre. De aceea. se comercializeaz˘ cabluri. . conectoarele necuplate se acoper˘ cu capace a protectoare. de diferite lungimi. Radu-Lucian Lup¸a s 94 ˘ 3. Transmisia optica las˘ s˘ treac˘ lumina vizibil˘. s Un fir de praf ajuns pe cap˘tul unei fibre optice obstructioneaz˘ sea ¸ a rios trecerea luminii.c 2008.6. a cu conectoare gata ata¸ate. 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.

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

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

ˆ cazul unui cod detector de erori. ˆ aceste conditii. eventuala retransmitere a datelor ın cade ˆ sarcina unui mecanism de tipul celui ce va fi studiat ˆ § 4. ˆ ¸ s a a ¸ In cazul asigur˘rii unui interval exclusiv de emisie. Asigurarea unui interval exclusiv de emisie permite garantarea. ˆ schimb. Bluetooth. pentru fiecare statie. Este ın ¸ cazul retelelor Ethernet mai vechi.2.tip magistral˘“. Nivelul legaturii de date 97 cel mai probabil al pachetului original. ˆ acest caz. ˆ sistemele a a a In ın ce asigur˘ un interval exclusiv de emisie. 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. a a ˆ practic˘. a at a s • la comunicatia prin unde radio. pe rˆnd. sunt complicate.11 (wireless Ethernet). ˆ cazul accept˘rii coliziunilor. o parte din capacitatea de a transmisie a mediului este consumat˘ de mesajele de sincronizare necesare a stabilirii intervalelor fiec˘rei statii. o parte din a ¸ ın a capacitate este pierdut˘ datorit˘ pachetelor distruse ˆ coliziuni. adic˘ ˆ cazul comunicatiei bidirectionale.c 2008. In pachetul nu poate fi recuperat. utilizˆnd acela¸i mediu fizic pentru ambele sensuri. a a ın . pentru fiecare statie. adic˘ mediul de comunicatie a ¸ a a ¸ — ˆ general o pereche de conductoare — trece pe la toate statiile. ¸ Exist˘ dou˘ strategii de control al accesului la mediu: a a • asigurarea unui interval exclusiv de emisie. 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.3. etc. problema accesului la mediu const˘ ˆ a In ¸ a ın elabora un protocol care s˘ evite transmisia simultan˘. 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. 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. dac˘ exist˘ mai multe statii care emit pe ¸ a a ¸ ˆ general. In s a ¸ ¸ a de toate statiile pe o anumit˘ raz˘. ın ın 4. aa • dac˘ statiile sunt conectate . problema accesului la mediu apare ˆ urm˘toarele ipostaze: In a ın a • la transmisia semi-duplex . precum ¸i revenirea dup˘ o pan˘ a unei statii. Radu-Lucian Lup¸a s ˘ Capitolul 4.. a ¸ • acceptarea posibilit˘¸ii coliziunilor ¸i retransmisia pachetelor distruse ˆ at s ın coliziuni. emisia unei statii este receptionat˘ aceea¸i lungime de und˘. GSM. ˆ a ın ¸ ¸ ıntre dou˘ entit˘¸i. intrarea ¸i ie¸irea unei statii din a s s ¸ retea. Este cazul aproape tuturor retelelor ¸ a a ¸ f˘r˘ fir: IEEE 802.

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

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

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

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

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

a . a ¸ ıi Algoritmul emit˘torului este urm˘torul: pentru fiecare pachet al sur¸a a sei. Dac˘ emit˘torul nu prime¸te confirmarea unui a a ¸a s pachet ˆ timpul dus-ˆ ın ıntors normal. repet˘ pachetul ce nu a fost confirmat a (vezi figura 4.4). a a a reliable). trimite pachetul ¸i a¸teapt˘ a s s a pˆn˘ cˆnd fie prime¸te confirmarea. Dac˘ emit˘torul prime¸te confirmarea. 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. fie trece un timp egal cu durata dus-ˆ a a a s ıntors normal˘. dat˘ de acele informatii care ˆ sunt accesibile.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. Nivelul legaturii de date 103 Aceste trei conditii ˆ ¸ ımpreun˘ formeaz˘ dezideratul de transmitere sigur˘ (engl.3. a a ¸a s trece la urm˘torul pachet.c 2008. cˆt timp nu a primit confirmare de la receptor. receptorul trimite emit˘torului a ¸a cˆte un pachet cu rol de confirmare. Radu-Lucian Lup¸a s ˘ Capitolul 4. 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.

pierderea unei confirm˘ri conduce la In a a dublarea unui pachet. ˆ 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. ˆ acest fel. acest num˘r de a a ın a ordine se nume¸te num˘rul de secvent˘ al pachetului.5 (pachetul ce contine textul . 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.al doilea“ ın ¸ este livrat ˆ dublu exemplar destinatiei). S˘ observ˘m (comparati ¸i cu ın ¸ a a ¸ s figura 4. 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.c 2008. Radu-Lucian Lup¸a s 104 4. Rezultatul se vede ˆ 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 .5: ˆ lipsa unor m˘suri adecvate.3. Retransmiterea pachetelor pierdute Algoritmul receptorului este urm˘torul: pentru fiecare pachet primit a de la emit˘tor..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. ¸ Exist˘ o problem˘ cu algoritmul de mai sus. trimite un pachet de confirmare spre emit˘tor ¸i livreaz˘ ¸a ¸a s a destinatiei pachetul primit. s a a Pentru a obtine un algoritm corect.

receptorul trebuie s˘ confirme fiecare pachet primit. chiar dac˘ a a este un duplicat al unui pachet anterior (vezi figura 4. 2 al doilea Figura 4. dac˘ ˆ a a trimis un pachet ¸i nu a primit (ˆ a) confirmarea a ıns˘ s ınc˘ acestuia. . Un exemplu de functionare a acestora ın ¸ . 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. a ın a a a Prin urmare. 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 .c 2008. El insist˘ ˆ retransmiterea pachetului pˆn˘ la primirea confirm˘rii. iar ¸ ¸a a ın cea a receptorului ˆ algoritmul 4. ˆ Intrebare pentru cititor: dac˘ receptorul prime¸te un duplicat al paa s chetului precedent. Radu-Lucian Lup¸a s ˘ Capitolul 4. poate fi sigur c˘ pachetul confirmat a ajuns s a la receptor. 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. Dac˘ a s a a prime¸te confirmarea unui pachet.2.6). 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.1.6: Neconfirmarea duplicatelor determin˘ emit˘torul s˘ repete la infinit un a ¸a a pachet a c˘rui confirmare s-a pierdut. .

Algoritmul Receptor pas cu pas algoritmul: n:=0 cˆt timp mai exist˘ pachete de primit execut˘ a a a receptioneaz˘ (n . 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.1: Algoritmul emit˘torului ˆ protocolul simplu cu confirm˘ri ¸i re¸a ın a s transmiteri. Retransmiterea pachetelor pierdute este dat ˆ figura 4. Vom vedea ˆ § 4. 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. a . Radu-Lucian Lup¸a s 106 4. ˆ ace¸ti algoritmi am presupus c˘ num˘rul de secvent˘ n poate cre¸te In s a a ¸a s oricˆt de mult. 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. Parametrul t este ales putin mai mare decˆt durata dus-ˆ ¸ a ıntors a nivelului fizic.c 2008. ˆ practic˘.3 ˆ ce conditii a a ın ın ¸ acest lucru afecteaz˘ corectitudinea algoritmului.3.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.3. d) execut˘ a trimite p receptioneaz˘ n .2: Algoritmul receptorului ˆ protocolul simplu cu confirm˘ri ¸i reın a s transmiteri.

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. ¸ a .7: Functionarea corect˘ a unui algoritm de retrasnmisie. Radu-Lucian Lup¸a s ˘ Capitolul 4.

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

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

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.c 2008. 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.8: Functionarea ferestrei glisante ˆ cazul ˆ care dimensiunea ferestrei de ¸ ın ın receptie este 1 ¸i dimensiunea ferestrei de emisie este cel putin 3.3. s se ignor˘ a 2 doi nu e pachetul a¸teptat. ¸ s ¸ .

9: Functionarea ferestrei glisante ˆ cazul ˆ care dimensiunea ferestrei de ¸ ın ın receptie este cel putin 3 ¸i protocolul prevede confirmarea individual˘ a pachetelor. Radu-Lucian Lup¸a s ˘ Capitolul 4. 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.c 2008. a dar ˆ a nu-l livreaz˘ ınc˘ a destinatiei ¸ doi ACK=2 trei patru Figura 4. a dar ˆ a nu-l livreaz˘ ınc˘ a destinatiei ¸ memoreaz˘ pachetul. ¸ ¸ s a .

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). a dar ˆ a nu-l livreaz˘ ınc˘ a destinatiei ¸ 3 trei trei ACK=4 patru Figura 4.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. a . Radu-Lucian Lup¸a s 112 4.c 2008.3. 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.

n + k]. urm˘torul num˘r de secvent˘ primit va fi ˆ intervalul a a ¸a ın [n − k − 1. Deoarece emitatorul a trimis deja pachetul n. 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. dac˘ la un moment dat cel mai mare num˘r de secvent˘ primit a a ¸a de receptor este n. f˘r˘ s˘-¸i poat˘ schimba ordinea. atunci sunt neceaa as a sare ¸i suficiente 2k numere de secvent˘ distincte pentru identificarea univoc˘ s ¸a a a pachetelor. Pe de alt˘ parte. s˘ functioneze corect.c 2008. ele trebuie modificate ˆ a¸a fel ˆ at s a ¸ ın s ıncˆ s˘ compare efectiv numerele de secvent˘ teoretice.3.3. Nivelul legaturii de date 113 Pentru a preciza lucrurile. S˘ privim acum din perspectiva emitatorului. 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 .1 Dac˘ dimensiunea ferestrei emit˘torului este k ¸i dac˘ pa¸ a ¸a s a chetele se pot doar pierde. 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. 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. ın Presupunem c˘ cel mai mare num˘r de secvent˘ primit de c˘tre rea a ¸a a ceptor este n. pe baza ın a a s ¸a a a informatiilor pe care le au. ˆ momentul primei a a In transmiteri a pachetului n − k. a ¸a Propozitia 4. deoarece pachetul n + 1 ˆ a nu a ajuns la a ınc˘ receptor. Pentru aceasta. ˆ orice moment. Demonstratie. Trebuie s˘ ar˘t˘m trei lucruri: c˘ exist˘ ˆ ¸ a aa a a ıntotdeauna un interval de lungime 2k. Deoarece n a fost deja trimis. Ca urmare. s a ¸a a Num˘rul de secvent˘ transmis are ca valoare num˘rul de secvent˘ teoretic a ¸a a ¸a modulo n.2. s˘ deduc˘ univoc num˘rul de secvent˘ teoretic din ¸ a a a ¸a num˘rul de secvent˘ transmis. Fie n cel mai mare a ¸˘ num˘r de secvent˘ trimis. ˆ care se ˆ ın ıncadreaz˘ a num˘rul de secvent˘ al urm˘torului pachet primit de receptor. ¸a a Ca urmare. pachetele pˆn˘ la n − 2k inclusiv erau deja a a confirmate. rezult˘ c˘ toate a ¸a a a pachetele pˆn˘ la n−k inclusiv au fost deja confirmate. este necea ¸a sar ca. a ¸a Pentru ca mecanismele de confirmare ¸i retransmitere. calculabil cu datele receptorului. unde n este num˘rul de numere de secvent˘ distincte disponibile. descrise ˆ s ın § 4. ˆ final. 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. atˆt receptorul cˆt ¸i emit˘torul s˘ poat˘. 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˘ 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.1 ¸i § 4. Radu-Lucian Lup¸a s ˘ Capitolul 4.

ˆ astfel de sisteme. acestea ajung la receptor. n]. este necesar ca acestea s˘ aib˘ numere a a a a de secvent˘ transmise distincte. Consider˘m dou˘ scenarii: a a 1. o parte din date se pierd. num˘rul urm˘toarei confirm˘ri se va ˆ a a a ıncadra ˆ intervalul [n − 2k + 1. iar ˆ al doilea caz prime¸te pachetul 2k.3. emit˘torul transmite pachetele de la k + 1 la 2k. Emit˘torul transmite pachetele de la 1 la k. Prin urmare. toate acestea ajung ¸a la receptor. dac˘ sursa emite date mai rapid decˆt In a a este capabil˘ destinatia s˘ le prelucreze.c 2008. 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. cum ar fi de exemplu a ın ın telefonia digital˘. Retransmiterea pachetelor pierdute pachetului n − k. dar toate se ¸a pierd cu exceptia pachetului 2k. ¸ Considerˆnd doar informatiile receptorului. Pentru ca receptorul ın s s˘ poat˘ distinge aceste pachete. O astfel ¸ ın s ıncˆ a a de abordare poate fi adecvat˘ ˆ sisteme ˆ timp real. 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. 2. 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. ın S˘ ar˘t˘m acum c˘ 2k numere de secvent˘ distincte sunt ˆ a aa a ¸a ıntr-adev˘r a necesare. a In ¸ . trebuie s˘ existe cel putin 2k ¸a a ¸ valori distincte pentru num˘rul de secvent˘ transmis. 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. duplic˘ri sau inversiuni de a aa s aa a pachete). ˆ lipsa controlului fluxului. Controlul fluxului Prin controlul fluxului (engl. ˆ contin¸a In uare.♦ a ¸a 4. ˆ primul caz prime¸te s a ın s pachetul 1. Ca urmare. Radu-Lucian Lup¸a s 114 4. dup˘ care. 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. ¸a sunt confirmate ¸i confirm˘rile ajung ˆ s a ınapoi la emit˘tor. ¸ a ci doar permite destinatiei s˘ preia. dar toate confirm˘rile se pierd. care ajunge la receptor.4. Emit˘torul transmite pachetele de la 1 la k. Emitatorul retransmite a ¸˘ pachetul 1. De remarcat a ¸ a c˘ stocarea datelor ˆ a ıntr-o memorie tampon a destinatiei nu rezolv˘ problema. un debit mai ridicat de date. capacitatea de prelucrare a informatiei. Ca urmare.

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. ¸ a Acela¸i principiu. poate fi anticipat˘. 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. receptorul cere ¸ a emit˘torului s˘ continue transmisia. este a ¸ a a necesar un mecanism prin care receptorul s˘ informeze emit˘torul asupra posia ¸a bilit˘¸ii sale de preluare a datelor. caracterul xoff a se transmite tastˆnd combinatia ctrl-S. cˆnd a a destinatia consum˘ datele din memoria tampon a receptorului. ˆ ¸ ınapoi.4. Astfel. ¸a 4. numit uneori xoff. Dac˘ memoria a a tampon a receptorului este aproape plin˘. 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. Pentru aceasta este necesar un al doilea at canal de comunicatie. dinspre receptor spre emit˘tor. 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. ¸a a Acest mecanism este utilizat la transmisia prin linie serial˘. receptorul este prev˘zut cu o memorie tampon.2. dup˘ ce cite¸te s s a s datele afi¸ate. este mecanismul numit s ¸ hardware flow control. numit uneori xon. avˆnd codul 17. va tasta ctrl-Q pentru continuarea transmisiei. Radu-Lucian Lup¸a s ˘ Capitolul 4. ˆ acest caz. cu s acest mecanism de control al fluxului. Nivelul legaturii de date 115 necesar˘ sistemului. a ¸ a Astfel. Evident.4. iar surplusul de capacitate nu poate a a fi valorificat. iar xon se transmite tastˆnd ctrl-Q. Reluarea transmisiei se cere prin transmiterea unui caracter. implementat putin diferit. caracterele cu codurile 17 ¸i 19 nu pot s fi utilizate pentru a transmite informatie util˘. Ulterior. ın 4. De la un terminal text. receptorul trimite emit˘torului un a ¸a mesaj prin care cere acestuia s˘ suspende transmisia de date.1. Cererea de suspendare a transmisiei se face prin trimiterea unui caracter. 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. Dac˘ solutia unui debit fix de transmisie nu este satisf˘c˘toare. clasic. avˆnd codul a ASCII 19. E¸a a a a a . sub nua mele de software flow control sau de xon/xoff.c 2008.

f˘r˘ modific˘ri.3. s˘ nu-i confirme primirea).4. ˆ ıl ın a In acest fel. Controlul fluxului mit˘torul trimite un singr pachet.confirm˘rii“ f˘r˘ a retransmite pachetul de date dac˘ aceast˘ a¸teptare a aa a a s dep˘¸e¸te o anumit˘ durat˘. pachetele trimise ˆ continuare de ın emit˘tor nu vor fi confirmate. timp ˆ care emit˘torul a putut trimite ¸a a ıntˆ ın ¸a un num˘r de pachete. apoi trimite urm˘torul pachet a a a a a ¸. Intr-adev˘r.3). Radu-Lucian Lup¸a s 116 4. a s ınc˘ atunci emit˘torul poate trimite cel mult pachetul n + k ˆ ¸a ınainte de-a primi un nou anunt de la receptor. 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. receptorul nu trebuie decˆt s˘ ignore complet orice a a a pachet pe care nu ˆ poate prelua (ˆ particular.4. ˆ consecint˘. ele vor fi retransmise pˆn˘ cˆnd ¸a In ¸a a a a destinatia va consuma o parte dintre datele sosite la receptor. receptorul va ¸ putea prelua noi pachete de la emit˘tor ¸i va confirma emit˘torului primirea ¸a s ¸a acestor pachete. ¸i cu rolul de mecanism de control aa a s ˆ al fluxului.c 2008. 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. 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 . contin˘ ¸i num˘rul de ordine al ultimului pachet de date primit. apoi a¸teapt˘ semnalizarea receptorului c˘ ¸a s a a este preg˘tit s˘ primeasc˘ urm˘torul pachet. ¸ 4. d. Mecanismul este asem˘n˘tor cu mecanismul de retransmitere a s a a pachetelor pierdute (§ 4. m. Mecanismul este ˆ a destul de ineficient. la umplerea memoriei receptorului.. ˆ a cu diferenta c˘ emit˘torul a¸teapt˘ primıns˘ ¸ a ¸a s a irea . ˆ acest caz. as s a a Ca ¸i la mecanismul de retransmitere a pachetelor pierdute. Pentru aceasta este necesar ca pachetele s˘ fie numerotate ¸i anuntul de disponibilitate s˘ a s ¸ a ˆ acest fel. 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. Mecanism combinat cu retransmiterea pachetelor pierdute S˘ observ˘m acum c˘ orice mecanism de retransmitere a pachetelor a a a pierdute poate fi folosit. Deoarece anuntul de disponibilitate al receptorului ajunge ¸ la emit˘tor cu o anumit˘ ˆ arziere. a Este posibil˘ combinarea controlului fluxului cu retransmiterea paa chetelor pierdute. a. 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. deoarece emit˘torul ıns˘ ¸a repet˘ pachete care ajung corect la receptor. 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.

3 am v˘zut mecanisme de multiplexare (ˆ frecIn s a ın vent˘. 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). pachete sau ¸iruri de biti apartinˆnd fiec˘rui canal logic. 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.2. • Se stabile¸te o ordine de succesiune ˆ s ıntre canalele logice.11(b)). respectiv ˆ lungime de und˘) construite la nivelul fizic. ˆ antet. De notat c˘. prin canalul a ın fizic. ın 4. Prin canalul fizic se transmite. Un exemplu clasic de astfel de mecanism combinat este protocolul TCP. fiecare comunicatie ocup˘ deci cˆte un canal logic ¸i ¸ a a s toate canalele logice sunt construite pe acela¸i canal fizic. Multiplexarea ˆ timp ın ˆ general. 4. pe rˆnd.c 2008.3 ¸i § 3. ın Ideea multiplex˘rii ˆ timp este de-a transmite intercalat.5.1.3. De asemenea. Fiecare pachet are.11(c)).6. descris pe larg ˆ § 10. 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. identificatorul canalului logic c˘ruia ˆ apartin datele utile ın a ıi ¸ (fig. La nivelul ¸a ın a leg˘turii de date se poate construi un al treilea mecanism de multiplexare: a multiplexarea ˆ timp. pe rˆnd. s ˆ § 3. emit˘torul trebuie s˘ a a ¸a a asigure o ˆ artire echitabil˘ a capacit˘¸ii canalului fizic ˆ ımp˘ ¸ a at ıntre canalele logice. ¸ . Radu-Lucian Lup¸a s ˘ Capitolul 4. Serviciul oferit fiec˘rei comunicatii a ¸ este numit canal logic. dac˘ sursa unui canal logic nu transmite a a pachete o perioad˘ mai lung˘ de timp. Separarea datelor corespunz˘toare canalelor logice se poate face prin a dou˘ metode: a • Fiecare canal logic are asociat un identificator unic. 4.3. cˆte un pachet apartinˆnd fiec˘rui canal a a ¸ a a logic (fig. Nivelul legaturii de date 117 tru ambele mecanisme. Eva s ¸ ¸ a a ident.

5.c 2008. Radu-Lucian Lup¸a s 118 4. 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.11: Functionarea mecanismelor de multiplexare ˆ timp ¸ ın .

uneori este numit. ˆ a ¸a a ımpreun˘ a cu leg˘turile directe dintre ele. a ın ¸ • leg˘tur˘ direct˘: orice leg˘tur˘ ˆ a a a a a ıntre noduri. fiecare vecin cu urm˘torul. aparatele telefonice s ın ¸ a . • adres˘ de retea sau. • drum sau rut˘ : o secvent˘ de noduri. utilizabil˘ de c˘tre nivelul a a retea. ¸ ˆ Intr-o retea de comunicatie numim: ¸ ¸ • nod: orice dispozitiv ce particip˘ activ ˆ retea. simplu. a a a a • nod final sau statie (engl. dou˘ noduri ˆ ¸ a ıntre care exist˘ o leg˘tur˘ direct˘ se numesc vecini . • nod intermediar sau ruter (engl. adres˘ : un identificator (un ¸ir de simboluri) a ¸ a s ce identific˘ unic un nod al retelei. relativ numeroase sau ˆ a s ıntinse pe distante mari. 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.c 2008. ¸ trebuie s˘ poat˘ comunica fiecare cu fiecare. Radu-Lucian Lup¸a s 119 Capitolul 5 Nivelul retea ¸i nivelul transport ¸ s Dac˘ ni¸te dispozitive. 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. nodurile intermediare nu au ˆ ¸ a ıntotdeauna adrese. 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. 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˘. router ): un nod ce poate fi tranzitat de trafic ce nu are ca surs˘ sau destinatie acel nod. server. ˆ a ¸ ın mod incorect. Fiecare nod terminal trebuie s˘ aib˘ a ¸ a a cel putin o adres˘.

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

¸ Dup˘ serviciul oferit. o retea poate fi cu datagrame (numite uneori a ¸ pachete) sau cu conexiune: • datagrame: ˆ Intr-o retea ce ofer˘ serviciu tip datagrame. aplicatia surs˘ ¸ a ¸ a creaz˘ o datagram˘ continˆnd datele de transmis ¸i o paseze modulului a a ¸ a s retea. ¸i ˆ special protocolul a ¸ s ın utilizat de nivelul retea.1). ¸ ¸ ¸ 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. Functionaa ¸ ¸ rea retelelor ce ofer˘ servicii de tip datagrame este similar˘ sistemului ¸ a a de po¸t˘ (po¸ta obi¸nuit˘). unde este a ın a a ¸ pasat˘ aplicatiei (vezi § 5. ¸ a a a s ¸ Din acest punct de vedere spunem c˘ nivelul retea. este liantul ˆ ¸ ıntregii retele. dac˘ leg˘turile pot s a a a fi asimetrice).1. specificˆnd totodat˘ adresa nodului destinatie. o aplicatie ¸ a ¸ ce dore¸te s˘ comunice cu o aplicatie dintr-un alt nod ˆ s a ¸ ıncepe prin a so- . Sunt figurate doar modulele din trei ¸ noduri. Radu-Lucian Lup¸a s Capitolul 5. ¸i ˆ plus modulele de retea ale tuturor nodurilor pot comunica s ın ¸ printr-un protocol comun. Nivelul retea ¸i nivelul transport ¸ s 121 Nivelul retea este ansamblul modulelor de retea ale nodurilor retelei. de-a lungul traseului datelor ˆ ıntre dou˘ aplicatii. ˆ 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 ¸ Un ansamblu de calculatoare constituie o retea dac˘ ¸i numai dac˘ ¸ as a graful nodurilor ¸i leg˘turilor directe este conex (tare conex. f˘r˘ ca aa aplicatia client s˘ trebuiasc˘ s˘ aibe cuno¸tinte despre nodurile intermediare.c 2008. de c˘tre retea. Datagrama este ¸ a a ¸ transmis˘ din aproape ˆ aproape pˆn˘ la nodul destinatie. complet independent una de alta. sa s s a • conexiune: ˆ Intr-o retea ce ofer˘ serviciu de tip conexiune. 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.

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

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

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

XY ¸i XZ desemneaz˘ leg˘turile ¸ s a a fizice ˆ ıntre nodurile X ¸i Y . 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.2 s s a de datagrame. Numerele de sub axe marcheaz˘ pes s a rioadele de timp alocate canalelor logice corespunz˘toare.2. decizia este luat˘ ˆ functie a In a a ın ¸ de circuitul virtual c˘ruia ˆ apartine pachetul. Leg˘turile dintre canalele a a virtuale de intrare ¸i de ie¸ire sunt identice cu leg˘turile fizice din figura 5. continut˘ ın ¸ ¸ ¸ a ˆ datagram˘. Decizia se ia pe baza tabelei de circuite ¸i este identic˘ pentru toate pachetele apartinˆnd aceluia¸i circuit.4: Desf˘¸urarea ˆ timp a receptiei ¸i a transmiterii mai departe a paas ın ¸ s chetelor.3.c 2008. Problema determin˘rii acestui ın ¸ a nod vecin se nume¸te problema dirij˘rii. 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). Dou˘ datagrame ˆ ın a a ıntre acelea¸i dou˘ statii pot fi dirijate pe rute s a ¸ diferite. 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. ˆ cazul retelei bazate ¸ a In ¸ pe datagrame. Radu-Lucian Lup¸a s Capitolul 5. Diferenta vine din felul ˆ care un nod. a a a ın ¸ respectiv spre care dintre vecini s˘ transmit˘ cererea de initiere a unei conea a ¸ xiuni (ˆ cazul retelelor bazate pe conexiuni). pentru nodul X din reteaua din figura 5. ia decizia privind leg˘tura prin care s˘-l s a a a a trimit˘. 5. decizia de dirijare se ia ˆ functie de adresa destinatie. s a . respectiv X ¸i Z. ˆ cazul comut˘rii de circuite virtuale. care prime¸te un pachet ¸ ın s ¸i trebuie s˘-l trimit˘ mai departe. informatie dedus˘ din leg˘tura a ıi ¸ ¸ a a de date prin care a intrat pachetul.

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

fiecare modificare a retelei trebuie anuntat˘ tuturor ¸ ¸ ¸ a nodurilor. s a a ın¸ ¸ ın a ¸ Transmisia informatiei respective se face astfel: ¸ • Fiecare nod creaz˘. ˆ astfel de cazuri se utilizeaz˘ dirijarea ierarhic˘ (§ 5.2. de exemplu dac˘ graful asociat retelei de calculatoare are anumite a ¸ particularit˘¸i. fiecare nod testeaz˘ periodic leg˘turile cu vecinii s˘i a a a ¸i. 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. at ın 5. ın s ˆ retelele foarte mari. dup˘ care calculeaz˘ drumurile de la el la t ¸ a a toate celelalte noduri. fiecare nod al retelei adun˘ toate informaIn ¸ a ¸iile despre graful asociat retelei. transmite o ˆ stiintare ˆ toat˘ reteaua.1 ¸i § 5.c 2008. Dac˘ este mai a a recent.3). Acestea vor fi studiate ˆ § 5. acest proces trebuie automatizat (total sau In ¸ partial). Apoi transmite acest pachet tuturor vecinilor. ˆ trimite tuturor vecinilor (mai putin celui dinspre care a venit ıl ¸ pachetul) ¸i actualizeaz˘ reprezentarea proprie a grafului retelei. ˆ ınseamn˘ c˘ este o copie ce a sosit pe alt˘ cale a a a ¸i este ignorat. printr-un a protocol sigur (cu confirmare ¸i retransmitere).2. Calculul drumurilor cu informatii complete despre graful ¸ retelei ¸ ˆ cadrul acestei metode. un pachet ce contine numele nodului. Metodele a s ¸ ¸ ın a a principale de calcul pentru tabelele de dirijare sunt descrise ˆ § 5. periodic. oridecˆteori constat˘ o modificare.2.2. 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. Pentru aceasta.1.2. Pentru ca fiecare nod s˘ dispun˘ ˆ permanent˘ de graful asociat a a ın ¸a retelei de calculatoare. starea a ¸ leg˘turilor cu vecinii (costurile actuale ale leg˘turilor).2. De asemenea. centralizarea complet˘ a In ¸ a datelor nu este rezonabil˘. Nivelul retea ¸i nivelul transport ¸ s 127 ˆ retelele mai mari. utilizate ˆ diverse situatii mai as ın ¸ deosebite. 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). cum ar fi Internet-ul. 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. Radu-Lucian Lup¸a s Capitolul 5. Dac˘ s a ¸ a pachetul este mai vechi. 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˘.4. Deoarece nu este de dorit oprirea complet˘ a retelei oridecˆteori ¸ a ¸ a se modific˘ vreo leg˘tur˘. s . In a a Exist˘ ¸i metode ad-hoc de dirijare.

a Dup˘ cˆteva iteratii ale buclei principale. distanta pˆn˘ la ea ¸i primul nod de pe drumul ¸ a ¸ a a s optim spre acea destinatie. calculul se face astfel: mai ˆ ai. Initial. tabelul este initializat astfel: pentru vecinii ¸ ¸ ¸ directi. a a ¸ Pentru fiecare nod. pentru a ¸ a ¸ a fiecare destinatie posibil˘. conform tabelei vecinului. costul este initializat cu infinit.2) este inspirat˘ din algoritmul a a a Bellman-Ford de determinare a drumurilor de cost minim ˆ ıntr-un graf.c 2008. costul drumului este pus ca fiind costul leg˘turii directe spre acel nod. 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. Radu-Lucian Lup¸a s 128 5. 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). 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. ¸ 5. pentru nodurile ¸ ce nu sunt vecini directi. Calculul drumurilor optime prin schimb de informatii de ¸ distant˘ ¸a Aceast˘ metod˘ (vezi algoritmul 5. ˆ sensul c˘ tabelele calculate la fiecare iteratie sunt identice cu ın a ¸ cele calculate la iteratia precedent˘. Apoi. De remarcat c˘.1). al drumului de la vecinul respectiv la nodul destinatie. Calculul trebuie ref˘cut complet la fiecare modificare a ¸ a grafului asociat retelei de calculatoare. nodurile recalculeaz˘ periodic tabelele de distante. a unor vectori reprezentˆnd distantele de la nodul curent a ¸ a ¸ la toate celelalte noduri.2. Metoda se a a ¸ nume¸te cu vectori distanta deoarece prevede transmiterea.2. Algoritmi de dirijare Calculul drumurilor de cost minim de la un vˆrf la toate celelalte este a o problem˘ clasic˘ ˆ teoria grafelor. ˆ 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). pentru fiecare destinatie posibil˘. Algoritmul prevede c˘ fiecare nod detine o tabel˘ continˆnd. algoritmul este l˘sat ˆ continuare s˘ se execute a a ın a . de la fiecare nod s ¸˘ la vecinii s˘i directi. nu se utilizeaz˘ deloc tabela de distante a acelui nod de la iteratia a ¸ ¸ precedent˘. a Dup˘ stabilizare. 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 drumului printr-un vecin ¸ direct este calculat ca fiind costul leg˘turii dintre nodul curent ¸i vecinul cona s siderat adunat cu costul. algoritmul se stabilizeaz˘ a a ¸ a (converge). ¸ ¸ Dup˘ initializare. ¸ a iar primul nod spre acea destinatie este fixat chiar acel nod. nodul cere vecinilor ıntˆ directi tabelele acestora. ˆ 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.2.

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) < d[y] atunci a d[y]: = d[v] + c(v.1: Algoritmul lui Dijkstra cu ad˘ugirea pentru calculul tabelei de a dirijare. ∞) costurile asociate arcelor x0 ∈ V vˆrful curent a ie¸irea: t : V → {(x0 . y) ∈ E} tabela de dirijare. . t(x) este leg˘tura direct˘ prin s a a care x0 trebuie s˘ trimit˘ pachetele destinate lui x. 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.c 2008. y) ∈ E execut˘ a dac˘ d[v] + c(v. Radu-Lucian Lup¸a s Capitolul 5. y) dac˘ v = x0 atunci a t(y): = (x0 . E) graf orientat (E ⊆ V × V ) c : E → [0. Nivelul retea ¸i nivelul transport ¸ s 129 Algoritmul Dijkstra intrarea: G = (V.

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

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

a a calculat de c˘tre B la initializare. Algoritmi de dirijare leg˘tura prin A de cost 2+21=23 ¸i leg˘tura prin C de cost 5+3=8. Rutele optime g˘site sunt cele ın a prin A. S˘ urm˘rim a a a ¸ a a evolutia. 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 nodul B ia ˆ calcul rute prin A sau prin D. 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.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. rezultˆnd reteaua din figura 5. 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. via cost A C 10 B C 8 C C 3 •ˆ Incepˆnd cu iteratia 3. via cost dest. Radu-Lucian Lup¸a s 132 5. a ¸ Nodul A: Nodul B: Nodul C: dest. Ca alt exemplu.1). tabelele calculate sunt identice cu cele de la itaretia a ¸ ¸ 2. ˆ continuare.2. ¸ ın La prima iteratie.6. via cost dest. via cost dest. nodul B nu are cum s˘ determine a . a ¸ Nodul A: Nodul B: Nodul C: dest. S˘ prea ¸a a supunem c˘ leg˘tura B–C cade. via cost dest. a tabelelor de dirijare. 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. bazate pe vechile tabele ale lui A.c 2008. cea a s a mai bun˘ este cea prin C.2: Fie reteaua din figura 5. la recalcularea rutelor nodului B spre C ¸i spre D.

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. ¸ a a a ¸ c˘ aceste rute nu mai sunt valide deoarece se bazau pe leg˘tura B–C. g˘sind c˘ rutele optime spre A ¸i B trec prin D. A C D B: via A A A cost 2 9 12 Nodul dest. tabelele ajung ˆ forma urm˘toare: a a ın a .c 2008.6: Reteaua rezultat˘ prin c˘derea leg˘turii B–C din reteaua din figura 5. costurile aparente ale rutelor cresc de la o iteratie la In ¸ alta.6. 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 7 10 cost 10 8 3 Nodul dest. La a 3-a iteratie de la a a a ¸ c˘derea leg˘turii B–C. pˆn˘ cˆnd ajung la valorile rutelor reale optime. A C D B: via A A A cost 2 9 10 Nodul dest. Nivelul retea ¸i nivelul transport ¸ s A 2 B 21 20 D 3 C 133 Figura 5. B C D Nodul dest. Radu-Lucian Lup¸a s Capitolul 5. as a a s Nodul dest. La fel a a procedeaz˘ ¸i nodul C. A B C A: via B B B D: via C C C cost 2 11 14 cost 16 14 3 Nodul dest. B C D Nodul 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. A B C ˆ general. de la 5 la 23. rutele ce trec de dou˘ ori a ¸ a prin acela¸i nod nu sunt luate ˆ considerare. acest lucru nu va fi ın a a ¸ detectat niciodat˘. Radu-Lucian Lup¸a s 134 5. prin c˘derea leg˘turii directe B–C.2. se poate modifica algoritmul astfel: tabelele vor ¸ine ruta a t complet˘ spre destinatie. o cre¸tere de s a a s 18 unit˘¸i. iar la recalcularea rutelor. ¸ Nodul dest. descoperirea de c˘tre D a rutelor reale a ¸ a spre A ¸i spre B: s Nodul A: Nodul B: Nodul C: dest.2.2. costul drumului optim de la B unei leg˘turi directe. Costul cel mai mic al unei leg˘turi directe este 2 (leg˘tura A–B). 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. ˆ cazul 2 ˆ care c˘derea unei leg˘turi duce la deconectarea retelei.3: S˘ relu˘m reteaua din exemplul 5. via cost dest. B C D Nodul dest. stabilizarea tabelelor poate lua cel mult 18 = 9 iteratii. stabilizarea tabelelor s a survenind abia la a 8-a iteratie. In a la C cre¸te. s ın Exemplul 5. via cost dest. via cost dest. via cost A A 21 B B 20 C C 3 Restul rutelor reale sunt descoperite ¸i mai tˆrziu. 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˘. Algoritmi de dirijare Nodul B: Nodul C: A: via cost dest. at a a ¸ In Ca urmare. num˘rul de iteratii necesar fiind infinit. la a 4-a iteratie.c 2008. a a ¸ Pentru a ˆ ımbun˘t˘¸i comportamentul ˆ cazul c˘derii sau cre¸terii a at ın a s costului leg˘turilor. cu memorarea ˆ a a ¸ ıntregului .

Ca urmare.C 7 C D. ca urmare este ales ca rut˘ optim˘ de la B la C. Nivelul retea ¸i nivelul transport ¸ s 135 drum ˆ tabela de distante. Prin urmare.D 10 D D 20 D D 3 . drumul prin A este BABC ¸i este respins datorit˘ s a repet˘rii vˆrfului B. ruta cost dest. a a a ¸ a din lipsa unor informatii globale. A B C A: ruta B B. de la iteratia anterioar˘. adic˘ drumul a ¸ a a ABC. Drumul prin A ˆ a a a a ıncepe cu muchia AB ¸i cons tinu˘ cu ruta din tabela. nodul C marcheaz˘ lipsa rutei a a punˆnd costul ∞.C. ar exista o singur˘ posibilitate.C. se determin˘ inexistenta vreunei rute valide a a ¸ de la C la B.D Nodul dest.C 23 B – ∞ D B. B C D Nodul dest. de cost 20+3=23. 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. acesta este singurul candidat.C B. A C D B: ruta A C C. ca urmare. Nodul B: Nodul C: Nodul A: dest. prin a nodul D. ruta cost B B 2 A A 2 A – ∞ C B. anume BABCD. ruta prin A. A B D C: ruta B. este imposibil de prins toate cazurile ¸ de utilizare a unor muchii inexistente.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. r˘mˆne s˘ fie aleas˘ doar leg˘tura direct˘ a s a a a a a a BD.B.6). ın ¸ a ¸ se obtin urm˘toarele tabele: ¸ a Nodul dest. 5. ˆ a aceasta conduce la drumul CDCBA care este respins din ıns˘ cauza repet˘rii nodului C.A C. a a Analog. 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.B C Nodul dest. a lui A. ın este respins˘ ¸i.D D: ruta C. ˆ calculul rutei de la B la D.c 2008. ¸ a a Leg˘tur˘ direct˘ nu exist˘. Dup˘ stabilizarea tabelelor pe reteaua din figura 5. Radu-Lucian Lup¸a s Capitolul 5. La calculul rutei de la C la A. Analog.5. Drumul de la B la C prin D este BDC. ruta cost dest.

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

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

3 2.1 4.4 3.3 2.2 3. s .c 2008.1 3.3 4.2 4.3 3. Radu-Lucian Lup¸a s 138 5.6 2.4 (a) Toat˘ reteaua.1 3.1 (b) Reprezentarea (mic¸orat˘) s a doar a subretelei r˘d˘cin˘.2 2. Algoritmi de dirijare 1.1 1. ¸ a a a Figura 5. a 1.2 2.2.1 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.5 1.3 1.4 1.5 3.7: O retea cu dirijare ierarhic˘ pe dou˘ nivele.3 4.2 2. Subretelele de pe nivelul 1 sunt ˆ a ¸ ¸ ıncercuite cu linie punctat˘.3 3.1 1.

4.1. s a O alt˘ solutie. cicleaz˘ la infinit. a datagrama nu mai este trimis˘ mai departe. 5. Inundarea Inundarea este o metod˘ aplicabil˘ ˆ retele bazate pe datagrame.5. Metode particulare de dirijare 5. La atingerea unei anumite valori prestabilite. 3. o dat˘ a ıns˘ ¸ ¸ a a ajuns˘ ˆ a ıntr-un ciclu. metoda inund˘rii genereaz˘ prea mult trafic pentru a fi a a a ˆ general acceptabil˘. s a a Inundarea se utilizeaz˘ ˆ retelele Ethernet. inundarea face ca fiecare datagram˘ s˘ ajung˘ la a a a a fiecare nod al retelei. ¸ Dac˘ ˆ a graful retelei contine cicluri. ˆ ıntrucˆt lungimea lui este 6. nu doar la destinatarul dorit. atunci o datagram˘. .1. iar drumul 1.4 nu este optim.3.2. Cu aceast˘ modificare. ¸ Inundarea garanteaz˘ c˘. transmisia se opre¸te la frunze. datagrama ajunge la destinatie. 1.4 are lungimea 5. ¸ ¸a inundarea nu necesit˘ ca nodurile s˘ adune nici un fel de informatie despre a a ¸ retea. copiile datagramei circul˘ ˆ arbore de la fiecare nod a a a a ın la fii s˘i.c 2008. Nivelul retea ¸i nivelul transport ¸ s 139 3. ın a Dac˘ graful retelei este un arbore. atunci. 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). 1. inundarea a a transmite datagramele pe toate drumurile (nu neap˘rat simple) de la sursa a datagramei ¸i de lungime dat˘. a 3. Pentru ca inundarea s˘ fie utilizabil˘ ˆ a a a ın retele cu cicluri.2. 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.4.1. prin mentinerea unor numere de secvent˘) duplicatele ¸ ¸a unui pachet ¸i s˘ trimit˘ mai departe un pachet doar la prima lui sosire. Radu-Lucian Lup¸a s Capitolul 5. trebuie f˘cut˘ o modificare pentru prevenirea cicl˘rii infinite.3. Graful unei retelele Etha ın ¸ ¸ ernet trebuie s˘ fie ˆ a ıntotdeauna un arbore. ¸ Pe de alt˘ parte. Ca avantaj fat˘ de alte metode. cu avantajul suplimentar c˘ asigur˘ ca fiecare pachet a ¸ a a s˘ ajung˘ ˆ a a ıntr-un singur exemplar la destinatie. la fiecare nod ¸ ajung toate pachetele care circul˘ prin retea. ¸ 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. considerˆnd nodul surs˘ a a ¸ a a datagramei ca r˘d˘cin˘. La un num˘r de noduri mai a ¸ a mare de cˆteva zeci. Ca urmare. 4. a a ın ¸ Inundarea const˘ ˆ a trimite c´pii ale unei datagrame prin toate leg˘turile a ın o a directe. este ca fiecare nod al retelei s˘ ¸ ¸ a identifice (de exemplu. cu exceptia celei prin care a intrat datagrama.

a a ¸ . iar apoi s˘ se a a aplice metoda inund˘rii ˆ acest arbore.4. Distingem o ¸ dou˘ posibile cerinte. Radu-Lucian Lup¸a s 140 5.1). 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.2.2.2. broadcast) — trimiterea spre a ¸ a toate nodurile unei retele — ¸i difuziune selectiv˘ (engl. Fiecare nod determin˘ leg˘tura de ie¸ire pentru fiecare destinatie ¸ a a s ¸ din lista din datagram˘. 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. este favorabil˘ ˆ cazul ˆ care trebuie trimise ¸ a ın ın multe datagrame aceleia¸i multimi de destinatari. ˆ a¸area rutelor din adresele surs˘ ale pachetelor Inv˘t a O metod˘ simpl˘ de constructie a tabelelor de dirijare este ca. multicast) — trim¸ s a iterea datagramei spre o submultime dat˘ a multimii nodurilor. 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.2. cˆt timp a a a ¸ ıns˘ a drumul a dou˘ sau mai multe datagrame este comun.5. s ¸ Descriem ¸i o a treia posibilitate. 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˘. Algoritmi de dirijare 5. De asemenea. datagramele c˘l˘toresc a aa reunite ˆ ıntr-o singur˘ datagram˘ cu mai multe adrese destinatie. (§ 5. Metoda const˘ ˆ a trimite ˆ datagram˘ multimea adreselor a ın ın a destinatie. Aceast˘ metod˘ este utilizabil˘ atˆt a ın a a a a pentru difuzare complet˘ cˆt ¸i pentru difuzare partial˘. se poate folosi ınc˘ a inundarea. a ın ¸ 5. difuziune complet˘ (engl. a O posibilitate simpl˘ de realizare a difuziunii complete este inuna darea. Datorit˘ necesit˘¸ii a a s ¸ a a at calculului arborelui partial. ¸ a Desigur. ˆ ıntotdeauna este posibil˘ difuzarea prin transmiterea sepaa rat˘ a unei datagrame spre fiecare nod.2. Intuitiv.c 2008. ˆ a. O astfel de metod˘ este ˆ a neecoa a ıns˘ nomic˘. metoda ar putea fi privit˘ a a a a astfel: se trimite cˆte o datagram˘ c˘tre fiecare nod destinatie. 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. la a a ¸ primirea unui pachet de la un nod surs˘ S dinspre un nod vecin V . 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. mai trebuie un mecanism pentru dirijarea pachetelor ¸ pentru care ˆ a nu exist˘ reguli de dirijare — de exemplu. 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. Metoda este utilizat˘ ˆ retelele Ethernet.

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

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

r˘mˆne a a a ¸ a a deci necesar de elaborat un protocol de informare a sursei. precum ¸i mecanismele prin care nodurile finale pot reactiona s ¸ la astfel de semnale. A doua posibilitate este ca nodul ˆ arcat s˘ semnalizeze destinatiei ınc˘ a ¸ fiec˘rui pachet de date faptul c˘ reteaua este ˆ arcat˘. 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˘. mecanisme utilizate pentru semın nalarea congestiei. 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˘.2. Metoda semnaliz˘rii destinatiei este a a a ¸ utilizat˘ ˆ Internet.c 2008. dac˘ reteaua este foarte ˆ arcat˘. a a a sub forma unui bit din antetul fiec˘rui pachet.5. atunci cˆnd un a nod intermediar este ˆ arcat la limita capacit˘¸ii sale. Ca principiu general. fat˘ de metoda a ¸a precedent˘. s˘ reduc˘ debitul transmisiei.2. ˆ interiorul setului functionˆnd a a ın ¸ a regulile de la a¸teptarea echitabil˘. 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. ˆ opozitie cu limitarea traficului a ın ¸ la capacitatea leg˘turii sau nodului respectiv. a a a a Dac˘ metoda priorit˘¸ilor este combinat˘ cu a¸teptarea echitabil˘. 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. a ¸ ınc˘ a nodurile terminale s˘ ˆ a ıncerce s˘ reduc˘ frecventa ¸i m˘rimea pachetelor transa a ¸ s a mise. ˆ special datorit˘ pierderii ¸i retransmiterii unui num˘r ¸ ın a s a mare de pachete. Prima posibilitate de semnalizare a congestiei este ca. Evident. a at a s a fiec˘rui nivel i se asociaz˘ un set de cozi. pentru a ın . 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. ın a a a 5. pe scurt. Dezavantajul. este bine ca. 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˘.4). sub numele de explicit congestion notification. pentru acest lucru.3. Pachetul urm˘tor ce va fi transmis este extras din prima coad˘ nevid˘. Radu-Lucian Lup¸a s Capitolul 5. destinatia cere sursei. Urm˘torul pachet trimis este extras din s a a setul de cozi cel mai prioritar ˆ care exist˘ cel putin o coad˘ nevid˘. existˆnd un tip de ¸ ınc˘ a a ın a pachete ICMP pentru acest scop (vezi § 10. Sc˘derea debitului util. ¸ ¸ Descriem ˆ continuare. este datorat˘ unei function˘ri a a ¸ a defectuoase a retelei. este necesar un mecanism care s˘ semnaleze a nodurilor finale asupra prezentei sau iminentei congestiei. prin intermediul protocolului de control a ¸ al fluxului. ci destinatiei. Metoda este utilizabil˘ ˆ Internet.

mai este necesar ca pierderea unui pachet din alte cauze decˆt congestia s˘ fie putin probabil˘. Radu-Lucian Lup¸a s 144 5. Rezult˘. a sursei se poate utiliza dimensiunea ferestrei TCP (§ 10.3. Formarea (limitarea) traficului Prin formarea traficului se ˆ ¸eleg metode de uniformizare a debitului ınt unui flux de date. Reactia este diminuarea traficului prin toate leg˘turile ¸i ca ur¸ a s mare sc˘derea traficului mult sub maximul admis. fie a unui protocol a de confirmare ¸i retransmitere .1. 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 ca pierderea pachetelor s˘ poat˘ fi utilizat˘ ca a a a a a semnalizare a congestiei. 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˘. a nodus a a lui intermediar considerat. o implementare simpl˘ a a risc˘ s˘ duc˘ la oscilatii: dac˘ un nod intermediar ajunge congestionat. De asemenea. a ınc˘ 5. Debitul apei care curge (debitul fluxului as a de ie¸ire) este constant atˆt timp cˆt g˘leata nu este goal˘. Dup˘ un timp.3.3.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). asupra fluxului printr-un a ¸ circuit virtual sau asupra fluxului ce intr˘ sau iese printr-o anumit˘ leg˘tur˘ a a a a direct˘. fie a unui cod corector de erori. o parte din apa ce intr˘ se revars˘ ˆ afar˘ (surplusul a a a a a ın a . s Indiferent de metoda de semnalizare utilizat˘. s a a a a dac˘ g˘leata este plin˘. leg˘turi radio). asupra fluxulul ˆ a ıntre dou˘ statii date. sema a a ¸ a nalizeaz˘ tuturor nodurilor terminale ale leg˘turilor stabilite prin el despre a a congestie. 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).c 2008. din nou. O semnalizare implicit˘ a faptului c˘ reteaua este ˆ arcat˘ const˘ a a ¸ ınc˘ a a ˆ ˆ a¸i pierderea pachetelor. 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. G˘leata are o gaur˘ prin care curge ap˘ (pachete ce sunt preluate din a a a coad˘ ¸i retransmise de c˘tre ruter). nodurile a a terminale vor cre¸te din nou traficul. Functionarea la trafic ridicat ¸ informarea. necesitatea utiliz˘rii.3. a Cel mai simplu mecanism de formare a traficului este limitarea debitului de date la o anumit˘ valoare fixat˘. pˆn˘ la congestionarea. § 4. mai departe.8). Mecanismul se nume¸te g˘leat˘ a a s a a g˘urit˘. pentru leg˘turile directe a a ¸ a a a cu rat˘ a erorilor ridicat˘ (ˆ principal. a a ın a a la nivelul leg˘turii de date.

Nivelul retea ¸i nivelul transport ¸ s 145 de pachete se pierd). este necesar s˘ fie rezervate fluxului a resursele necesare — capacitatea de prelucrare ˆ noduri ¸i capacitatea de ın s transfer prin leg˘turile directe. un mecanism de lima a itare a debitului de date. a ın ¸ ın Reteaua telefonic˘ utilizeaz˘ astfel de mecanisme. valorificarea capacit˘¸ii r˘mase. ruterul asociaz˘ cozii un num˘r de jetoane. 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.c 2008. Un mecanism mai elaborat permite scurte rafale. ruterul ¸ine evidenta capacit˘¸ii nefolosite (diferenta dintre debitul maxim acceptat t ¸ at ¸ ¸i debitul fluxului) ¸i permite. Radu-Lucian Lup¸a s Capitolul 5. 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. cu p˘strarea capacit˘¸ii In at a a at garantate prin rezervarea resurselor. f˘r˘ ˆ a a dep˘¸i o valoare maxim˘. Mai ˆ s s ın ın detaliu. Rezervarea resurselor Pentru a avea. a a Asociat conexiunii se plaseaz˘. pachetul este preluat din coad˘ ¸i retransmis. Mecanismul se nume¸te g˘leata cu jeton. ¸ s a 5. astfel ˆ at operarea conexiunii s˘ se ˆ ıncˆ a ıncadreze ˆ ın resursele alocate. se poate face astfel: Datelor ce apartin ¸ conexiunilor cu trafic garantat li se asociaz˘ un nivel de prioritate ridicat.4. 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. Ca idee. ¸ La deschiderea conexiunii. la nodul surs˘. conexiunea este refuzat˘ sau se a a negociaz˘ o capacitate mai mic˘. ˆ mod garantat. ¸ a a Avantajul unui debit garantat se pl˘te¸te prin limitarea drastic˘ a a s a debitului permis. ˆ 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 ˆ acest caz. Rezervarea resurselor este util˘ ˆ special aplicatiilor ˆ timp real. un exces de debit. reteaua a a a ¸ nu este folosit˘ la maximul de capacitate. a . Periodic. ˆ contul acesteia.3. 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. o anumit˘ capacitate ¸i un anumit ın a s timp de propagare oferite unui flux de date. a a a a as s a Dac˘ resursele necesare nu sunt disponibile. num˘rul de a a a jetoane este crescut cu o unitate.

Metodele bazate pe confirm˘ri ¸i retransmiteri (vezi § 4. iar restul datelor sunt transmise. ˆ vreme ce nivelul fizic nu inverseaz˘ pachete. pentru a asigura transport sigur la nivelul a transport.c 2008. dac˘ mai r˘mˆn resurse ¸i pentru ele. pe de o parte trebuie luate m˘suri ın a pentru a fixa o durat˘ maxim˘ de viat˘ a unei datagrame ˆ retea. 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. f˘r˘ vreo a aa garantie.4. ˆ 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. ı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. O alt˘ diferent˘ ın a a ¸a este c˘ la nivelul retea timpul de propagare al unei datagrame variaz˘ a ¸ a ˆ limite foarte largi. s aa ˆ a acestora li se asociaz˘ un nivel de prioritate sc˘zut. 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). ˆ plus. Functionarea la trafic ridicat ¸ Sunt permise ¸i alte date (de exemplu. De aceea. cu mici modific˘ri. ¸ a a a s 5. prin conexiuni f˘r˘ trafic garantat). 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. Radu-Lucian Lup¸a s 146 5. fluxurile ce au rezervat a at In resurse au capacitate garantat˘.3) pot a s fi utilizate. .3. ˆ acest fel. ˆ fiecare ruter se ıns˘ a a In utilizeaz˘ un mecanism bazat pe priorit˘¸i. 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. Nivelul transport Rolul nivelului transport este de-a face o adaptare ˆ ıntre serviciile oferite de nivelul retea ¸i nevoile aplicatiilor. ¸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.

care a a a ¸ este utilizat˘ de o alt˘ retea ca ¸i cˆnd ar fi o leg˘tur˘ direct˘ (vezi fig.8: Leg˘turi prin tunel. incluzˆnd antetele specifice acesteia. O parte dintre leg˘turile directe din reteaua A. Exist˘ ˆ a cˆteva metode generale. dintre care vom analiza aici a ıns˘ a metoda tunel˘rii. Un tunel este o leg˘tur˘. 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.5. dup˘ caz. 5. dar este construit˘ de reteaua B prin a a a ¸ a ¸ intermediul nodului 6.c 2008. a a ¸ figurate cu linie punctat˘. dar exist˘ ¸ ¸ a s a suprapuneri ˆ ıntre adresele alocate ˆ aceste retele. prin datagrame a ale primei retele. sunt obtinute apelˆnd la serviciile retelei B. a a s a adaptate nevoilor de interoperabilitate ¸i particularit˘¸ilor retelelor de inters at ¸ conectat.8). 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. 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. Leg˘tura 4–5 a ¸ a ¸ a apare ca leg˘tur˘ direct˘ pentru reteaua A. ¸ . retele ce utilizeaz˘ acela¸i protocol. a Reteaua A ¸ 2 1 4 3 5 8 4 10 6 7 (a) Reteaua A. 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. Nivelul retea ¸i nivelul transport ¸ s 147 5. realizat˘ prin intermediul unei retele. sunt ¸ a transportate ca date utile printr-o conexiune sau. Radu-Lucian Lup¸a s Capitolul 5. ¸ a s ¸ Motivele de existent˘ a retelelor distincte pot fi: retele ce utilizeaz˘ ¸a ¸ ¸ a protocoale diferite la nivel retea.

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

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

. probabilitatea s˘ existe dou˘ dintre ele n˘scute ˆ aceea¸i zi din an este a a a ın s √ a peste 50%. La aceast˘ a a ¸ a lungime. exist˘ 2n posibilit˘¸i pentru continutul unui bloc. repetarea unui bloc de text cifrat este probabil s˘ apar˘ ˆ a a ıncepˆnd de a la 232 blocuri.1.1. Considerˆnd ¸ a at ¸ a o distributie uniform˘ a continutului fiec˘rui bloc. ¸i cifru flux (engl. a Pentru un cifru bloc (un cifru care cripteaz˘ independent blocuri de a text clar de o anumit˘ lungime fix˘). care cripteaz˘ mesaje ¸ s a . ın ¸ cu p num˘r prim mare. problem˘ cunoscut˘ de mult˘ vreme dar f˘r˘ rezolvare eficient˘ cunosa a a a aa a cut˘.5. valoarea minim˘ rezonabil˘ pentru n este 64 de biti. 256 de biti). se consider˘ c˘ va fi fezabil a ¸ ın a a ˆ jurul anului 2015. ˆ general. un ¸ir de 2n/2 blocuri are ¸ a ¸ a s probabilitate cam 1/2 s˘ aib˘ cel putin dou˘ blocuri cu continut identic. Exist˘ dou˘ tipuri de cifruri: cifru bloc (engl. ın a a care cripteaz˘ cˆte un bloc de date de lungime fixat˘ (de obicei 64. . a 6. Dac˘ dimensiunea blocului a a este de n biti. 128 sau.c 2008. stream cipher ). block cipher ). ın ¸ ın ¸a a a din cauza unor limit˘ri fizice teoretice. p − 1} a ecuatiei ax = b (mod p). (Acest a a ¸ a ¸ fapt este cunoscut ca paradoxul zilei de na¸tere: ˆ s ıntr-un grup de 23 de persoane. Metode ¸i protocoale criptografice s 157 actual˘ necesitˆnd un efort ˆ jur de un an-calculator. 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). 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˘. Un atac prin fort˘ brut˘ a a ın ¸a a este nefezabil deocamdat˘ de la 80 de biti ˆ sus. 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. De la 128 de biti ˆ sus atacul prin fort˘ brut˘ necesit˘. Acest din urm˘ tip de demonstratie se aplic˘ mai mult la cifrurile asia a ¸ a metrice din § 6. o astfel de cheie este putin probabil c˘ va ¸ a a ¸ a putea fi spart˘ vreodat˘ prin fort˘ brut˘. 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. dimensiunea n a blocului trebuie s˘ fie suficient ¸a a de mare ¸i cheia s˘ fie schimbat˘ suficient de des. Inexistenta unei metode eficiente de spargere nu este nicio¸a a ¸ dat˘ demonstrat˘. .4. ˆ ın ıntr-un grup de k numere aleatoare avˆnd k valori posibile. ˆ majoritatea a a a In cazurilor. Radu-Lucian Lup¸a s Capitolul 6. . ¸ a a ın Ca o consecint˘. a a a eventual. adic˘ 32 GiB.1. ˆ 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˘. 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 .

c 2008. Ultimul bloc se completeaz˘ la lungimea n.1.) Ca ¸i la ECB. 6. exist˘ cˆteva metode standard. 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. a a ın ¸ ECB — Electronic Code Book: Textul clar se ˆ ımparte ˆ blocuri de ın lungime n. ¸i rezultatul se cifreaz˘ s s a ¸i se transmite destinatarului. ˆ biti. Vectorul de initializare se transmite de obicei separat. cu ajutorul unui cifru a bloc.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. at CBC — Cipher Block Chaining: (Vezi fig.1). biti aleatori sau se pot utiliza alte scheme de completare. rezultatul se cifreaz˘ ¸i se trimite. 6. se face xor ˆ as ıntre fiecare bloc de text clar ¸i blocul precedent de text cifrat. bitii ad˘ugati a ¸ a ¸ pot fi zerouri. s Fat˘ de ECB. ˆ functie de vectorul de initializare utilizat. acesta se nume¸te vector de In s ¸ s initializare. Apoi. se alege un ¸ir de n biti aleatori. Dac˘ ın ¸ ¸ a . ¸ Fiecare bloc se cripteaz˘ apoi independent de celelalte (vezi fig. Asigurarea confidentialitatii ¸ de lungime arbitrar˘ ¸i produc bitii textului cifrat pe m˘sur˘ ce primesc bitii as ¸ a a ¸ corespunz˘tori din textul clar. a Pentru a cripta un text de lungime arbitrar˘. not˘m cu n lungimea blocului. textul s clar se ˆ ımparte ˆ blocuri ¸i ultimul bloc se completeaz˘ cu biti aleatori. chiar dac˘ nu ˆ ¸elege nimic din textul cifrat.2. critica este nefondat˘ ˆ a a a ıntrucˆt un cifru nu are ca scop a protejarea integrit˘¸ii mesajelor. Radu-Lucian Lup¸a s 158 ˘¸ 6. ın s a ¸ ˆ plus. ˆ a a ın In cele ce urmeaz˘. pe care le vom descrie ˆ continuare. Se ¸ ¸ efectueaz˘ xor pe biti ˆ a ¸ ıntre vectorul de initializare ¸i primul bloc de text ¸ s clar. 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. metoda CBC face ca un acela¸i bloc de text clar s˘ ¸a s a se cripteze diferit. De¸i afirmatia a ınt s ¸ este adev˘rat˘.

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

1. Radu-Lucian Lup¸a s 160 ˘¸ 6. 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.c 2008.2: Criptarea ˆ mod CBC ın .

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

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

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

. Dac˘ se dore¸te comunicatie bidirectional˘. folosind s a ¸a kc . a s • se calculeaz˘ n = pq ¸i φ = (p − 1)(q − 1).1. Criptarea ¸i decriptarea sunt: s ckc (p) = pe dkd (m) = m d (mod n) (mod n) (6. Radu-Lucian Lup¸a s 164 ˘¸ 6. ¸ a a ¸ determinarea cheii secrete kd corespunz˘toare unei chei publice kc trebuie de a asemenea s˘ fie dificil˘ computational. ¸i numai posesorul lui kd ˆ va putea decripta. Numele s ın RSA vine de la initialele autorilor. a a • se calculeaz˘ d cu proprietatea c˘ ed ≡ 1 (mod φ) (utilizˆnd algoritmul a a a lui Euclid). d).1. . . Asigurarea confidentialitatii ¸ Evident. 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 . Cheia public˘ este kc = (n. s˘ se calculeze cheia secret˘ kd corespunz˘toare. cunoscˆnd cheia public˘ kc este posibil. ¸ 6. φ − 1}. kd ) ¸i face public˘ kc . 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).4 (Cifrul RSA): Generarea cheilor se face astfel: • se genereaz˘ numerele prime p ¸i q (de ordinul a 500 cifre zecimale fiecare). 3.c 2008.1) (6. Not˘m c˘ odat˘ criptat un s ıl a a a mesaj. Utilizarea criptografiei asimetrice Pentru preg˘tirea comunicatiei. .5. s Pentru ca sistemul criptografic s˘ fie sigur trebuie ca rezolvarea ea cuatiei ckc (t) = m cu necunoscuta t s˘ fie dificil˘ computational. e). a . receptorul genereaz˘ o pereche de a ¸ a chei (kc . Emit˘torul poate cripta un mesaj. ˆ a trebuie s˘ fie a a ıns˘ a dificil computational. . Shamir ¸i Adelman ˆ 1977. 1. kd ). . . n − 1}.1.2) Cifrul a fost inventat de Rivest. Implicit. kd ) distinct˘ pentru fiecare sens. relativ prim cu φ. ¸ 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 ¸ Exemplul 6. . iar cheia secret˘ este kd = (n. a a Spatiul textelor clare ¸i spatiul textelor cifrate sunt ¸ s ¸ P = M = {0. se utilizeaz˘ cˆte o pereche a s ¸ ¸ a a a de chei (kc . kd ) aleatoare. a s • se genereaz˘ aleator un num˘r e ∈ {2.

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

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

ˆ a cˆteva sl˘biciuni descoperite a a a ıns˘ a a recent o fac destul de nesigur˘. Pentru a face impractic un atac prin fort˘ brut˘.c 2008. s a Emit˘torul unui mesaj t calculeaz˘ s = h(t). canalul nesigur este Internet-ul. transmite t prin ¸a a canalul principal ¸i transmite s prin canalul sigur. Este extrem a ın de r˘spˆndit˘. Seful ˆsi exs a a ¸ ı¸ prim˘ acordul asupra mesajului calculˆnd ¸i trimitˆnd destinatarului s = h(t). Ca exemplu practic. ¸ ın Nume MD5 lungime 128 observatii ¸ Creat˘ de Ronald Rivest ˆ 1991. exist˘ ¸anse mari de g˘sire a unei coliziuni ˆ s as a ıntr-o multime de 2n/2 ¸ intr˘ri. a a a dar are deja cˆteva sl˘biciuni. a SUA). s Functiile de dispersie mai cunoscute sunt descrise ˆ tabelul 6. presupunem c˘ secretara redacteaz˘ un mesaj t la cererea a a ¸efului.1. 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 . 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.2. Conform paradoxului zilei a ¸a a de na¸tere. acest lucru este nefezabil ˆ virtutea a a ın propriet˘¸ii de rezistent˘ la a doua preimagine a functiei de dispersie h. de unde n ≥ 128 sau mai bine n ≥ 160. a Presupunem de asemenea c˘ h este o functie de dispersie rezistent˘ a ¸ a la a doua preimagine ¸i preferabil rezistent˘ la coliziuni. a a s ¸a Dac˘ adversarul este secretara. a Dezvoltat˘ de NSA (National Security Agency. trebuie ca n/2 ≥ 64 a ¸a a (¸i mai bine n/2 ≥ 80). Apoi.2: Functii de dispersie criptografice. a iar canalul sigur este un bilet scris sau o convorbire telefonic˘. De exemplu. 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˘. 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˘. Receptorul testeaz˘ dac˘ s a a h(t) = s. Metode ¸i protocoale criptografice s 167 majoritatea functiilor rezistente la coliziuni satisfac ¸i conditia de rezistent˘ ¸ s ¸ ¸a la preimagine. Deocamdat˘ este mai sigur˘ decˆt MD5. ¸ 6. a a Dezvoltat˘ la Katholieke Universiteit Leuven ˆ a ın 1996. secretara putˆnd alege formularea exact˘ a mesajului t. SHA1 160 RIPEMD-160 160 Tabelul 6. at ¸a ¸ Exist˘ situatii practice ˆ care t este (partial) la dispozitia adversarua ¸ ın ¸ ¸ lui. Radu-Lucian Lup¸a s Capitolul 6.1.2.

¸i de ¸ s s la B la A) ¸i dac˘ mesajele au acela¸i format. preferabil 80 de biti. Un adversar activ poate intercepta un mesaj trimis de A c˘tre B ¸i s˘-l trimit˘ ˆ a s a a ınapoi lui A. ti ) cu si = hk (ti ). Functii de dispersie cu cheie ¸ O functie de dispersie cu cheie (engl. Dac˘ aceea¸i cheie k este utilizat˘ a s a pentru autentificarea ambelor sensuri de comunicatie (¸i de la A la B.c 2008. emit˘torul calculeaz˘ s = ¸a a hk (t) ¸i trimite ˆ s ımpreun˘ perechea (s. keyed hash function).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. emit˘¸ a ıntˆ ¸a torul ¸i receptorul se ˆ ¸eleg asupra unei chei secrete k (de exemplu conform s ınt metodelor din § 6. O functie de dispersie cu cheie se utilizeaz˘ astfel: Mai ˆ ai. chiar dac˘ cunoa¸te un num˘r de perechi ın a s a (si . La trimiterea unui mesaj t. avˆnd proprietatea c˘. ¸ ¸ 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 . Dac˘ not˘m ˆ s a ın a a ıntr-un loc sigur dispersia unui fi¸ier. dar particip˘ la calculul at ın a dispersiei: s = hk (t · A) ¸i A trimite spre B perechea (t. nu¸ mit˘ ¸i MAC (message authentication code). Radu-Lucian Lup¸a s 168 6.2. exist˘ dou˘ solutii: a a ¸ • Se utilizeaz˘ chei distincte pentru cele dou˘ sensuri. a a a Orice autentificare prin dispersie cu cheie este a priori vulnerabil˘ a la un atac numit atac prin reflexie. t). t) ˆ care s = hk (t). s). este nefezabil computational s˘ obtin˘ o (nou˘) s ¸ a ¸ a a pereche (s. a a • Fiecare mesaj contine numele entit˘¸ii emit˘toare.3). 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). Receptorul testeaz˘ dac˘ s = hk (t). numele ¸ at ¸a entit˘¸ii nu apare efectiv ˆ mesajul transmis. Eventual. as ¸ parametrizat˘ cu o cheie k. descris ˆ continuare. a s s a ¸ s Dispersia este afi¸at˘ ˆ hexa. o functie de dispersie utilizat˘ pentru controlul ¸ a autenticit˘¸ii mesajelor se cere s˘ fie rezistent˘ la coliziuni.2. pentru cineva care nu a a a cunoa¸te dinainte cheia k. putem controla ulterior dac˘ fi¸ierul a fost sau nu modificat ˆ s a s ıntre timp. atunci A accept˘ mesajul ca s a s a venind de la B. 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. Pentru a preveni un atac prin reflexie. Din acest motiv. este o functie de dispersie hk (t). 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. 6.

Constructia este ˆ a asimetric˘. ¸ 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. ¸ • hash este functia de dispersie criptografic˘ (de exemplu md5 sau sha1 ). ˆ acest caz. respeca ın a a s tiv. pentru verificare dispersiei. utilizˆnd chei a ın ¸ ıns˘ a a diferite pentru crearea dispersiei (numit˘. iar pentru o dispersie cu cheie a ¸ a ¸ sunt suficienti 64–80 de biti). stua a ¸ a diat˘ ˆ paragraful precedent. 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 . respectiv 5C. Semn˘tura digital˘ a a Semn˘tura digital˘ este o constructie similar˘ dispersiei cu cheie. at ¸ a s B se ia de 64 de octeti. rezultˆnd valoarea dispersiei. a . Radu-Lucian Lup¸a s Capitolul 6. 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˘. ¸ 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˘. iar kv este cheia a a a public˘ sau cheia de verificare. ¸ • ipad ¸i opad sunt ¸iruri obtinute prin repetarea de B ori a octetului cu s s ¸ valoarea (hexa) 36. 1997]): hk (m) = hash(K ⊕ opad · hash(K ⊕ ipad · m)) unde: • · reprezint˘ concatenarea. semn˘tur˘) ¸i.2. kv ).3. unde ks este cheia secret˘ sau cheia de semn˘tur˘. Astfel. a • ⊕ este operatia sau exclusiv.c 2008. Rezultatul functiei hash se poate trunchia la lungime mai mic˘ (not˘m ¸ a a c˘ functia de dispersie hash d˘ 128–160 biti. • se execut˘ o criptare ˆ mod CBC cu un vector de initializare zero (sau a ın ¸ initializat cu dispersia mesajului precedent). ¸ • 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). Metode ¸i protocoale criptografice s 169 (conform [RFC 2104. pentru md5 ¸i sha1. a a 6. Trunchierea are ca avantaj mic¸orarea cantit˘¸ii ¸ ¸ s at de informatie pus˘ la dispozitia adversarului.

2. s ¸a . acest argument trebuie s˘ fie un num˘r aleator. Receptorul verific˘ dac˘ vkv (t. ci ¸i a a a s nonrepudiabilitatea mesajelor. 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˘. lent. o semn˘tur˘ nu a a poate fi t˘iat˘ de pe un mesaj ¸i plasat˘ pe alt mesaj. pe de o parte c˘ algoritmul s a a de criptare asimetric. a a s a Unii algoritmi de semn˘tur˘ digital˘ necesit˘ un al treilea argument a a a a pentru functia de semn˘tur˘. Prin urmare. Autentificarea mesajelor • o functie de semnare h. autorul de mesaje semnate genereaz˘ o pereche In a a de chei (ks . 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˘. 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. ¸ a a a a ˆ acest caz exist˘ mai multe semn˘turi valide pentru un acela¸i mesaj. ¸ • o functie de verificare v. de exemplu ın a RSA are aceast˘ proprietate. astfel ˆ at cheia ıncˆ s˘ nu poat˘ fi modificat˘ ˆ timpul transmisiei. a a Semn˘tura digital˘ asigur˘ nu doar autentificarea mesajelor. a a A¸a cum se vede. ¸ ˆ faza preg˘titoare. Constructia simplificat˘ este: a ¸ a hks (t) = dks (t) vkv (t. Ca urmare. t). 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). semn˘tura s depinde ¸i de mesajul de semnat t ¸i s a s s de semnatarul acestuia (mai exact de cheia ks ). Ca urmare. Acest lucru se ˆ ampl˘ deoarece cheia de ıntˆ a semn˘tur˘ este cunoscut˘ doar de c˘tre emit˘tor. trebuie utilizat un canal sigur. 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 La transmiterea cheii publice. se aplic˘ asupra dispersiei ¸i nu asupra ˆ a s ıntregului mesaj (dispersia se calculeaz˘ mai repede decˆt criptarea asimetric˘). Totu¸i. a a a ın Autorul mesajului t creaz˘ semn˘tura s = hks (t) ¸i transmite perechea a a s (s. doar emit˘torul a a a a ¸a ¸a poate genera semn˘tura.c 2008. kv ) ¸i transmite cheia public˘ kv receptorului sau receptoarelor. 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. Metoda are dou˘ avantaje. Radu-Lucian Lup¸a s 170 6. s) = true. prezenta unei semn˘turi verificabile a ¸ a atest˘ faptul c˘ documentul a fost produs de emit˘tor.

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

c 2008. emit˘torul a ¸a a s ın ¸a trimite mesajul propriu-zis). Pentru corectarea acestei probleme. Receptorul memoreaz˘ numerele unice ale mesajelor primite. La primirea unui mesaj. adversarul poate trimite copii neu. Pentru aceasta. a a Neajunsul principal al metodei este necesitatea de-a transfera num˘rul aleator dinspre receptor spre emit˘tor.2. ˆ final. ınc˘ ¸a a a¸ receptorul r˘spunde trimitˆnd num˘rul aleator ¸i. Ca ¸i pentru varianta cu a s num˘r de ordine. 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 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. Utilizarea orei la verificarea prospetimii necesit˘ un mecanism ¸ a sigur care s˘ mentin˘ sincronismul ceasurilor dispozitivelor care comua ¸ a nic˘. a a a ın este suficient s˘ participe la calculul semn˘turii mesajului. ˆ plus. In ale mesajului. Autentificarea mesajelor perfect sincronizate ¸i deoarece transportul mesajului nu este instantas ˆ interiorul acestui decalaj admis. 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. 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. ceea ce necesit˘ a s a a a a a adesea ˆ a un mesaj (emit˘torul spune vezi c˘ vreau s˘-ti spun ceva. 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). Radu-Lucian Lup¸a s 172 6. de exemplu o sesiune In . 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. este necesar ca a ¸a In receptorul s˘ ¸tie c˘ urmeaz˘ s˘ primeasc˘ un mesaj. copii ce vor fi acceptate ca proaspete de destinatar. num˘rul aleator nu este necesar s˘ fie inclus ˆ mesaj. ˆ cazul unui schimb de mai multe mesaje. 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. num˘rul unic al ¸ a a mesajului va fi p˘strat pˆn˘ la ora 08:12:55).

Stabilirea cheilor ˆ paragrafele precedente. iar apoi se calculeaz˘ dispersia sau sema ıntˆ a n˘tura mesajului criptat. ˆ a. ˆ caz contrar. Dac˘ autentificarea se face prin semn˘tur˘ a a a digital˘. rezult˘ un alt text clar decˆt cel ın a a a original (vulnerabilitate de tip fals existent). Pentru aceast˘ metod˘. num˘r unic pe care receptorul ˆ verific˘ la primirea mesajului.c 2008. receptorul trimite num˘rul aleator. • Se cripteaz˘ doar textul clar. 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]. s a 6. a s a a a 6. Dac˘ autentificarea se face prin a a dispersie cu cheie. 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. • Se cripteaz˘ mai ˆ ai mesajul. am presupus c˘ partenerii de comunicatie In a ¸ dispun deja de cheile necesare cript˘rii ¸i autentific˘rii mesajelor transmise. a Combinarea cript˘rii cu autentificarea se poate face ˆ trei moduri: a ın • Se calculeaz˘ ˆ ai semn˘tura sau dispersia. La dea a schiderea conexiunii. Mesajul trece testul de autenticitate. iar apoi la textul cifrat rezultat se adaug˘ a a semn˘tura sau dispersia textului clar. 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. metoda nu prezint˘ vulnerabilit˘¸i (ˆ caz contrar. Combinarea cript˘rii. ˆ a dispersia sau semn˘tura se calculeaz˘ ca ¸i cˆnd ıns˘ a a s a num˘rul ar fi parte a mesajului. De¸i nu a a s exist˘ o sl˘biciune cunoscut˘. ın a ıl a Dac˘ num˘rul unic are o singur˘ valoare valid˘.3. se poate conveni c˘ num˘rul a a a a a a nu se transmite efectiv. 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.5. 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. a a ¸ a Acest mod de combinare a cript˘rii cu dispersia cu cheie este utilizat de a protocolul ssh versiunea 2. iar apoi se cripteaz˘ rezula ıntˆ a a tatul concaten˘rii datelor utile cu dispersia sau semn˘tura. 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. se poate combina num˘rul aleator cu un num˘r de ordine.2. a at ın se poate ar˘ta c˘ functia de dispersie este vulnerabil˘ la fals existent). ıns˘ ˆ urma decript˘rii cu noua cheie. Radu-Lucian Lup¸a s Capitolul 6. Metode ¸i protocoale criptografice s 173 ssh. ˆ a s a In .

eventual. ˆ ın ınceperea comunicatiei ¸ propriu-zise cu ajutorul cheii respective constituie confirmarea cheii. O cheie a a a a . a doua entitate fie nu are nevoie s a In s˘ o autentifice pe prima (de exemplu. a a a a ¸ ˆ cazul unei chei simetrice. Spre deosebire de cazul cheilor a s simetrice. 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. actiunea prin care cheia este generat˘ ¸i In ¸ as f˘cut˘ disponibil˘ partenerilor de comunicatie se nume¸te stabilirea cheii . a ˆ cazul unei chei publice. 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˘). Actiunea de satisfacere a acestei cerinte poart˘ a ¸ ¸ a denumirea de autentificarea cheilor ¸i este obligatorie ˆ orice proces de s ın stabilire a cheilor. unde transmisia unei chei ˆ ıntre partenerii de comunicatie se face ¸ doar pentru o cheie proasp˘t generat˘. Radu-Lucian Lup¸a s 174 6. • Cheia stabilit˘ s˘ fie proasp˘t˘ ¸i.3. a a ¸ • Receptorul cheii s˘ poat˘ verifica dac˘ cheia mai este valid˘. Not˘m c˘. sau pot fi chei publice pentru criptografie asimetric˘ sau pentru a semn˘tur˘ digital˘. 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.5). Este posibil s˘ nu se prevad˘ confirmarea cheii ca parte a a a a protocolului de stabilire a cheii. Stabilirea cheilor cele ce urmeaz˘. Aceast˘ cerint˘ este util˘ pentru a preˆ ampina a ¸a a ıntˆ situatia ˆ care un adversar. ˆ acest caz. ¸ ın s s a ¸ a ar putea determina entit˘¸ile care comunic˘ s˘ refoloseasc˘ acea cheie. caz ˆ care cheile le vom numi ın chei simetrice. a fie utilizeaz˘ un mecanism de autentificare a utilizatorilor (§ 6. 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. ˆ anumite cazuri. ˆ 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. ˆ astfel de cazuri. care reu¸e¸te s˘ obtin˘ o cheie mai veche. Actiunea care verific˘ satisfacerea ¸ ¸ a aceastei cerinte poart˘ denumirea de confirmarea cheii. 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. at a a a • Fiecare entitate ce comunic˘ s˘ aib˘ confirmarea c˘ partenerul de coa a a a municatie a primit efectiv cheia. vom studia cum se poate face ca aceste chei s˘ fie disponibile a a partenerilor. Transmiterea celor dou˘ tipuri de chei au cerinte distincte. Cheile respective pot fi chei pentru criptografie simetric˘ sau a pentru autentificare prin dispersie cu cheie.c 2008. a doua entitate este un server public).

• prin intermediul unui utilizator uman (§ 6. Ea este creat˘ special a pentru o anumit˘ ocazie ¸i este distrus˘ imediat dup˘ aceea. s a • Interventia manual˘ ˆ stabilirea cheilor trebuie s˘ fie minim˘. Dup˘ utilizare. a s a a din motive de vitez˘.c 2008. Dup˘ rolul lor fat˘ de un mecanism de stabilire a cheilor. cheile efemere sunt as chei simetrice. obtine. prin dispersie cu cheie. uneori. cheia necesar˘ a comunic˘rii cu partenerul dorit. O a at cheie efemer˘ se utilizeaz˘ pe durat˘ scurt˘. Ideal. permitˆnd o comunicatie securizat˘ cu un a a a ¸a ¸ a tert de ˆ ¸ ıncredere. • chei de lung˘ durat˘ (engl. utilizate ˆ cadrul mecanisa a ın melor de stabilire sau certificare a cheilor. fiecare entitate dispune de o a a singur˘ cheie de lung˘ durat˘. 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. session key). ephemeral key) sau chei de sesiune (engl. cheile se a ¸a numesc: • chei efemere (engl. 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.3. long-term key). 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. prin intermediul tertului de ˆ ¸ ¸ ıncredere. ¸ a ın a a s un prim transport manual al unei chei este ˆ ıntotdeauna necesar. Atunci cˆnd entitatea are nevoie s˘ comunice cu o alt˘ a a a entitate. . cheia respectiv˘ poate a a a fi ¸tears˘.5). utilizate pentru comunicatia propriu-zis˘ ˆ ¸ a ıntre dou˘ entit˘¸i. Totu¸i. 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. Cheile de lung˘ durat˘ pot fi a a chei simetrice sau chei asimetrice. de exemplu pe durata unei a a a a conexiuni sau pentru a cripta un singur mesaj. a a a ˆ prezenta unui adversar. comunicatia propriu-zis˘ este protejat˘ prin cripa ¸ a a tografie simetric˘ ¸i. Deoarece.

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

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

a a • decripteaz˘ mesajele trimise de A lui B (acestea fiind criptate cu k1 ). Stabilirea cheilor ˆ prezenta unui adversar activ ın ¸ Vom studia ˆ continuare problema stabilirii unei chei de sesiune ˆ ın ıntre dou˘ entit˘¸i. ˆ urma protocolului. a . 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. In a a s s chei de lung˘ durat˘. sau ˆ s ıntre B ¸i s un tert de ˆ ¸ ıncredere ¸i ˆ s ıntre tert ¸i A. a ¸ a protocolul Diffie-Hellman nu este aplicabil transmiterii mesajelor prin po¸t˘ sa electronic˘.2. Ca urmare.c 2008.1 ¸i 6. 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 .3.2 sunt aplicabile ın s doar ˆ absenta unui adversar activ.3. o astfel de caracteristic˘ este cunoa¸terea unei chei a a a s secrete. Atacul man-in-the-middle Protocoalele descrise ˆ paragrafele 6. ˆ a ın a ¸ In general. fie se aplic˘ un protocol de tipul Diffie-Hellman. care a ın ˆ ımpiedic˘ forma pur˘ a atacului man-in-the-middle. Ca dezavantaj. ¸s 6.3.1. ˆ general. a 2. ˆ prezenta unui adversar activ.3.1. presupunem c˘ A ¸i B ¸i-au stabilit anterioar˘ a protocolului). dup˘ care le cripteaz˘ (¸i eventual le s a a a s autentific˘) utilizˆnd cheia k2 . 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. Stabilirea cheilor mai rapid˘ decˆt regenerarea la fiecare mesaj a unei perechi de chei pentru a a un cifru asimetric. a 6. a a s Exist˘ multe protocoale de stabilire a cheilor ˆ aceast˘ situatie. este necesar˘ o comunicatie interactiv˘. Fiecare parte trimite celeilalte un nonce (de exemplu un num˘r aleator). bazate pe transmiterea ˆ fragmente a mesajelor.3. Fie una dintre p˘rti genereaz˘ aleator o cheie ¸i o transmite criptat a¸ a s partenerului. ˆ 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. eventual le modific˘. a le cite¸te. totu¸i. simetrice sau asimetrice. A ¸i B. Radu-Lucian Lup¸a s 178 6.3. aceste protocoale se construiesc astfel: 1. a a • comunic˘ cu B jucˆnd rolul lui A pentru a stabili o cheie de sesiune k2 . pentru criptare ¸i autentificare. 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˘.1. a a Exist˘ metode.

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

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

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

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

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 .

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

.

.

. . . . . . . . . . . . . . . 2. . a 2. . . .3 Coduri optime . . . . . .3. . . . . . . . . . . . . .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 . . . . . . . . . . . . Notiuni de teoria informatiei ¸ ¸ 2. .4. . . . .c 2008. . . . . .1 Modelul erorilor . . . . . . . . s 2.3 Cˆteva coduri detectoare sau corectoare de erori . . . . . .4.2 Decodificarea ˆ cazul codurilor prefix . .3 Premise generale ˆ elaborarea ¸i implementarea protocoalelor ˆ retele ın s ın ¸ .3.2 Principiile codurilor detectoare ¸i corectoare de erori . .2. . a 2. . . . . . . . . . . .3.1 Bitul de paritate . . . . . 2. . . . .2 Paritate pe linii ¸i coloane . 2. . . . . . . . . . . . . . . . . . . . . .2 Principalele elemente ale unei retele de calculatoare . . . . . . . . . . . .3 Lungimile cuvintelor unui cod prefix . .3. . . . . . . . . . . s 2. . .3.4. . . . . . ¸ 1. . . . . . .2. . s 2. . .2. . .3 Generarea codului optim prin algoritmul lui Huffman 2. a ¸ 2.2 Coduri cu proprietatea de prefix . . . .3. .1 Serviciile oferite de retea . . . . . . . . . . . . . . . . . . . . . . . . ¸ 1. . . . . . . . . . . . . . . . . . . . . . . . . . . ¸ 2. . . 2. . . . . .1 Problema codific˘rii informatiei pentru un canal discret . . 2. . . . . . . . . . . .1 Reprezentarea arborescent˘ a codurilor prefix . . .4. . . . . . 2. . . . . . . . . . . . . . . . . . .4 Compresia fi¸ierelor . . . .4 Coduri detectoare ¸i corectoare de erori . . ın 2. . . . . . . . . . . . . . . . .3. . .1 Cantitatea de informatie . . . . . Radu-Lucian Lup¸a s 195 Cuprins Principii Cuprins Prefat˘ ¸a 1 Introducere 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4. . . . 2. .3 Coduri polinomiale . . . . . . . . . . . s 2. . . . . . . . . . . . . . . . .4. . . . . . . . . . . . . . . . . . .2 Lungimea medie a cuvintelor de cod . . .

. . .2 Antene . . . .3 Tipuri de antene . . . .1 Conectarea fibrelor optice . . . . . ¸ as a 3. . . . . .3. . . . . . . . . . . .5. . . . . at 3.3. . . . . . . . . . . 3. . . . . .5. . . . . . . . ¸ a a 3. . . . . .5 Particularit˘¸i ale sistemelor de comunicatie prin radio at ¸ 3. .4. . . . 3. . . . . . . . . . . . . . . . .3. . . . .3 Utilizarea satelitilor artificiali ai P˘mˆntului . . . . .5. . . . . . . . . . . . . . . . . . . . .1. . . . . . . 3. . . . a a a 3. .5. . . . . . . . . . . . . . . . . 3. . . .5. . 3. . . . . . . . . . . .1 Constructia cablului . . . . .5 Transmisia prin unde radio . . . . .5. . . . . . . . . . . . . . . . . . Radu-Lucian Lup¸a s 196 3 Nivelul fizic 3.1 Modific˘rile suferite de semnale . . . . . .4 Capacitatea maxim˘ a unui canal de comunicatie .5. . . . . . . . . . . . . . . .5. . s 3. . . . Fourier .4 Spectrul radio ¸i alocarea lui . . . . . .4.1. a 3. . . . .5.4 Transmisia prin perechi de conductoare . . . . . . . . . . . . . . . . . . . . . . . .2 Propagarea semnalului optic . . . . . .2 Polarizarea . . . . . . . .6.3. . . . . .5. . . . . a 3. . . . . . . . . . . .6 Emisia directionat˘ ¸i polarizat˘ . . .2 Linia orizontului . . . . . . . . . .3.3 Codificarea informatiei prin semnale continue . ¸ 3. . .5. . . . . .c 2008. . .4 Interferenta undelor . . . . . . .1 Propagarea undelor . . . . . . . . . . . .3 Difractia . . . . . . . . .5. .2. . . . . . . . . . . .3. .2 Modulatia . . . . . . 3. . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . ¸ 3. . . . . . . . . . . . . . . . . . . . . . .5. . . . . a 3. . . . . . . . .5.1 Directivitatea . . . . . . . . . . . . . . . . . . . . . . a ¸ 3. . . . . . . . . . . . . . . . . . . 3. . . . . . . . . . . . . . . . . . . . . . . . . .2 Transmiterea semnalelor . . . . . 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 . 3. . .5. . .1.5 Sc˘derea puterii cu distanta . . . . . . . . .1.2. .2. . . . . . . . . . . . . a ¸ 3. . . . . . . . ¸ s 3. . . . . . . . . . . . . . .1 Scheme de codificare . . . . . . . . . . . . . . . . . . . . . . . . . .1 Polarizarea . . . . . . . . .3 Raza de actiune a unei leg˘turi radio . . ın ¸a 3. . . . . .1 Topologia leg˘turii . . . . . . .4. . . . .2 Analiza transmiterii semnalelor cu ajutorul transformatei . .5. . . . . . .3. . . . . . . . . . . . . . . . . . . ¸ a 3. . . . . . . . .1 Problema transmisiei informatiei la nivelul fizic . . 3. .5 Divergenta undelor . . . . . . . . . . . . . . . . . . .5. . . . . . ¸ 3. . 3. ¸ 3. . . . . . .2. . . . . .2. . . . . . .5. . . . . . . . . . . .5. . . . . ¸ 3. . .5. . . . . . . 3. . . ¸ 3. . . 3. .4 Zgomotul . . . . . . . . . . . . .4 Considerente practice . . . . . 3.3 Securitatea . . . . . . . .5. . . .6. . . . . 3. . .3.1. . . . . . .1 Moduri de propagare . . . . . . . . . . . . .1 Constructia mediului .6. ¸ 3. . . . . . . . . . . .3 Multiplexarea ˆ frecvent˘ . . . . . . . . . . . . . . . . . . . . . . 3. . . . 3. . . . . . . . .3. . . .2 Fiabilitatea . . . . ¸ 3. . . .5.1 Obstacolele . . . . . . . . . .2 Propriet˘¸i ale mediului . . . .5. . . .1. . . . . . .3. . . . . . . . . .4. 3. . . . . . . . . . . . . . . . . . .6.2 Absorbtia ¸i reflexia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3. . . . . . . . .5. . . . .5. . . . . . . . . 3. . . . . . . .6 Transmisia optic˘ . .3 Leg˘tur˘ magistral˘ . . . . . . . . . . . . . . . . .

2. . . . . . . . . . . . 4. . . .3 Formarea (limitarea) traficului .4. . . . . . . . . . . . . . . . . . 5. . .2. . . . . . . . . . . . . . . .2. ¸ 4. . . . . . . . . . . . .6.2. . . .1 Introducere .3 Considerente practice . . .4 Controlul fluxului .3. . . . . . . . . . . .2. .2 Protocoale bazate pe coliziuni ¸i retransmitere . . . 5. a 5. . . . . . . . . . . . .3 Retransmiterea pachetelor pierdute . . . . . . . . 5. 6. .1 Retransmiterea ˆ retele bazate pe datagrame . . . . . . . . . . 5. . . . .2 Controlul accesului la mediu . . . . . . . . . . .1 Calculul drumurilor cu informatii complete despre graful retelei ¸ ¸ 5. . . . . . . . . . . . . . . . . . .1 Cereri de suspendare ¸i de continuare . . . . . . . . . . . .1. .3. . . . . . . . . . . . . . . . . . . . .5 Interconectarea retelelor . . ın Nivelul retea ¸i nivelul transport ¸ s 5. . . . . . . . . . . . . . . . s 4. . . . . . . ın ¸ 5.3 Mecanism combinat cu retransmiterea pachetelor pierdute .1. . . 5 . . . . . . . . . . . . . . . . . . . .1 Alegerea pachetelor de transmis . 4. . . . .2 Trimiterea ˆ avans a mai multor pachete . . . . . . .2. . . .3 Dirijarea ierarhic˘ . .1 Principiul confirm˘rilor pozitive ¸i retransmiterilor . . . .3 Spatiul numerelor de confirmare . . . . . . . .1. . . . . . .2. . . 3.2 Refolosirea cheilor . . . . . .3. . .1. . . . . . . . . . . ¸ 5. . . .2 Retransmiterea ˆ retele bazate pe conexiuni . . . . .2 Mecanismul pas cu pas . . . . .3 Multiplexarea ˆ lungimea de und˘ . . . . . . . . . . . . . . . . ın a 3. . 4. .2 Caracteristici ale mediului . . . a 5. . .4 Metode particulare de dirijare . . . . . . . . . . . . . . . . . . . . . . 5. . . .4. . . . . .6. . .1 Retransmiterea datelor de c˘tre nodurile intermediare . . . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . .3.3. . . . . . . . . 4. . . . .6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ın 4. . . . . . Inv˘t a 5. . . . . . . . . . . . .4 Nivelul transport . . . . . . . .c 2008. . . . . . . . .4. . . . . 6. . . .3 Functionarea la trafic ridicat . s 4. . . . s 4. .2 Algoritmi de dirijare . . . . . . . . . . . . . . . . . .1 Protocoale bazate pe asigurarea unui interval exclusiv de emisie 4. . .2 Calculul drumurilor optime prin schimb de informatii de distant˘ ¸ ¸a 5. . . . . . . . . . . . . . . . . . .2.3 Protocoale mixte . . . . . . . . .5 Metode de difuziune . . . . . . . . . . . . . . 5. . . . . . 4. . . . . . . . . . . . . . 4. . . .2. . . . . . . .4. .5 Multiplexarea ˆ timp . 4 Nivelul leg˘turii de date a 4. . . . . . . . . . 5. . . . ın ¸ 5. 5.1 Inundarea . . . . . .3. . . .1 Asigurarea confidentialit˘¸ii . . . . . . . . . . . . . . . . . .2 Controlul congestiei . . . . . . . . . . a s 4. . . . . . . . . . . . . . . .2 ˆ a¸area rutelor din adresele surs˘ ale pachetelor . . . . . . . . . . . ¸ Metode ¸i protocoale criptografice s 6. . . . . 6 .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 . . . . .1 Detectarea ¸i corectarea erorilor . . . . . . . . . . . . . . . . 5. Radu-Lucian Lup¸a s Cuprins 3. . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Rezervarea resurselor . . . . . . .1. . .2. . . . . . . . . . . .3. ¸ at 6. .2. . . . . . . .2. . . . .

. . . . . . . 6. . .5. .1 Reprezent˘ri pe biti . . . . . . . . . . . . autentific˘rii ¸i verific˘rii prospetimii a a s a ¸ 6. . . . . . . . . . 7. .1. . . . . . .1. . . . . . . . . . . .2. . . . . a ¸a Cuprins . a a 6. . . . . . . . . . . .1.2 Siruri de biti . . 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. ¸ 6. . . . . . ¸ 6. . . . . . . . . .1. . . . . . . . . . . . .1. .3 Reprezentarea numerelor pe un num˘r ˆ a ıntreg de octeti ¸ 7. . . . . . . . . . . . . . .1 Utilizarea functiilor de dispersie . . . . . . . . . . . . . . . . . . .1 Utilizarea criptografiei asimetrice . . . 6. . . .1. . . . . . 7. . . .4 Algoritmi de criptare utilizati ˆ practic˘ . . . . . 6. . . .2. . . . . . . . . . . . . . .1. . . . . . . 6.2. . . . . . . ¸ ¸ 7.3 Stabilirea cheilor cu ajutorul unui tert de ˆ ¸ ıncredere . . . . . . . .5 Criptografie asimetric˘ (cu cheie public˘) . . .5 Transportul prin utilizatori umani . a 6. . . . . . . . . 6. . . .5. . . . . .2 Generatoare de numere pseudoaleatoare .1. . . .5 Combinarea cript˘rii. . . . s ¸ 7. . . . ın ¸ 6.2 Functii de dispersie cu cheie . . . . . . . . . a a 6. . . .2. . .1 Stabilirea cheilor ˆ prezenta unui adversar pasiv . . . . . 6. . . . . . . . . . . . . .1. . .3. . . .2 Reprezent˘ri pe octeti . . . . .3. . . . . . .1 Stabilirea cheilor prin criptografie asimetric˘ . . . . . . . . . . .3 Atacul man-in-the-middle . . . . . .3 Probleme privind reprezentarea lungimii ¸irurilor . . .5 Autentificarea utilizatorilor . . . . . . . . . . . . 6. 6. . . . . . . . . . . ¸ ¸ 7. . . . .3 Generatoare utilizate ˆ practic˘ . . s 7. . . . . .3 Stabilirea cheilor . . . . . . . . . . .1.3 Reprezentarea pe biti a numerelor ˆ ¸ ıntregi . . . . . . . . . . . . .1. . . . . . a ¸ 7.1 Probleme privind reprezentarea numerelor ˆ ıntregi . . . . . . . . . ın a 6.2. . . . . . . .2. . . .1. . . . . . . . . . . . . . . . . . . . . . .1. . ¸ 6. . . . . . . . . ¸ ın a 6. . .1 Generatoare fizice . . .1. . . . . . . . .3. . . . . . . . . . . . . . . .3. . . .4. . . . . . . . . . . . . 6. . . .3 Semn˘tura digital˘ . . . . . . . . . . . .1. . .2. . . 6. . . . . . . . . . . . . .2 Parole de unic˘ folosint˘ . . .1. . . . . . . . .4 Reprezentarea numerelor pe un ¸ir arbitar de biti . . . . . a ¸ 7. . 6. . . . . . . . .1 Functii de dispersie criptografice . . . . .3. . . . . .2. . . .4.3. . . .1 Octeti . . . . . . . . . . . .2. . . . . . . . . . . . 6. . .1. . . . . . . . . . .4 Numere aleatoare . . . .2 Siruri de octeti . .4 Verificarea prospetimii mesajelor . . . . . Radu-Lucian Lup¸a s 198 6. .4. . . . .1 Stocarea parolelor . . . .4 Alte metode de reprezentare a numerelor ˆ ıntregi . . . .2 Autentificarea mesajelor . . 7. . . . . .1. . . .4 Certificarea cheilor publice . . . . .2. . . . . . . . . . . ¸ 7. . .2 Stabilirea cheilor ˆ prezenta unui adversar activ . . . . . .1. . .1. . . . . .3. .3. . . . .5.c 2008. . . . . . . . . . . . . . .1. . ın ¸ 6. . . . . 6. . . . . . . . .1 Bitul . . . . . . . . .2 Stabilirea cheii prin metoda Diffie-Hellman . . . ¸ 6. . . . . . . . . . . . 195 203 203 203 204 204 205 206 206 208 208 210 212 214 . . . .

. . . . . . . . . a 7. . . . . . . . . . . . . . . . . . . . . . . . ¸ s 8. . . a 8. . . . a 7. . . . .1. . . . . . .1 Deschiderea conexiunii de c˘tre client . . . . . . .1 Functia socket() . . . . . . .1. . . . . . ¸ s 8. ¸ a 8. . .2 Codificarea textelor . . . . . . . . . . . . . . . . . . . . 8. .2 Comunicatia prin datagrame . . . . . . . . . . . . . ın a 7. . . . . . . . . .3. .1. .2 Functia connect() . . . . . . . . . . . . . . . . a 7. a ¸ 8 Programarea ˆ retea — introducere ın ¸ 8. . . . . . . .3. . . .3. .2 Formatarea datelor . . . 7. . . . . ¸ 8. . . . . . . .2 ISO-8601 ¸i RFC-3339 . . . . . . . . .3 Timpul POSIX .2 Deschiderea conexiunii de c˘tre server . . . . . . .3 Reprezentarea datei ¸i orei . .1 Interfata de programare socket BSD . . . . .1. . . . . . ¸ 8.4 ˆ Inchiderea conexiunii . .3. . ¸ 8. . . . . . .2 Codific˘rile ISO-8859 . .1. . . . a 7. . .1. . . . . . . . . . . . . . .3. . .3 Functia bind() . . . . . . . . . . .3. . . . . . . .11 Functiile sendto() ¸i recvfrom() . . . . . . . . . . . ¸ 8. . . . . . . . . . . . . . .1. .3. . . . a 7. . . . . . .1. . . . . .2. . 7. . . . . . . . . . . . Radu-Lucian Lup¸a s Cuprins 7. . . ¸ 8. . . . . . . . . . .3. . . . . . . . . . . . . . . . . . .4 TAI 64 . . . . . . . . . . .1. . . . . . . . . . . . . . . . .1. . . . . . . a 7. . ¸ 8. . . . . . . . .3. . . .1. . 8. . .1. . . . . . . . . .2 Codificarea ˆ baza 64 .1 Codificarea ASCII . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1. . . . .2. .3. . . .1. . .3. . . . . .3. . . . . .3. . . .3 Principalele apeluri sistem . . . . ın 7. . . . . .3. . . .1. . . .1 M˘surarea timpului . .4 Functia listen() . . . . . . . . . . . .1. . . . . .1. . . . . .1 Comunicare prin conexiune . . . . . .2. . . . . . . . . s a 7. .6 Formatul adreselor . . . . . .1. .2 Comunicare prin datagrame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . a 8. . . . . . .4 Exemple . . . . .1. 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 .2. . . . . . . . . . . . . . . . . . . . . . . . .3. .2. . . . . . . . .1 Codificarea hexazecimal˘ . . . 7. . .4. . . a 7. . . . .4. . . . . . . . . . . . . . . . . .1. . ¸ 8. . . . .4. . 8. . . . .3 Codific˘rile UTF-32 .1 Comunicatia prin conexiuni . . . . . . . . . .1 Formatul utilizat de po¸ta electronic˘ .3 Codific˘ri bazate pe secvente de evitare . . . . 8. . . . . . . . . . . . . . . . . . .8 Functiile getsockname() ¸i getpeername() ¸ s 8.3. . . . . . . .c 2008. . . . . . . . . .2. . .1. . . . . . . . 7. . . . . . . . . . . . . . . . . . . . . . .3. accept() . . . . . .3. . . . . . . . .4 Recodific˘ri . . . . .3 Comunicatia propriu-zis˘ . . . . . . . . . . . . . . . .1 Codificarea UTF-8 . . . . . . . . . . . .3. . . . . . . . . 7. .4. . .1. . s 7. . . . . . . . . . . . . . . .2 Obiectivele ˆ alegerea reprezent˘rii timpului ˆ calculator ın a ın 7. . . . . . . . . . . . . . ¸ 8. . . . . . . .9 Functiile send() ¸i recv() . . . .3. . . . .1. . . . . . . . . . .1. . .10 Functiile shutdown() ¸i close() . .3. .3. . . . . .2 Codific˘rile UTF-16 . . . . . . . . . . . .1. .3 Codific˘rile Unicode . . . .7 Interactiunea dintre connect(). . ¸ s 8. . . . . . . .3. . . . . . . . 8. listen() ¸i ¸ s 8. . . .3 Formate utilizate ˆ practic˘ . 8. . . . . .3. . . .5 Functia accept() . . . .4. . . . s 7.

. . . . . . . . . .1. . . . . . . . . . .6. . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . .2 Scrierea prefixelor de retea . . .1. . a 9. ¸ 9. . . . . .1. . . . . .2. . .6. . . .2. .6. . .1. . . . . . . . . . . . . . . .1. . . . . . .3. . . . . . ¸ .1 Arhitectura retelei . . . . . . . . 9. . . . . . . . . .4 Pointeri . . . . . . . a a 9. . . . .2. .2. . . . . . . . . . . . .3 Tabela de dirijare .2. . . .1.1 Switch-uri configurabile . .2. . . . . . . . . . . . . . . 10. . . 10. . . . . . . . . . . . . . . . . . .1. . . . . . . . . . s 9. . .2. ¸ 10. . . . . . . ¸ 9. .3 Scrierea ca text a adreselor ¸i prefixelor . . . . . . . . . . . 9. .1. . . . . . . . . . 8. . . . . . . . ¸ s 8. . . . . .1 Alocarea pe utiliz˘ri . . . .2 Alocarea adreselor ¸i dirijarea ierarhic˘ s a . . . .2. .1. . . . .11 . .2 Bazele dirij˘rii pachetelor IP . . . . . . . . . . . .2. . . . . . . . . . . .11 (Wireless) . . . . .2 Accesul la mediu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Leg˘turi redundante . .5 Retele virtuale (VLAN) .1 Retele IEEE 802. .4 Alocarea adreselor IP ¸i prefixelor de retea s ¸ 10. . 9. .1. . . . . . . . . . . . ¸ 9. . . . . .2. . . 8. .2. . . . .c 2008. . . . . . . . .2. . . . . . . . . . . . . . ¸a ın ¸ 9 . . . . . . . .1 Arhitectura retelei . . . . . at 9. . . . . . . . . . a 9. . . . . .1. . . . a 9. . . .4 Probleme privind costul apelurilor sistem 8. . . . . . .2 Protocolul IP .3 Probleme de concurent˘ ˆ comunicatie .1. . .2 Formate text . . . . . . . . . . . . . . . . . . . . . . s 10. . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . ¸ s ¸ 10. . ¸ 10. . . . 9. . . .2. . . . . . . . .1 Leg˘turi punct la punct prin perechi de conductoare a 9. . . . . . a 9. .2 Leg˘turi prin fibre optice . . . . . . 10. . . . . . . . . . .4 Repetoarele ¸i comutatoarele . . . . . . . . . . . . . .3 Generarea pachetelor beacon . . . . . . . . . 10. . . . .4 Securitatea retelelor 802. .4. .1 Subretele ¸i interfete . . . . . .1 Structura pachetului IP . .3 Trunking . . . . . . . . . . . . . . . . . . . . 8.2. .2. . . . . . . . .2. . . . . . . . . . .4. . . . . .3 (Ethernet) . . . ¸ 9. . . . . a 10. . . . . . . . . . . . . . .6. . . . . . . . . . . . . . . . . . . . . . . 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. . . .3 Leg˘turi prin cablu magistral˘ . . . . . .3. . . . . . . . . . . . . . . 10 Internetul 10. . .1. . Cuprins . . . . ¸ s 8. . . . . . . . .2. .2. . . . .2. . . . . . . . . . 8. . .7 Considerente privind proiectarea unei retele . .2 Filtrare pe baz˘ de adrese MAC . . . . . . .1 Formate binare . .1. . . . . . .2. . . . .5 Dirijarea efectuat˘ de comutatoare (switch-uri) . . . . .2. . . Radu-Lucian Lup¸a s 200 8. . . . . . . . . . . . . . ¸ 9. . . . . 8. . . . . .1. . . . . . . . .2 Retele IEEE 802. . . . . . . . . . a 10. . . . .2 Siruri de caractere ¸i tablouri . .1 Scrierea adreselor IP . . . . . . . . . . . .6 Facilit˘¸i avansate ale switch-urilor . . .2. .2. . . . .3 Probleme de robustete ¸i securitate . . . . . . . . . . . ¸ 10. . .1. . .2 Prefixul de retea . . . . . . . .1 Tipuri ˆ ıntregi . . . . . .6. .2. . . . . . .3 Variabile compuse (struct-uri) . . .

. . ¸ 10. . . .2. . 10. . 10. . . . . . .5 ˆ Inchiderea fortat˘ a conexiunii . . .1.7. .5.3. . .4 Identificarea nodurilor dup˘ nume: sistemul DNS . .3.2 Comunicatia bidirectional˘ . . a s 10. . .1. . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Situatii speciale ˆ dirijarea pachetelor . . . . . 10. .2. . 10. . . . . . . . . . . . . . . . s 10. . . . . . . .4.7. . . . . . . .1. . . . .1 Principiul conexiunii TCP . . . . .2 Retele private . . . . . .2 Structura logic˘ a bazei de date DNS . . . . . . . . . . . . . .7. . 10. . .7.2. . . . . . . . . . . . . .2. . . a ¸ 10. . . . . . . . . .1.2. . . . . .5. 10. . . a 10.2. . . . . . . . . . . . . . . . . s ¸ 10. . . a 10.5 Sincronizarea serverelor pentru un domeniu . . . . . . . . a 10. . .3. . . . 10. . . . . 10. . . . . . . .5 Erori la dirijare ¸i protocolul ICMP . . Imp˘ ¸ ın 10. . .5. . .2. . . .10Algoritmul lui Nagle ¸i optimizarea num˘rului de pachete . . . .4 Alegerea num˘rului initial de secvent˘ . . . .1. . . . . a ¸ ¸a 10. . . . . . . . . . . . . .7.1. .3. . . . 10. . . . . . . . . . . . . . . .2. . . . . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Congestia . . . . . . . . 10. . . s a 10. . . . .3. . . . . . . . . . . . .1 Alegerea parametrilor . . . . . . . . .3 ˆ artirea ˆ domenii de autoritate . ¸ a 10. . .6 Identificarea aplicatiei destinatie . .3. . . . . . . . .7. . . . . . . . ¸ ¸ a 10. . . . . . . .1.1 Numele de domeniu .3 Deschiderea ¸i ˆ s ınchiderea conexiunii . .9 Stabilirea time-out-ului pentru retransmiterea pachetelor . . . . . . . . . .6. . .3 Ciclarea pachetelor IP .3. .1. . . . . .4 Mecanismul de interogare a serverelor .5. . . . . . . . . . . .6. . . . . 10. . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . .4. . . . .3 Translatia adreselor (NAT) . . ¸ 10. . . . . . . . . . . 10. .6 Configurarea automat˘ a statiilor — DHCP . . . . . .5 Redirectionarea . . .3 Nivelul transport . . . . . . .3. . . ¸ 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 . . .3. . . . . . . .6 Alte chestiuni privind dirijarea pachetelor . . . . .1 Translatia adresei surs˘ . . . 10. . . . . . . .2 Configurarea parametrilor de retea pe diverse sisteme de op¸ erare .1 Pachete nelivrabile . . . . . . . . . . . . . . . . . . . . . . . . . . ¸ ¸ 10. . . . 10. .7. .5. ¸ a 10. .2. ¸ ın 10. .1 Dimensiunea maxim˘ a pachetelor ¸i fragmentarea . . . . . . . . .2 Datagrame nesigure: UDP . . . . . . . .1 Conexiuni cu livrare garantat˘: protocolul TCP . 10. . .1 Rezolvarea adresei — ARP . .1 Filtre de pachete (firewall) .1. . . . . . . .4. Radu-Lucian Lup¸a s Cuprins 10. . . . . . . . . . . . . . . . . . a a 10. . . . . . . . . . . .5 Leg˘turile directe ˆ a ıntre nodurile IP . . . .3. . . . . . . . . . . . . . . . .4. .3 Testarea ¸i depanarea retelelor . . . . .11Trimiterea datelor speciale (out of band) . .1. . . . . . . .8 Controlul fluxului . . .2 Calitatea serviciului . . . . . . . . . . . . .2. . . . . 10. 10. . . . . . . . . . . . . . . .2 Diagnosticarea function˘rii rutelor . . . . . . . .3. . . .c 2008. . . . . . . . . 10. 10. . s ¸ 10. . . . . . . . . . . . . . . . . . . . . . .4. . . . . . . . . . . 10. . . . . . . . . . . . .2.4. . . . . . . . . . . . .6 C˘utarea numelui dup˘ IP .7 Configurarea ¸i testarea unei retele IP locale . . . . .1. . .7 Corespondenta ˆ ¸ ıntre functiile socket() ¸i actiunile modulu¸ s ¸ lui TCP . . . . . . 10. . . ¸ 10. . .3.3. .5. . . . .

2 Transmiterea mesajelor . . . . .2. . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Chei primare ¸i subchei . .2. . . . . .4 Controlul perioadei de valabilitate a cheilor . . . . . s ın ¸ 11. . . . . . . . . . . . . . . .2 URL-urile . . . . . . .4. . . . . . . . s 11. . . . . . . . . . . . . .5 Gestiunea cheilor secrete . . . . . . 11.3 Ata¸area fi¸ierelor ¸i mesaje din mai multe p˘rti s s s a¸ 11. . 11. . . .1 Po¸ta electronic˘ . . . . . . . 11. .3. . . . . . . . .3. . . . . .4. . . . . a 11. . . . . .1. . . . . . . . . .1. 11. . . . . . . .1. . . . 11. . . . .3 Transmiterea mesajelor criptate sau semnate . . . .2. . . 11. . . . . . . . .4. . . . . . s a 11. .3 Multiplexarea conexiunii. . . . . . . . . 11.1. . . . . . . .1 Transmiterea cheilor publice . .1. . . Radu-Lucian Lup¸a s 202 Cuprins 10. . . . . . . . .1. . .1. . . . . . .4 Tunelarea . . . . . . . .1 Formatul mesajelor . . . . . . . tunelarea ¸i aplicatii . . . . . . . . . . . . . . . . . . . . . . 11. . . . . .2. . . . .2. . . .c 2008. .4. . . . . . .1 Antetul mesajelor . . . .1. . . . . . . . . . . . at 11. .1 Structura cheilor GnuPG . . . . . . . . . . . .2. 11. . . . . . . . . . . . . . . . . at 11. . . . . . .4. . . . . . . .2. .1 Protocolul SMTP . .4 Proxy HTTP . . . . . . . . . . s 11. . . . . .3 Transferul fi¸ierelor ˆ retea . . . . . . . . . . . . . .2. . . . .1. . . . .1. . . . . . .1. . . . . .3 Alte facilit˘¸i HTTP . . . . . . . . . .3. . . .2. 11. 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 . . . . . . . . .3 Securitatea po¸tei electronice . . . .3. . . . . . . . . . . . . . . .2. . . . . . . . . .3. s 11. . . .1. . . . 11. . . . . . . . . . . . . . 11. . . . . . . . . .1. . . . .2 Utilizatori ¸i identit˘¸i . . . . .4. . . . .1.3 Generarea ¸i modificarea cheilor . 11. . . .3 Configurarea unui MTA .1 Protocolul ftp . . 350 ¸ ¸ 10. . . . . . . . .2 Metode de autentificare ˆ ssh . . . . . . . . . . . . . . . .5 Conexiuni securizate: SSL/TLS .6 Utilizarea TLS pentru web . . . . . . . s 11. . .4. . .4 PGP/GPG . . . . 11. . . . . .3. .3. . . . . . . .2. . . . . . . . . . . . . . . 11. .1. . . . . a 11. . . . .2. . . . . . . . . . . . . . . . .2. .1. . . . . . .1. . .4 Codificarea corpului mesajului ¸i a ata¸amentelor s s 11.2 Translatia adresei destinatie . .2. . . . .7. . . . .1 Conexiunea ssh protejat˘ criptografic .1. . . . . . . . . . . .1 Protocolul ssh . . . . . . . . . . . . . . . .3. . . . . . . . .1. . . . . . . .1.4. . . . . . . . . . . 11. . 11. . . .7. . . . . . . .3. . . . . . s at 11. . . . . . . . . . . 351 11 Aplicatii ˆ retele ¸ ın ¸ 11.2. . .1 Structura cererilor ¸i a r˘spunsurilor . . .1. . .1. . .2 Protocolul HTTP .2 Extensii MIME . .2 Sesiuni interactive la distant˘ . . . . . . . . . . . . . . . . . . . . .2 Verificarea autenticit˘¸ii cheilor . . ¸a 11. . .2. .4. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . s ¸ 11. . 11. . . 11. . . . . . . . . . . . . . . . ın 11.2 Determinarea urm˘torului MTA . . . . . . .2 Transmiterea ¸i certificarea cheilor publice . .2 Sistemul X-Window . . . . . . . . . . . . . . . .4. . . . s a 11. . . .

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

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

num˘rul a s a a respectiv este 25. a a a ın num˘rul este 19. Aceast˘ reprezentare este s a asem˘n˘toare scrierii numerelor ˆ limbile semite (araba ¸i ebraica. distingem a ¸ cifra unit˘¸ilor. . ¸ a Dac˘ acest ¸ir este reprezentarea big endian a unui num˘r. . 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. 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 + .1.3.ˆ ¸elege“ ınt alt num˘r decˆt cel transmis de emit˘tor.. pe care o ¸ a ın presupunem cunoscut˘.obi¸nuite“ a ın ın s (indo-europene). 2. dac˘ un sistem transa a mite un num˘r ˆ reprezentare little endian.1.1: Fie ¸irul de biti 11001. un ¸ir de biti b0 b1 . Aceasta alegere s a este identic˘ celei utilizate ˆ scrierea numerelor ˆ limbile . bn−1 In a a s ¸ reprezint˘ num˘rul a a b0 · 2n−1 + b1 · 2n−2 + . cu scriere de la stˆnga spre dreapta. iar cel˘lalt sistem interpreteaz˘ a ın a a ¸irul de biti primit ca fiind ˆ s ¸ ıntr-o reprezentare big endian. Se mai nume¸te a s big endian. 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.2) pe pozitia cea mai din stˆnga. + bn−1 · 2n−1 . Codificari de interes practic 205 7.. . . cifra de pondere 22 = 4. Ca urmare. Primul bit al ¸irului este cifra de pondere maxim˘. ˆ reprezentarea ˆ a In ıntr-o baz˘ de numeratie. 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). Dac˘ reprezentarea a fost f˘cut˘ ˆ format little endian. cifra de pondere 21 = 2 (ˆ baza zece at a ın s-ar numi cifra zecilor. a . 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. Radu-Lucian Lup¸a s ˘ Capitolul 7. . etc. receptorul . Exemplul 7. ˆ care am scris primul bit (ˆ sensul s ¸ ın ın din § 7. Se mai nume¸te little endian. + bn−1 · 20 .1.1. Primul bit al ¸irului este cifra de pondere 1. avˆnd ponderea 20 = 1. Fiind dou˘ scheme de reprezentare distincte.c 2008. . ˆ aceast˘ schem˘ de reprezentare. pentru baza 2 nu avem un nume).

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

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

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

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

programatorul trebuie s˘ aib˘ ˆ vedere c˘ operatiile aritmetice a a ın a ¸ . pentru nuın mere ˆ ıntregi. Multe dintre formatele de fi¸iere prev˘d formate little endian. ˆ majoritatea limbajelor de programare. trebuie stabilit printr-un standard dac˘ se utilizeaz˘ un format little endian sau big a a endian. O astfel de schem˘ este o generalizare a ¸ a schemei prezentate ˆ paragraful precedent. a a La memorarea pe disc sau la transmiterea printr-o conexiune. 4 sau 8 octeti. ˆ ordinea fixat˘ de unitatea aritmetic˘. ın sunt reprezentate pe 2. transmis. 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˘. a Astfel de numere se manipuleaz˘. Pentru ca o astfel de schem˘ s˘ fie ın s a a complet definit˘. ¸ ın a a Este posibil˘ utilizarea.2. Dup˘ acest criteriu. Probleme privind reprezentarea numerelor ˆ ıntregi aritmetic˘ cere reprezentare little endian. 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˘.normale“ fie nu pot fi executate deloc. precum ¸i num˘rul de octeti pe care se reprezint˘ fiecare num˘r memos a ¸ a a rat sau. 7. Reprezentarea numerelor pe un ¸ir arbitar de biti s ¸ Ne vom ocupa ˆ continuare de metode de reprezentare.4.3). Radu-Lucian Lup¸a s 210 7. respectiv.. de obicei. La manipularea aces¸ ¸ a a tor variabile.1. De asemenea. conexiunea a as s spre cel˘lalt calculator. In ¸ a s a . a unei reprezent˘ri a diferite de cea a unit˘¸ii aritmetice. fors a a s matul TIFF pentru imagini. ˆ 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. 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. pentru anumite variabile ˆ a ıntregi. Majoritatea protocoalelor pentru Internet prev˘d a formate big endian pentru numerele ˆ ıntregi transmise.1. un program poate transfera direct ¸iruri de octeti at s ¸ ˆ ıntre o variabil˘ ˆ a ıntreag˘ local˘ ¸i fi¸ierul de pe disc sau. Exist˘ ¸i formate (de exemplu. un program care transfer˘ date trebuie s˘ inverseze ¸a a a ordinea octetilor imediat ˆ ¸ ınainte de scrierea pe disc sau de trimiterea pe conexiune. ¸a a a a Dac˘ formatul de pe disc sau de pe conexiune coincide cu formatul a unit˘¸ii aritmetice locale. Dac˘ formatul de pe disc sau de pe conexiune este a a invers fat˘ de cel local.1. precum ¸i imediat dup˘ citirea de pe disc sau receptionarea de pe s a ¸ conexiune.c 2008. prelucrˆnd separat fiecare octet.1. ın s Variabilele de tip ˆ ıntreg. fie nu se efectueaz˘ corect asupra lor. respectiv. ın O astfel de metod˘ de reprezentare se bazeaz˘ pe reprezentarea nua a merelor ˆ baza 2 (vezi ¸i § 7.

iar la punctul al treilea se utilizeaz˘ relatia (7.1. ın • little endian. Radu-Lucian Lup¸a s ˘ Capitolul 7.1) a ¸ ın s ¸ a ¸ sau dup˘ o alt˘ metod˘. 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 a a ¸ Rezult˘ astfel dou˘ metode coerente: a a ˆ aceast˘ metod˘.rational˘“. a a • dac˘ numerotarea bitilor ˆ cadrul ¸irului de biti se face dup˘ relatia (7. cu valori concrete a = 11 ¸i b = 300. se a at ¸ reprezint˘ ˆ format little endian. numerotarea bitilor ˆ In a a ¸ ıncepe cu cel mai putin semnificativ bit al primului octet. 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. 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. a ın ˆ cadrul acestor dou˘ metode. In a a ¸ ıncepe cu cel mai semnificativ bit al primului octet. se reprezint˘ a at ¸ a ˆ format big endian. indiferent pe cˆ¸i biti s-ar reprezenta. indiferent pe cˆ¸i biti s-ar reprezenta. Aceast˘ schem˘ ¸ ¸ ¸ a a de reprezentare este ilustrat˘ ˆ figura 7. fie formatul little endian pentru a a amˆndou˘. ceilalti ¸ ¸ 4 biti ai primului octet vor fi cei mai semnificativi 4 biti ai lui b. iar cel de-al ¸ ¸ doilea octet va contine cei mai putin semnificativi 8 biti din b.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. a ¸i b. ¸ a ¸ Dac˘ alegem metoda big endian. a a a ˆ Intr-o schem˘ de reprezentare . • 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). schema de reprezentare va utiliza cei a mai semnificativi 4 biti ai primului octet pentru a-l reprezenta pe a. ˆ s ın a ¸ s a ¸ In total avem 4 + 12 = 16 biti. ˆ care a se reprezint˘ pe 4 biti ¸i b se reprezint˘ pe 12 biti.1). ¸ ın Exemplul 7. a ın s Dac˘ alegem metoda little endian. numerotarea bitilor ˆ • big endian.c 2008. 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. formatele de reprezentare rezultate ¸ coincid cu formatele de reprezentare pe octeti studiate ˆ paragraful precedent. ˆ aceast˘ metod˘. Orice num˘r. la primele dou˘ puncte se utilizeaz˘ a ¸ a a a fie formatul big endian pentru amˆndou˘. ¸ ¸ ¸ ¸ . adic˘ 2 octeti. Codificari de interes practic 211 unei astfel de scheme de reprezentare.

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. s b0 1 b1 0 b2 1 b3 1 Nr.2. 7. de-a scrie ¸ s a cifrele mai semnificative ˆ stˆnga. este necesar ca receptorul a s s˘ poat˘ determina num˘rul de obiecte transmise.3).c 2008.1. ın a Figura 7.2: Reprezentare little endian pentru num˘rul 11 pe 4 biti urmat de a ¸ num˘rul 300 reprezentat pe 12 biti (exemplul 7. Radu-Lucian Lup¸a s 212 7.2. ın a Figura 7. Acest lucru este valabil a a a .3. Aceast˘ ¸ ¸ a schem˘ de reprezentare este ilustrat˘ ˆ figura 7. 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.3). cu valori concrete a = 11 a a ın ¸i b = 300. a ¸ b0 1 b1 1 b2 0 b3 1 Nr. Probleme privind reprezentarea lungimii ¸irurilor s Oridecˆteori se transmite un ¸ir de obiecte. La scrierea valorilor bitilor ˆ octet ¸ ¸ ın (coloana din mijloc) s-a utilizat conventia obi¸nuit˘. Probleme privind reprezentarea numerelor ˆ ıntregi iar cel de-al doilea octet va contine cei mai semnificativi 8 biti din b.1: Reprezentare big endian pentru num˘rul 11 pe 4 biti urmat de a ¸ num˘rul 300 reprezentat pe 12 biti (exemplul 7. 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. descris˘ ˆ s ¸ s ın a ın § 7.1.4. La scrierea valorilor bitilor ˆ octet ¸ ¸ ın (coloana din mijloc) s-a utilizat conventia obi¸nuit˘.

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

numerele a a In ın a sunt separate de obicei prin spatii. se numesc formate binare. ˆ s In cadrul acestui format. s s a s s ˆ format text.. In a a reprezentarea fiec˘rei cifre ocup˘ exact un octet. studiate ˆ § 7. ˆ acest scop.1. Radu-Lucian Lup¸a s 214 7. caracterul sau caracterele astfel alese ¸ pentru a marca sfˆr¸itul unui ¸ir nu pot s˘ apar˘ ˆ ¸irul propriu-zis. ci ca un octet avˆnd a a ca valoare codul ASCII pentru caracterul .2. ˆ cadrul acestui format. as s a a ın s Ca urmare. fiind necesar˘ mai departe a a a ˆ cazul codific˘rii ASCII.1. ın s a a pentru reprezentarea numerelor ˆ ıntregi se mai utilizeaz˘ urm˘toarele tipuri de a a formate: • Formatul text. 3016 ). s a • Formatul binar-zecimal. 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.2). etc. echivalent. Probleme privind reprezentarea numerelor ˆ ıntregi spatiu. o schem˘ de reprezentare a textelor (vezi § 7. cu exceptia cazului num˘rului 0 care se reprezint˘ ca o a ¸ a a singur˘ cifr˘ zero. iar a ıntˆ ın apoi fiecare cifr˘ zecimal˘ este reprezentat˘ pe 4 biti conform metodelor a a a ¸ din § 7.2. ¸ . 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. a a Fiecare cifr˘ se reprezint˘ ca un caracter. binary coded decimal. Descriem putin mai pe larg reprezentarea numerelor ˆ format text.1.0“.3 ¸i § 7. num˘rul este reprezentat mai ˆ ai ˆ baza 10. acesta este 48 (sau. reprezentarea num˘rului este un In a text format din caracterele corespunz˘toare cifrelor reprezent˘rii zecia a male (obi¸nuite) a num˘rului.c 2008. Alte metode de reprezentare a numerelor ˆ ıntregi Schemele de reprezentare (formatele) pentru numere ˆ ıntregi.1. Pe lˆng˘ formatele binare. Deoarece lungimea reprezent˘rii este variabil˘. 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). caractere tab. cifra 0 nu se reprezint˘ ca un octet cu valoarea 0. ˆ acest a a ıns˘ a ın caz. caractere newline etc.2. a s a ¸ 7.4. 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). Orice alegere s-ar face. se utilizeaz˘ conventiile de reprezentare a numerelor In a ¸ ˆ textele scrise: se ˆ ın ıncepe cu cifra cea mai semnificativ˘. ˆ reprezent˘rile text. De remarcat ˆ a c˘. numit ¸i BCD din engl.1.4.4. ¸ ın deoarece o astfel de reprezentare se utilizeaz˘ frecvent ˆ protocoalele ˆ retea.

adline (.. bitul cel mai semnificativ fiind ¸ ın scris ˆ stˆnga. Valorile octetilor sunt scrise ˆ baza 2. pentru num˘rul ¸ s ¸ a 300. 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. de exemplu. Codificarea textelor Prin text ˆ ¸elegem aici un text scris ˆ limbaj natural sau ˆ ınt ın ıntr-un limbaj de programare.normale“. a a ¸ BCD big endian pe 4 octeti ¸i BCD little endian pe 4 octeti. Utiliz˘ri ale caracterelor de control sunt. Radu-Lucian Lup¸a s ˘ Capitolul 7. ın ın semne de punctuatie. f˘r˘ formatare avansat˘. ¸ a . ˆ aceea¸i idee. cursive s a (.c 2008. Nu se face distinctie ¸ s ¸ ˆ ıntre diferitele variante de-a scrie o aceea¸i liter˘ (litere .italice“). ın a pozitie ¸ octet (nr.bold“). Caraca ın terele sunt ˆ principal literele din alfabetul limbii ˆ care este scris textul. sunt definite caractere a a de control. avˆnd rolul de a marca puncte (locuri) ˆ cadrul textului sau fraga ın mente din text. s • concatenarea unor texte sau alte operatii de sintez˘. 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.4: Red˘m mai jos reprezent˘rile text ASCII terminat cu spatiu. trecerea a la rˆnd nou sau interzicerea trecerii la rˆnd nou (ruperea rˆndului) ˆ a a a ıntr-un anumit punct. 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. etc).2. Codificari de interes practic 215 Exemplul 7. Pe lˆng˘ caracterele grafice. descrise mai sus. care trebuie s˘ fie permise de ¸ a codificarea aleas˘. sunt ˆ principal urm˘toarele: a ın a • afi¸area textului. aa a Un text este v˘zut ˆ general ca o succesiune de caractere.. Operatiile efectuate asupra textelor.. cifre ¸i diferite alte semne grafice.

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

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

s Ordinea numeric˘ a codurilor din oricare dintre codific˘rile ISO-8859 a a este diferit˘ de ordinea alfabetic˘. ¸ . Codurile de la 0 la 127 corespund acelora¸i caractere ca ¸i ˆ codificarea ASCII.2. 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.3. UTF-16LE. a a a datorit˘ modurilor de codificare definite. ˆ a ıntre 1 ¸i 4 octeti pentru s ¸ un caracter. s s ın Reprezentarea codurilor unicode ca ¸iruri de octeti poate fi f˘cut˘ ˆ s ¸ a a ın mai multe moduri. literele cu diacritice au a codurile mai mari de 128 ˆ vreme ce literele f˘r˘ diacritice au coduri ˆ ın aa ıntre 65 ¸i 123. de 4 a a octeti pentru fiecare caracter. la aproximativ un milion (mai exact. Radu-Lucian Lup¸a s 218 7. ınc˘ a ın a Codurile unicode sunt numere de la 0 la 220 + 216 − 1. ˆ ordinea alfabetic˘. 2 a a sau 4 octeti pentru un caracter. UTF-32BE sunt codific˘ri de lungime fix˘. a la 11000016 = 1114112). coın durile ˆ a nedefinite putˆnd fi definite ˆ versiuni urm˘toare ale standardului. un text ASCII este ˆ ıntotdeauna interpretat corect ca text ISO-8859-n. Nu toate aceste coduri sunt definite ˆ prezent.2. s 7. • UTF-16. de exemplu.c 2008. UTF-16BE sunt codific˘ri de lungime variabil˘. UTF-32LE. ˆ ı¸ a a aa ın codific˘rile ISO-8859-1 sau ISO-8859-2. 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. literele a a In ın a cu diacritice ˆsi au locul imediat lˆng˘ literele similare f˘r˘ diacritice. ˆ general. Pe de alt˘ parte. Num˘rul de caractere din unicode este limitat. un text scris ˆ ISO-8859-n ¸i interpretat a ın s ca ISO-8859-m va fi evident interpretat gre¸it. Cele mai r˘spˆndite codific˘ri sunt: a a a • UTF-8 este o codificare de lungime variabil˘.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. ¸ • UTF-32. Ca urmare.

Radu-Lucian Lup¸a s ˘ Capitolul 7. Codificarea formei cu virgul˘ a fost a a a a a standardizat˘ mai recent. Codificari de interes practic 219 Caracter ˘ A ˘ a ˆ A ˆ a ˆ I ˆ ı S .c 2008.2: Caracterele cu diacritice din alfabetul limbii romˆne ¸i codific˘rile a s a unicode corespunz˘toare. T ¸i ¸ au cˆte dou˘ forme utilizate: a a ¸ s ¸ s t a a una cu virgul˘ dedesupt. Conform normelor stabilite de Academia a a a Romˆn˘. s . 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. ¸. motiv pentru care multe documente utilizeaz˘ ˆ a forma a a ınc˘ cu sedil˘. cealalt˘ cu sedil˘. T . forma corect˘ este cea cu virgul˘. Not˘: caracterele S. a . t .

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

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

fazele lunii (luna sinodic˘ ). 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.3.1.ora curent˘“. a ceasurilor atomice. Reprezentarea datei ¸i orei s prin . legat a de rotatia P˘mˆntului.3. zile. 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. M˘surarea timpului a Exist˘ dou˘ metode utilizate pentru indicarea timpului curent (datei a a ¸i orei curente): s • pe baza unor fenomene astronomice. • anul. Radu-Lucian Lup¸a s 222 7. ¸ • anul. pentru un observator aflat 360 .. etc. 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. ˆ a s a a a ıncepˆnd a cu anii 1950. (Unghiul respectiv este unghiul orar. a a Ca urmare a acestor complicatii. as s 7. de exemplu oscilatia unui pendul ¸ sau vibratia unui cristal de cuart.c 2008. ın Timpul universal UT1 este de fapt m˘sura unui anumit unghi. anume alternanta zi-noapte (ˆ ter¸ ın meni astronomici. exprimat˘ ˆ unit˘¸i de timp (24 h ˆ loc de ¸ a a a ın at ın ◦ ). ı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. s a • pe baza unui fenomen fizic repetabil. iar apoi vom vedea ce scheme de reprezentare ale datei ¸i a s orei exist˘ ¸i ce avantaje ¸i dezavantaje aduce fiecare dintre ele. 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). ziua solar˘ mijlocie). ¸ ¸ Prima variant˘ este de interes practic imediat pentru sincronizarea a activit˘¸ilor umane. luna ¸i ziua sunt incomensurabile (rapoartele duratelor lor sunt s numere irationale). eventual. Timpul (fizic) a ajuns s˘ poat˘ fi a a definit independent˘ de mi¸carea P˘mˆntului doar dup˘ dezvoltarea. ore. mai precise decˆt mi¸c˘rile P˘mˆntului. alternanta anotimpurilor (anul a ¸ tropic) ¸i. Secundele TAI se grupeaz˘ a ˆ minute.

proces aproape echivalent cu a muta UTC cu o secund˘ a ˆ acest scop. se adaug˘ o a a a secund˘ de corectie (engl.) Curge neuniform datorit˘ neunia formit˘¸ii mi¸c˘rii de rotatie a P˘mˆntului. India are ora legal˘ UTC+5h30min). 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. s a Astfel. dup˘ ora 23:59:59 urmeaz˘. la o secund˘. adic˘ 86400 s. diferenta dintre ora legal˘ ¸i UTC cre¸te. se elimin˘ o secund˘ din ultimul minut al unei zile. Timpul universal coordonat (UTC) este bazat pe secunda SI. diferenta TAI−UTC este ˆ s ¸ ın prezent de 33 s. In ın 60. 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. 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). respectiv as ¸ as s scade. De exemplu. a ¸ a ¸ Ca urmare. ın Ora suplimentar˘ introdus˘ la trecerea de la ora de var˘ la cea de a a a iarn˘ nu are notatie distinct˘. 23:59:60 ¸i abia dup˘ ˆ a a a a s a ınc˘ o secund˘ ora 0:00:00 a zilei urm˘toare. a ¸ s a A 24-a secund˘ de corectie se va ad˘uga la sfˆr¸itul anului 2008. exist˘ perechi de a a a momente de timp care sunt notate la fel ¸i ca urmare ora legal˘ este ams a bigu˘. Radu-Lucian Lup¸a s ˘ Capitolul 7. Codificari de interes practic 223 pe meridianul 0◦ .c 2008. astfel a ¸ a as ˆ at ziua de 31 decembrie 2008 va avea 86401 secunde. 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. de tipul secundelor de corectie din UTC. Timpul legal ˆ fiecare ¸ar˘ este definit fie pe baza UT1. dar gruparea secundelor ˆ zile este modificat˘ pentru a mentine diferenta ın a ¸ ¸ dintre UT1 ¸i UTC la sub o secund˘. ultimul minut al zilei are 61 de secunde ˆ loc de ˆ ınapoi. leap second ) la o zi. astfel c˘ la a a a o secund˘ dup˘ 23:59:58 urmeaz˘ ora 0:00:00 a zilei urm˘toare. 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. la trecerea de la ora de iarn˘ la In ta ın a a a a cea de var˘ ¸i invers. s a a . cu o or˘ (de notat c˘ UTC nu are or˘ de var˘). Dac˘ UT1−UTC se apropie de −1 s. fie pe baza UTC ın t a (diferenta este neglijabil˘ pentru uzul practic). al soarelui mijlociu. dup˘ media ultimilor cˆ¸iva at s a ¸ a a a at ani. atunci notatia 3:30:00 poate corespunde la dou˘ ¸ a momente de timp. Dac˘ UT1−UTC se apropie a a a de 1 s. 24 h UT1 este aproximativ 86400.002 s SI. la trecerea de la ora de var˘ la ora de iarn˘. astfel ˆ at acea zi UTC a ¸ ıncˆ are 86401 s. a ˆ ¸˘rile ˆ care exist˘ or˘ de var˘. Datorit˘ unei ıncˆ a diferente initiale de 10 s ˆ ¸ ¸ ıntre TAI ¸i UTC. o zi UTC normal˘ are 24 ore a 60 minute a 60 secunde SI a fiecare.

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

fractiuni de secund˘. a a a secund˘. prescurtare din englez˘. Formate utilizate ˆ practic˘ ın a Deoarece ˆ ıntr-o retea pot fi prezente calculatoare situate pe fusuri ¸ orare distincte. lun˘. pentru calcule exacte ale duratelor. ın ¸ ın functionarea ceasului sistem presupune. 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.1. rezolv˘ simplu punctul 1. Punctul 3 ridic˘. ¸ a a a a a • ziua. zi. ca prescurtare de 3 litere din limba englez˘). 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˘. pentru tratarea corect˘ a acestor cazuri este a a a necesar s˘ se ¸tie. Codificari de interes practic 225 4. TAI. sunt necesare informatii cu ¸ privire la secundele de corectie.3. s • luna. reprezentarea datei se face ca text s a ¸i contine. s 7. sub forma an. minut. ca ¸ir de trei litere. pe lˆng˘ problemele coa a a a mune cu cele legate de punctul 2. ˆ schimb aceste date sunt necesare la conversia ˆ a ın ıntre reprezentarea UTC ¸i timpul legal. JD.3. ¸ 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˘. Formatul utilizat de po¸ta electronic˘ s a Pentru po¸ta electronic˘ (§ 11. pe ce fus orar este considerat˘ ¸i care a s a a s sunt regulile privind ora de var˘. Reprezentarea direct˘ a orei legale. de asemenea. ca num˘r ˆ a ıntre 1 ¸i 31. adunarea unei durate ¸ ın de timp la un moment de timp. Radu-Lucian Lup¸a s ˘ Capitolul 7.1). pentru aplicatii speciale. ˆ ordine: s ¸ ın • optional ziua din s˘pt˘mˆn˘. Punctul 3 este important ˆ aplicatiile ˆ timp real.c 2008. at 7. s a . etc). ˆ mod repetat. or˘.3.3. a a s de asemenea. Punctul 1 este cerut de toate sistemele. UTC. fie transmite suficient˘ informatie pentru ca receptorul s˘ poat˘ a ¸ a a calcula u¸or ora UTC. 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. despre fiecare or˘. aproape orice format util ˆ retea fie transmite direct ora ın ¸ UTC sau TAI. citirea sau afi¸area timpului ˆ alte formate ¸ s ın (timpul legal al altui fus orar. Punctul 2 este important pentru foarte multe aplicatii ¸i rezolvarea lui corect˘ interzice mutarea ceasului ¸ s a ˆ ınapoi.

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

Ora UTC a ˆ formatul obi¸nuit se obtine grupˆnd secundele ˆ minute.c 2008. De aceea. dou˘ cifre pentru secund˘ (00–60. fractiunile s a ¸ de secund˘ se separ˘ de cˆmpul pentru secunde prin punct. num˘rul dat ca dat˘ nu este exs a a act num˘rul de secunde scurse de la 1 ianuarie 1970. 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. 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. 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. Num˘rul de secunde este a a ¸ a reprezentat pe 63 de biti (plus un bit rezervat).3. de ordinul a 1011 ani. zile. . eventual fractiunile de secund˘ ¸i eventual specificarea fusu¸ ¸ as lui orar. 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˘. incluzˆnd secundele de corectie. De fapt. ore. Intervalul de timp reprezentabil este imens.3.342-05:00 Data ¸i ora se specific˘ ˆ s a ımpreun˘ punˆnd litera T ˆ a a ıntre ele: 2007-10-28T14:12:58. minutul ¸i secunda sunt separate prin dou˘ puncte. cu a s 14:12:58. ¸i ca ¸ s urmare valoarea cea mai mare ce poate fi reprezentat˘ corespunde datei de 19 a ianuarie 2038.timpul unix“ are salturi ˆ ¸ a a ınapoi de cˆte a o secund˘ la fiecare introducere a unei astfel de secunde de corectie. dar pe alt fus orar. Codificari de interes practic 2007-10-28 227 Ora se reprezint˘ prin 2 cifre pentru or˘ (00–23). ˆ functie ¸i de prezenta unei sea a ın ¸ s ¸ cunde de corectie). luni ¸i ın s ¸ a ın s ani conform regulilor obi¸nuite. Radu-Lucian Lup¸a s ˘ Capitolul 7. cu valoarea 262 corespunzˆnd ¸ a datei de 1 ianuarie 1970 ora 0 TAI.342-05:00 7.342+02:00 reprezint˘ acela¸i moment de timp..3.4. 2 cifre pentru minut a a (00–59). Exemplu: a ¸a 21:12:58. Ora. Timpul POSIX ˆ sistemele de tip UNIX (conforme standardului POSIX). ora 3:14:07 UTC.3. 7.

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

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

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

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

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

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

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

Programarea ˆ retea — introducere ın ¸ 235 ¸i memoria alocat˘ ˆ spatiul nucleului). Functia ofer˘ ın ¸ a apelantului continutul datagramei (datele utile) ¸i. Mai mult.2. ın a rar˘) ca o datagam˘ s˘ fie duplicat˘ (s˘ ajung˘ dou˘ copii la destinatar) ¸i a a a a a a a s . receptorul poate citi ˆ continuare datele existente ˆ acel moment ˆ coad˘. datagramele sunt transmise indepenIn ¸ dent una de cealalt˘ ¸i fiecare datagram˘ are o adres˘ surs˘. scrierea poate duce ¸i la primirea. 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. oricˆte ¸ a datagrame ¸i oricˆtor destinatari. de c˘tre procesul emit˘tor. unde sunt memorate ˆ buffer-ele sistemului. o adres˘ destinatie as a a a a ¸ ¸i ni¸te date utile. iar a a ¸ atribuirea unei adrese se face prin apelul bind(). recvfrom() nu poate fi instruit˘ s˘ ia ˆ In a a ın considerare doar datagramele expediate de la o anumit˘ adres˘. exist˘ posibilitatea (e drept. Radu-Lucian Lup¸a s Capitolul 8. 8. 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˘. s a ın ¸ Terminarea unui proces are efect identic cu un apel close() pentru toate socket-urile existente ˆ acel moment ˆ posesia acelui proces.1. O dat˘ creat un socket. Dup˘ crearea ın ¸ a unui socket. ın ın ın a dup˘ care un eventual apel recv() va semnaliza apelantului faptul c˘ a fost a a ˆ ınchis˘ conexiunea. ˆ ciuda numelui. 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(). ın ın Dac˘ cap˘tul de emisie al unui sens de comunicatie a fost ˆ a a ¸ ınchis. separat. Destinatarul poate ın citi o datagram˘ apelˆnd functia recvfrom(). s a Datagramele emise sunt transmise c˘tre sistemul de operare al desa tinatarului. 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.c 2008. De pe un socket se pot trimite. succesiv. prin apelul functiei sendto(). adresa expeditoru¸ s lui datagramei. Comunicatia prin datagrame ¸ ˆ comunicatia prin datagrame. 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. 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. un astfel de socket contine ıntˆ a ¸ ˆ principal adresa de retea a procesului posesor al socket-ului. Crearea unui socket se face prin apelul functiei socket(). a Dac˘ cap˘tul de receptie al unui sens a fost ˆ a a ¸ ınchis. a s a ¸a unui semnal SIGPIPE).

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

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

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

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

connect() ¸i sendto()). ¸ Dimensiunea structurii de date ce contine adresa de retea depinde ¸ ¸ de tipul de retea ¸i.c 2008. aceasta ˆ In ıncepe cu un ˆ ıntreg pe 16 biti reprezentˆnd tipul de ¸ a retea.2.1. precum ¸i pentru cele ce rea ¸ s s turneaz˘ apelantului adrese de retea (accept(). 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. ˆ functie de protocolul de nivel s ın ¸ . pentru anumite tipuri de retea. ˆ a s ın ¸ ın timpul apelului. Radu-Lucian Lup¸a s 240 8.3. ˆ plus. recvfrom(). Din acest motiv: a • functiile care primesc de la apelant o adres˘ (connect(). parametrul pointer c˘tre structura de adres˘ este declarat In a a ca fiind de tip struct sockaddr*.3. Pentru nevoile functiilor de mai sus. getsockname() a ¸ ¸i getpeername()). Structura zonei de memorie respective depinde de tipul retelei utilizate. dimensiunea este ¸ s ın ¸ variabil˘. ¸ 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. la revenirea din apelul accept(). ¸ ¸ ˆ toate cazurile. ˆ consecint˘.1. functiile ¸ s ın ¸a ¸ primesc adresa printr-un pointer la zona de memorie ce contine adresa de ¸ retea. Formatul adreselor Pentru functiile socket ce primesc de la apelant (ca parametru) o ¸ adres˘ din retea (bind().2). s ¸ adresele socket-urilor TCP ¸i UDP se pun. cu dimensiunea pe care a alocat-o pentru structura de adres˘ ¸i ˆ care functia pune. ın ˆ acest caz. recvfrom().3. de structura adresei).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. 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*. a • functiile care furnizeaz˘ apelantului o adres˘ (accept(). Interfata de programare socket BSD ¸ addr.1. ˆ ¸ ınaintea apelului. 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. sunt definite structuri de date (struct) ˆ care se plaseaz˘ s ın a adresele socket-urilor. § 10. dimensiunea utilizat˘ efectiv de astuctura de adres˘.6. 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.1. a a ˆ ambele cazuri.6 ¸i § 10. 8. ¸ 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.

avˆnd un singur ¸ a cˆmp. Are tipul struct in_addr.c 2008. f˘r˘ semn.4) se face cu ajutorul functiei ¸ struct hostent *gethostbyname(const char *name). 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. ˆ ¸ ıntr-o structur˘ de tip sockaddr_in pentru IPv4 sau a sockaddr_in6 pentru IPv6. care returneaz˘ rezultatul ˆ a ıntr-un buffer static. de tip ˆ a ıntreg pe 4 octeti ˆ ordine retea. sin6 addr:contine adresa IP. ˆ ordine retea (cel ¸ ¸ aa ın ¸ sin6 port:de tip ˆ mai semnificativ octet este primul). a ¸ Obtinerea unei adrese IPv4 sau IPv6 cunoscˆnd numele de domeniu ¸ a (vezi § 10. 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). ıntreg de 16 biti (2 octeti). apelantul trebuind s˘ copieze a rezultatul ˆ ınainte de un nou apel al functiei. a ¸ a sin port:de tip ˆ ıntreg de 16 biti (2 octeti). 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. Are tipul struct in6_addr. Pentru adrese IPv4 este definit˘ structura sockaddr_in avˆnd urm˘a a a torii membrii: sin family:trebuie s˘ contin˘ constanta AF_INET. struct in_addr *inp). ˆ ordine retea (cel ¸ ¸ aa ın ¸ mai semnificativ octet este primul). ¸ ı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 a sin addr:contine adresa IP. reprezentˆnd num˘rul portului. reprezentˆnd num˘rul portului. AF_INET sau AF_INET6. Programarea ˆ retea — introducere ın ¸ 241 retea (IPv4 sau IPv6). s6_addr. a a sin6 flow:eticheta de flux. Conversia invers˘. avˆnd un singur ¸ a cˆmp. Radu-Lucian Lup¸a s Capitolul 8. f˘r˘ semn. s_addr. . de tip tablou de 16 octeti.

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

void *buf. ea returneaz˘ valoarea −1 ¸i seteaz˘ variabila global˘ a s a a ˆ cazul ˆ care functia send() scrie cel putin un errno la valoarea EAGAIN. la un moment ulterior.3. dac˘ nu exist˘ spatiu suficient ˆ buffer-ele In a a ¸ ın sistemului de operare. Astfel. Radu-Lucian Lup¸a s Capitolul 8. 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.c 2008. dar f˘r˘ a fi apelat a aa bind()) dup˘ care determin˘. Programarea ˆ retea — introducere ın ¸ 243 cere primirea cererilor de conexiune (apelˆnd listen().1. a ¸ a a a Prin plasarea valorii MSG_DONTWAIT ˆ parametrul flags. este a a ¸ s In sarcina procesului emit˘tor s˘ apeleze din nou. sau −1 ˆ caz de eroare. ˆ ambele cazuri. prin apelul getsockname(). Functia returneaz˘ controlul dup˘ plasarea datelor de transmis ˆ buffer¸ a a ın ele sistemului de operare al ma¸inii locale. functia ¸a a ¸ send() ˆ vederea scrierii octetilor r˘ma¸i. eventualele erori legate de transmiterea datelor nu pot fi raportate . ˆ cazul ˆ care functia s a In ın ¸ send() nu scrie nimic. ¸˘ 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. 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. ssize_t recv(int sd. Valoarea returnat˘ de functia s a ¸ send() este num˘rul de octeti scri¸i efectiv.9. 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). ın ¸ a s Deoarece functia send() returneaz˘ ˆ ¸ a ınainte de transmiterea efectiv˘ a a datelor. ˆ acest caz. int flags). ın a as a s s Sintaxa functiilor este: ¸ ssize_t send(int sd. s a a ¸ 8. dac˘ nu exist˘ suficient spatiu ˆ buffer-ele ın a a ¸ ın sistemului de operare. 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. int flags). functia send() scrie doar o parte din datele furnizate ¸ ¸i returneaz˘ imediat controlul procesului apelant. ea returneaz˘ num˘rul de octeti scri¸i efectiv. acest comportament ın este modificat. const void *buf. ¸ ¸a ˆ modul normal de lucru. size_t len. Functiile send() ¸i recv() ¸ s Apelurile sistem send() ¸i recv() sunt utilizate ˆ faza de comunis ın catie pentru socket-uri de tip conexiune. size_t len. 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. In ın ¸ ¸ octet.

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. iar receptorul. 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. 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˘. Radu-Lucian Lup¸a s 244 8. ¸ s a a ¸ ¸ MSG WAITALL:functia recv() a¸teapt˘ s˘ fie disponibili cel putin len octeti ¸i cite¸te exact len octeti. cd ¸i ef. 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. este posibil ca emit˘torul s˘ trimit˘. ¸irurile de octeti abc ¸i def. Dac˘ ¸ ın ¸ a ˆ momentul apelului nu exist˘ nici un octet disponibil ˆ buffer-ele sistemului ın a ın de operare local. fragmentele ce vor fi disponibile succesiv pentru s a ın receptor sunt independente de fragmentele furnizate ˆ apelurile send(). care are ca efect implicit terminarea imediat˘ a procesului a emit˘tor. a s ˆ plus. functia recv() a¸teapt˘ sosirea a cel putin un octet. Pot s˘ apar˘ dou˘ tipuri de a a a a erori: c˘derea retelei ¸i ˆ a ¸ s ınchiderea conexiunii de c˘tre receptor. apelurile recv() efeca ¸a tuate de procesul receptor vor citi mai ˆ ai datele r˘mase ˆ buffer-e. 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. s ¸ s ˆ cazul ˆ In ınchiderii conexiunii de c˘tre emit˘tor.c 2008. adresa unei zone de memorie unde s˘ a a plaseze datele citite ¸i num˘rul de octeti de citit. functia recv() returneaz˘ valoarea −1 ¸i seteaz˘ variabila global˘ errno la a s a a valoarea EAGAIN. s s ¸ Este important de notat c˘ datele sunt transmise de la sistemul de opa erare emit˘tor spre cel receptor ˆ fragmente (pachete). Dac˘ num˘rul de octeti disponibili ˆ buffer-ele sistemului de operare a a ¸ ın este mai mic. pe sistemele de tip UNIX. s˘ primeasc˘ ab. iar ıntˆ a ın . Functia prime¸te ca argumente identificatorul ¸ s socket-ului corespunz˘tor conexiunii. 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. apelˆnd repetat recv() cu s ¸ s a len=3 ¸i flags=0. ˆ final. Interfata de programare socket BSD ¸ apelantului prin valoarea returnat˘ de send(). Functia ¸ s a ¸ ¸ returneaz˘ num˘rul de octeti transferati (cititi de pe conexiune). prin dou˘ apeluri send() consec¸a a a a utive. doar octetii disponibili ˆ acel moment vor fi transferati. Ca ın urmare.1. ¸a Functia recv() extrage date sosite pe conexiune ¸i aflate ˆ buffer¸ s ın ul sistemului de operare local.

Poate fi efectuat oricˆnd asupra oric˘rui tip de socket. indiferent de modul de terminare. Functia close() distruge socket-ul sd. size_t len. Functiile sendto() ¸i recvfrom() ¸ s ssize_t sendto(int sd. 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). Dup˘ apelul ¸ a close(). const void *buf. socklen_t *fromlen). conform valorii parametrului how: SHUT_WR. Parametrii ¸ a reprezint˘ : a • sd: socket-ul de pe care se transmite datagrama.3. Functiile shutdown() ¸i close() ¸ s int shutdown(int sd. SHUT_RD sau respectiv SHUT_RDWR.1.c 2008. 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. const struct sockaddr *to. ssize_t recvfrom(int sd. 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. printr-un s ın mecanism identic cu cˆte un apel close() pentru fiecare socket. int flags. Functia shutdown() ˆ ¸ ınchide sensul de emisie. are ca efect ¸i distrugerea tuturor socket-urilor existente ˆ acel moment. a a Terminarea unui proces. 8. void *buf.11. a 8. size_t len. Functia a a ¸ shutdown() poate fi apelat˘ doar pe un socket conectat ¸i nu distruge socketa s ul. Functia sendto() trimite o datagram˘ de pe un socket dgram. int close(int sd). Programarea ˆ retea — introducere ın ¸ 245 dup˘ epuizarea acestora vor returna valoarea 0. a a a . int flags. sensul de receptie sau ¸ ambele sensuri de comunicatie ale conexiunii identificate de indetificatorul de ¸ socket sd.10. socklen_t tolen). Prin urmare. struct sockaddr *from. Radu-Lucian Lup¸a s Capitolul 8. adic˘ a c˘rui adres˘ va a a a fi utilizat˘ ca adres˘ surs˘ a datagramei. 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. Dac˘ socket-ul era un socket ¸ a conectat ˆ acel moment. Apelul close() este necesar pentru a elibera resursele ocupate de socket. Dealtfel.1. ˆ ın ınchide ambele sensuri de comunicatie.3. int how).

cu exceptia a ¸ s a a ¸ cazului ˆ care flags contine valoarea MSG_DONTWAIT.1. caz ˆ care recvfrom() ın ¸ ın returneaz˘ imediat valoarea −1 ¸i seteaz˘ errno la valoarea EAGAIN. a • buf: pointer spre o zon˘ de memorie ce contine datele utile. ˆ trimite un ¸ir de ın a ıi s caractere fixat (abcd). Datele utile sunt un ¸ir arbitrar de octeti. Exemple 8.h> int main(int argc.h> #include <netdb.c 2008. 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 ¸a 8.1. 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. Dac˘ nu exist˘ a a a a a nici o datagram˘.h> #include <stdio. len reprezint˘ a ¸ a lungimea datelor utile. trebuie s˘ a fie egal˘ cu dimensiunea. Functia recvfrom() s a a ın ¸ returneaz˘ dimensiunea datagramei.1.h> #include <string.4. a s s s a #include <sys/socket. a zonei de memorie alocate pentru adresa a ın ¸ emit˘torului. char* argv[]) { . 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.h> #include <unistd. functia a¸teapt˘ sosirea urm˘toarei datagrame. dup˘ care cite¸te ¸i afi¸eaz˘ tot ce trimite server-ul. ¸ ¸ tolen reprezint˘ lungimea structurii pointate de to. ˆ a ınainte de apelul recvfrom(). finalul datagramei este pierdut. Interfata de programare socket BSD ¸ • to: pointer spre structura ce contine adresa de retea a destinatarului. Dac˘ datagrama este mai mare decˆt a a a valoara parametrului len. functia recvfrom() ¸ nu scrie niciodat˘ dincolo de len octeti ˆ memoria procesului. a Functia recvfrom() cite¸te din bufferele sistemului de operare local ¸ s urm˘toarea datagram˘ adresat˘ socket-ului dat ca parametru. 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. ˆ octeti. Radu-Lucian Lup¸a s 246 8.4.h> #include <netinet/in.1. Parametrul fromlen trebuie s˘ pointeze la o ın a a variabil˘ de tip ˆ a ıntreg a c˘rui valoare. punˆnd ˆ ea ¸a ¸ a a a a ın dimensiunea utilizat˘ efectiv pentru scrierea adresei emit˘torului. a ¸ ın Adresa emit˘torului datagramei este plasat˘ de functia recvfrom() ¸a a ¸ ˆ variabila pointat˘ de from. Functia recvfrom() modific˘ aceast˘ variabil˘.

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

struct sockaddr_in my_addr. close(sd). ntohs(cli_addr. return 1. (struct sockaddr*)&my_addr.sin_addr). 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. sd=socket(PF_INET. "Utilizare: srv port\n").sin_addr. inet_ntoa(cli_addr. port. 1).sin_family = AF_INET.c 2008. (struct sockaddr*)&cli_addr. cli_addr. sd_c = accept(sd. #include <sys/socket. return 1.h> #include <netinet/in. cli_addr_size=sizeof(cli_addr). &port)){ fprintf(stderr.sin_port=htons(port). my_addr. sizeof(my_addr)) ) { perror("bind()"). my_addr. printf("client conectat de la %s:%d\n".h> #include <string. return 1. } my_addr. if(argc!=2){ fprintf(stderr. 0). SOCK_STREAM. socklen_t cli_addr_size. Radu-Lucian Lup¸a s 248 8. } listen(sd. if(1!=sscanf(argv[1]. 0))>0){ .h> #include <arpa/inet.1. while((r=recv(sd_c. if(-1==bind(sd. sd_c.h> #include <stdio.h> int main(int argc. 100. sizeof(my_addr)). } memset(&my_addr. char* argv[]) { int sd. "numarul de port trebuie sa fie un numar\n"). buf. 0.h> #include <unistd.sin_port) ).h> #include <netdb. r. "%d". &cli_addr_size).s_addr=htonl(INADDR_ANY). char buf[100].

a a a ¸ ıl s a #include <sys/socket. &port)){ fprintf(stderr.h> #include <stdio. "numarul de port trebuie sa fie un numar\n").h> #include <string. a c˘rei continut ˆ afi¸eaz˘.1. char* argv[]) { int port.h> #include <netdb. return 0. return 1. struct sockaddr_in adr. sizeof(adr)). struct hostent* hh. sd.c 2008. "Utilizare: cli adresa port\n"). } memset(&adr.h> #include <unistd. hh=gethostbyname(argv[1]). Radu-Lucian Lup¸a s Capitolul 8.4. if(hh==0 || hh->h_addrtype!=AF_INET || hh->h_length<=0){ .2. r. "%d". close(sd_c). 0). return 1. "xyz".buf. if(1!=sscanf(argv[2].sin_family = AF_INET.sin_port = htons(port). char buf[100]. adr. } adr. } send(sd_c. 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. } if(r==-1){ perror("recv()"). Programarea ˆ retea — introducere ın ¸ write(1. return 1.r). socklen_t adr_size. if(argc!=3){ fprintf(stderr.h> int main(int argc.h> #include <arpa/inet. } 249 8. 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. 0.h> #include <netinet/in. 3.

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

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

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

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

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

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

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

send(sd. Probleme de robustete ¸i securitate ¸ s Orice apel de functie sistem poate e¸ua din multe motive.i).i.2. . Este de asemenea necesar s˘ se a a stabileasc˘ ¸i s˘ se impun˘ explicit ni¸te limite maxime. 257 8. ca urmare.i=htonl(m. Astfel. as ın 8. pe 32 de biti. 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. Comportament rezonabil ˆ ınseamn˘ fie s˘ fie capabil s˘ proceseze a a a corect datele. 2147483647 (adic˘ 231 −1) sau alte aseme¸ ¸a a nea valori. transmiterea a ın unui pointer c˘tre un alt proces este complet inutil˘. 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.4. ın Validitatea datelor trebuie verificat˘ ˆ a ıntotdeauna dup˘ citire. tab. Programarea ˆ retea — introducere ın ¸ }. 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. newline sau un alt caracter specificat prin standard. ca num˘r de elemente. este necesar s˘ se verifice prin program a c˘ num˘rul primit este ˆ a a ıntr-adev˘r pozitiv. Pointeri Deoarece un pointer este o adres˘ ˆ cadrul unui proces.2. ¸ s la fiecare apel send() sau recv() programul trebuie s˘ verifice valoarea rea turnat˘. 0). fie s˘ declare eroare ¸i s˘ ˆ a s a ıncheie curat operatiile ˆ ¸ ıncepute. urmat˘ de elementele propriu-zise. Msg m. a Un receptor robust trebuie s˘ se comporte rezonabil la orice fel de a date trimise de partenerul de comunicatie. 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. send(sd. a a 8. 0). ¸ Metodele descrise pentru transmiterea ¸i receptionarea unui ¸ir de caractere s ¸ s se aplic˘ ¸i la obiectele transmise ˆ formate de tip text. &m.. .2. 1. fiecare cˆmp este ˆ esent˘ un ¸ir de caractere a ın ¸a s terminat cu spatiu. &m. Dac˘ a a receptorul a¸teapt˘ un ˆ s a ıntreg pozitiv..3.2.c 2008. Formate text ˆ Intr-un format text.c. 4. m.1. Orice program care nu este robust este un risc de securitate.

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

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

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

ˆ momentul ın a In ˆ care un client trimite date. pe de o parte noi cereri ale clientilor. s˘ poat˘ accepta clienti noi. ˆ acela¸i a ¸ ¸ s ın s timp. nucleul sistemului de operare treze¸te ın s procesul sau firul ce executa recv() pe socket-ul corespunz˘tor. a s . serverul trebuie s˘ execute o parte din cereri. procesul a sau firul execut˘ prelucr˘rile necesare dup˘ care probabil execut˘ un nou a a a a recv() blocant.c 2008. • un server care poate trimite date cu debit mai mare decˆt capacitatea a retelei sau capacitatea de prelucrare a clientului. ˆ acest caz serverul ¸ ın are de urm˘rit simultan. Radu-Lucian Lup¸a s Capitolul 8. a s • un server care trebuie s˘ preia mesaje de la clientii conectati ¸i. 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. fiecare proces sau fir de executie al serverului este at ¸ ¸ blocat ˆ apelul recv() asupra socket-ului corespunz˘tor. independent de comportamentul a ¸ acestora. a a ¸ Un aspect important ce trebuie urm˘rit ˆ proiectarea unui server a ın concurent este servirea echitabil˘ a clientilor. 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. Dac˘ un client trimite cereri mai repede decˆt este capabil serverul a a s˘-l serveasc˘. apoi s˘ serveasc˘ a a a a a cereri ale celorlalti clienti. 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.

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

din care a fost dezvoltat standardul IEEE 802.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.11. dintre s ¸ care cele mai des ˆ alnite sunt: ıntˆ • retele Ethernet (de 10.1.c 2008. construite conform stan¸ dardului IEEE 802. Radu-Lucian Lup¸a s 263 Capitolul 9 Retele IEEE 802 ¸ Vom studia ˆ continuare standardul utilizat de cele mai multe retele ın ¸ locale. • retele numite Wireless Ethernet. a ¸ Cablul magistral˘. 2005]. ın a Componentele din care se realizeaz˘ o retea Ethernet sunt: a ¸ Interfata de retea sau placa de retea (engl. de pˆn˘ la cˆ¸iva kilometri) sunt construite pe baza standardului IEEE 802. ¸ 9. 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. Astfel de retele mai sunt numite. format din dou˘ conductoare izolate ˆ a ıntre ele.3. iar 10/100/1000 sunt caın ¸ pacit˘¸ile posibile ale leg˘turilor. la care sunt . ˆ mod curent. retele ¸ ın ¸ Ethernet (denumirea standardului original.3. IEEE 802 define¸te de fapt o familie de tipuri de retele locale. O retea constrit˘ cu cablu magistral˘ consta ˆ a ¸ a a ıntrun cablu. conform standardului IEEE 802. m˘surate ˆ megabiti pe secund˘).3 a a at [IEEE 802. Network Interface Card — ¸ ¸ ¸ NIC ) este dispozitivul prin care se conecteaz˘ un calculator la retea. Retele IEEE 802. 100 sau 1000 Mbit/s).3 (Ethernet) ¸ Cele mai multe retele locale (retele cu ˆ ¸ ¸ ıntinderi geografice reduse. ˆ cele ce urmeaz˘ vom In a trece ˆ revist˘ aspectele mai importante.

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

ın a ¸ hub = butuc de roat˘). a ın Odat˘ cu ieftinirea repetoarelor. fie dou˘ repetoare. 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. Radu-Lucian Lup¸a s Capitolul 9.2: O retea construit˘ din mai multe cabluri magistral˘ interconectate prin ¸ a a repetoare. 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). switch) este un dispozitiv asem˘a n˘tor cu un repetor. 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). a a s a Repetoarele utilizate ˆ aceast˘ situatie se mai numesc hub-uri (engl. a devenit curent˘ utilizarea cˆte a a a ˆ acest unui cablu pentru conectarea fiec˘rui calculator la un repetor. le memoreaz˘ a s a a ¸i le retransmite pe rˆnd. O retea construit˘ cu repetoare este ¸ a desenat˘ ˆ figura 9.este capabil s˘ memoreze cˆte un pachet ˆ a a ıntreg pentru fiecare port. In a fel.dac˘ prime¸te simultan dou˘ sau mai multe pachete. De regul˘. .dac˘ este posibil. Retele IEEE 802 ¸ 265 repetor repetor Figura 9.c 2008.2. ˆ retrimite doar pe calea c˘tre interfata de retea ıl a ¸ ¸ . un cablu de retea va avea legate la el doar dou˘ echipamente: fie ¸ a o interfat˘ de retea ¸i un repetor. ˆ loc s˘ retransmit˘ un pachet prin toate porturile a ın a a comutatorului. a Comutatoarele. s a . dar cu urm˘toarele modific˘ri: a a a .

5 pentru detalii).1. ¸ s ¸ ¸ at ¸ tipul cablului de leg˘tur˘ ales nu afecteaz˘ restul retelei.3 (Ethernet) ¸ c˘reia ˆ este destinat pachetul (a se vedea § 9.1. lungimea maxim˘ a unei leg˘turi este de 100 m. a acesta va fi studiat ˆ § 9. Radu-Lucian Lup¸a s 266 9. Denumirea standardului vine de la viteza de comunicatie (10 Mbit/s). Conductoarele sunt ˆ ımperecheate 2 cˆte 2 (formˆnd deci 2 perechi). a Descriem ˆ continuare particularit˘¸ile tuturor standardelor priviın at toare la nivelul fizic construit pe perechi torsadate. mediul de transmisie este format din dou˘ sau patru In a perechi de conductoare torsadate. 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.1. a¸a cum am v˘zut.1. ¸ codificarea (ˆ banda de baz˘) ¸i tipul mediului (Twisted pairs — perechi ın a s torsadate). Pentru astfel de scopa a a uri standardul recomand˘ utilizarea fibrelor optice. s exist˘ un protocol de negociere al modului de transmisie la nivel fizic folosit.3 mai multe sub-standarde legate de nivelul a ın fizic. Dac˘ ¸i echipaa a a as mentele conectate sunt capabile s˘ emit˘ ¸i s˘ receptioneze simultan. este a as a ¸ posibil˘ realizarea unei comunicatii duplex ˆ a ¸ ıntre cele dou˘ echipamente. 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.1. 10 Base T . din 4 conductoare a a a s a izolate. ın a 9. s ın a ˆ toate cazurile. cˆte o perechie pentru fiecare sens (4 conductoare ˆ a ın total). a Exist˘ ˆ cadrul IEEE 802. a ıi Leg˘turile duplex. Este o leg˘tur˘ duplex la 10 Mbit/s utilizˆnd dou˘ perechi de a a a a conductoare torsadate. Cablurile de leg˘tur˘ ˆ a a a ıntre dou˘ echipamente pot a fi f˘cute cu c˘i independente pentru cele dou˘ sensuri. Cablul de leg˘tur˘ const˘. privitoare la cablurile de leg˘tur˘ ˆ a a ıntre echipamente. Retele IEEE 802.1 cu ocazia prezent˘rii standardului 10 Base T. 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.c 2008. Cu exceptia debitu¸ lui de comunicatie ¸i a existentei sau absentei posibilit˘¸ii comunicatiei duplex. 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). a a ˆ cadrul fiec˘rei perechi. conductoarele sunt r˘sucite unul ˆ jurul celuilalt In a a ın .

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

Radu-Lucian Lup¸a s 268 Retele IEEE 802.c 2008. ¸ .3: Conectarea a dou˘ echipamente 10 Base T.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. Sunt date ¸i culorile standard a s pentru izolatiile conductoarelor din cablu.

Mecanismul de a s aa ¸ detectare a pinilor utilizati se bazeaz˘ pe pulsurile pentru verificarea mediului. Din acest s motiv un cablu pentru 100 Base Tx poate fi ˆ ıntotdeauna utilizat la o leg˘tur˘ a a 10 Base T. 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). Cablurile utilizate sunt cele a a ¸ desemnate UTP Cat 5 . iar pulsurile generate de el este putin probabil s˘ coincid˘ ˆ ampl˘tor ¸ a a ıntˆ a cu pulsurile de negociere a modului de transmisie. 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 a va functiona numai ˆ regim semiduplex. Stabilirea vitezei se a s face printr-un mecanism similar cu cel utilizat la 10 Base T pentru negocierea modului semiduplex sau duplex. sunt unul ˆ ¸a ıntre 2. Un echipament vechi. de c˘tre fiecare echipament. f˘r˘ nici un fel de restrictii. Trebuie ˆ a spus c˘ mecanismul de negociere ıns˘ a . ¸ a descrise mai jos. datˆnd dinaintea acestei ad˘ugiri la standard.deduce“ c˘ leg˘tura nu este valid˘. 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. standardul prevede emiterea a a ¸ periodic˘. 100 Base Tx.2 V ¸i 2.2 V ¸i −2. Retele IEEE 802 ¸ 269 dintre capete se g˘se¸te un astfel de dispozitiv. Radu-Lucian Lup¸a s Capitolul 9.8 V. Starea leg˘turii a a a a a a este semnalat˘ printr-un led.. de asemenea. dar obtine o vitez˘ de a a ¸ a transmisie de 100 Mbit/s. Cele dou˘ ¸ ın a nivele de tensiune. la emit˘tor.8 V ¸i cel˘lalt ˆ s s a ıntre −2. a unui puls de testare a cablului. 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. s Pe lˆng˘ transmiterea informatiei utile. Lungimea maxim˘ a unui tronson este de 100 m. Este foarte asem˘n˘tor cu 10 Base T. ˆ 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).c 2008. echipamentele capabile s˘ opereze conform standardului In a 100 Base Tx sunt capabile s˘ lucreze ¸i cu 10 Base T. a Conectoarele ¸i utilizarea pinilor sunt identice cu 10 Base T. 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. ˆ general. se poate utiliza atˆt cablu a s a unu-la-unu cˆt ¸i cablu inversor. Transmiterea bitilor se face ˆ codificare Manchester. Cablul const˘ tot din dou˘ perechi de conductoare torsadate.

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

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

9. adic˘ utilizarea pentru un circuit ¸ a a dou˘ fire care nu sunt ˆ a ımperecheate prin r˘sucire. Radu-Lucian Lup¸a s 272 9.c 2008. Toate leg˘turile pe fibr˘ optic˘ sunt punct-la-punct (nu magistral˘).2. iar cap˘tul unde trebuie ata¸at cel˘lalt conector este a s a cˆteva etaje mai sus sau mai jos. a Toate sistemele IEEE 802.3 (Ethernet) ¸ Nr. la care se pot conecta mai a s a . a a a a Exist˘ totu¸i un echipament. . .3 ce utilizeaz˘ perechi torsadate sunt proieca tate pentru leg˘turi ˆ interiorul unei singure cl˘diri. Retele IEEE 802. La cablurile trase prin a ın a exterior.1. 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. cu atˆt mai multe cu cˆt cablul este mai lung. dac˘ ata¸area primului s-a f˘cut nestandard. Pentru leg˘turi exterioare se recomand˘ utilizarea fibrelor s a a optice. 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. 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. Toate acestea sunt foarte similare din punctul de vedere al logicii function˘rii. Leg˘turi prin fibre optice a IEEE 802. duce la pierderi a aleatoare de pachete.1.3 standardizeaz˘ mai multe tipuri de leg˘turi prin fibre a a optice. diferentele sunt aproape ˆ totalitate aspecte minore legate de ¸ a ¸ ın realizarea nivelului fizic. numit stea pasiv˘.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. Nerespectarea perechilor. a a • Este necesar un efort inutil de mare pentru ata¸area corect˘ a conectorului s a la al doilea cap˘t.

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

Lungimea maxim˘ de cablu ˆ a ıntre dou˘ echipamente este de 550 m pentru fibra multimod a ¸i 5 km pentru fibra monomod. Pe lˆng˘ viteza mai a a a a mare. 100 Base FX aduce cˆteva modific˘ri fat˘ de 10 Base F. ca urmare. din a ¸ ¸ acest motiv circuitele emit˘torului ¸i receptorului trebuie plasate la cel mult ¸a s cˆ¸iva centimetri de cablu.c 2008. care are impedanta de 75 Ω).1. 1000 Base SX ¸i 1000 Base LX. a prin fibre multimod de 62. a Pe cablu se leag˘. 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. Aceste standarde ofer˘ vitez˘ de transfer s a a de 1 Gbit/s. Varianta 1000 Base SX transmite pe lungimea de und˘ de 850 nm. interfetele de retea ¸i eventual repetoarele. a Varianta 1000 Base LX transmite pe lungimea de und˘ de 1310 nm. ambele variante realizeaz˘ o vitez˘ de transmisie de a a 10 Mbit/s.5 µm sau de 50 µm sau monomod de 10 µm. ¸ Cablul nu are voie s˘ aib˘ ramificatii ¸i trebuie ˆ a a ¸ s ıncheiat la ambele capete prin terminatoare. at . 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. ¸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. anume de cel putin 100 kΩ). a Mediul de comunicatie este un cablu format dintr-o pereche de con¸ ductoare coaxiale. Cele dou˘ variante sunt foarte asem˘n˘toare. ˆ paralel.5 µm sau de 50 µm. s ¸ 100 Base FX: ofer˘ o vitez˘ de transfer de 100 Mbit/s.3. rezultˆnd bruierea semnalului ¸ a aa a de c˘tre reflexia lui. motiv pentru care le a a a vom studia ˆ ımpreun˘. Ramificatiile sau lipsa terminatoarelor duc la reflexia semnalu¸ lui la ramificatie sau la cap˘tul f˘r˘ terminator.3. Impedanta caractersitic˘ a cablului este de 50 Ω (este deci ¸ a incompatibil cu cablul utilizat pentru televiziune. a prin fibre cu diametrul miezului de 62.3 (Ethernet) ¸ Spre deosebire de 10 Base T. s 9. Leg˘turi prin cablu magistral˘ a a Exist˘ dou˘ variante de leg˘turi prin cablu magistral˘ standarda a a a izate prin IEEE 802. ace¸ti parametri trebuie configurati manual. 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.

Retele IEEE 802 ¸ 275 Semnalul este produs ˆ codificare Manchester. preferabil colorat ˆ galben a a ın pentru o mai bun˘ vizibilitate. cu a a privire la caracteristicile cablului: • impedanta caracteristic˘: 50 Ω ± 2 Ω. 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. prevede utilizarea unui cablu s coaxial avˆnd aproximativ 10 mm grosime total˘.2). peste semnal ¸a a este suprapus˘ o component˘ continu˘. Exist˘ dou˘ sub-standarde privitoare la caracteristicile mecanice ¸i a a s electrice ale cablului de conectare: 10 Base 5 ¸i 10 Base 2. s 10 Base 5. La detectarea unei s a coliziuni.c 2008. Pe cablul ˆ repaus. ¸ a • viteza de propagare a semnalului: minim 0. Dac˘ dou˘ sau mai multe interfete emit simultan. numit ¸i cablu galben sau cablu gros. 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. conform ¸ ¸ metodei CSMA/CD (§ 4. ˆ scopul simplific˘rii detect˘rii cola a a ın a a iziunilor. Lungimea total˘ maxim˘ a unui cablu este de a a a 500 m. apare o tensiune continu˘ ˆ ¸a a ıntre conductorul central ¸i s tres˘. 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. 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).2. ˆ sute de metri. d˘m cˆteva detalii. • atenuarea: maxim 17 dB/km (8. Dac˘ o a interfat˘ emite date. interfetele de retea conectate la cablu opresc transmisia. ¸ s a La efectuarea lucr˘rilor asupra retelei. de aici viteza brut˘ de transmisie de 10 Mbit/s. ın a s a ın Cu titlu informativ. ¸ ¸ a a a De asemenea.77 · c. Standardul este gˆndit pentru cablare prin exteriorul cl˘dirilor. Radu-Lucian Lup¸a s Capitolul 9. 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. tensiunea continu˘ a a a ¸ a cre¸te peste un anumit prag la care se declar˘ coliziune. s • se accept˘ maxim 100 interfete de retea pe un tronson de cablu. a a Denumirea sub-standardului vine de la viteza (10Mbit/s).5 dB pe tot tronsonul de cablu) la 10 MHz ¸i maxim 12 dB/km (6 dB pe tot cablul) la 5 MHz. tensiunea ˆ ın ıntre conductoare este 0 V. specificate prin standard. 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. De a a a ¸ ın a . a Ca modificare fat˘ de codificarea Manchester clasic˘. cu durata unui bit de ın 100 ns. codificarea (ˆ banda de baz˘ — Base) ¸i lungimea maxim˘ a cablului.

inductiv sau capacitiv. tronsoanele sunt limitate a a s la lungime mai mic˘.5 dB la 10 MHz ¸i maxim 6 dB la s 5 MHz. continˆnd emit˘torul ¸i receptorul propriu-zise. 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. al doilea modul cuprinde logic˘ de comand˘ ¸i este construit a as sub forma unei pl˘ci ce se introduce ˆ calculator. ca urmare. Cablul este tot coaxial. transceiver ) ¸i moda ¸a s ulul de logic˘ al pl˘cii de retea sau al repetorului este de asemenea standarda a ¸ izat˘. cu prindere cu filet). pentru 185 m: maxim 8. ˆ a folose¸te un cablu a a a a ıns˘ s mai potrivit pentru cablaje ˆ interior. a a Leg˘tura dintre modulul emit˘tor-receptor (engl. • maxim 30 interfete ata¸ate pe un tronson. ın a s˘ se induc˘. 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). ˆ special dac˘ este dus prin exterior. ¸ a Circuitele electronice ale interfetelor de retea sunt ˆ artite ˆ dou˘ ¸ ¸ ımp˘ ¸ ın a module: un modul. • atenuarea. se ata¸eaz˘ ¸ a ¸a s s a direct pe cablu. tensiuni parazite importante din cauza a a retelelor de alimentare electric˘ din apropiere sau din cauza fulgerelor. BNC fiind numele conectoarelor prev˘zute a fi utilizate pentru acest a tip de leg˘tur˘).3 (Ethernet) ¸ asemenea. numite conectoare N. 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. Lungimea maxim˘ a unui tronson este ın a de 185 m. Este foarte asem˘n˘tor cu 10 Base 5.65 · c. • prin realizara unei prize vampir : se d˘ o gaur˘ ˆ cablu f˘r˘ a-i intrerupe a a ın aa conductoarele. prin gaur˘ se introduce o clem˘ ce va face contact cu firul a a central. este posibil ca ˆ ıntr-un cablu. cablu negru sau cablu BNC (oarecum s ¸ incorect. a D˘m din nou cˆteva caracteristici ale cablului: a a • viteza de propagare: 0. ˆ schimb ın este admis s˘ aib˘ atenuare mai mare ¸i. utilizeaz˘ a s a conectoare trapezoidale cu 15 pini ¸i poate avea lungime maxim˘ de aproxis a mativ 50m. 10 Base 2 se mai nume¸te cablu subtire.c 2008. sub numele de interfat˘ AUI . ¸ s . Cablul de leg˘tur˘ dintre cele dou˘ module a ¸a a a a const˘ din 5 perechi de conductoare torsadate ¸i ecranate individual.

La conectoarele tat˘ se ata¸eaz˘ buc˘¸ile de cablu a a a s a at de-o parte ¸i de alta.c 2008. a a ın ¸ astfel (fig. Radu-Lucian Lup¸a s Capitolul 9. s Exceptie f˘cˆnd cazul comutatoarelor mai evoluate (vezi § 9. 9. iar la conectorul mam˘ al T-ului se ata¸eaz˘ conectorul s a s a tat˘ de pe placa de retea. 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.1. O ˆ ıntrerupere a cablului magistral˘ duce de regul˘ la oprirea function˘rii ˆ a a ¸ a ıntregii retele. 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. nu se folosesc doar la retele Ethernet). ca a aa s urmare. 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.4.6.4). orice pachet emis pe acel cablu se ciocne¸te cu reflexia lui. Interfata repetorului sau comutatorului c˘tre fiecare dintre ¸ a cabluri se nume¸te port. afectˆnd conexiunile dia ¸ a recte. ¸ a a o retea construit˘ cu repetoare sau comutatoare trebuie s˘ aib˘ o topologie ¸ a a a .5: Conectarea unei retele 10 Base 2 ¸ Pana cea mai frecvent˘ ce apare la o retea.. este ˆ ıntreruperea unui fir (de obicei o pan˘ de contact ˆ a ıntre sˆrm˘ ¸i a a s conector sau ˆ ıntre contactele unui conector). as s a a ¸ conectori BNC terminator jonctiuni T ¸ cablu coaxial Figura 9. ¸ s la primirea unui pachet pe un cablu.ruperea“ ¸ ˆ dou˘ a retelei. 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. Repetoarele ¸i comutatoarele s Ca functie ˆ cadrul unei retele. retransmite pachetul pe toate celelalte cabluri conectate. 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.5): Fiecare bucat˘ de cablu trebuie s˘ aib˘ montate pe capete a a a conectoare BNC mam˘. nu doar . ¸ ın ¸ 9. 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˘.

nu apare nici una din limit˘rile expuse mai sus. 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..c 2008. a a ajungˆnd aproximativ simultan. fiecare pachet va suferi o coliziune cu ıntˆ a ın ¸ el ˆ si ¸i va fi repetat la infinit cu acela¸i insucces. Pentru a a a o retea de 10 Mbit/s. 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. s s ˆ Intr-o retea construit˘ corect. restrictiile ¸ a a a s ¸ de la repetoare se aplic˘. ˆ acest fel. sfˆr¸ind prin a ajunge la toate pl˘cile din retea. Dac˘ este un repetor. rezultˆnd astfel trafic util ınsu¸ s s a ˆ cazul comutatoarelor. 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. 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.furtun˘ de pachete“. pe fiecare subretea format˘ din repetoare a ¸ a . nu-l poate retransa s mite la alt˘ cadent˘ a bitilor decˆt cea cu care ˆ receptioneaz˘. ¸i anume: s ¸ s • toate componentele legate la repetoare trebuie s˘ lucreze la aceea¸i vitez˘ a s a (fie 10 Mbit/s. contine circuite. fie 1 Gbit/s). 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. a a a La retele ce utilizeaz˘ atˆt switch-uri cˆt ¸i repetoare. Radu-Lucian Lup¸a s 278 9. In a a a c˘i diferite la un comutator. Cum acest lucru se a ˆ ampl˘ cu orice pachet trimis ˆ retea. fie 100 Mbit/s. arborescent. pe lˆng˘ topologia ˆ arbore mai treIn a a a ın buie respectate ni¸te conditii. rezultˆnd o . 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. aceasta ˆ ¸ ınseamn˘ o lungime maxim˘ total˘ de a a a 2500 m ˆ ıntre oricare dou˘ interfete de retea. dac˘ dou˘ copii ale unui pachet ajung pe dou˘ nul. le va memora ¸i retransmite. vor produce o coliziune.3 (Ethernet) ¸ arborescent˘. adic˘ o multiplicare ¸ a a a incontrolabil˘ a pachetelor. a ˆ cazul utiliz˘rii repetoarelor. a ˆ consecint˘. a ¸ ¸ ˆ cazul switch-urilor. cele dou˘ copii. ˆ loc s˘ fie arborescent˘. copiile cicleaz˘ a In a la infinit prin retea.1. ¸ as a ¸ ˆ cazul ˆ care reteaua. separat. Aceasta deoarece un repetor nu memoreaz˘ pachetul de retransmis ¸i. fiecare copie fiind retransmis˘ In ¸a s a inclusiv pe calea prin care a intrat cealalt˘ copie. 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. ca urmare.

a ¸a Switch-urile mai avansate au parametri configurabili. ıi La primirea unui pachet. acea interfat˘.5.c 2008. Accesul se poate a a realiza ˆ urm˘toarele moduri: ın a • Prin intermediul unui cablu serial: La switch se conecteaz˘. ele sunt transparente fat˘ de traficul ce trece prin ele. comutatorul va asocia acea adres˘ cu portul prin care a intrat pachetul.6. switch-urile nu au parametri configurabili ¸i nu au In s s adres˘. Radu-Lucian Lup¸a s Capitolul 9. a a Ulterior. Anume. dac˘ comutatorul prime¸te un pachet avˆnd ca destinatie acea adres˘ a s a ¸ a MAC. a Dac˘ exist˘. aceast˘ situatie s a ¸ apare dac˘ la acel port este conectat un repetor sau un alt comutator. s a ¸ ¸ s 9. 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. 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 . prin intera mediul unui cablu serial. Dirijarea efectuat˘ de comutatoare (switch-uri) a Comutatoarele (switch-urile) sunt capabile s˘ realizeze o dirijare prima itiv˘ a pachetelor primite.1. Facilit˘¸i avansate ale switch-urilor at 9. Switch-uri configurabile ˆ mod obi¸nuit. de genul HyperTerm). a ın a a 9. Mai multe adrese MAC pot avea asociat acela¸i port. pachetele de broadcast se ˆ ıncadreaz˘ ˆ aceast˘ din urm˘ categorie. a ¸a Dac˘ un comutator prime¸te un pachet cu o anumit˘ adres˘ MAC a s a a surs˘. a a a a pachetul este trimis prin toate porturile cu exceptia celui prin care a intrat. direct sau indirect. Unei a adrese ˆ poate fi asociat cel mult un port. va trimite pachetul doar prin acel port. ˆ va trimite doar prin portul asociat acelei adrese.6.1. ¸ Evident. 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˘. un teleterminal (sau un calculator care execut˘ un simulator de terminal. exist˘ o comand˘ help sau ? care listeaz˘ comenzile disponibile.1. Switch-ul ofer˘ o a a interfat˘ text — ofer˘ cˆteva comenzi de configurare. Retele IEEE 802 ¸ 279 interconectate ¸i leg˘turile acestora spre interfetele de retea ¸i switch-uri. Dac˘ nu exist˘ asociere. este necesar s˘ poat˘ fi accesate de pe un calculator. comutatorul caut˘ portul asociat adresei.1. De cele mai multe ¸a a a ori. ı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). Pentru configurare.

a a ın .1.3.3 (Ethernet) ¸ configurabil˘ (adresa IP initial˘ se configureaz˘ prin intermediul conea ¸ a a xiunii seriale descrise mai sus). • multe pl˘ci de retea permit schimbarea (prin soft) a adresei MAC. Porturile utilizate ˆ regim trunking trebuie configurate pe ambele ın switch-uri. ˆ acest fel. Filtrare pe baz˘ de adrese MAC a Unele switch-uri pot fi configurate s˘ nu accepte. Trunking Prin trunking se ˆ ¸elege utilizarea mai multor cabluri ˆ paralel ca ınt ın leg˘tur˘ ˆ a a ıntre dou˘ switch-uri. a a switch-ul permite configurarea unei parole. ˆ acest caz este posibil ca dou˘ swithc-uri realizate de firme ın a diferite s˘ nu se poat˘ lega ˆ trunking. a ın ¸ a s ¸ De¸i ˆ s ımbun˘t˘¸e¸te securitatea unei retele. Retele IEEE 802. pen¸ a tru ˆ ımpiedicarea configur˘rii switch-ului de c˘tre persoane neautorizate.6.1. pe un anumit port.6. traficul ce se poate stabili ˆ a In ıntre acele dou˘ switch-uri este suma capacit˘¸ilor leg˘turilor configurate ˆ trunka at a ın ing. care este cerut˘ la conectare. exist˘ o procedur˘ de revenire la configa a a urarea implicit˘. Conectarea prin telnet la adresa IP a switch-ului (pe portul standard al protocolului telnet. 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 • Prin interfat˘ web: Ca ¸i la conectarea prin telnet. s ın a accesul poate ¸i este recomandabil s˘ fie restrictionat prin parol˘. 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. Evident. Radu-Lucian Lup¸a s 280 9. 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).c 2008. Este de asemenea posibil ca legarea ˆ trunking s˘ utilizeze o ın a extensie a protocolului IEEE 802. 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. Ca ¸i ˆ cazul configur˘rii prin telnet. anume 23) ofer˘ a acces la interfata de configurare prezentat˘ mai sus. t a 9. a ¸ 9. 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. s a ¸ a Pentru cazul uit˘rii parolei. De asemenea. 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. switch-ul prezint˘ o ¸a s a adres˘ IP.2.3 care este proprietatea firmei produc˘toare a a switch-ului.

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

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

11 (Wireless) ¸ 9.2. Asocierile sunt dinamice — o statie poate s˘ intre sau s˘ ias˘ ¸ a a a .11. Arhitectura retelei ¸ Elementul de baz˘ ˆ a ıntr-o retea wireless [IEEE 802. a 9. se mai ˆ ampl˘ a s a a s ın a s ıntˆ a ca cineva s˘ se ˆ a ımpiedice de un cablu. U¸urinta rea ¸ a s ¸ aliz˘rii ¸i reconfigur˘rii este pl˘tit˘ prin faptul c˘ apar dificult˘¸i la cur˘¸enie. tuburi ˆ ıngropate (ca la instalatiile electrice) sau ¸ prin tavane false. dac˘ va fi nevoie s˘ se construiasc˘ dou˘ a a a a retele distincte. o parte din calculatoarele din ˆ apere conectˆndu-se la ¸ ınc˘ a o retea ¸i altele la alt˘ retea. ¸ a ¸ ¸ a Fiecare celul˘ are asociat un identificator de 48 de biti. unic. Radu-Lucian Lup¸a s Capitolul 9. Cablurile neuınc˘ tilizate nu e necesar s˘ aib˘ toate loc ˆ switch. a s a a a a at at cablurile se degradeaz˘ u¸or dac˘ se calc˘ pe ele ¸i. Acest identificator este ˆ ınscris ˆ fiecare pachet ın de date vehiculat ˆ retea. cablurile se duc aparent ¸i se fixIn ¸ s aa ¸ s eaz˘ de pereti sau pe mobil˘ numai acolo unde este strict necesar. 1999] este celula ¸ wireless (termenul original conform standardului este Basic Service Set — BSS). a Fiecare statie apartine (este asociat˘) la un anumit moment cel mult ¸ ¸ a unei celule.1. numit a ¸ Basic Service Set ID — BSSID.2. rezultˆnd echipamente trase pe jos sau a cabluri smulse din conectoare. Retele IEEE 802. Deoarece astfel de cablaje se modific˘ mai dificil. ¸ s a ¸ a ın ınc˘ fiecare conectat prin cˆte un cablu la switch-ul central. astfel ˆ at pentru orice pachet de date receptionat ın ¸ ıncˆ ¸ prin anten˘ se poate determina celula wireless c˘reia ˆ apartine. se vor pune dou˘ switch-uri ˆ ˆ apere. Retele IEEE 802 ¸ 283 ˆ instalatiile mici ¸i f˘r˘ pretentii. 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. traficul din cadrul fiec˘rei celule ın s a a putˆnd fi distins pe baza BSSID-ului de traficul celorlalte celule. se vor conecta sau a a ın deconecta dup˘ necesit˘¸i. Pentru evitatarea neajunsurilor expuse mai sus. se prefer˘ s˘ se trag˘ a a a cablurile prin paturi de cablu. a at • S˘ se prevad˘ 2–3 cabluri de la switch-urile corespunz˘toare unei ˆ aperi a a a ınc˘ la switch-ul central. Astfel. este bine a s˘ se aib˘ ˆ vedere posibilele modific˘ri ce ar putea fi de dorit ˆ viitor.c 2008. ˆ sfˆr¸it. Mai multe a a ıi ¸ celule wireless pot coexista ˆ aceea¸i zon˘. 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 ın ¸ Accesul la mediu este controlat ˆ principal prin metode bazate pe ın urm˘rirea traficului pe mediu. metode de rezervare ˆ prealabil a accesului la mediu. ˆ ¸ s a Intr-o celul˘ a unei retele de tip a ¸ infrastructur˘.11 (Wireless) ¸ oricˆnd dintr-o celul˘. Pe lˆng˘ BSSID-ul celulei. Acestea vor fi a ın descrise ˆ detaliu ˆ § 9.c 2008.3). ¸ a s • Retea format˘ din una sau mai multe celule.2.11: a a ın ¸ ¸ • Retea format˘ dintr-o singur˘ celul˘ independent˘. Un AP ¸ a este o statie. ı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. o jloace IEEE 802 de alte echipamente. Retele IEEE 802. Un astfel de mod de lucru se nume¸te mod infrastructur˘ sau s a managed . la restul retelei IEEE a a ¸ 802. Celulele din aceea¸i retea vor avea acela¸i SSID. AP-urile unei aceleia¸i retele 802. ˆ mod infrastructur˘. Fiecare statie se identific˘ printr-o adres˘ unic˘ de 48 a a ¸ a a a de biti. ˆ cadrul fiec˘rei celule exist˘ o statie care In a ın a a ¸ are rolul leg˘rii celulei la infrastructur˘ (altfel spus. Ulterior IEEE a s . Acest ¸ ¸ir este fixat de administratorul retelei ¸i serve¸te la identificarea retelei pentru s ¸ s s ¸ utilizatorii umani. s a ¸ ¸ Exist˘ dou˘ moduri de lucru ˆ care poate functiona o retea 802. numit˘ ˆ mod curent adresa MAC a statiei. ˆ mod curent a s ın reteaua astfel format˘ se nume¸te ad-hoc. operˆnd ˆ ¸ a a ımpreun˘ ¸i posibil as conectate la o infrastructur˘ IEEE 802 (de exemplu la o retea Ethernet a ¸ — 802. a a a ¸ numit beacon. O astfel de statie poart˘ denumirea de Access Point — AP. o statie ce intr˘ sau iese dintr-o celul˘ trebuie s˘ anunte AP-ul a ¸ a a a ¸ responsabil de celula respectiv˘. Ca urmare. a AP-ul este responsabil de generarea pachetelor beacon ¸i BSSID-ul s celulei este adresa MAC a AP-ului.11). ¸i ca atare are o adres˘ MAC. neconectat˘ prin mi¸ a a a a a ˆ terminologia standardului. Radu-Lucian Lup¸a s 284 9. ˆ a s ıntr-o anumit˘ m˘a a sur˘. detectarea coliziunilor ¸i. fiecare fabricant de APs uri ¸i-a construit propriul protocol de comunicare inter-AP. s ¸ a formˆnd a¸a-numitul Distribution System (DS). 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.2. network name). O statie poate obtine lista celulelor active ˆ zona sa ascultˆnd pa¸ ¸ ın a chetele beacon. In astfel de celul˘ se nume¸te Independent BSS — IBSS. pachetele beacon mai contin un ¸ir de a a ¸ s caractere numit SSID sau uneori numele retelei (engl. DS-ul poate fi conectat la a s alte retele din familia IEEE 802 prin intermediul unor dispozitive numite por¸ tal -uri.11 trebuie s˘ fie interconectate.2. Lista afi¸at˘ utilizatorului va contine SSID-urile retelelor.

adic˘ s a aceea¸i strategie ca ¸i pentru Ethernet-ul pe cablu coaxial. 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. cu a ¸ diferente minore ˆ ¸ ıntre ele). 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.2. 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. dar statia C s˘ nu receptioneze transmisia lui A. ˆ ¸ a ¸ Intr-un astfel de caz. sunt aduse cˆteva modific˘ri. Functionalit˘¸ile a s a ¸ at sunt: • functie de switch (punte) ˆ ¸ ıntre o retea Ethernet (fix˘) ¸i o celul˘ wireless. a s ˆ principal. pachetele emise se ciocnesc la B. 2003]. a ¸ ¸ aa a a ˆ principal. [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. care fixeaz˘ un protocol de comunia care ˆ ıntre AP-uri. Accesul la mediu Deoarece ˆ ıntr-o retea 802. s s Datorit˘ conditiilor specifice retelelor f˘r˘ fir. Retele IEEE 802 ¸ 285 emis un standard. Aceast˘ functie se nume¸te ¸ a ıns˘ s ¸ a ¸ s wireless bridge sau AP client (uneori exist˘ functii cu ambele nume. statia C s˘ receptioneze transmisia lui ¸ ¸ ¸ a ¸ B.c 2008. • functie de AP. ˆ Intr-o prim˘ aproximatie.11 se nume¸te Carrierın s Sense Multiple Access with Collision Avoidance (CSMA/CA.11 avem un mediu partajat ˆ ¸ ıntre mai multi ¸ emit˘tori.11F. 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. dar utilizˆnd tot reteaua wireless pentru partea de infra¸ a ¸ structur˘. rom: acces multiplu cu detectarea semnalului purt˘tor ¸i evitarea coliziunilor). ¸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˘. strategia de control al accesului la mediu se bazeaz˘ In a pe detectarea coliziunilor ¸i repetarea pachetelor ce au suferit coliziuni. ˆ acest mod. 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 deoarece nici s .2. ¸ a s a actionˆnd ˆ a ca ¸i statie oarecare (nu AP). De obicei un dispozitiv vˆndut sub numele de access point contine a ¸ un AP ¸i un portal c˘tre retele Ethernet. 9. dac˘ a A ¸i C transmit simultan. Radu-Lucian Lup¸a s Capitolul 9. este necesar s˘ avem un mecanism de control al accesului la mediu.

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

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

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

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

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

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

2. 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. 1981] ¸i versiunea 6 (care se r˘spˆnde¸te relativ ˆ s a a s ıncet. Unele ¸ a a noduri.1. s a descris ˆ § 10. 1998]. de¸i standardul a fost publicat a aa s ca o glum˘ de 1 aprilie. numit˘ presa curtat IPv6 ) standardizat˘ prin [RFC 2460. numit˘ prescurtat IPv4 ) standardizat˘ prin a ın a a [RFC 791. 1990] de utia lizare ca leg˘turi directe a porumbeilor c˘l˘tori. cablu TV. Protocolul IP Protocolul Internet (engl. precum ¸i ˆ caz ıntˆ a s ın de ˆ arcare mare a retelei). ¸ ¸ Fiecare nod este identificat prin una sau mai multe adrese IP . Internet Protocol — IP ) descrie formatul pachetelor ¸i cˆteva aspecte privind activitatea nodurilor retelei.5). ¸ s ¸ nivelul transport. s a ¸ Protocolul IP are dou˘ versiuni aflate curent ˆ uz: versiunea 4 a ın (cea mai utilizat˘ ˆ prezent. cu rolul de-a furniza aplicatiei un serviciu mai potrivit. ¸ 10. a ¸ ın a Este sarcina nivelelor superioare s˘ se descurce ˆ aceste conditii. 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˘. etc. Radu-Lucian Lup¸a s 292 10. Exist˘ chiar un standard [RFC 1149. ˆ ıntre aplicatie ¸i nivelul retea este plasat un nivel intermediar. Corespondenta ˆ a ¸ ıntre un nume de domeniu ¸i adresa IP se realizeaz˘ cu ajutorul sistemulul DNS (Domain Name Service). retele locale IEEE 802. linii telefonice cu a modemuri. Cu exceptia unor adrese cu rol special. Arhitectura retelei ¸ Nodurile intermediare sunt fie PC-uri. a . ¸ Din punctul de vedere al unei retele Internet. ın Adresele IP sunt arareori folosite direct de utilizatorii umani. o leg˘tur˘ direct˘ este ¸ a a a orice fel de canal de comunicatie pe care reteaua de tip Internet o poate folosi.4. el ilustreaz˘ foarte bine independenta ˆ a a ¸ ıntre nivele ˆ ıntr-o retea. 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˘.c 2008. ˆ a ın ¸ In acest scop. fie dispozitive dedicate (rutere dedicate). Dup˘ c˘derea unor noduri sau a unor leg˘turi. au mai multe adrese IP asociate. ˆ locul In lor se utilizeaz˘ numele de domeniu. o adres˘ IP identific˘ unic un nod. ˆ special cele intermediare. 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. 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.

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

vezi § 10.2.1. Radu-Lucian Lup¸a s 294 10. o retea Ethernet construit˘ cu cabluri magistral˘ este o subretea ¸ a a ¸ IP. a tip serviciu (vezi § 10.6.2. ¸ Num˘rul maxim de salturi pˆn˘ la disa a a trugerea pachetului (vezi § 10. Lungimea pachetului minus antetul fix. ˆ ın octeti. cu exceptia lungimii. O retea Ethernet cu hub-uri sau switch-uri este de asemenea o subretea IP ¸ ¸ ˆ ıntrucˆt. Bazele dirij˘rii pachetelor IP a 10. ¸ ¸ De exemplu.2. ¸ Dac˘ exist˘ optiuni.8.c 2008. Lungimea maxim˘ admis˘ de ¸ ¸ a a protocol este de 65515 octeti (65535 octeti pachetul ˆ ¸ ¸ ıntreg) pentru IPv4 ¸i s 65535 octeti.2. Adresa nodului ce a emis pachetul. din punctul de vedere al calculatorului la care este ata¸at˘ o plac˘ a s a a de retea. 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.2. pentru IPv6. s 10. 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.2).3. Adresa destinatarului final al pachetului. Valoarea este fix˘: 6. Subretele ¸i interfete ¸ s ¸ O subretea este o multime de noduri legate direct fiecare cu fiecare.1.3).1).6. Ca alt exemplu.5. tipul primului ana a ¸ tet optional. Limit˘ salturi a Adresa surs˘ a Adresa destinatie ¸ 8 128 128 Tabelul 10. altfel. o linie serial˘ ¸ a a construie¸te o subretea cu dou˘ calculatoare.2: Antetul IP versiunea 6 ele. protocolul c˘ruia ˆ ¸ a ıi apartin datele utile. inclusiv antetele optionale. 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.2. Datele utile sunt un ¸ir de octeti asupra c˘ruia protocolul IP nu s ¸ a impune nici o restrictie. o retea Ethernet construit˘ cu cablu magistral˘ se comport˘ identic ¸ ¸ a a a cu o retea construit˘ cu hub-uri sau switch-uri.2. In s ¸ ın a a a .

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

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

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

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

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

168. ¸ s a a Notatia cu adres˘ ¸i masc˘ se utilizeaz˘ numai pentru IP versiunea ¸ as a a 4.225.0/19.255. Adresa de retea se s ¸ ¸ scrie ca ¸i cˆnd ar fi o adres˘ IP normal˘. a ˆ notatia cu adres˘ de retea ¸i masc˘ de retea. 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). ca ¸i ˆ cazul scrierii cu adres˘ ¸i lungime.0/255. 192.225.34 sau.224. De remarcat importanta ¸ specific˘rii lungimii. trebuie precizat˘ atˆt ¸ a a a valoarea efectiv˘ a prefixului cˆt ¸i lungimea acestuia. 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. rezultatul se nume¸te adresa de retea. mai compact.3.255. se scrie mai ˆ ai In ¸ a ¸ s a ¸ ıntˆ adresa de retea.34 10. Masc˘ de s ¸ a ın a retea. Exemplul 10. se scrie ca ¸i cˆnd ar fi o adres˘ IP.192. Prefixul 1100-0000a ¸ s 1010-1000-1100-0000 se scrie 192. Protocolul IP Exemplul 10. 10.0. t s ¸ ˆ notatia cu adres˘ ¸i lungime. Scrierea prefixelor de retea ¸ Prefixele de retea fiind de lungime variabil˘.168.7: Prefixul 1100-0000-1010-1000-110 se scrie. 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).2. 1994]. este instructiv de citit ¸i a s s s [RFC 1700.0/24. Prefixul 1100a ¸ s ¸ 0000-1010-1000-1100-0000 se scrie 192. ı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.4.192. ˆ notatia cu ın ¸ adres˘ de retea ¸i lungime (notatie cu slash) 192.0/255. ::193. Mai multe despre aloa care se g˘se¸te la [IANA. 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. avˆnd ˆ total lungimea unei adrese IP.5: Adresa 0:0:0:0:0:0:c100:e122 se poate scrie ¸i s 0:0:0:0:0:0:193.6: Prefixul IPv4 1100-0000-1010-1000-110 se scrie.c 2008. dup˘ care se scrie ¸ s ın as a (cu un slash ˆ ıntre ele sau ˆ rubrici separate) a¸a-numita masc˘ de retea.2.0. De¸i nu este actualizat.0.255.2. ˆ notatia cu ın ¸ adres˘ de retea ¸i masca.168.192.192. ]. Radu-Lucian Lup¸a s 300 10.0. .168. a a ın Exemplul 10.2.

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

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

din subordine“ — subretelele mai dep˘rtate de a ¸ ¸ a leg˘tura spre exterior dec˘t subreteaua considerat˘.238 E2 Subretea experimental˘ ¸ a eth2: 193.227.224.193 193.130/255.0.224/28 G eth0: 193.2 L2 193.225 193.1 eth1: 193.226.224. 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.192/27 S1 193.240 Spre reteaua furnizorului ¸ Figura 10.0.227.227.254 eth0: 193.4 L4 eth1: 193.3 L3 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).224. • Pe toate nodurile subretelei se configureaz˘ ca default gateway nodul ¸ a ales ca default gateway al subretelei.227.0.226 E1 193.224.0.0.255.0.0.227. 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).0.0.c 2008. Subretea secretariat ¸ 193.0..224. Pentru nodurile care fac parte din ¸ mai multe subretele.0/23 L1 193. ınsu¸ • Pe nodul ales ca default gateway pentru o subretea se vor configura ¸ rutele c˘tre subretelele .222 Subretea laboratoare ¸ 193.255. a a ¸ a Mai not˘m c˘ ˆ a a ıntr-o tabel˘ de dirijare static˘ nu se pot configura.0.227.225.2.0.227. Radu-Lucian Lup¸a s 310 10.227.194 S2 193. Protocolul IP fiind nodul din subretea cel mai apropiat de ie¸irea spre restul Internet¸ s ului. a a pentru tolerant˘ la pene.0.0.9 ¸ .4: Retea pentru exemplul 10.40. mai multe c˘i spre o aceea¸i destinatie.

L4 pentru reteaua experimental˘.227.4). ˆ 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.40. s˘ aloc˘m 32 adrese secretariatului ¸i 16 adrese retelei exa a s ¸ perimentale.224.0/23).255. Radu-Lucian Lup¸a s Capitolul 10.0/23. s˘ aloc˘m adresele.11 ¸i calculatoarele respective.224.227. 8 sau 4 adrese. Internetul 311 Exemplul 10. laboratorul de inforın ¸ matic˘ ¸i o retea special˘ pentru experimente. 256. care leag˘ reteaua experimental˘ de a a ¸ a ¸ a reteaua din laborator.130 ın ¸ cu masca 255.0. 128. de 512 adrese (510 a utilizabile efectiv).224. Din blocul de 512 adrese r˘mas a (193. a ˆ Incepem prin a aloca laboratoarelor un bloc cˆt mai mare.224/28 pentru reteaua s ¸ experimental˘. ˆ fiecare subretea.240 (prefix de 28 de biti). 10. continˆnd 1024 de adrese.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. access point-uri 802. respectiv pentru secretariat. dotat cu dou˘ pl˘ci de retea.0. 64.226.9: S˘ consider˘m c˘ avem de construit o retea ˆ a a a ¸ ıntr-o ¸coal˘. anume 193. adresa In ¸ dat˘ ruterului cu rol de default gateway este cea mai mic˘ adres˘ din acea a a a subretea. Pentru conectarea celor trei subretele ˆ ¸ ımpreun˘ ¸i la Internet cona s figur˘m dou˘ rutere: G.c 2008. Blocul de adrese a ¸ a a disponibile este 193. reteaua din laboratoare ¸i reteaua furnizorului de acces Internet ¸i ¸ s ¸ s L4 (probabil amplasat ˆ laborator. a Fiecare subretea este construit˘ dintr-un num˘r de switch-uri Ether¸ a a net. 16.0. exist˘ o alegere natural˘ pentru ¸ a a default gateway: G pentru reteaua secretariatului ¸i pentru reteaua din labo¸ s ¸ ratoare ¸i. ¸ S˘ presupunem. Este bine s˘ le aloc˘m cˆt mai compact. respectiv.192/27 pentru secretariat ¸i 193. pentru ca dintre adresele a a a nealocate s˘ p˘str˘m posibilitatea de-a aloca blocuri cˆt mai mari. 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. ˆ fiecare caz.255. 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. s a Presupunem c˘ am obtinut alocarea blocului de adrese 193.226. de asemenea. 32. care leag˘ reteaua secrea a a ¸ a ¸ tariatului. a Pentru fiecare din cele trei subretele. c˘ s-a decis ˆ artirea retelei interne a a ımp˘ ¸ ¸ ˆ trei subretele (fig. Putem crea blocuri ¸ a avˆnd ca dimensiuni puteri ale lui 2: 512. default s ¸ a In gateway-ul este nodul cel mai apropiat de exterior.0/22.0.0. ¸ .0. pentru a fi la ˆ ın ındemˆn˘ ˆ timpul experia a ın mentelor). dotat cu trei pl˘ci de retea. iar secretariatul a a a a s ¸ este separat fat˘ de traficul ¸i eventual atacurile dinspre laboratorarele de ¸a s informatic˘. ¸ Odat˘ stabilite subretelele.

0.224/28 → 193.2.226. 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 .192/27 → eth1 .0/0 → 193.2.0/23 → eth0 . o regul˘ implicit˘ indicˆnd default gateway-ul retelei furnizorului ¸ a a a ¸ de acces Internet ¸i o regul˘ pentru dirijarea spre subreteaua . • 193.226. • 193.7.1 (prin eth1 ). • 193.0. a doua este mai complex˘ ¸i serve¸te ¸i altor a s a s s s scopuri). Protocolul IP S˘ vedem acum cum trebuie configurate tabelele de dirijare.0. care asociaz˘ prefixului vid adresa default gateway-ului. • 0. care asociaz˘ prefixului subretelei unica interfat˘ de retea. 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˘.128/28 → eth0 .0.2.0. tabelele sunt formate din cˆte dou˘ reguli: o regul˘ pentru livrarea ¸ a a a direct˘.1 (prin eth0 ).0/0 → 193. 10. ¸i o regul˘ a a ¸ ¸a ¸ s a implicit˘. iar a treia este regula implicit˘: a a ¸ a • 193. dou˘ fiind pentru a livrarea direct˘ prin cele dou˘ interfete.224/28 → eth1 . 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. 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.0. Radu-Lucian Lup¸a s 312 10.227. • 193. Comanda ifconfig seteaz˘ parametrii legati de s a a ¸ interfetele de retea.227. ¸ a dar ¸i mult mai flexibil˘. a Pe sistemele de tip Linux configurarea este putin mai complicat˘.40. 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.227.224.0. Pentru a statii. a a Pentru nodul L4 . tabela de dirijare are trei reguli. Comportamentul de ruter. Pentru nodul G avem 5 reguli: trei reguli de livrare direct˘ prin cele a trei interfete.129 (prin eth0 ).40.0/23 → eth2 . dac˘ este dorit.224..0.224.0.0.0. trebuie activat explicit.subordonat˘“ s a ¸ a 193.224.c 2008.0. anume adresa IP ¸i masca de retea.224/28: • 193. Configurarea parametrilor de retea pe diverse sisteme de ¸ operare Pe sistemele Windows.227.

Dac˘ ping-ul merge pe leg˘turile directe. Fedora plaseaz˘ s a datele ˆ fi¸iere ˆ directorul /etc/sysconfig/network-scripts.227. Dac˘ ping-ul merge. a Comenzile ifconfig. 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. dac˘ este instalat un filtru de pachete (firewall). cablurile.3. 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˘.7. destination unreachable ¸i time exceeded. din p˘cate. ˆ cazul unei probleme de conecın tivitate sau dup˘ o lucrare mai ampl˘ la retea. ˆ a ınseamn˘ c˘ leg˘tura functioneaz˘ (pl˘cile de a a a ¸ a a retea. Radu-Lucian Lup¸a s Capitolul 10. 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. este dac˘ leg˘turile directe a a ¸ a a functioneaz˘. ip ¸i sysctl au efect imediat asupra s modulului IP din nucleu. Activarea comportamentului de ruter se ¸a face cu o comand˘ sysctl.224. Internetul 313 adrese accesibile prin acea interfat˘. de aceea este bine ca pachetele ping ¸i pong s˘ nu fie filtrate).c 2008. dac˘ esre specificat prin alt˘ adres˘ decˆt cea din aceea¸i a a a a s subretea cu statia configurat˘.0. a acesta s˘ permit˘ trecerea pachetelor ICMP cu tipurile echo-request. a ¸ De exemplu. pana trebuie c˘utat˘ printre lucrurile enumerate pˆn˘ s a a a a aici. Alt exemplu: la reteaua din exemplul 10.9. Parametrii de retea utilizati la pornirea sistemului sunt luati de ¸ ¸ ¸ script-urile de initializare din ni¸te fi¸iere text. se trece la verificarea leg˘a a a turilor ˆ ıntre subretele diferite.0. o statie care nu are configurat default gateway va putea ¸ comunica cu vecinii directi.227.2. este necesar ca. dar configur˘rile respective se pierd la repornirea a sistemului. Pentru buna functionare a acesteia ¸i a comenzii ¸ s traceroute.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.0. ¸ ¸ a ¸ dac˘ pe nodul G nu se pune regula care asociaz˘ prefixului 193. Testarea ¸i depanarea retelelor s ¸ Cel mai util instrument de depanare pentru problemele de conectivitate este comanda ping. s Primul lucru ce trebuie testat.224/28 a a gateway-ul 193. Dac˘ ping-ul nu merge ¸i pachetele ping a a s ¸ a s ¸i pong nu sunt filtrate. problema este a a ¸ a de la regulile de dirijare (sau de la un filtru de pachete. De exemplu. echoa a reply. ın s ın 10. fiecare distributie ¸ s s a ¸ de Linux are propriile fi¸iere de configurare..4. switch-urile ¸i access point-urile de pe traseu) ¸i c˘ adresele ¸ s s a IP ¸i m˘¸tile de retea sunt . dar nu ¸i cu alte calculatoare — nici m˘car cu ¸ s a default gateway-ul.224/28 ¸ . route.

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

1. Partea inclus˘ ˆ sistemul de operare este ¸ a ın delimitat˘ cu linie punctat˘. Principiul conexiunii TCP Livrarea sigur˘ este obtinut˘ pe baza unui mecanism de numerotare a ¸ a ¸i confirmare a pachetelor. Ethernet) Figura 10. ı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˘ . 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. a a • leg˘tur˘ bidirectional˘. • livrare sigur˘. ¸ facilit˘¸ile oferite de reteaua IP.3.5: Modulele unei retele IP. Ethernet) Retea de nivel inferior ¸ (de exemplu. adic˘ octetii trimi¸i de emit˘tor ajung la receptor sigur. Antetul TCP este ¸ s descris ˆ tabelul 10.1. at ¸ 10.3.c 2008. 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. aa s ın s ın s Modulul TCP are la dispozitie. Radu-Lucian Lup¸a s Capitolul 10. octeti consecutivi au asociate numere de a a ¸a ¸ secvent˘ consecutive. adic˘ fiecare din cei doi parteneri de comunicatie a a ¸ a a ¸ poate trimite date celuilalt. a¸a cum am v˘zut ˆ § 4. Mecanismul este imples s a ın mentat dup˘ cum urmeaz˘. a a ¸ s ¸a f˘r˘ duplicate ¸i ˆ aceea¸i ordine ˆ care au fost trimi¸i. Pentru ˆ a a ınceput consider˘m transmisia unidirectional˘ a ¸ a ¸i conexiunea deja deschis˘. pentru realizarea conexiunilor TCP. Cˆmpul num˘r de secvent˘ din antetul TCP contine num˘rul a a ¸a ¸ a de secvent˘ al primului octet din datele utile. ¸a Fiecare pachet TCP contine. ¸a . un ¸ir de octeti ¸ ın s ¸ utili consecutivi. ˆ zona de date utile.5.

11 indic˘ faptul c˘ num˘rul de confirmare a a a este valid arat˘ c˘ pachetul trebuie trimis urgent. 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. dependent ¸ ın de dimensiunea optiunilor ¸ valoarea 0 vezi § 10. Nivelul transport Nume cˆmp a Port surs˘ a Port destinatie ¸ Nr. Radu-Lucian Lup¸a s 316 10.8 suma de control a antetului vezi § 10.3.1.c 2008. fereastr˘ a Suma de control Pozitie date urgente ¸ Optiuni ¸ Dim.5: Antetul TCP .3.11 Tabelul 10. confirmare Deplasament date Rezervat Urgent Acknowledge Push Reset Synchronize Finalize Dim.3. (biti) ¸ 16 16 32 32 4 6 1 1 1 1 1 1 16 16 16 variabil Observatii ¸ pozitia datelor utile ˆ pachet. secvent˘ ¸a Nr.3.1.1.

¸ ¸ La primirea unui pachet TCP.c 2008. modulul receptor determin˘ a dac˘ datele utile sunt octeti deja primiti (duplicate). Datele trimise ¸i neconfirmate a s ˆ ıntr-un anumit interval de timp se retransmit. Exemplul 10. h. Dac˘ un pachet nu este confirmat ¸i a s ˆ ıntre prima trimitere ¸i momentul retrimiterii au mai sosit date de la aplicatie. Presupunem c˘ aplicatia a a ¸ surs˘ are de trimis ¸irul abcdefghi. La primirea unui pachet TCP. 11. Internetul 317 Modulul TCP receptor ¸ine evidenta num˘rului de secvent˘ al ultimt ¸ a ¸a ului octet primit. receptorul r˘spunde cu un pachet de cona firmare. cu num˘rul de secvent˘ ta a a ¸a . S˘ analiz˘m as a ¸a a a putin schimbul de pachete: ¸ • Emit˘torul trimite un prim pachet. h ¸i ˆ final i. Presupunem c˘ acest pachet se pierde. ¸ s s Emit˘torul retransmite octetii neconfirmati. 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. 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. apoi efg. emi¸ a a ¸˘torul TCP trimite imediat urm˘torul pachet. ¸a s a • Ca urmare a primirii de la aplicatia surs˘ a urm˘torului octet. 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. cu num˘rul de sec¸a a a vent˘ 14 ¸i date utile efg. Mai presupunem ¸a ın ıntˆ s s ın conexiunea TCP deja deschis˘ ¸i num˘rul curent de secvent˘ 10. ¸a s • Emit˘torul trimite acum urm˘torul pachet de date. Radu-Lucian Lup¸a s Capitolul 10. Datele noi intrate ˆ zona ın tampon sunt trimise cu un nou pachet. 12 ¸i 13. receptorul trimite ˆ ınapoi un pachet TCP de confirmare. cu num˘rul de confirmare 14 (acesta este urm˘torul num˘r de a a a secvent˘ a¸teptat). ¸ 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. 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). Datele utile. cu num˘r de secvent˘ 10 ¸i date utile ¸a a ¸a s ¸irul de 4 octeti abcd. ˆ ai ¸irul abcd. furnizate ¸a ¸ ¸ de aplicatie emit˘torului.10: ˆ figura 10. s ¸ emit˘toul poate la retrimitere s˘ concateneze datele vechi neconfirmate cu cele ¸a a noi. ¸a • La primirea acestui pachet. ¸i c˘ acesta este pasat modulului TCP a s s a emit˘tor ˆ etape. Ace¸ti 4 octeti au numere de secvent˘ respectiv s ¸ s ¸ ¸a 10.6 este prezentat˘ (simplificat) o parte dintr-un In a schimb de pachete corespunz˘tor unei conexiuni TCP. primul dintre acestea este scris ˆ cˆmpul num˘r de s ın a a secvent˘ al antetului TCP.

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

1. a Aceasta nu era o problem˘ ˆ anii ’80. a • Emit˘torul retrimite pachetul anterior. deoarece la 10 Mbit/s repetarea unui a ın num˘r de secvent˘ apare cel mai repede dup˘ aproape o or˘. Radu-Lucian Lup¸a s Capitolul 10. 4 GiB mai ˆ a ın ıncolo. 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. emit˘torul a s s ¸a ˆ a nu ¸tie de primirea datelor de c˘tre receptor. numerele de secvent˘ s In ¸a sunt reprezentate (vezi tabelul 10. • Receptorul constat˘ c˘ a primit un duplicat al datelor precedente. ı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). receptorul nu ˆ a ¸a ıl poate confirma deoarece nu a primit numerele de secvent˘ 14–16. s s a ¸a .c 2008.5) pe 32 de biti.3. Internetul 319 17 ¸i date utile h (presupunem c˘ emit˘torul nu utilizeaz˘ algoritmul s a ¸a a Nagle. • La primirea acestui pachet (cu num˘r de secvent˘ 17). 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. Cum un num˘r de secvent˘ ¸ a ¸a este asociat unui octet transmis. § 10. ınc˘ s a ˆ continuarea schimbului de pachete ilustrat. ˆ a a a ıns˘ retrimite confirmarea cu num˘rul 19. 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. dup˘ aceea numerele de secvent˘ ˆ a ¸a ıncep s˘ se repete. ceea ce face foarte posibil˘ o confuzie ˆ a ıntre un pachet care s-a . De notat c˘. rezult˘ c˘ exist˘ numere de secvent˘ distincte a a a ¸a doar pentru 4 GiB de date. ˆ cadrul conexiunii. ˆ realitate. se pot transmite 4 GiB ˆ ¸a ¸ ın 34 secunde. ¸i are acela¸i num˘r de secvent˘. nu se vor mai trimite pachete In pˆn˘ ce aplicatia surs˘ nu va da emit˘torului TCP noi date de transmis.. dup˘ expirarea time-out-ului de ¸a a la trimiterea lui. s a ¸a Ca urmare. dac˘ ˆ ¸a a ın acest moment receptorul ar trimite un pachet cu num˘r de confirmare 18. ˆ exemplul de fat˘ am considerat a doua variant˘. 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˘. trimitˆnd num˘rul de confirmare a ¸a a 19.ˆ ıncurcat“ prin retea timp de 34 s ¸i un pachet nou care poart˘ informatie sit¸ s a ¸ uat˘. Presupunem c˘ pachetul de confirmare respectiv se pierde. de¸i receptorul prime¸te un duplicat. 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 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. s • Receptorul confirm˘ pachetul primit. Intr-o retea cu debit de 1 Gbit/s.10).

3.1. Ace¸ti octetii fictivi a s ¸ au asociate numere de secvent˘ ca ¸i cˆnd ar fi octeti obi¸nuiti. 1992]. 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. f˘r˘ date utile a a a aa pentru cel˘lalt sens. Initiatorul unei comunicatii TCP trimite un pachet TCP continˆnd ¸ ¸ ¸ a un octet fictiv de pornire. Radu-Lucian Lup¸a s 320 10. 10. Astfel. Dac˘ este necesar s˘ se transmit˘ doar o confirmare. ˆ ¸a s ¸ a ¸ ınseamn˘ c˘ pachetul a a transmite k+1 octeti dintre care primul. datele utile pentru un sens sunt plasate ˆ acela¸i pachet s ın s TCP cu confirmarea pentru cel˘lalt sens. 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. 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. num˘rul a a de secvent˘ n ¸i zona de date utile continˆnd k octeti. s a Dac˘ este necesar˘ transmiterea unor date. fiecare pachet TCP contine a ¸ ˆ ıntotdeauna date pentru un sens ¸i confirmare pentru cel˘lalt sens.1. a a ¸ ın a a . Metoda se aplic˘ a ¸ a a ˆ doar la comunicatia ˆ ¸ ıntre module TCP care implementeaz˘ RFC 1323. conform [RFC 1323. 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.3. a Totu¸i. 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. 10. urmat de cei k octeti din zona de date utile. Nivelul transport Eliminarea riscului de confuzie ˆ ıntre pachete la debite mari de transmisie a datelor se realizeaz˘. dar nu ¸i a unei cona a s firm˘ri.2. prin introducerea ˆ antetul a ın TCP a unui cˆmp optional cuprinzˆnd un marcaj de timp. s Astfel.3. oprind efectiv transmisia la nevoie. Ei nu sunt ¸a s a ¸ s ¸ transmi¸i ˆ zona de date utile. In a cazul ˆ care unul din modulele TCP nu implementeaz˘ RFC 1323. ˆ cˆmpul num˘r de confirmare se repet˘ ultimul num˘r de confirmare a ın a a a a transmis. dac˘ un pachet TCP are flagul synchronize setat.c 2008. Numerele de secvent˘ utilizate pe cele dou˘ ¸a a sensuri evolueaz˘ independent.3. cu numere de ¸ la n + 1 la n + k. cu num˘rul de secvent˘ n. Comunicatia bidirectional˘ ¸ ¸ a Cele dou˘ sensuri de comunicatie ale unei conexiuni TCP functioneaz˘ a ¸ ¸ a (aproape) complet independent.

0 124 26 127 26 130 130 29 130 30 Flaguri syn syn. ¸ Marcarea ˆ ınchiderii unui sens se face trimitˆnd un octet fictiv de ˆ ¸a ıncheiere. 123 25 124 26 127 26 26 130 29 130 Nr.fin ack Date utile — — abc — de — xyz — — — Tabelul 10. Radu-Lucian Lup¸a s Capitolul 10.ack ack ack ack. 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. dac˘ dore¸te s˘ accepte co¸ a a s a nexiunea. a a Ca urmare.6: Un exemplu de schimb de pachete ˆ cadrul unei conexiuni. Nr. 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. confirm. confirm˘ pachetul de a initiere primit. • a primit un octet fictiv de pornire de la partener. Octetul fictiv de ˆ s ıncheiere se confirm˘ a normal. O conexiune poate functiona oricˆt de mult timp cu un sens ˆ ¸ a ınchis. 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. ın . Internetul 321 Num˘rul de secvent˘ al octetului fictiv de pornire este la alegerea initiatorului a ¸a ¸ comunicatiei.11. printr-un pachet TCP care. ¸ Receptorul pachetului initial r˘spunde. secv. datele primite ˆ a ınainte de momentul ˆ care conexiunea este deschis˘ ın a nu pot fi livrate aplicatiei pˆn˘ la deschiderea complet˘ a conexiunii.c 2008. pe de o parte. Fiecare parte poate trimite date ˆ ınainte de a dispune de o conexiune deschis˘. ¸ a a a ˆ Inchiderea conexiunii se face separat pe fiecare sens de comunicatie. iar pe de alt˘ parte contine la rˆndul lui un octet fictiv de ¸ a ¸ a pornire.6. Dup˘ trimitera octetului de ˆ a ıncheiere este interzis s˘ se mai trimit˘ date noi.fin ack ack ack ack. Exemplul 10.11: Un exemplu de schimb de pachete ˆ cadrul unei conexiuni ın este dat ˆ tabelul 10. Vezi ın exemplul 10.

syn abcde fin “. Din p˘cate. Ca a solutie de compromis. 2. Dup˘ ˆ a ınchiderea conexiunii din punctul de vedere al modulului TCP local. ˆ 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.3. 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). A a a nu mai are voie s˘ trimit˘ date noi. conexiunea este ˆ ınchis˘ a ˆ momentul ˆ care sunt ˆ ın ın ındeplinite conditiile: ¸ • modulul TCP a trimis octetul special de ˆ ıncheiere. Radu-Lucian Lup¸a s 322 10. Dup˘ trimiterea pachetului 5. conexiunea este complet deschis˘ la a primirea pachetului nr. Pachetele ce ¸ contin doar num˘rul de confirmare nu se confirm˘. Nivelul transport Pentru a urm˘ri u¸or schimbul de pachete. ¸ a a Din punctul de vedere a lui A. syn xyz fin “.c 2008. 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. protocolul TCP prevede p˘strarea datelor despre cone¸ a xiune un anumit interval de timp (de ordinul cˆtorva minute) dup˘ ˆ a a ınchiderea . 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). . cu numerele de a ¸ secvent˘ de la 123 la 129 inclusiv.. ı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. indiferent dac˘ ace¸tia sunt a ¸ ¸ a s date utile sau octeti fictivi syn sau fin . • modulul TCP a primit confirmarea propriului octet de ˆ ıncheiere. • modulul TCP a primit un octet special de ˆ ıncheiere de la partener. s s A poate considera de asemenea conexiunea complet ˆ ınchis˘ dup˘ trimiterea a a pachetului 10. detera minarea acestui moment este imposibil˘. 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.. s˘ remarc˘m c˘ A trimite a s a a a lui B un num˘r de 7 octeti din care 2 fictivi. deoarece din acel moment modulul a TCP partener nu va mai trimite nici un pachet (conexiunea fiind ˆ ınchis˘). trebuie confirmat. . din punctul de vedere al lui B conexiunea este complet deschis˘ la primirea pachetului 3. cu numerele de secvent˘ de la 25 la 29 inclusiv. 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. iar B trimite lui A un num˘r de 5 octeti din ¸a a ¸ care 2 fictivi.

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

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

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

7: Tipuri de ˆ ınregistr˘ri DNS mai des folosite a Mai mult. Faptul c˘ un nume care ar a a a a . trebuie s˘ caute o ˆ a ınregistrare cu numele canonic g˘sit a ¸i avˆnd tipul c˘utat initial. a a 10. 2003]) numele canonic corespunz˘tor numelui solicitat a numele canonic al nodului cu adresa IP solicitat˘. ˆ artirea ˆ domenii de autoritate Imp˘ ¸ ın Multimea numelor de domeniu este ˆ artit˘ ˆ zone. Radu-Lucian Lup¸a s Capitolul 10.4. 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.6 a vezi § 10. a Un server care este responsabil de o zon˘ trebuie s˘ detin˘ toate a a ¸ a ˆ ınregistr˘rile corespunz˘toare numelor din zon˘. § 11.1 Tabelul 10. vezi § 10. De remarcat c˘ r˘d˘cina a a a a a a zonei face parte din zon˘. 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. 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.4.c 2008.4. Dac˘ g˘se¸te o a a s ˆ ınregistrare CNAME. O zon˘ este o submultime de nume care.3. 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.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. a a ¸ ˆ ımpreun˘ cu leg˘turile dintre ele. 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. formeaz˘ un arbore.

ˆ Inregistr˘rile NS ale r˘d˘cinii unei zone ˆ a a a ımpreun˘ cu ˆ a ınregistr˘rile A a ale acelor nume sunt .ˆ ınregistr˘rile lipici“ ce trebuie ¸inute de un server cu a t privire la zonele vecine. Mecanismul de interogare a serverelor Protocolul utilizat pentru interogarea serverelor de nume este descris ˆ [RFC 1035. ın Un server de nume a¸teapt˘ cereri prin datagrame UDP trimise pe s a portul 53 ¸i prin conexiuni TCP pe portul 53. 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.4. ˆ a ınregistr˘ri de leg˘tur˘ ¸i a a as alte ˆ ınregistr˘ri. Aceste ˆ a a a ınregistr˘ri se numesc glue records — ˆ a ınregistr˘ri lipici a — deoarece creaz˘ leg˘tura cu zonele ˆ a a ınvecinate. a Din motive de tolerant˘ la pene. dac˘ exist˘ — ¸i a serverelor de nume pentru s a a s zona r˘d˘cin˘. a a a 10..5). ˆ artite ˆ trei categorii: a ımp˘ ¸ ın ˆ ınregistr˘ri din zonele pentru care este responsabil. a . 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. Radu-Lucian Lup¸a s 334 ˘ 10. De remarcat c˘ serverele de a a nume nu este obligatoriu s˘ fie ele ˆ a ınsele membre ale zonei. De principiu. 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 ¸ Pe lˆng˘ ˆ a a ınregistr˘rile despre zonele pentru care este responsabil. 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. 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. Interogarea cuprinde numele de domeniu c˘utat. tipul ¸i clasa. R˘sa s a punsul contine interogarea ¸i un ¸ir de ˆ ¸ s s ınregistr˘ri. 1987]. pentru fiecare zon˘ exist˘ de regul˘ ¸a a a a cel putin dou˘ servere responsabile. Clientul trimite cererea ˆ ai s ıntˆ ca datagram˘ UDP.4. ˆ afar˘ de ˆ a ın a ınregistr˘rile din a zonele pentru care este responsabil ¸i de ˆ s ınregistr˘rile de leg˘tur˘. a Dac˘ numele din interogare este dintr-o zon˘ pentru care serverul a a este responsabil. Un server poate ¸ine ¸i alte ˆ t s ınregistr˘ri. a • Una sau mai multe ˆ ınregistr˘ri NS (Name Server ) care contin numele a ¸ serverelor de nume responsabile de zon˘.4. 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˘.c 2008.4.

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

este administrat de aceea¸i institutie. Astfel. . C˘utarea numelui dup˘ IP a a DNS nu permite c˘utarea unei ˆ a ınregistr˘ri dup˘ valoare. corespunde unui bloc de adrese IP alocat unei institutii.225.4. a a 10. ea nu va putea primi ˆ administrare ˆ ın ıntregul domeniu 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.193.6. 1998]: numele corespunz˘toare IP-urilor se definesc ca a pseudonime pentru ni¸te nume din domenii create special pentru blocurile s alocate.226.arpa. dac˘ firma X are alocat blocul de adrese a 193. . adresei IP 193. un subdomeniu din in-addr. s ¸ ˆ situatia ˆ care alocarea blocurilor de adrese IP se face dup˘ In ¸ ın a schema CIDR.0.193. asociat blocului a .arpa. subdomeniul corespunz˘tor din dome¸ a niul in-addr.193. De exemplu. Administrarea numelor din in-addr.0.c 2008. Radu-Lucian Lup¸a s 336 ˘ 10. deoarece a a g˘sirea serverului ce detine ˆ a ¸ ınregistrarea ar necesita interogarea tuturor serverelor DNS din Internet. se face.40. 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.in-addr.arpa..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. constructia este urm˘toarea: ¸ a • se creaz˘ domeniul 128/28. 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. ¸i se adaug˘ in-addr.225.4. cu componentele ˆ orın a a ın dine invers˘. 1996]) prin care serverul master as cere explicit unui server slave s˘ copieze datele despre zon˘.128/28.34 ˆ a s a ıi corespunde numele 34. serverul slave trebuie s˘ nu se mai considere responsabil a de zon˘. Interogarea ¸i adminiss trarea acestor nume de domeniu se fac ˆ ıntocmai ca ¸i pentru numele obi¸nuite.arpa.arpa. Pentru a putea r˘spunde la ˆ a ıntreb˘ri de tipul cine are o adres˘ IP a a dat˘.arpa.in-addr. s s De principiu. • expire este timpul dup˘ care. deoarece acesta contine ¸i alte adrese decˆte cele ¸ s a ale firmei X. Pentru exemplul dat.40. ˆ acest caz. granitele blocurilor nu coincid cu granitele subdomeniilor lui ¸ ¸ 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.arpa.226. . ın conform [RFC 2317. a Exist˘ ¸i un protocol ([RFC 1996.in-addr. ˆ cazul ˆ care nu a reu¸it s˘ contacteze a ın ın s a serverul master..arpa.

0.5.226. ˆ cadrul retelei de nivel inferior ıntˆ a ın ¸ (adic˘ adresa MAC.226.in-addr.0.3. din punctul de vedere al unei retele Internet In ¸ este o leg˘tur˘ direct˘.40. a a • numele de domeniu de la 128.1.arpa.193.in-addr.in-addr. 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.3.226.0.9. ¸ Transmiterea unui pachet IP de la un nod A c˘tre un nod B.193.0.1. numele de domeniu asociat este b. sub form˘ de date utile ˆ cadrul a ın unui pachet al retelei de nivel inferior. 2003].0. Radu-Lucian Lup¸a s Capitolul 10.0.arpa. de exemplu o retea IEEE 802.5. Leg˘turile directe ˆ a ıntre nodurile IP 10. se definesc ca pseudonime (CNAME ) pentru numele de la 128. 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. Pentru adresele IPv6 se folose¸te un mecanism asem˘n˘tor.0.40. Internetul 337 193.5.arpa.40.4.0.0. a nodului B. ceea ce.128/28.0. .arpa . pachet destinat adresei g˘site ¸ a anterior.0. pˆn˘ la a a 143. nodul A determin˘ adresa.2.1. fiec˘rei adrese IPv6 i se asociaz˘ un nume ˆ ın a a ın domeniul ip6.4.7.0.0.6.193.128/28.arpa.40. Exemplul 10.in-addr. a c˘rui administrare este delegat˘ firmei X.2. ˆ cadrul a ın aceleia¸i retele de nivel inferior. pˆn˘ la a a 143.8.193.c 2008.128/28.40. Rezolvarea adresei — ARP ˆ multe cazuri.0.226. pentru IEEE 802). este de fapt o leg˘tur˘ ˆ a a a a a ıntre dou˘ noduri ˆ a ıntr-o retea ¸ de alt tip. a • apoi A trimite pachetul IP nodului B. Anume.arpa 10.0. 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˘. definit s a a ˆ [RFC 3596.a.0.0.14: Pentru adresa 4321:0:1:2:3:4:567:89ab.226. se face astfel: s ¸ • mai ˆ ai. ip6.

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

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

ˆ 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. servere DNS) ¸i parametrii specifici fiec˘rui nod ˆ parte (adresa IP a s a ın nodului). 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. un server DHCP trebuie s˘ aib˘ dou˘ categorii de date: ¸ a a a a parametrii comuni tuturor nodurilor din subretea (masca de retea. cu portul destinatie 68. 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. aa Alocare dinamic˘: Serverul dispune de o multime de adrese pe care le a ¸ aloc˘ nodurilor. 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. 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. Parametrii comuni sunt setati de administratorul serverului DHCP ¸ ˆ ıntr-un fi¸ier de configurare al serverului. 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. clientul nu mai are voie s˘ a a utilizeze adresa.c 2008. Dup˘ expirarea perioadei de alocare. 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). Perioada de a a a alocare poate fi prelungit˘ la solicitarea clientului printr-o cerere DHCP de a prelungire. Adresele se atribuie de regul˘ pe o durat˘ determinat˘. a a Determinarea parametrilor de c˘tre server. dac˘ clientul este scos din retea f˘r˘ a a ¸ aa . gateway¸ ¸ uri. Nodul client este identificat prin adresa MAC sau prin nume. Serverul p˘streaz˘ corespondenta dintre adresele MAC a a a ¸ ale clientilor ¸i adresele IP ce le-au fost alocate. ˆ al doilea caz. Pentru fiecare subretea a ¸ pentru care actioneaz˘. 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).

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

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

. se permit pachetele c˘tre exterior.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˘.pachete ce intr˘ pe interfat˘ c˘tre Internet ¸i au ca adres˘ surs˘ o a ¸a a s a a adres˘ din reteaua intern˘.se permit conexiunile c˘tre serviciile ce se doresc a fi accesibile din a afar˘ (web. ˆ a este dificil a ıns˘ de permis intrarea pachetelor de r˘spuns pentru conexiunile initiate din a ¸ interior.pachete ce au ca surs˘ o adres˘ de broadcast (clasa D) sau de clas˘ a a a E. Radu-Lucian Lup¸a s Capitolul 10. a ¸ Pentru aceasta exist˘ dou˘ strategii: a 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. A doua metod˘ este mai sigur˘. se permit pachetele asociate unei conexiuni deja deschise. s Prima metod˘ este mai simpl˘ ˆ a necesit˘ lista complet˘ a serviciilor a a ıns˘ a a ce trebuie blocate. se permit conexiunile initiate din a ¸ interior ¸i se interzic toate celelalte pachete.c 2008.pentru conexiun TCP. se permit paa chetele destinate serviciilor publice ¸i se interzic toate celelalte s pachete. accesul la un share ¸ a Windows este adesea de dorit s˘ nu fie posibil din afara retelei locale. ¸ a • S˘ fie interzise conexiunile din afara retelei locale c˘tre servicii care sunt a ¸ a oferite doar pentru reteaua local˘. eventual ssh). . ı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˘. Solutia uzual˘ este: ¸ a . ca urmare nu se poate a stabili o regul˘ simpl˘ pentru permiterea intr˘rii pachetelor destinate a a a acelui port. ˆ a a ıntrucˆt serviciile a sunt inaccesibile dac˘ nu s-a specificat explicit contrariul. Aici intr˘: a a . a ¸ a . mail. . Aceasta se ˆ ampl˘ deoarece o conexiune initiat˘ din interior ıntˆ a ¸ a are alocat un port local cu num˘r imprevizibil.se blocheaz˘ pachetele destinate porturilor pe care a¸teapt˘ conea s a xiuni serviciile respective. De exemplu.

225.0. s Pentru diagnosticarea function˘rii retelei vom mai permite trecerea ¸ a ¸ pachetelor ICMP ping.226.130 ¸i c˘tre serverele ssh de a a s s a pe toate ma¸inile din reteaua local˘.40.0.dubioase“. ın ¸ ıl aa ¸ Bloc˘m toate ˆ a ıncerc˘rile de spoofing detectabile.1) sau o adres˘ privat˘.pachete destinate adresei de broadcast a retelei locale sau adresei ¸ de broadcast generale (255. a # blocare spoofing detectabil si alte pachete dubioase iptables -A FORWARD -i eth0 -s 193.128/28. se int ¸ terzic pachetele destinate unor servicii private.40.129 c˘tre subreteaua loa s ¸ a ¸ cal˘.128/28 -j DROP iptables -A FORWARD -i eth0 -s 193.255. 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.0.20 -j DROP iptables -A FORWARD -i eth0 -s 127. destination unreachable ¸i time exceeded.0.226. . s • S˘ fie interzise diferite alte pachete .pachete avˆnd ca adres˘ surs˘ sau destinatie adresa ma¸inii locale a a a ¸ s (127. Aces¸ a a s tea le furniz˘m astfel: a • pe ruter instal˘m un server DNS ¸i un server NTP. se permit pachetele spre exterior. Ruterul are interfata eth0 cu adresa 193.20 ¸ c˘tre exterior ¸i interfata eth1 cu adresa 193. accesibile din reteaua a s ¸ local˘. precum ¸i s s r˘spunsurile corespunz˘toare.40.pentru UDP.0.255.255).0. acestea furnizeaz˘ serviciile respective pentru reteaua local˘ a a ¸ a • permitem cererile emise de serverele DNS ¸i NTP de pe ruter. s ¸ a Din reteaua local˘ dorim s˘ putem accesa servicii DNS ¸i NTP. pong.0/8 -j DROP .226. Radu-Lucian Lup¸a s 344 10.40.15: Fie un ruter avˆnd ˆ spate o retea intern˘ avˆnd adrese cu a ın ¸ a a prefixul 193. unde nu se poate ¸ine evidenta unor conexiuni.c 2008. a a Exemplul 10. cum ar fi: a .7.226. a Din reteaua local˘ dorim s˘ se poat˘ deschide orice fel de conexiuni ¸ a a a TCP c˘tre exterior. din exterior dorim s˘ nu se poat˘ deschide alte conexiuni a a a decˆt c˘tre serverul http ¸i https de pe 193. Cererile NTP provin de pe portul UDP a a 123 al ruterului ¸i sunt adresate portului UDP 123 al unui nod din s exterior. 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.225.. s Traficul ˆ interiorul retelei locale ˆ permitem f˘r˘ restrictii. Situatii speciale ˆ dirijarea pachetelor ¸ ın .

16.255.0.255.0/16 -j DROP iptables -A INPUT -i eth1 -s ! 193.255 -j DROP iptables -A INPUT -i eth0 -d 193.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/12 -j DROP iptables -A FORWARD -i eth0 -s 192.0.20 -j DROP iptables -A INPUT -i eth0 -s 127.0/8 -j DROP iptables -A INPUT -i eth0 -s 172.168.226.40.226. Internetul 345 iptables -A FORWARD -i eth0 -s 0.0.0.226.0/8 -j DROP iptables -A INPUT -i eth0 -s 224.0/8 -j DROP iptables -A FORWARD -i eth0 -s 224.255.255 -j DROP iptables -A FORWARD -i eth0 -d 193.0/3 -j DROP iptables -A FORWARD -i eth0 -s 10.0.168.c 2008.0.0.40.0/8 -j DROP iptables -A INPUT -i eth0 -s 0.0.40.0.225.226.0.40.226.0.0.0/12 -j DROP iptables -A INPUT -i eth0 -s 192.40.130 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -d 193.128/28 -j DROP iptables -A INPUT -i eth0 -s 193.226.0. Radu-Lucian Lup¸a s Capitolul 10.128/28 -j DROP iptables -A FORWARD -d 255.130 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -d 193.0.0/8 -j DROP iptables -A FORWARD -i eth0 -s 172.40.0.226.0/16 -j DROP iptables -A FORWARD -i eth1 -s ! 193.128/28 -j DROP iptables -A INPUT -d 255.0.0/3 -j DROP iptables -A INPUT -i eth0 -s 10.30.40.255.226.159 -j DROP iptables -A INPUT -i eth0 -s 193.40.0.30.16.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.

o adres˘ trebuie s˘ fie unic˘ doar ˆ multimea nodurilor ın a a a ın ¸ cu care un anumit nod ar putea dori s˘ comunice. 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˘.226. a a ın Adresele calculatoarelor private pot fi refolosite de c˘tre calculatoare private a din alte astfel de retele interne.128/28 Noduri private 192. Radu-Lucian Lup¸a s 346 10. a ¸ a ın a a .public“ In ¸ a s˘ fie unice. a ˆ situatia descris˘. o parte dintre ¸ a ¸ calculatoare — s˘ le numim publice — trebuie s˘ comunice nerestrictionat cu a a ¸ alte calculatoare din Internet. Retele private ¸ O retea privat˘ este o retea.7.225.0/24 Reteaua institutiei B ¸ ¸ Reteaua institutiei A ¸ ¸ Figura 10.7: Dou˘ retele locale avˆnd fiecare acelea¸i adrese private pentru o parte a ¸ a s din calculatoare.c 2008. O utilizare tipic˘ este cea prezentat˘ ˆ figura 10. de exemplu de cele ale institutiei B din figur˘.1. 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˘.168. Din aceast˘ retea proprie. O institutie A a a ın ¸ are o retea proprie de calculatoare..0/24 Noduri publice 193. a c˘rei ¸ a ¸ a a calculatoare nu pot comunica direct cu calculatoarele din Internet.1. este necesar ca adresele din Internet-ul . ¸ ¸ a De fapt. conectat˘ sau nu la Internet.0.40. ˆ general. ˆ 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 Noduri private 192..7.168. 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. ¸ a Internet-ul .public“ Furnizor Internet Noduri publice 193. Situatii speciale ˆ dirijarea pachetelor ¸ ın 10. Calculatoarele private nu este necesar s˘ aib˘ adrese unice ˆ Internet.2.7.

acest lucru nu este posibil. iar ¸ serverul S vom presupune c˘ accept˘ conexiunea.7. pentru a putea accesa pagini web. Deoarece adresa clientului nu este unic˘ la a a nivelul Internet-ului (ci doar la nivelul propriei retele interne).0. a pachetul de r˘spuns ajunge la G.2. 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.0. 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.8). punˆnd adresa lui C ˆ locul propriei adrese.1. Deoarece adresa lui G este public˘. ˆ acel moment.0/8. privat˘. F˘r˘ vreun mecanism aa special.3. De cele mai multe ori. pachetul de ¸ r˘spuns nu poate fi livrat. 10. Translatia adreselor (NAT) ¸ Translatia adreselor este un mecanism prin care un ruter modific˘ ¸ a adresa surs˘ sau adresa destinatie a unor pachete.G modific˘ a a a a adresa destinatie a pachetului. 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. Un pachet provenind de la C c˘tre S este modificat de a c˘tre G. ¸ a ın .1. a clientului C.0. 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. urm˘toarele blocuri de adrese IP sunt s a ın a alocate pentru astfel de utiliz˘ri ˆ retele private: 10. Ca urmare. Internetul 347 pachetul este dirijat c˘tre unicul nod din reteaua local˘ purtˆnd adresa a ¸ a a respectiv˘. 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. G trebuie s˘ determine fapa In a tul c˘ pachetul este r˘spuns la o cerere adresat˘ de C.168. calculatoarelor private li se ofer˘ posibilit˘¸i a at limitate de-a comunica cu calculatoare din Internet. 172. Radu-Lucian Lup¸a s Capitolul 10.0/16. a A¸a cum am v˘zut ˆ § 10. a ¸ 10. a • altfel. Pachetul ajunge la destinatie.3.16.0. trebuie s˘ existe un nod (ruter) G ˆ reteaua intern˘.c 2008.7. a Translatia adresei surs˘ rezolv˘ problema de mai sus ˆ modul ur¸ a a ın ˆ primul rˆnd. ın a 10.0/12 ¸i a ın ¸ s 192. ruter-ul declar˘ pachetul nelivrabil. 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.4. prin intermediul unor mecanisme descrise ˆ paragrafele urm˘toare. acesta punˆnd adresa proprie G ˆ locul adresei lui C.

226. de pe un port pc . c˘tre un server S. ruterul ¸ s ¸ G pune adresa destinatie C ¸i portul destinatie pc . ¸i ca urmare adresa lui C indic˘ singurul ın ¸ a s a nod din reteaua proprie avˆnd acea adres˘. a a Exemplul 10. Radu-Lucian Lup¸a s 348 10.1 C 192.168. Situatii speciale ˆ dirijarea pachetelor ¸ ın Internet S 193. Asocierea (C.123 deschide o conexiune TCP a a de pe portul efemer 3456 c˘tre serverul S. ruterul G aloc˘ un port TCP a a local pg (de preferint˘ pg = pc . a Pentru o conexiune TCP. De regul˘. Acest lucru este cel mai simplu de f˘cut pentru conexiunile TCP.0. G p˘streaz˘ asocierea (C. La primirea unui pachet de deschiderea conexiunii dinspre un nod privat C.0.168.226. ruterul G urm˘re¸te pachetele de deschidere a coa s nexiunii.0.40.123 Retea privat˘ ¸ a Figura 10.225.20 G 192. pe a a .40.8. ¸ a a Pentru ca mecanismul de mai sus s˘ fie realizabil. ˆ a dac˘ pc nu este liber se poate aloca un pg ¸a ıns˘ a diferit).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˘.130 193. avˆnd adresa 193. a a s a a a a La sosirea unui pachet cu adresa destinatie G ¸i portul destinatie pg .168. presupunem c˘ ¸ a ın a clientul C avˆnd adresa (privat˘) 192. pg ).0. pg ) este p˘strat˘ pˆn˘ la ˆ a a a a a ınchiderea conexiunii.130. 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. pc . determinat˘ prin schimbul corespunz˘tor de pachete.c 2008. pc .16: Pentru reteaua ilustrat˘ ˆ figura 10. 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. 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 . Pachetul de deschidere a conexiunii este modificat de G astfel ˆ at ıncˆ adresa surs˘ s˘ fie G ¸i portul surs˘ s˘ fie pg .7.

ˆ ınchiderea conexiunii UDP“. 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. de ıns˘ ordinul cˆtorva minute. Translatia adreselor s s a ¸ pentru astfel de pachete functioneaz˘ ˆ ¸ a ıntocmai ca ¸i ˆ cazul UDP. sub forma de date utile pentru protocolul a TCP. Radu-Lucian Lup¸a s Capitolul 10.40.20 193. ˆ care dac˘ nu trec pachete asocierea a ın a este desf˘cut˘. Este ˆ a dificil de deter¸ a ıns˘ minat durata valabilit˘¸ii asocierii (C.16 s ın portul 80 (pentru a aduce o pagin˘ web).225.130 port 7890 (pg ) port 80 193.0. Serverul din Internet .226.0. Se poate ˆ a utiliza un timp de expirare. Nodul privat .8. Pentru a UDP.225. 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 .130 port 3456 (pc ) port 80 193..225. informatii privind adresa IP ¸i portul de pe client.. • dac˘ pe conexiune sunt trimise. utilizarea adreselor private ¸i a ¸a s translatiei adresei surs˘ are dou˘ limit˘ri majore: ¸ a a a • nu permite deschiderea conexiunilor ˆ sens invers.are impresia“ c˘ comunic˘ direct cu serverul din a a Internet.130 192. asocierea este mai dificil de f˘cut. 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 ).226. pg ). pc . Adresele pachetelor transmise a ¸ a ˆ ıntre C ¸i S sunt date ˆ tabelul 10. s ın Mecanismul de translatie a adresei surs˘.123 port 80 port 3456 (pc ) ˆ Intre G ¸i S s surs˘ a destinatie ¸ 193.20 port 80 port 7890 (pg ) Tabelul 10.0. Internetul 349 Sens C→S C←S ˆ Intre C ¸i G s surs˘ a destinatie ¸ 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.c 2008.are impresia“ c˘ comunic˘ cu ruterul G pe a a portul alocat de acesta. descris mai sus. de exemplu.168.123 193.168.226. Fat˘ de utilizarea adreselor publice.40.130 193.20 efectueaz˘ translatia adresei surs˘.40. Ruterul G avˆnd adresa public˘ a a a 193. dinspre Internet c˘tre ın a un nod privat. ˆ at ınturcˆt nu exist˘ pachete de a a . permite ¸ a deschiderea unei conexiuni de la un nod cu adres˘ privat˘ c˘tre un nod public a a a din Internet. s ın Pentru alte protocoale.40.0.226.0.

. Fiec˘rui cala a culator ˆ vom asocia un port pe ruterul G. s s a 10. pentru aceasta. a s a a ¸ a De exemplu. G trebuie. 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. care pune a a ca adres˘ surs˘ adresa proprie G ˆ loc de S. servere ce nu pot functiona pe aceea¸i ma¸in˘. 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. pe fiecare calculator ruleaz˘ un server SSH. ˆ acest caz. prin ıi a protocolul SSH. ¸ 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. Conexiunile deschise din Internet c˘tre G vor fi redirectionate a a ¸ echilibrat c˘tre serverele S1 . iar C . Printr-un a In a mecanism similar cu cel din paragraful precedent. a In serverul va avea ca adres˘ publicat˘ ˆ DNS adresa lui G.. G alege un server Sk c˘tre care redirectioneaz˘ acea a a ¸ a conexiune. . O conexiune din afar˘. . 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. ˆ acest caz. s a a a Desigur. Sn ˆ reteaua ın ¸ intern˘. S2 . comunicarea .2. Mai exact. adresa privat˘ a lui S. C deschide conexiunea c˘tre G. Pa¸ a ın a chetul de r˘spuns de la S este de asemenea modificat de c˘tre G. 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..are impresia“ c˘ a a ın a comunic˘ direct cu C. ˆ locul propriei adrese.c 2008. . un server S cu adres˘ privat˘. a a Este posibil ˆ a ca adresa publicat˘ (ˆ DNS-ul public) pentru serverul ıns˘ a ın S s˘ fie adresa lui G. Translatia adresei destinatie ¸ ¸ Presupunem c˘ avem o retea privat˘. Orice pachet ulterior de pe acea conexiune va fi redirectionat ¸ . punˆnd.. la deschiderea unei a conexiuni c˘tre G. a • pentru a distribui cererile c˘tre un server foarte solicitat. . Sn .normal˘“ nu este posibil˘ deoarece ˆ contextul lui C a a ın adresa privat˘ a lui S nu este unic˘. c˘tre un anumit port de pe G va fi redirectionat˘ c˘tre a ¸ a a serverul SSH de pe calculatorul privat corespunz˘tor.3. Situatii speciale ˆ dirijarea pachetelor ¸ ın ˆ ıntre C ¸i S.are impresia“ c˘ comunic˘ cu G. din nou.7. ˆ a vor exista a a ın ıns˘ de fapt mai multe servere pe calculatoare S1 .7. S2 . Radu-Lucian Lup¸a s 350 10. . G modific˘ de data aceasta a adresa destinatie. Astfel. . Necesitatea utiliz˘rea calculatoarelor distincte a pentru aceste servicii poate rezulta din motive de securitate sau din motive legate de performantele calculatoarelor utilizate. Clientul C dore¸te s˘ deschid˘ o conexiune c˘tre serverul S. S . conexiunile de date din protocolul FTP). ¸ • dac˘ dorim totu¸i acces din afar˘ c˘tre calculatoarele din reteaua intern˘.

3.7. 10. Internetul 351 c˘tre Sk .9). Tunelarea Prin tunelare se ˆ ¸elege. ˆ a ducerea unui cablu a a ıns˘ specual pentru aceasta poate fi extrem de costisitor.0/24 192.1 Leg˘tur˘ direct˘ a a a (subretea 192. ¸ ¸ 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.225.168. Conexiuni noi pot fi redirectionte c˘tre alte servere. ¸ a a a a .168.0/24) ¸ 192.7. ducˆnd o leg˘tur˘ fizic˘ a a ¸ a a a a ˆ ıntre ele (fig.2.40.1.0.4.1.0.226.c 2008. De exemplu. ofer˘ conectivitate complet˘.0/24 192. Radu-Lucian Lup¸a s Capitolul 10.168.2 192.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.1 192.130 Internet Figura 10.168.1 192. ın • Unificarea fizic˘ a celor dou˘ retele private. ˆ general.20 193. 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.168.0. Ne vom ocupa ˆ cele ce urmeaz˘ de tunelarea pachetelor IP.0. a ¸ a 10. Exist˘ mai multe solutii a s ¸ a a ¸ pentru a realiza leg˘tura: a • Translatia adreselor realizeaz˘ o leg˘tur˘ supus˘ unor restrictii.2.9: Unificarea retelelor private printr-o leg˘tur˘ fizic˘ direct˘. studiate ¸ a a a a ¸ ˆ § 10. adic˘ de ın a a transmiterea pachetelor IP prin protocoale de nivel retea sau de nivel aplicatie.168.

fiecare cap˘t al tunelului este o interfat˘ de retea.c 2008.1.168. Radu-Lucian Lup¸a s 352 10. Unele a a dintre protocoale cripteaz˘ pachetele tunelate.0/24 192.168..1 192. astfel de protocoale ofer˘ secua a ritatea unui cablu direct bine p˘zit.10).225.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˘.1 192.40. Situatii speciale ˆ dirijarea pachetelor ¸ ın • Tunelarea ofer˘ conectivitate completa ca ¸i leg˘tura fizic˘ folosind lea s a a g˘turile la Internet existente. 10.2 Leg˘tur˘ virtual˘ (tunel) a a a (subretea 192.0.0.1 192.168. Retea privat˘ virtual˘ (VPN) ¸ a a Retea sediu A ¸ Retea sediu B ¸ 192.168.1. Ca urmare.20 193. Constructia const˘ ˆ realizarea unei coa ¸ a ın nexiuni (de exemplu TCP) ˆ ıntre dou˘ rutere cu adrese publice din cele a dou˘ retele interne (fig. Conexiunea dintre rutere este un . 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.168.0/24 192.226.0.0/24) ¸ Internet Figura 10.2. avˆnd o a a ¸a ¸ a adres˘ IP ¸i o masc˘ de retea.168.0.130 192. a Un tunel poate avea mai mult de dou˘ capete.2.cablu a ¸ virtual“ ce preia rolul conexiunii fizice. a s a ¸ Pentru tunelarea propriu-zis˘ exist˘ mai multe protocoale.7.168. ¸ .

1). s a ın s a protocolul cuprinde prevederi create ˆ ideea transferului prin alte mijloace ın decˆt o leg˘tur˘ prin protocol Internet.1. Radu-Lucian Lup¸a s 353 Capitolul 11 Aplicatii ˆ retele ¸ ın ¸ 11.2. mail user agent-ul trimite mesajul unui proces de tip mail transfer agent (MTA). • De fiecare adres˘ destinatie este r˘spunz˘tor un mail transfer agent care a ¸ a a memoreaz˘ mesajele destinate acelei adrese. La final. Transferul este initiat de MTA-ul emit˘tor ¸i utilizeaz˘ ¸ ¸a s a tot protocolul SMTP. s a • O serie de procese de tip mail transfer agent care trimit fiecare urm˘toa rului mesajul. 11. controlat de utilizatorul ce dore¸te expedierea mesajului.c 2008. Odat˘ mesajul ajuns la a a . Po¸ta electronic˘ s a Po¸ta electronic˘ serve¸te la transferul de mesaje electronice ˆ s a s ıntre utilizatori aflati pe sisteme diferite. 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. Sistemul este conceput ˆ ideea c˘ este acceptabil ca ¸ ın a transferul mesajului s˘ dureze cˆteva ore. pentru a putea functiona pe sisteme a a ¸ ce nu dispun de o leg˘tur˘ permanent˘ ˆ retea.1. Ca urmare. Acesta interactioneaz˘ cu utilizatorul s ¸ a pentru a-l asista ˆ compunerea mesajului ¸i stabilirea adresei destiın s natarului. Transferul este initiat de MUA-ul uti¸ lizatorului expeditor ¸i utilizeaz˘ protocolul SMTP (§ 11.1): a • Un proces de tip mail user agent (MUA). 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.

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

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

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

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

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

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

Un astfel de cˆmp poate avea ˆ continuare o informatie a a ın ¸ suplimentar˘. s a at ın Ca urmare. De asemenea. arat˘ numele sugerat pentru salvarea a a p˘rtii respective.1. De notat c˘. ˆ caz a a ıntˆ In contrar. datorit˘ imposibilit˘¸ii transmisiei lor ˆ unele sisteme. Valori posibile sunt: a s • inline arat˘ c˘ mesajul sau partea de mesaj trebuie s˘ fie afi¸at˘ utia a a s a lizatorului. filename=nume. 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). din motive de securitate. Codificarea corpului mesajului ¸i a ata¸amentelor s s Standardul original al formatului mesajelor prevede c˘ mesajele cona ¸in doar text ASCII. 1997]. a ın . transmiterea unui fi¸ier arbitrar (inclusiv a unui text s ISO-8859) nu este posibil˘ direct. 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 (--). cu utilizare restrictionat˘ a caracterelor de control. Radu-Lucian Lup¸a s 360 ˘ 11. Fiecare parte a unui mesaj de tip multipart/mixed are un cˆmp a Content-disposition [RFC 2183. cu care s˘ suprascrie un fi¸ier al destinatarului. Ca urmare. mail user agenta¸ a ul destinatie trebuie s˘ nu salveze orbe¸te partea de mesaj sub numele ¸ a s extras din mesaj. Exemplu: s s a ¸a Content-type: multipart/mixed. • attachment arat˘ c˘ mesajul sau partea de mesaj nu trebuie afi¸at˘ a a s a decˆt la cerere. a Transmiterea unui continut arbitrar se face printr-o recodificare a ¸ acestuia utilizˆnd doar caracterele permise ˆ corpul mesajului.1. se recomand˘ s˘ nu se utilizeze caracterele cu coduri a a ˆ ıntre 128 ¸i 255. s a s 11. utilizate pentru separarea rˆndurilor din s a mesaj. un adversar poate s˘ trimit˘ un fi¸ier avˆnd ata¸at un anumit a a s a s fi¸ier. 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. a • dup˘ ultima parte se g˘se¸te un rˆnd format doar din textul de dup˘ a a s a a boundary=. ci s˘ cear˘ mai ˆ ai permisiunea utilizatorului.1.4. 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.c 2008.

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

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

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

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

Dac˘ nu exist˘ nici un server cu numele de domeniu din adresa destinatie. printre informatiile sale de configurare (vezi a ıntˆ ¸ § 11. dac˘ are vreo regul˘ privind adresa destinatie. a a ¸ adic˘ dac˘ toate cele trei variante de mai sus e¸ueaz˘. MTA-ul caut˘ mai ˆ ai. 3.1. ˆ memoreaz˘ lo¸ ıl a cal. Aplicatii ˆ retele ¸ ın ¸ Subject: Re: Incident Organizatiei omuletilor verzi anunta ca nu a avut nici un amestec in incidentul de la balul anual E. Ion Ionescu. ¸ s 4. a c˘rui adres˘ a a s a a este configurat˘ ˆ optiunile MUA-ului. MTA-ul contacteaz˘ una din ma¸inile specificate ˆ ˆ a s ın ınregistr˘rile MX g˘site ¸i-i a a s transmite mesajul. 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. O astfel de ˆ ¸ ınregistrare contine una sau mai ¸ multe nume de servere SMTP capabile s˘ preia mesajele destinate unei a adrese din acel domeniu.1. Pe sistemele de tip UNIX.3). Un MUA lucreaz˘. Dac˘ nu exist˘ informatii de configurare pentru adresa destinatie. Pentru trans¸ miterea oric˘rui mesaj. 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˘. Dac˘ MTA-ul este poart˘ de intrare a mesajelor pentru MTA-urile a a din reteaua local˘. Radu-Lucian Lup¸a s Capitolul 11. de obicei. at s a ¸a a iar MTA-ul are toate complicatiile legate de livrarea mesajelor. un MUA contacteaz˘ un acela¸i MTA. MUA-urile a ın ¸ contacteaz˘ implicit MTA-ul de pe ma¸ina local˘ (localhost). MTAa a ¸ ¸ ul caut˘ ˆ DNS o ˆ a ın ınregistrare cu tipul MX pentru numele de domeniu din adresa destinatie. Dac˘ MTAa a ¸ a ul este responsabil de adresa destinatie a mesajului. transmite mesajul c˘tre MTA-ul determinat conform ¸ a a configur˘rii. Dac˘ nu exist˘ nici ˆ a a ınregistr˘ri MX. 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.2. a 2. Dac˘ g˘se¸te o astfel de ˆ a a s ınregistrare.2. MTA-ul contacteaz˘ ma¸ina cu a a s numele de domeniu din adresa destinatie ¸i-i transmite mesajul. Presedintele Organizatiei omuletilor verzi 365 11. a s a .c 2008.T. mult mai simplu.2.

¸ 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). mesajul poate fi plasat ˆ fi¸iere specificate ın ın s .2. un MTA este resposnabil de adresele utilizatorilor calculatoarelor dintr-o retea local˘. descrise prin exın ¸ ¸ s presii regulare. a a s Pe sistemele de operare de tip UNIX. generate de MUA-urile ce ruleaz˘ pe calculaa toarele din reteaua local˘. • care sunt ma¸inile (ˆ principiu. El preia mesajele de la toate MTA-urile din reteaua local˘ ˆ ¸ a ¸ a ın scopul retransmiterii lor c˘tre exterior. doar din reteaua local˘) de la care se s ın ¸ a accept˘ mesaje spre a fi trimise mai departe spre Internet. ¸ a ˆ configuratii mai complicate. ˆ acest caz. Un astfel de MTA este numit mail gateway. MTA-ul preia ¸i transmite spre s exterior mesajele utilizatorilor. 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. De asemenea.c 2008. Fi¸ierul .forward contine un ¸ir de adrese la care trebuie retrimis s ¸ s mesajul ˆ loc s˘ fie livrat local ˆ /var/mail/user.3. responsabile. 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˘.procmailrc din directorul personal al utilizaın s s torului.forward ¸i .procmailrc cuprinde instructiuni mai complexe de proces ¸ sare a mesajelor primite: ˆ functie de aparitia unor ¸iruri. Pe sistemele de tip UNIX. aceast˘ configurare se face prin directive a plasate ˆ fi¸ierele . Posta electronica ¸ 11. 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. preia mesajele din extea rior destinate tuturor adreselor din reteaua local˘ ¸i le retrimite MTA-urilor. De asemenea. 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. ı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. Radu-Lucian Lup¸a s 366 ˘ 11. ın a ın Fi¸ierul . ˆ mesajul primit.1. Configurarea unui MTA De cele mai multe ori. ¸ as din reteaua local˘. a Implicit. 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.1. a • ce transform˘ri trebuie aplicate mesajelor.

ubbcluj.ro s˘ accepte mesajele destinate lui ion@example.ubbcluj.ro. a • Un MTA poate fi configurat s˘ se considere responsabil de mai multe a domenii. ın a Pentru cazuri mai complicate. ale c˘ror nume nu au nimic comun cu numele ma¸inii MTA-ului. De exemplu. De exemplu.ro.ro a s mesajul s˘ apar˘ avˆnd adresa surs˘ From: ion@linux. 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˘.ubbcluj. se poate configura MTA-ul de pe nessie. adresa root@cs. Desigur.. dac˘ un acela¸i utilizator are cont pe sa a a s mai multe ma¸ini.ro.plic“ (valoarea parametrului comenzii SMTP MAIL FROM:).ro s˘ apar˘ cu adresa a ıl a a From: ion@freebsd. nu este de dorit ca adresa expeditorului s˘ depind˘ s a a de ma¸ina de pe care utilizatorul scrie efectiv mesajul.ro. mai trebuie ca mesajul s˘ ajung˘ a a a a pˆn˘ la nessie.ubbcluj.cs. Pentru aceasta. lucru care se ˆ ampl˘ dac˘ ˆ DNS se pune ıntˆ a a ın oˆ ınregistrare MX pentru numele de domeniu example. nu s este de dorit ca dac˘ scrie un mesaj pe ma¸ina linux. la care se va distribui fiecare mesaj primit.ro.cs.scs. • Dac˘ utilizatorii expediaz˘ mesaje de pe mai multe ma¸ini dintr-o retea a a s ¸ local˘. 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. eliminˆnd numele ma¸inii locale ¸i p˘strˆnd doar a s s a a . nu este de dorit ca numele ma¸inii interne s˘ apar˘ ˆ adresa de a s a a ın po¸t˘ electronic˘. 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.ro este configurat˘ ˆ acest fel. Pentru fiecare astfel de adres˘ trebuie definit˘ o list˘ a a a de adrese. Pentru aceasta. pentru ca un mesaj destinat lui ion@example.com indicˆnd a c˘tre nessie. 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. a Ca exemplu.c 2008. Aplicatii ˆ retele ¸ ın ¸ 367 ˆ .com s˘ poat˘ fi livrat.ubbcluj. Radu-Lucian Lup¸a s Capitolul 11. MTA-ul care se ocup˘ de livrarea spre exterior a mesajelor generate ˆ reteaua ina ın ¸ tern˘ va schimba. a s De exemplu. situate ˆ domeniul numelui a sa ın ma¸inii locale. care s˘ fie considerate valide chiar dac˘ nu exist˘ utilizas a a a tori cu acele nume.ubbcluj.cs. de regul˘ locale. a a a a iar dac˘ ˆ scrie de pe freebsd.ubbcluj. atˆt ˆ antetul mesajului (valoarea cˆmpului From) a a ın a cˆt ¸i pe . a s adresa expeditorului.procmailrc sau poate fi pasat unor comenzi care s˘-l proceseze.ubbcluj.ubbcluj.scs.com ¸i s˘ le livreze utia s a lizatorului local gheorghe.scs.scs.cs.

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

ˆ ınrudite dar disˆ general. doar ˆ forme dificil de procesat automat — de ın exemplu. prin contract. Contram˘sura la aceast˘ recoltare este scrierea a sa a a a adreselor. ca imagine (ˆ ıntr-un fi¸ier jpeg. Trimiterea spam-urilor necesit˘ recoltarea. s˘ fie ¸ters din gre¸eal˘.c 2008. a s s a Exist˘ detectoare automate de spam-uri. gif sau png). 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. de c˘tre autorul spama a urilor. a unui num˘r mare de adrese valide de po¸t˘ electronic˘.. a a ¸ Spam-urile d˘uneaz˘ deoarece consum˘ ˆ mod inutil timpul destia a a ın ˆ plus. 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. . 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. Astfel de detectoare se instaleaz˘ pe ¸ a MTA-uri ¸i resping sau marcheaz˘ prin antete speciale mesajele detectate ca s a spam-uri. In a executie duce la inserarea unor c´pii ale sale ˆ alte programe de pe calcula¸ o ın torul pe care se execut˘ virusul. inserat ˆ ıntr-un program util. clientilor s˘ trimit˘ spam-uri ¸i depun eforturi pentru depistarea ¸i penalizarea ¸ a a s s ˆ acest scop. a tot ceea ce arat˘ a s a ın a a adres˘ de po¸t˘ electronic˘.ˆ natarului. a corect. care execut˘ actiuni nocive utilizatorua ¸ lui ˆ contul c˘ruia se execut˘ acel program. Un MTA care detecteaz˘ ¸i respinge sau marcheaz˘ spam-urile se as a nume¸te filtru anti-spam. prin virus se mai desemneaz˘ un a a fragment. exist˘ riscul ca un mesaj legitim. Denumirea de virus poate fi dat˘. 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. Acest lucru a sa a se realizeaz˘ cel mai u¸or prin c˘utarea. din paginile web. un virus informatic este un fragment de program a c˘rui tincte. ˆ paginile web. Pˆn˘ la generalizarea utiliz˘rii mesajelor semnate. Denumirea corect˘ pentru un ın a a a astfel de program este aceea de cal troian. s De mentionat filtrele anti-spam nu pot fi f˘cute 100% sigure deoarece ¸ a nu exist˘ un criteriu clar de diferentiere. 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. Radu-Lucian Lup¸a s Capitolul 11. Ca urmare. In a ıngropat“ ˆ ıntre multe spam-uri. Majoritatea furnizorilor de servicii Internet nu permit. Impropriu. ei primesc sesiz˘ri ¸i ˆ autorilor. In a s ıntretin liste cu adresele de la ¸ care provin spam-urile (liste negre — blacklist). doar fragmentelor de program capabile s˘ se reproduc˘ (s˘-¸i insereze a a as . s Termenul de virus poate desemna mai multe lucruri. bazate pe diferite metode a din domeniul inteligentei artificiale.

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

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

La conectarea unui client. 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. Sesiuni interactive la distanta ¸˘ ˆ cazul unei sesiuni la distant˘. driver pseudoterminal hard client telnet S. Prinınt ¸ a a cipial.3: Componentele implicate ˆ ıntr-o sesiune interactiv˘ la distant˘. Aceast˘ aplicatie este s s ¸ a ¸ lansat˘ la pornirea sistemului ¸i a¸teapt˘ conexiuni — fiind ˆ acest sens a s s a ın un server.2. pe care are loc sesiunea. De asemenea. conectat In ¸a ın printr-o interfat˘ specializat˘ la calculatorul pe care se desf˘¸oar˘ sesiunea. s a Deschiderea unei sesiuni prin mecanismul de sesiune la distant˘ se ¸a poate face ¸i c˘tre calculatorul local. 11.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. num˘rul de sesiuni deschise simultan c˘tre un calculator este limitat a a doar de resursele calculatorului (memorie ¸i vitez˘ de procesare). f˘r˘ a ˆ a a ınchide prima sesiune. server login bash telnet S. 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. ¸a a as a se utilizeaz˘ un calculator. motiv pentru care este un client. • Pe sistemul de la distant˘. 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. ˆ locul unui terminal.c 2008. Aceast˘ aplicatie deschide ˆ mod activ a a ¸ ın conexiunea la deschiderea sesiunii. conectat prin retea la calculatorul pe care se a ¸ desf˘¸oar˘ sesiunea. a ¸a Sistemul pentru deschiderea sesiunilor la distant˘ (vezi fig. Radu-Lucian Lup¸a s 372 11. De exemplu. Afi¸area se poate face pe ¸a s tot ecranul sau ˆ ıntr-o fereastr˘. O. O. driver terminal hard Calculator server Retea ¸ Calculator client Terminal fizic Figura 11. ın . cu conditia s˘ aib˘ un cont acolo). 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. Acest mecanism poate fi utilizat pentru s a deschiderea unei sesiuni ca alt utilizator.

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

iar ˆ fata a a s ¸ ın ¸ lor se adaug˘ un octet reprezentˆnd lungimea ¸irului aleator. Rezultatul pasului precedent se cripteaz˘. Num˘rul de ordine al blocului s a fiind cunoscut receptorului. se adaug˘ lungimea total˘ a ¸irului. O dat˘ alese cheile s ın a . Datele utile sunt comprimate utilizˆnd algoritmul de compresie curent a pentru sensul de comunicatie curent. conexiunea este abandonat˘. un ¸ir de octeti aleatori. compresia. f˘cˆnd dificil˘ determinarea lungimii datelor utile din blocul s a a a a criptat. dup˘ care din rezultatul concaten˘rii a a se calculeaz˘ dispersia cu cheia de autentificare curent˘. de ın dimensiune variabil˘. nu este nevoie s˘ fie trimis efectiv. dup˘ datele comprimate. Apoi. 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. ¸ 5. Pe de o parte. f˘cˆnd mai dificil˘ spargerea cifrului. 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. Se adaug˘. In ¸ a a de ordine al pachetului curent. reprezen¸ s ¸ a a s tat˘ pe patru octeti. a ˆ cazul vreunei nepotriviri privitoare la dispersia criptografic˘ cu In a cheie a unui bloc. 3. 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. se construie¸te ¸i se a s s transmite pe conexiune un pachet generat astfel: 1. dispersia criptografic˘ cu cheie se calculeaz˘ dintra a a un bloc continˆnd datele utile ¸i num˘rul de ordine al blocului. datele de transmis sunt grupate ˆ pachete. 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. a Rolul acestor transform˘ri este urm˘torul. Radu-Lucian Lup¸a s 374 11. compresia a a cre¸te entropia datelor de criptat. a ˆ fata blocului (necriptat) rezultat din pasul 2 se adaug˘ num˘rul 4. criptare ¸i dispersie cu cheie se face ˆ clar. ˆ a a s ın fata ¸irului astfel obtinut. Lungimea complet˘rii aleatoare este a a ¸i ea criptat˘. Negocierea primului set de chei ¸i a algoritmilor de s compresie.c 2008. criptarea ¸i dispersia cu s cheie sunt dezactivate. Sesiuni interactive la distanta ¸˘ Pentru fiecare sens. Pe de alt˘ parte. 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.2. ¸ 2. 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. Pentru fiecare pachet de date utile. Pachetul transmis efectiv este rezultatul concaten˘rii pachetului criptat a (rezultat din pasul 3) cu dispersia cu cheie (rezultat˘ din pasul 4).

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

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

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

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

continˆnd s a s ¸ a lista numelor de fi¸iere de pe ma¸ina nessie. O prim˘ component˘ a sistemului este serverul X. O aplicatie ce are nevoie de acces la un ecran grafic ¸i la s ¸ s .5: Comanda ssh rlupsa@nessie. 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. ¸a ın Descriem ˆ continuare arhitectura X Window.2. care gestioneaz˘ tastatura a a a ¸i ecranul local. dezvoltat de Massachuttes Institute of Technology pe la mijlocul anilor 1980.ro din directorul s s personal al utilizatorului rlupsa.2. Redirectionˆnd pe s a a ¸ a client intrarea sau ie¸irea standard a comenzii ssh. Din acest motiv.ubbcluj. cliena a s a tul ssh poate solicita serverului deschiderea unei sesiuni de lucru. Acesta este un a a proces. adic˘ ˆ a ın esent˘ lansarea unui shell ˆ contul utilizatorului autentificat. 11.3. ˆ acest caz. Tot la solic¸a ın itarea clientului. Mention˘m c˘ este ın ¸ a a diferit˘ fat˘ de sistemele studiate pˆn˘ aici. A doua variant˘ se utilizeaz˘ ˆ a a ın cazul ˆ care utilizatorul a lansat clientul ssh cu specificarea unei comenzi de ın executat pe server. Radu-Lucian Lup¸a s Capitolul 11.cs. clientul a ın ssh nu face prelungirea conexiunii la agentul de autentificare decˆt la cererea a explicit˘ a utilizatorului.ro ls -l > lista are ca efect final crearea. 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.cs. Aplicatii ˆ retele ¸ ın ¸ 379 conexiunii. Multiplexarea conexiunii. per ansams a blu.1. avˆnd de regul˘ acces privilegiat la sistem. se realizeaz˘. a 11. 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˘.c 2008. tunelarea ¸i aplicatii s ¸ O dat˘ deschis˘ conexiunea ¸i realizat˘ autentificarea clientului. 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. s a a ¸a Exemplul 11. a unui fi¸ier lista. pe ma¸ina local˘. Sistemul X-Window Sistemul X-Window. poate deschide sesiuni ˆ numele clientului c˘tre orice ma¸in˘ care ın a s a accept˘ cheile stocate ˆ agentul de autentificare. este un sistem ce permite stabilirea de sesiuni la distant˘ ˆ mod grafic.2.ubbcluj.

acestea conventii pe care aplicatiile se recomand˘ s˘ le respecte. poate: s a • s˘ cear˘ serverului s˘ deseneze diverse lucruri pe ecran. Sesiuni interactive la distanta ¸˘ tastatura ata¸at˘ se nume¸te client X. ¸ a ın s Pentru ca aplicatii distincte s˘ nu se ˆ ¸ a ıncurce reciproc. Serverul ¸ine evidenta unor ferestre. s s a La un server se pot conecta simultan mai multi clienti. 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. cad ˆ sarcina unui client mai special numit ¸ ın window manager . dup˘ care solicit˘ serverului s˘ fie informat de cererile de des a a a schidere de ferestre trimise de ceilalti clienti. adaptate pentru diferite necesit˘¸i. s ın ¸ at . Exist˘ mai multe protocoale ¸i mai multe aplicatii pentru transferul at a s ¸ fi¸ierelor ˆ retea. Transferul fi¸ierelor ˆ retea s ın ¸ Cerinta de-a transfera fi¸iere ˆ retea poate avea diferite particu¸ s ın ¸ larit˘¸i. de exemplu. a 11. sunt admise la un moment dat s˘ ın a a se conecteze doar aplicatii rulˆnd ˆ contul aceluia¸i utilizator. fiecare operatie de desenare at ¸ ¸ vˆnd specificat˘ o fereastr˘ ˆ care s˘ deseneze. Totu¸i. un client nu are nevoie ¸ ¸ de privilegii speciale ca s˘ actioneze ca window manager. iar ˆ fiecare fereastr˘ se pot deschide subferestre. exist˘ ni¸te a s ˆ linii mari. Deoarece oricum a a s nu exist˘ protectie ˆ a ¸ ıntre clientii conectati la un server X. window manager -ul adaug˘ bara de titlu ¸i marginile. Asta ˆ ınseamn˘. nu pot exista dou˘ window manager -e simultan. Radu-Lucian Lup¸a s 380 11. a a a Comutarea ˆ ıntre aplicatii. 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˘. Window manager -ul se conecteaz˘ ¸i se autentific˘ ca un a s a client obi¸nuit. inclusiv de pe calcula¸ ¸ toare diferite. Un client X se conecteaz˘ la serverul X s a s a ¸i.2. De principiu. a s Un client autentificat are acces deplin la tastatura ¸i ecranul gestions ate de server. 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. precum ¸i mutarea ¸i redimensionarea fer¸ s s estrelor principale ale aplicatiilor. La fiecare fereastr˘ principal˘ de¸ ¸ a a schis˘. 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. Ecranul cu totul este consida a a ın a erat o fereastr˘. Ca urmare.3. dup˘ autetificare. 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˘.c 2008.

c 2008. a . Radu-Lucian Lup¸a s Capitolul 11. ın ¸ s 11. 1985]. avˆnd ca parametrii respectiv numele utia s a lizatorului ¸i parola acestuia. Protocoalele utilizate aici sunt SMB (utilizat ˆ retelele Windows) ¸i NFS.3. ca ¸i pentru prima categorie de protocoale. Parametrii sunt separati prin spatii. El este ˆ a afi¸at. Cu o singur˘ exceptie (ˆ cazul comenzii PASV. Dup˘ autentificare. ın a a ¸ Pe sistemele de tip UNIX. a aceast˘ conexiune se nume¸te conexiune de control.1. 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. ¸ Autentificarea se face la solicitarea clientului. Protocoalele construite pentru aceasta s sunt ftp ¸i ssh. a s ¸ s ın transferul fi¸ierelor unui utilizator de pe o ma¸in˘ pe alta. Prin conexiunea de cona s trol. rezultatul executiei comena ın ¸ zii. cˆte o comand˘ pe o linie. serverul ruleaz˘ din contul root. 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. ˆ principal. ˆ limbaj natural. ın a a Fiecare comand˘ ˆ a ıncepe cu numele comenzii urmat de eventuali parametrii. pe ecran utilizatorului aplicatiei client. textul a ¸ ın a din r˘spuns nu este interpretat de c˘tre aplicatia client. Pentru a detalii. ı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. ˆ conditiile ˆ care s s a ın ¸ ın utilizatorul are cont pe ambele ma¸ini. Clientul trimite succesiv dou˘ comenzi. Serverul r˘spunde tot ˆ format text. Protocolul ftp Descriem pe scurt conceptele de baz˘ ale protocolului ftp. a se vedea [RFC 765. 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. descris˘ mai jos). a a s ¸ ın Protocolul utilizat ˆ mod curent este ˆ a http. la conectarea unui client. De notat c˘ ¸i po¸ta electronic˘ poate servi ca mecanism de s as s a transfer de fi¸iere. atˆt fat˘ de numele comenzii cˆt ¸i ˆ ¸ ¸ a ¸a a s ıntre ei. de a a ¸ ıns˘ s obicei. Initial se utiliza protocolul ftp ˆ acest scop. dup˘ a a a care urmeaz˘ un text ce descrie. Serverul refuz˘ executia majorit˘¸ii comenzilor s a ¸ at clientului ˆ ınainte de autentificarea cu succes a acestuia. clientul transmite comenzi ˆ format text. reglementarea drepturilor de acces se face de obicei astfel: la lansare. Clientul deschide o conexiune TCP c˘tre portul 21 al serverului. 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. USER ¸i PASS. De principiu s s a s fi¸ierele respective sunt private.

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

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

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

Aplicatii ˆ retele ¸ ın ¸ 385 11.fr solicit˘ serverului.en. Antetele corespunz˘toare. s as a din cererea clientului. Accept-language: ro.2. de exemplu. Accept-language ¸i Accept-encoding. Content-type: text/html. 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˘. varianta ˆ limba romˆn˘ a textului. • Data ultimei modific˘ri a fi¸ierului este specificat˘ prin valoarea antetului a s a cu numele Date. iar codificarea utilizat˘ pentru a a s a caractere este UTF-8. Radu-Lucian Lup¸a s Capitolul 11. Pentru a ¸ ın a a selectiona varianta dorit˘. • Limba ˆ care este scris textul din fi¸ier (dac˘ este cazul) este returnat˘ ın s a a ca valoare a antetului Language:. a ın a a a a ın a iar ˆ lipsa acesteia una ˆ limba francez˘. ˆ ordinea preferintei. ın ın a Protocolul HTTP permite formularea de cereri conditionate sau par¸ ¸iale. de preferint˘. limb˘ ¸i codificare. Tot ca ¸i ˆ cazul lui s a s ın Mime-type. Este posibil ca unui URL s˘-i corespund˘ mai multe fi¸iere pe server.3. a a s avˆnd continut echivalent. cel a a ¸ mai adesea dac˘ a fost modificat mai recent decˆt o anumit˘ dat˘ specificat˘ a a a a a . • Tipul de compresie utilizat (dac˘ fi¸ierul returnat este comprimat) este a s dat ca valoare a antetului Content-transfer-encoding. a ın ¸ De exemplu.c 2008. 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. tipul continutului poate fi urmat de specificarea codific˘rii ¸ a utilizate pentru text. se solicit˘ una ˆ limba englez˘. sunt: Accept. dar ˆ diverse formate. limbi sau codific˘ri. 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.3. s Fiecare dintre acestea are ca valoare o list˘ de variante. Dac˘ o a ¸a ın a a a variant˘ ˆ limba romˆn˘ nu este disponibil˘. clientul poate anunta posibilit˘¸ile ¸i preferintele ¸ a ¸ at s ¸ sale cu privire la tipul de fi¸ier. charset=utf-8 ˆ ınseamn˘ c˘ fi¸ierul este de tip HTML.

Este uneori util ca un utilizator care acceseaz˘ un URL s˘ fie redireca a ¸ionat automat c˘tre alt URL. 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. Dac˘ nu este ˆ a ındeplinit˘ conditia. ca un client. 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. In a a conexiunii deschise. clientul cere p˘strarea deschis˘ pe durata mai multor cereri. s ¸ a . programul s ¸ In client nu afi¸eaz˘ continutul returnat de server (continut care ˆ mod normal s a ¸ ¸ ın lipse¸te complet). Proxy HTTP Un proxy HTTP este un proces care.4.2. este prev˘zut˘ posibilitatea de-a p˘stra conexiunea a a a ˆ acest scop.c 2008. 11. ˆ 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. cererea ¸ a a a conditionat˘ se specific˘ prin antetul If-modified-since. iar la urm˘toarele a a a cereri o serve¸te clientilor din memoria local˘. iar pentru satisfacerea cererii contacteaz˘ a a serverul solicitat de client ¸i actioneaz˘. ˆ acest caz. iar apoi are de adus imaginile ¸i eventual alte s s obiecte din document). ci cere ¸i afi¸eaz˘ continutul de la URL-ul indicat ˆ antetul s s s a ¸ ın Location. 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. 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. serverul d˘ un r˘spuns format a ¸ a a doar din antet. f˘r˘ continutul propriu-zis. 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. Dac˘ exist˘ mai multe cereri pentru aceea¸i pagin˘. actio¸a ¸ neaz˘ aproape ca un server HTTP. fat˘ de acest server. ¸ a a Pentru optimizarea traficului. Transferul fisierelor ˆ retea ¸ ın ¸ de client. Radu-Lucian Lup¸a s 386 11. 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.3. ¸ a a a s a la prima cerere proxy-ul memoreaz˘ pagina adus˘. Cererea a partial˘ se specific˘ de c˘tre client prin intermediul antetului Range.3. fat˘ de un client HTTP. clientii HTTP ai calculas In ¸ toarelor din retea se configureaz˘ s˘ utilizeze un acela¸i proxy HTTP ¸ a a s din reteaua local˘. ¸inˆnd ocupate resurse pe server.

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

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

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

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

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

Radu-Lucian Lup¸a s 392 gpg --with-colons --list-keys 11. 11.4. a a s a s Mai mult. 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.4. In a s ¸ po¸t˘ electronic˘ se scrie ˆ sa a ıntre semne mai mic ¸i mai mare. Optional. a ıi a at Fiecare identitate este un nume complet de utilizator.example. 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. as s s Reciproc. un comentariu. Exemple: Ion Popescu <ion@example. iar comentariul se s scrie ˆ ıntre paranteze. un acela¸i nume complet poate fi asociat mai multor chei s primare. adresa de tronic˘ ¸i.3. optional. cheia primar˘ a unui utilizator expir˘ sau este revocat˘. adresa de po¸t˘ electronic˘ sau sa a numele complet al proprietarului cheii. 11. s a Comanda genereaz˘ o pereche primar˘ de chei (de semn˘tur˘) ¸i ˆ a a a a s ıi asociaz˘ o identitate. adresa de po¸t˘ elecs sa ˆ scrierea numelui complet.com> Este posibil ca o cheie primar˘ s˘ aib˘ asociate mai multe identit˘¸i. aceast˘ posibilitate este utilizat˘ frecvent ˆ situatia ˆ care a a ın ¸ ın ˆ aceast˘ situatie. nus mele complet al utilizatorului ¸i parola utilizat˘ pentru criptarea cheii secrete.com> Gheorghe Ionescu (Presedinte ONG) <gion@ong. solicitˆnd utilizatorului urm˘toarele informatii: tipul a a a ¸ cheilor generate ¸i dimensiunea acestora. fie numele real. Utilizatori ¸i identit˘¸i s at Fiec˘rei chei primare ˆ este asociat˘ una sau mai multe identit˘¸i. comanda poate genera ¸i o sub-pereche de a ¸ s . Generarea ¸i modificarea cheilor s Generarea unei chei primare se face cu comanda gpg --gen-key Comanda este interactiv˘. durata de valabilitate a cheilor.4. 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.1.1. format din trei componente: numele real (numele ¸i prenumele persoanei). 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.c 2008.2.

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

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

Pentru o astfel de utilizare.4.2. identit˘¸ile asociate. criptate cu o parol˘ dat˘ de utilizator. a ın a Exist˘ posibilitatea de-a exporta doar subcheile secrete ale unei chei a primare. Transmiterea ¸i certificarea cheilor publice s 11.4. precum ¸i subcheile sale secrete. Cheia secret˘ este s a s a exportat˘ ˆ forma criptat˘. ın a a Parola de criptare poate fi schimbat˘ cu comanda a gpg --edit-key cheie subcomanda passwd. semn˘turile asupra idenat a tit˘¸ilor (vezi § 11. Transmiterea cheilor publice Cheile publice primare. Acest lucru se face prin comanda gpg -a -o fi¸ier --export-secret-subkeys cheie s Cu ajutorul acestei comenzi. Aplicatii ˆ retele ¸ ın ¸ 395 11.4. s Acest fi¸ier este creat cu drepturi de citire (ˆ sistemul de operare) doar pentru s ın utilizatorul curent. ın subcheile se creaz˘ cu durat˘ de valabilitate scurt˘ ¸i se revoc˘ la nevoie.5. ˆ acest mod. s .2. Cheile sunt. 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. 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. Gestiunea cheilor secrete GnuPG plaseaz˘ cheile secrete ˆ a ıntr-un fi¸ier gestionat de GnuPG. a ¸ ¸ 11.4.1.2. 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.4.2). ˆ mod normal.c 2008. 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.2. Cheile secrete pot fi exportate. 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. f˘r˘ ˆ a a risca compromiterea cheii primare ˆ a a a ıns˘ ın cazul ˆ care cineva ar sparge acel calculator.2).1. 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.

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

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

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.1). semn˘tura poate fi transmis˘ ¸i altor utilizaIn a as tori GnuPG (vezi § 11. de c˘tre utilizatorul ce execut˘ gpg. pentru securitatea sistemului. la importarea ¸i semnarea setului a s de chei. Este esential.2. a a • zero ˆ ıncredere (no trusting) — semn˘tura unui astfel de utilizator nu este a luat˘ ˆ considerare. utilizatorul verific˘ amprenta cheii primare din set. 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).4.4. • ˆ ai. s Implicit. 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˘.c 2008. a . A doua comand˘ creaz˘ o semn˘tur˘ pentru uz a a a a local. ˆ utilizatorul a a ın care lanseaz˘ comanda gpg). amprenta cheii primare este transmis˘ pe o cale sigur˘. Radu-Lucian Lup¸a s 398 11. 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˘. precum ¸i ˆ proprietarii cheilor specificate prin a s ın optiunea --trusted-key. El poate fi modificat cu comanda gpg --edit-key cheie ¸i subcomanda trust a acesteia. ca un utilizator s˘ nu ¸ a semneze un set de chei f˘r˘ s˘-i verifice mai ˆ ai autenticitatea. Apoi. 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. de exemIntˆ a a plu pe un bilet scris de c˘tre proprietarul cheii sau printr-o convorbire a telefonic˘ cu proprietarul cheii. a ın Nivelul de ˆ ıncredere acordat proprietarului unei chei este implicit zero. ¸ Crearea. GnuPG are ˆ ıncredere deplin˘ ˆ proprietarul unei chei pena ın tru care dispune de cheia secret˘ corespunz˘toare (altfel spus.

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

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

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

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

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

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

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

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

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

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

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

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