Documente Academic
Documente Profesional
Documente Cultură
Principii
Radu-Lucian Lupa
s
a
a
a
Casa Crtii de Stiint, 2008, ISBN: 978-973-133-377-9.
a
a n
Drepturile de autor apartin subsemnatului, Radu-Lucian Lupa.
s
Subsemnatul, Radu-Lucian Lupa, acord oricui dorete dreptul de a copia
s
s
continutul acestei crti, integral sau partial, cu conditia atribuirii corecte autorului i
s
a pstrrii acestei notite.
a a
Cuprins
Principii
Cuprins
Prefat
a
13
Introducere
1.1 Serviciile oferite de retea . . . . . . . . . . . . . . . . . . . . . . . . .
15
15
20
25
26
29
29
31
33
39
40
41
44
50
51
52
53
55
55
55
56
57
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
Cuprins
Nivelul zic
3.1 Problema transmisiei informatiei la nivelul zic . . . . . . .
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 legturi radio . . . . . . . . . .
a
3.5.3.1 Obstacolele . . . . . . . . . . . . . . . . . . . . . .
3.5.3.2 Linia orizontului . . . . . . . . . . . . . . . . . . .
3.5.3.3 Utilizarea satelitilor articiali ai Pmntului . . . .
a a
3.5.3.4 Zgomotul . . . . . . . . . . . . . . . . . . . . . . .
3.5.3.5 Scderea puterii cu distanta . . . . . . . . . . . . .
a
as
a
3.5.4 Spectrul radio i alocarea lui . . . . . . . . . . . . . . .
s
3.5.5 Particulariti ale sistemelor de comunicatie prin radio
at
. . . . .
. . . . .
. . . . .
Fourier
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
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
92
92
93
.
.
.
.
.
.
.
.
.
.
.
.
.
.
95
96
97
98
99
101
102
103
108
109
114
115
115
116
117
a
5.2.3 Dirijarea ierarhic . . . . . . . . . . . . . . . . . . . . . . . . .
a
5.2.4 Metode particulare de dirijare . . . . . . . . . . . . . . . . . .
5.2.4.1 Inundarea . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.4.2 aarea rutelor din adresele surs ale pachetelor . . . .
Invt
a
5.2.5 Metode de difuziune . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Functionarea la trac ridicat . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
119
120
122
122
125
127
128
136
139
139
140
140
141
142
143
144
145
146
147
at
6.1.1 Introducere . . . . . . . . . .
6.1.2 Refolosirea cheilor . . . . . .
6.1.3 Problema spargerii unui cifru
.
.
.
.
149
151
151
154
155
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Cuprins
6.1.4 Algoritmi de criptare utilizati practic . . . . . . . . . .
n
a
6.1.5 Criptograe asimetric (cu cheie public) . . . . . . . . . .
a
a
6.1.5.1 Utilizarea criptograei asimetrice . . . . . . . . . . . .
6.2 Autenticarea mesajelor . . . . . . . . . . . . . . . . . . . . . .
6.2.1 Functii de dispersie criptograce . . . . . . . . . . . . . . .
ncredere . . . . .
6.3.4 Certicarea cheilor publice . . . . . . . . . . . . . . . . . .
6.3.5 Transportul prin utilizatori umani . . . . . . . . . . . . . .
6.4 Numere aleatoare . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1 Generatoare zice . . . . . . . . . . . . . . . . . . . . . . .
6.4.2 Generatoare de numere pseudoaleatoare . . . . . . . . . . .
6.4.3 Generatoare utilizate practic . . . . . . . . . . . . . . .
n
a
6.5 Autenticarea utilizatorilor . . . . . . . . . . . . . . . . . . . . .
6.5.1 Stocarea parolelor . . . . . . . . . . . . . . . . . . . . . . .
6.5.2 Parole de unic folosint . . . . . . . . . . . . . . . . . . .
a
a
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
7.1.1.1 Bitul . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.1.2 Siruri de biti . . . . . . . . . . . . . . . . . . . . . . .
ntregi . . . . . . .
7.1.2 Reprezentri pe octeti . . . . . . . . . . . . . . . . . . . . .
a
7.1.2.1 Octeti . . . . . . . . . . . . . . . . . . . . . . . . . . .
195
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
203
203
203
204
204
205
206
206
208
208
210
212
214
Codicarea textelor . . . . . . . . . . . . . . . . . . . . . . . .
7.2.1 Codicarea ASCII . . . . . . . . . . . . . . . . . . . . . .
7.2.2 Codicrile ISO-8859 . . . . . . . . . . . . . . . . . . . .
a
7.2.3 Codicrile Unicode . . . . . . . . . . . . . . . . . . . . .
a
7.2.3.1 Codicarea UTF-8 . . . . . . . . . . . . . . . . . . .
7.2.3.2 Codicrile UTF-16 . . . . . . . . . . . . . . . . . .
a
7.2.3.3 Codicrile UTF-32 . . . . . . . . . . . . . . . . . .
a
7.3 Reprezentarea datei i orei . . . . . . . . . . . . . . . . . . . .
s
7.3.1 Msurarea timpului . . . . . . . . . . . . . . . . . . . . .
a
7.3.2 Obiectivele alegerea reprezentrii timpului calculator
n
a
n
7.3.3 Formate utilizate practic . . . . . . . . . . . . . . . .
n
a
7.3.3.1 Formatul utilizat de pota electronic . . . . . . . .
s
a
7.3.3.2 ISO-8601 i RFC-3339 . . . . . . . . . . . . . . . . .
s
7.3.3.3 Timpul POSIX . . . . . . . . . . . . . . . . . . . . .
7.3.3.4 TAI 64 . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4 Recodicri . . . . . . . . . . . . . . . . . . . . . . . . . . . .
a
7.4.1 Codicarea hexazecimal . . . . . . . . . . . . . . . . . .
a
7.4.2 Codicarea baza 64 . . . . . . . . . . . . . . . . . . . .
n
7.4.3 Codicri bazate pe secvente de evitare . . . . . . . . . .
a
a
8.1.1.4
Inchiderea conexiunii . . . . . . . . . . . . .
8.1.2 Comunicatia prin datagrame . . . . . . . . . . .
s
8.1.3.8 Functiile getsockname() i getpeername()
s
8.1.3.9 Functiile send() i recv() . . . . . . . . .
s
8.1.3.10 Functiile shutdown() i close() . . . . . .
s
8.1.3.11 Functiile sendto() i recvfrom() . . . . .
s
8.1.4 Exemple . . . . . . . . . . . . . . . . . . . . . .
8.1.4.1 Comunicare prin conexiune . . . . . . . . .
8.1.4.2 Comunicare prin datagrame . . . . . . . . .
8.2 Formatarea datelor . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
215
216
217
218
220
220
221
221
222
224
225
225
226
227
227
228
228
229
229
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
accept()
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
231
231
232
233
233
234
234
235
237
237
237
238
239
239
240
242
242
243
245
245
246
246
249
252
Cuprins
8.2.1 Formate binare . . . . . . . . . . . . . . .
8.2.1.1 Tipuri
ntregi . . . . . . . . . . . . .
8.2.1.2 Siruri de caractere i tablouri . . . .
s
8.2.1.3 Variabile compuse (struct-uri) . . .
8.2.1.4 Pointeri . . . . . . . . . . . . . . . .
8.2.2 Formate text . . . . . . . . . . . . . . . .
8.2.3 Probleme de robustete i securitate . . .
s
8.2.4 Probleme privind costul apelurilor sistem
8.3 Probleme de concurent comunicatie . . . .
a n
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
10 Internetul
10.1 Arhitectura retelei . . . . . . . . . . . . . . . . .
10.2 Protocolul IP . . . . . . . . . . . . . . . . . . .
10.2.1 Structura pachetului IP . . . . . . . . . . .
10.2.2 Bazele dirijrii pachetelor IP . . . . . . . .
a
10.2.2.1 Subretele i interfete . . . . . . . . . .
s
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
10.3.1.3 Deschiderea i
s nchiderea conexiunii . . . . . . . . . . . . .
10.3.1.4 Alegerea numrului initial de secvent . . . . . . . . . . . .
a
a
10.3.1.5
Inchiderea fortat a conexiunii . . . . . . . . . . . . . . . .
a
10.3.1.6 Identicarea aplicatiei destinatie . . . . . . . . . . . . . . .
10.3.1.7 Corespondenta
ntre functiile socket() i actiunile modulu
s
lui TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.1.8 Controlul uxului . . . . . . . . . . . . . . . . . . . . . . . .
10.3.1.9 Stabilirea time-out-ului pentru retransmiterea pachetelor . .
10.3.1.10Algoritmul lui Nagle i optimizarea numrului de pachete .
s
a
10.3.1.11Trimiterea datelor speciale (out of band) . . . . . . . . . . .
10.3.2 Datagrame nesigure: UDP . . . . . . . . . . . . . . . . . . . . .
10.4 Identicarea nodurilor dup nume: sistemul DNS . . . . . . . . . . .
a
10.4.1 Numele de domeniu . . . . . . . . . . . . . . . . . . . . . . . . .
10.4.2 Structura logic a bazei de date DNS . . . . . . . . . . . . . . .
a
10.4.3 artirea domenii de autoritate . . . . . . . . . . . . . . . .
Imp
n
10.4.4 Mecanismul de interogare a serverelor . . . . . . . . . . . . . . .
10.4.5 Sincronizarea serverelor pentru un domeniu . . . . . . . . . . . .
10.4.6 Cutarea numelui dup IP . . . . . . . . . . . . . . . . . . . . .
a
a
10.5 Legturile directe
a
ntre nodurile IP . . . . . . . . . . . . . . . . . . .
10.5.1 Rezolvarea adresei ARP . . . . . . . . . . . . . . . . . . . . .
10.6 Congurarea automat a statiilor DHCP . . . . . . . . . . . . . .
a
n
10.7.1 Filtre de pachete (rewall) . . . . . . . . . . . . . . . . . . . . .
10.7.2 Retele private . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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
Cuprins
10.7.3.2 Translatia adresei destinatie . . . . . . . . . . . . . . . . . . 350
11 Aplicatii retele
n
11.1 Pota electronic . . . . . . . . . . . . . . . . . . . . . . . .
s
a
11.1.1 Formatul mesajelor . . . . . . . . . . . . . . . . . . .
11.1.1.1 Antetul mesajelor . . . . . . . . . . . . . . . . . .
11.1.1.2 Extensii MIME . . . . . . . . . . . . . . . . . . .
11.1.1.3 Ataarea ierelor i mesaje din mai multe prti
s
s
s
a
11.1.1.4 Codicarea corpului mesajului i a ataamentelor
s
s
11.1.2 Transmiterea mesajelor . . . . . . . . . . . . . . . . .
11.1.2.1 Protocolul SMTP . . . . . . . . . . . . . . . . . .
11.1.2.2 Determinarea urmtorului MTA . . . . . . . . .
a
11.1.2.3 Congurarea unui MTA . . . . . . . . . . . . . .
11.1.3 Securitatea potei electronice . . . . . . . . . . . . . .
s
11.2 Sesiuni interactive la distant . . . . . . . . . . . . . . . .
a
11.2.1 Protocolul ssh . . . . . . . . . . . . . . . . . . . . . .
11.2.1.1 Conexiunea ssh protejat criptograc . . . . . .
a
11.2.1.2 Metode de autenticare ssh . . . . . . . . . . .
n
11.2.1.3 Multiplexarea conexiunii, tunelarea i aplicatii .
s
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
Bibliograe
401
Index
405
Prefat
a
sistemelor de operare.
Ca un avertisment pentru programatori, mentionm c, dei lucrarea
a
a
s
trateaz chestiuni de nivel mult mai cobort dect cel al platformelor i biba
a
a
s
liotecilor utilizate mod normal aplicatiile retea, este totui util
n
n
n
s
a n
vederea unei bune elegeri a acestor platforme i biblioteci.
nt
s
Tot ceea ce are legtur
a a ntr-un fel sau altul cu calculatoare are dou
a
caracteristici: se dezvolt foarte repede i est foarte complex. Retelele de
a
s
s
s se piard nenumratele detalii permanent schimbare.
a
a n
a
n
a
Considerm c, orice domeniu, o bun prezentare trebuie s porneasc
a a n
a
a
a
de la principiile de baz. Principiile de baz se sunt (relativ) simple i evolueaz
a
a
s
a
mult mai lent dect constructiile tehnice elaborate pe baza lor. consecint,
a
In
a
prima parte a lucrrii de fat, principii, este dedicat studierii problemelor ce
a
a
a
trebuie rezolvate de o retea de calculatoare, precum i a principiilor constructiei
n
at
de administrarea retelei de calculatoare a Departamentului de Informatic al
a
Facultii de Matematic i Informatic din cadrul Universitii Babe-Bolyai
at
as
a
at
s
Cluj-Napoca, predarea unui curs de Retele de calculatoare la aceast facn
Prefata
s
a
s
i punere practic a notiunilor legate de codicarea informatiei, de metode
s
n
a
Capitolul 1
Introducere
a
a
aceleai conturi de utilizatori pe toate calculatoarele.
s
de calculatoare.
execut procese utilizator. Rolul retelei este de-a oferi acestor procese posia
are sau din biblioteci standard, apelabile de ctre aceste procese (g. 1.1).
a
Ansamblul acestor functii constituie interfata de programare (engl. API
a
lizator, sunt o functie care trimite date de la procesul curent spre partenerul
a
procesul curent. aceste functii este necesar desemnarea destinatarului spre
In
a
care procesul emittor dorete transmiterea datelor, respectiv a emittorului
a
s
a
acest scop, ecare
dinspre care procesul receptor solicit s primeasc date. In
a a
a
interfata de
programare (API)
Proces
surs
a
Proces
destinatie
calculator
calculator
recv()
send()
Retea
Functionalitatea retelei este oferit prin functii apelabile din procesele utilizator.
a
a
a
Pe lng aceste functii de baz, reteaua mai ofer functii pentru cona a
a
a
s
a
i locul diverselor componente cadrul retelei (de exemplu, ecare calculator
s
n
trebuie s-i cunoasc propria adres). Alti parametrii sunt legati de calitatea
as
a
a
nt
col )
ntre procesele utilizator. La proiectarea retelei nu ne intereseaz ce fac
a
procesele utilizator cu datele transferate; la proiectarea programelor utilizator
nu ne intereseaz cum lucreaz reteaua pentru a transmite datele.
a
a
continuare vom trece revist principalele caracteristici ale serIn
n
a
viciului oferit de retea proceselor de aplicatie.
a
a
punct la punct, dac exist un singur destinatar. mod obinuit, desa
a
In
s
tinatarul este selectionat explicit de ctre procesul emittor; o astfel de
a
a
comunicatie este numit unicast. Uneori a, de exemplu cazul
a
ns
n
n
care un serviciu este oferit de mai multe servere, echivalente din punctul
de vedere al clientului, este favorabil ca reteaua s aleag destinatarul
a
a
comunicatiei, functie de distanta fat de emittor, dintr-o multime
a
a
17
s
anycast.
difuziune, dac exist mai multi destinatari. Distingem difuziune coma
a
s
a
n
o submultime aleas a calculatoarelor din retea.
a n
un ir de pachete sau de biti celuilalt proces;
s
-
nchiderea conexiunii, cadrul creia se elibereaz resursele alocate
n
a
a
la deschidere.
cazul transportului de datagrame, procesul emittor pregtete un
In
a
a s
ansamblu, numit datagram (prin analogie cu telegram ), cuprinznd
a
a
a
un ir de biti destinat procesului receptor i anumite informatii necesare
s
a
Principalii parametri de calitate ai serviciului oferit de retea sunt:
a
a
a
variatiei debitului altor comunicatii care partajeaz aceleai echipamente.
a
s
s
care este important ca reteaua s ofere o capacitate medie ct mai mare.
a
a
Penttru alte aplicatii, cum ar telefonia, transmisia video (de exemplu
n
a
nu scad niciodat capacitatea legturii sub o anumit valoare minim,
a
a
a
a
a
a o capacitate mai mare nu este util.
ns
a
Timpul de propagare
ntre dou entiti 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. Timpul de propagare rezult din
a
nsumarea timpului de propagare a semnalului de-a lungul mediului de comunicatie
a
suma dintre timpul de transfer i timpul de propagare.
s
Uneori, loc de timpul de propagare se utilizeaz o alt mrime,
n
a
a a
timpul dus-
ntors, care este timpul scurs de la transmiterea unui mesaj
de ctre o partenerul de comunicatie pn la primirea rspunsului din
a
a a
a
partea acestuia. Timpul dus-
ntors este suma dintre timpii de propagare pentru cele dou sensuri i timpul de procesare pentru crearea
a
s
rspunsului.
a
Evident, timpul de propagare e bine s e ct mai scurt, a
a
a
ns
diferite aplicatii au cerinte diferite:
19
interactive la distant.
a
Posibilitatea existentei erorilor de transmisie: Erorile de transmisie
a
as a
duplicat) i mai multe mesaje transmise de ctre o aceeai surs spre o
s
a
s
a
aceeai destinatie s ajung la destinatie ordinea care au fost transs
a
a
n
n
mise de surs. Mesajele se pot pierde datorit erorilor de transmisie, a
a
a
supraaglomerrii sau a defectrii unor echipamente din retea sau chiar
a
a
din cauz c emittorul transmite cu debit mai mare dect este capaa a
a
a
bil receptorul s preia informatia transmis. Duplicarea sau inversarea
a
a
mesajelor pot cauzate de modicri ale conguratiei sau arcrii
a
nc a
retelei timpul trecerii pachetelor prin retea. Realizarea transmisiei
deoarece mesajele pierdute trebuie retransmise. La o transmisie audiovideo, este adesea preferabil pstrarea unui timp de propagare redus,
a a
cu pretul pierderii, din cnd cnd, a unor fractiuni de secund de
a
n a
a
material audio-video.
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
modica datele transmise fr ca acest lucru s e detectat de ctre
aa
a
a
receptor i s nu poat impersona vreuna dintre entitile ce comunic.
s a
a
at
a
Securitatea comunicatiei se obtine prin metode criptograce, studiate
n
capitolul 6.
Nivelul zic este deci un modul care permite transmisia unui ir de biti
s
ntre
dou dispozitive legate direct unul de cellalt. Constructiv, nivelul zic este
a
a
constituit din: cablul electric, bra optic sau, dup caz, antenele de emisiea
a
receptie, eventuale amplicatoare sau repetoare, plcile de retea din calcula
a
toare i driver -ele plcilor de retea. Constructia nivelului zic este studiat
s
a
a n
capitolul 3.
De obicei, serviciul oferit de nivelul zic sufer de anumite neajuna
suri, cum ar probabilitatea mare a erorilor i transmisia nesigur. Pentru
s
a
contracararea acestora, de-o parte i de alta a nivelului zic se plaseaz cte
s
a a
un modul de adaptare; aceste dou module constituie nivelul legturii de date.
a
a
Nivelul legturii de date este construit partial prin hard (parte a plcii de
a
a
retea) i partial prin soft (parte a driver -ului plcii de retea). Constructia
calculatoare (sau alte dispozitive) legate zic ecare cu urmtorul din lant.
a
din cte un modul ecare calculator al retelei. Modulul de retea este cona
n
struit prin soft, nucleul sistemului de operare al ecrui calculator din retea.
n
a
a n
De obicei, serviciul oferit direct de ctre nivelul retea nu poate
a
Nivelul transport este constituit din prti ale nucleului sistemului de operare
a
i, uneori, biblioteci legate programele utilizator.
s
n
Relatiile dintre aceste componente sunt reprezentate gura 1.2.
n
Fiecare dintre nivele ofer nivelului superior o interfat care cuprinde
a
a
principal functii de trimitere i de receptie a datelor. Aceste functii sunt
n
21
Nod intermediar
Nod nal
Aplicatie
Aplicatie
Nivelul aplicatie
Modul
transport
Modul
transport
Nivelul transport
Modul
de retea
Nivelul retea
Modul
de retea
Modulul de retea
Modul
legatur
a
de date
Modul
legatur
a
de date
Modul
legatur
a
de date
Modul
legatur
a
de date
Nivelul legturii
a
de date
Modul
legtur
a a
zic
a
Modul
legtur
a a
zic
a
Modul
legtur
a a
zic
a
Modul
legtur
a a
zic
a
Nivelul zic
Mediu zic
Mediu zic
Figura 1.2: Componentele unei prti dintr-o retea de calculatoare. Sunt gurate
a
doar componentele implicate comunicatia dintre dou aplicatii. Cele dou aplicatii
n
similare celor oferite de retea aplicatiilor (aa cum am vzut 1.1), dar ser
s
a
n
viciile oferite sunt mai primitive. Astfel, nivelul zic ofer nivelului legturii de
a
a
date servicii de transfer de date, dar numai
ntre calculatoare conectate direct
i cu riscul ca datele s e alterate timpul transferului sau s se piard coms
a
n
a
a
plet. Nivelul legturii de date ofer nivelului retea servicii de transfer de date
a
a
a
ntre
calculatoare conectate direct. Nivelul retea ofer nivelului transport servicii
a
de transfer de date
ntre orice dou calculatoare din retea, dar a neadeca
nc
vate utilizrii directe de ctre aplicatii (lipsa transmisiei sigure, comunicatie
a
a
a
a
s
ciului oferit de un nivel celui imediat superior). De exemplu, proiectarea
n
nivelului retea, nu ne intereseaz nici ce aplicatii vor utiliza reteaua (acelai
s
nivel retea din Internet este utilizat de aplicatii de pota electronic, web,
s
a
telefonie prin Internet i videoconferinte), nici cum este construit nivelul zic
s
altuia (utiliznd acest scop serviciile oferite de nivelul inferior) dou tipuri
a n
a
de date: datele utile a cror transfer este cerut de nivelul superior i date
a
s
de control necesare coordonrii activitilor modulelor din cadrul nivelului.
a
at
Regulile de reprezentare a acestor date, de organizare a acestora mesaje,
n
precum i regulile dup care se trimit mesajele
s
a
ntre modulele aceluiai nivel
s
alctuiesc protocolul de comunicatie al nivelului respectiv.
a
a
a
modulele implicate, a protocoalelor de comunicatie stabilite.
n
a
toare, elaborarea i implementarea protocoalelor intervin ratiuni practice,
n
s
a
a
a
a
ntregii
retele trebuie s e ct mai putine, eventual nici una.
a
a
a
s
calizat.
Implementri diferite ale unui protocol se pot abate moduri diferite de
a
n
la specicatia protocolului. Este bine ca mici abateri ale partenerului
a
Reteaua trebuie s functioneze astzi, sau, un plan bun azi este mai bun
a
dect un plan perfect mine (maxim atribuit generalului american
a
a
a
a
George Patton, circa 1944). Momentul standardizrii unui protocol este
a
extrem de delicat: dac este standardizat
a
nainte ca problema de rezolvat
s e bine eleas i solutiile posibile bine analizate, rezult un protocol
a
nt
as
a
prost; dac standardizarea apare prea trziu, dup ce s-a rspndit deja
a
a
a
a a
un protocol acceptabil, exist riscul creerii unui protocol perfect, dar pe
a
care nu-l folosete nimeni deoarece
s
nlocuirea sistemelor existente ar
mai scump dect avantajul adus de protocolul mai bun.
a
a
Protocoalele totui evolueaz, iar oprirea
s
a
ntregii retele vederea schimbrii
n
a
echipamentelor afectate de schimbarea protocolului nu este rezonabil.
a
23
s
a
a
colul vechi prevede anumite faciliti. O posibilitate este ca protocol
at
n
s se prevad o faz de negociere care ecare entitate anunt ce versia
a
a
n
a
uni de protocol i ce extensii de protocol cunoate, iar apoi comunicatia
s
s
decurge conform versiunii celei mai recente i cu cele mai multe extens
sii suportate de ambii parteneri. Alt posibilitate este stabilirea, de
a
la prima versiune a protocolului, a actiunilor unui dispozitiv, ce im
plementeaz o versiune veche a protocolului, la primirea unui mesaj
a
neprevzut acea versiune.
a
n
Cerinte diferite ale diferitelor aplicatii duc la tendinta de-a elabora proto
a
a
combinate dup dorinta aplicatiei ce-l utilizeaz. Dac o astfel de
a
a
a
abordare nu este fezabil, ducnd la un protocol prea complex, se rea
a
curge la protocoale ce au posibilitatea de-a implementate doar partial;
metodele utilizabile acest scop sunt similare cu cele descrise mai sus
n
pentru facilitarea evolutiei protocoalelor.
Capitolul 1. Introducere
Capitolul 2
as
a
a
Prin informatie elegem cunotintele unei entiti.
nt
s
at
cele ce urmeaz, ne va interesa problema transmiterii unei inforIn
a
matii de la o surs la o destinatie. Informatia de transmis nu este cunoscut
a
initial nici de destinatie, nici de sistemul de transmitere. Ca urmare, a priori
a a
a
Comunicatia dintre surs i destinatie se desfoar prin intermediul
as
as a
unui canal de comunicatie. Canalul de comunicatie este capabil s transmit
a
a
e o mrime variabil timp, numit semnal ( esent, o functie real
a
a n
a
n
a
a
continu), caz care canalul este numit continuu, e un ir de simboluri
a
n
s
dintr-o multime nit, caz care canalul este numit discret.
a
n
Deoarece canalul nu poate transmite direct informatia sursei,
ntre
surs i canal avem nevoie de un dispozitiv, numit emittor , care transform
as
a
a
informatia util, produs de surs,
a
a
a ntr-un semnal sau, dup caz,
a
ntr-un ir de
s
simboluri. Similar,
ntre canal i destinatie se plaseaz un dispozitiv, numit
s
a
receptor , al crui rol este de-a efectua operatia invers, i anume de-a exa
a s
trage din semnal sau din irul de simboluri informatia util pentru destinatie
s
(g. 2.1).
Surs
a
Emittor
a
Canal
Receptor Destinatie
a
ia util i reprezentarea sa poart denumirea de schem de reprezentare a
t
a s
a
a
informatiei, schem de codicare a informatiei sau cod .
text scris
ntr-o limb este o reprezentare a informatiei, iar conceptele din
a
a n
Ca un al doilea exemplu, limba vorbit este o alt schem de reprezentare
a
a
a
a informatiei, canalul pentru care este construit ind de tip continuu.
a
Schema de codicare a informatiei se presupune c este stabilit
a
a n
prealabil i este cunoscut att emittorului ct i receptorului. De asemenea,
s
a a
a
a s
constructia schemei de reprezentare a informatiei se ine cont de caracn
t
teristicile canalului i de caracteristici generale ale informatiilor ce trebuie s
s
a
se poat transmite, a la elaborarea ei nu se cunosc informatiile ce trebuia
ns
s
a
ntr-un text, dar nu
i de textul efectiv de transmis.
s
Restul capitolului trateaz scheme de reprezentare a informatiei pena
discret
cazul unui canal discret, canalul poate transmite un ir de simIn
s
boluri dintr-o multime S, numit multimea simbolurilor de cod sau alfabetul
as
a
a
Pentru irurile de simboluri de cod vom utiliza urmtoarele notatii:
s
a
s
u v reprezint concatenarea irurilor u i v.
a
s
s
27
a
a
a
a
s
Fiecare mesaj este un element dintr-o multime M de mesaje posibile. Mesajele
as
a
a
mai multe ori M este nit.
a
Denitia 2.1 Numim functie de codicare sau cod orice functie injectiv
a
, unde M este multimea de mesaje, cel mult numrabil, iar
c : M S
a
a
S este multimea simbolurilor de cod, nit i avnd cel putin dou elemente.
as
a
a
Fiecare mesaj m M va codicat prin irul c(m) S .
s
Denitia 2.2 Numim cuvnt 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).
a
a
nc
Numim multimea cuvintelor de cod multimea W = c(M ).
irurilor nite de mesaje din M ) va codicat prin irul format prin cons
s
catenarea codicrilor mesajelor:
a
c(m1 ) c(m2 ) . . . c(mk ).
De remarcat c urma concatenrii se pierd delimitrile dintre codicrile
a n
a
a
a
mesajelor individuale. Ca urmare, pentru ca receptorul s poat decodica
a
a
fr ambiguiti orice transmisie a emittorului este necesar o proprietate
aa
at
a
a
suplimentar a codului, aceea de-a unic decodabil:
a
Denitia 2.3 Un cod c : M S se numete:
s
cod unic decodabil, dac functia c : M S dat prin
a
a
c(m1 , m2 , . . . , mk ) = c(m1 ) c(m2 ) c(mk )
(2.1)
este injectiv.
a
cod cu proprietatea de prex sau cod prex, dac nu exist m1 , m2 M ,
a
a
cu m1 = m2 , astfel at c(m1 ) s e prex pentru c(m2 ) i plus
nc
a
s n
c(m) = , m M .
a
at
1. Orice cod de lungime x este cod prex.
a
2. Orice cod prex este unic decodabil.
Demonstratia este imediat.
a
Exemplul 2.1: Considerm multimea mesajelor M = {a, b, c, d} i multimea
a
Exemplul 2.2: Urmtorul cod, obtinut prin oglindirea cuvintelor codului din
a
29
a a
a
dac probabilitile diverselor mesaje din M sunt diferite (M este mula
at
imea mesajelor sursei);
t
dac M nu este nit (de exemplu, M este multimea numerelor naturale).
a
a
a
a
a codurilor de lungime x. Aa cum vom vedea continuarea paragrafului
a
s
n
de fat, clasa codurilor prex este sucient situatiile enumerate mai sus i,
a
a n
s
acelai timp, permite decodicarea destul de simpl a transmisiei.
n
s
a
s
a a
s a
Constructia arborelui se face conform algoritmului 2.1 (Genereaz ar
a
bore).
Exemplul 2.4: Pentru codul din exemplul 2.1 arborele este reprezentat
n
gura 2.2.
0
0
0
d
1
1
M = {a, b, c, d, e, f, g, h}
a
a
c : M S cod prex
ieirea: T arborele asociat codului c
s
algoritmul:
creeaz T format doar din rdcin
a
a a a
r:=rdcina lui T
a a
pentru m M execut
a
(s1 , . . . , sl ):=c(m)
x:=r
pentru i:=1, 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 prex
sfrit dac
as
a
creaz y descendent al lui x i eticheteaz (x, y) cu si
a
s
a
sfrit dac
as
a
x:=descendentul lui x pe muchia etichetat si
a
sfrit pentru
as
dac x nu e frunz atunci
a
a
eroare: c nu este cod este prex
sfrit dac
as
a
asociaz m nodului x
a
sfrit pentru
as
sfrit algoritm
as
Algoritmul 2.1: Generarea arborelui asociat unui cod prex
31
a 0
b 10
c 11
d 12
e 200
f 201
g 21
h 22
a
0
b
1
c
2
g
0
e
1
f
Algoritmul Decodeaz
a
intrarea: T arborele unui cod prex c : M S
s = (s1 , s2 , . . . , sl ) S un ir nit de simboluri de cod
s
ieirea: m = (m1 , m2 , . . . , mk ) M irul mesajelor a cror codicare este
s
s
a
s1 , . . . , sl
algoritmul:
m:=
x:=rdcina lui T
a a
pentru i:=1, 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
sfrit 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:=rdcina lui T
a a
sfrit dac
as
a
sfrit pentru
as
dac x nu este rdcina lui T atunci
a
a a
eroare: s nu este concatenare de cuvinte de cod
sfrit dac
as
a
sfrit algoritm
as
Algoritmul 2.2: Decodicarea unei reprezentri printr-un cod prex
a
33
n
s
a s
a
pentru existenta unui cod prex cu lungimi date ale cuvintelor, iar apoi vom
arta c aceast conditie este de asemenea necesar pentru existenta unui cod
a
a
a
unic decodabil.
Teorema 2.5 Fiind dat o multime de mesaje M cel mult numrabil i o
a
a
a s
multime de simboluri S nit avnd cel putin 2 elemente distincte, pentru
a a
(2.2)
iM
i, reciproc, dac numerele naturale (li )iM satisfac inegalitatea (2.2) atunci
s
a
exist un cod prex c : M S avnd lungimile cuvintelor |c(i)| = li , i M .
a
a
Demonstratie. Vom nota continuare d = |S| i K = mM dlm .
n
s
Vom demonstra ai prima implicatie, pentru cazul care multimea
nt
a
maximul k al lungimilor cuvintelor de cod (k = maxmM lm ).
Pentru k = 1,
nseamn c toate cuvintele de cod sunt de lungime 1 i
a a
s
consecint sunt numr de cel mult d. Ca urmare
n
a
n
a
d1 = |M | d1 d d1 = 1.
K=
mM
K=
xS mMx
a a
elementelor din Mx au lungime mai mare sau egal cu 2, deoarece
a
n
caz contrar singurul cuvnt de cod de lungime 1, anume x, ar prex
a
pentru toate celelalte. Eliminnd din toate cuvintele de cod primul
a
simbol obtinem un nou cod prex pentru Mx . Acest cod prex are
a
d(lm 1) 1,
mMx
de unde
dlm
mMx
1
.
d
s
dlm
mMx
Dac Mx = , avem
a
mMx
1
.
d
1
dlm = 0 d .
d(lm )
K=
xS mMx
xS
1
= 1.
d
a
Ml = {m M : |c(m)| l} , l I
N
i notm
s
a
d(lm ) .
Kl =
mMk
35
a
algoritmul 2.3. Demonstrm continuare corectitudinea acestui algoritm.
a n
Vom nota cele ce urmeaz cu Ek valoarea lui E cadrul iteratiei
n
a
n
cte unui simbol din S la irul vid. Apoi, cuvintele din Ek+1 se obtin din
a
s
a
a
este atribuit unui mesaj, cuvntul de cod respectiv este eliminat din Ek .
a
Cuvintele ce vor atribuite continuare pot avea prexe de lungime k
n
doar dintre cuvintele rmase Ek .
a
n
Mai trebuie artat c exist
a
a
a ntotdeauna E o valoare de atribuit lui
n
c(m). Pentru aceasta, vom arta c
a
a
dklm |Ek |
(2.3)
mM
lm k
s
dklm = d K d = |E|
mM
lm k
a
n
care l = k + 1, avem
dk+1lm = d
mM
lm k+1
dklm =
mM
lm k+1
= d
mM
lm k
dklm =
dklm
mM
lm =k
37
a
a
Observm acum c suma din inegalitatea (2.3) are un numr de termeni
a
a
a
de valoare 1 egal cu numrul de cuvinte de lungime k de obtinut i, ca
a
s
urmare, exist Ek suciente cuvinte.
a n
a
lungimi ale cuvintelor de cod: la = 3, lb = 1, lc = 3, ld = 3, le = 3.
Rezolvare: mai ai vericm dac este satisfcut inegalitatea lui
nt
a
a
a a
Kraft:
|S|lm = 23 + 21 + 23 + 23 + 23 = 1 1,
mM
0
0
Rdcina
a a
arborelui
b
(a) Initializarea:
E = {}
(b) Iteratia
l = 1: E =
{1} i a fost
s
plasat ,,b
(c) Iteratia l = 2:
E = {10, 11}
0
0
a
1
1
c
0
d
1
e
Figura 2.4: Constructia unui cod prex cu lungimi xate ale cuvintelor de cod
(exemplul 2.7)
sar pentru existenta codurilor unic decodabile, nu doar a celor prex. Avem:
a
Teorema 2.6 (McMillan) Pentru orice cod unic decodabil c : M |S| are
loc inegalitatea:
n
dlm 1
(2.4)
mM
a
nt
a
a a
a
n
cu E = mM dlm . S lum un k I arbitrar i s calculm:
a a
N
s a
a
dlm1 . . . dlmk
Ek =
(m1 ,...,mk
)M k
(2.5)
d(lm1 +...+lmk )
=
(m1 ,...,mk )M k
Regrupm acum termenii din (2.5) dup valorile sumei lm1 + . . . + lmk .
a
a
Pentru aceasta, vom nota cu N (k, l) numrul de termeni din dezvoltarea
a
(2.5) pentru care lm1 + . . . + lmk = l. Cu alte cuvinte,
N (k, l) =
Mai observm c
a
a
k lm1 + . . . + lmk lmax k
unde lmax este maximul lungimii cuvintelor de cod (lmax = maxmM lm ).
Obtinem:
lmax k
Ek =
N (k, l) dl .
(2.6)
l=k
E
k
lmax k
dl dl = lmax k k + 1 lmax k,
(2.7)
l=k
adic
a
E k lmax k.
(2.8)
39
Mk = {m M : |c(m) k} , k I
N
N
as
i notm Ek = mMk dlm . Pentru ecare k I , Mk este nit i c|Mk
s
a
este un cod unic decodabil. Ca urmare, Ek 1 pentru ecare k I .
N
Observm acum c E = limk Ek 1.
a
a
Corolarul 2.7 Pentru orice cod unic decodabil, exist un cod prex cu acea
leai lungimi ale cuvintelor de cod.
s
a
pe care urmeaz s-o trimit sursa. Prin urmare, nu se poate cere minimizarea
a
a
lungimii reprezentrii informatiei transmise efectiv de surs. Se va minimiza
a
a
deci numrul mediu de biti necesari reprezentrii unui mesaj al sursei.
a
a
al doilea rnd, acest numr mediu de biti se consider sens
In
a
a
a n
probabilistic, de valoare medie a unei variabile aleatoare. Anume, ecare mesaj
al sursei poate considerat o variabil aleatoare cu valori din multimea M
a
a
analiznd statistic iruri de mesaje trimise de surs. Ca exemplu, dac mesajele
a
s
a
a
sursei sunt litere ce alctuiesc un text
a
ntr-o anumit limb, se poate detera
a
mina statistic frecventa ecrei litere, precum i frecventele unor succesiuni
a
s
de litere.
a
a
a
dac pentru destinatar evenimentul anuntat de mesaj era aproape sigur i
a
s
mare dac este un eveniment total neateptat. Este de dorit, de asemenea,
a
s
ca msura informatiei s e aditiv, sensul c privind ca un singur mesaj
a
a
a n
a
o succesiune de dou mesaje, cantitatea de informatie purtat de mesajul
a
a
compus s e suma cantitilor de informatie purtate de cele dou mesaje
a
at
a
separat.
Aa cum vom vedea continuare, cantitatea de informatie purtat
s
n
a
de un mesaj va xa o limit inferioar teoretic a numrului de simboluri de
a
a
a
a
cod necesare codicrii mesajului.
a
De notat c cantitatea de informatie nu are nici o legtur cu utilia
a a
tatea informatiei.
a
s
Cantitatea de informatie adus de mesajul mt este
a
info(mt ) = log2 Pr(mt |m1 , m2 , . . . , mt1 ).
Altfel spus, cantitatea de informatie adus de un mesaj mt contex
a
n
tul (adic urmnd dup) m1 , m2 ,. . . ,mt1 este minus logaritmul probabilitii
a
a
a
at
ca al t-lea mesaj s e mt , conditionat de faptul c mesajele precedente au
a
a
a
fost m1 , m2 ,. . . ,mt1 .
cazul unei surse ergotice, 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 (numrul de ordine) mesajului irul de mesaje, putem, pentru
a
n s
ecare m M , s notm cu pm probabilitatea ca un anumit mesaj din irul
a
a
s
de mesaje s aib valoarea m. Atunci cantitatea de informatie adus de un
a
a
a
mesaj m este info(m) = log2 pm .
Unitatea de msur pentru cantitatea de informatie este bitul.
a a
a
a
a
a a ntre
aceste notiuni, i anume, aa cum vom vedea, pentru a transmite un bit de
s
s
informatie avem nevoie cel putin de un bit (cifr binar).
a
a
Exemplul 2.8: Dac emittorul anunt receptorului rezultatul aruncrii unei
a
a
a
a
monede, mesajul a czut cu fata sus poart o cantitate de informatie egal
a
n
a
a
1
cu log2 2 = (1) = 1bit.
41
Exemplul 2.9: textul acestei lucrri, 10,7% dintre litere sunt ,,a, i doar
In
a
s
1,1% sunt ,,b. Cu aceste cunotinte, receptorul se va atepta de la ecare
s
s
liter s e ,,a cu probabilitate de 10,7% i ,,b cu probabilitate de 1,1%.
a a
s
In
aceste conditii, ecare liter ,,a poart log2 0,107 3,224 biti de informatie,
a
a
a
a
6
anunt acum c numrul este 3, probabilitatea acestui caz, cu informatiile
a
a
a
a
disponibile imediat
nainte, este 4 , de unde cantitatea de informatie purtat
1
de mesajul numrul este 3 este log2 4 = 2 biti. S observm c, dac
a
a
a
a
a
emittorul ar spus de la
a
nceput numrul este 3, cantitatea de informatie
a
6
Denitia 2.9 Fie o surs de informatie ce emite mesaje dintr-o multime M ,
H=
pm log pm
(2.9)
mM
mesaj.
l=
mM
s
dac lungimea medie a cuvintelor sale este mai mic sau egal dect lungimea
a
a
a
a
.
medie a cuvintelor oricrui cod unic decodabil c : M S
a
Exist urmtoarea limit inferioar pentru lungimea medie a cuvina
a
a
a
telor de cod:
H
.
log2 |S|
(2.10)
de informatie.
H
,
l log2 |S|
unde H
este entropia sursei, l este lungimea medie a cuvintelor de cod, iar S este
multimea simbolurilor de cod.
a
Ecienta i redundanta relativ sunt numere cuprinse
s
a
ntre 0 i 1.
s
Valoarea minim, dat teorema 2.12, pentru lungimea medie a cua
a
vintelor de cod poate atins efectiv, adic se poate obtine ecienta = 1,
a
a
|S|lm =
mM
mM
pm = 1 1,
mM
prin urmare ar exista un cod unic decodabil i limita din teorema 2.12 ar
s
atins:
a
pm log|S| pm =
l=
mM
1
log2 |S|
pm
mM
pm log2 pm
mM
log2 pm
log2 |S|
H
.
log2 |S|
ntregi.
cazul general putem doar s alegem ca lungimi ale cuvintelor de
In
a
cod valorile mai mari, lm = log|S| pm . Pentru aceste valori avem
log|S| pm lm < log|S| pm + 1
de unde rezult:
a
43
a
cod c : M S unic decodabil a crui lungime medie l a cuvintelor de cod
a
satisface
H
H
l<
+ 1.
(2.11)
log2 |S|
log2 |S|
Rezultatul teoremei precedente poate
mbuntit dac loc s
a at
a n
a
considerm mesajele sursei ca ind mesajele din M considerm succesiuni
a
a
de mesaje din M , construim un cod pentru acestea din urm i determinm
as
a
raportul dintre lungimea medie a cuvntului de cod i numrul de mesaje din
a
s
a
M codicate prin acesta. detaliu, constructia este urmtoarea:
In
a
Fixm k I Considerm o a doua surs, ale crei mesaje vor suca
N.
a
a
a
cesiuni de k mesaje ale sursei originale. Multimea de mesaje ale noii surse este
)M k
=
i=1 (m1 ,...,mk
k
)M k
i=1
)M k1
1H =
=
i=1
=k H
Conform teoremei 2.14, exist un cod c : M k S pentru care
a
lungimea medie a cuvintelor de cod, l(k) , satisface
Hk
Hk
l(k) <
+ 1.
log2 |S|
log2 |S|
<
+ .
log2 |S|
k
log2 |S| k
Prin urmare, pentru orice > 0, putem alege un k I astfel at codicnd
N
nc
a
cte k mesaje succesive din M s obtinem un numr de simboluri pe mesaj
a
a
a
ncadrat
ntre
H
l(k)
H
<
+ .
log2 |S|
k
log2 |S|
M = {a, b, c, d, e}
cu probabilitile corepsunztoare pa = 0,35, pb = 0,15, pc = 0,15, pd = 0,15,
at
a
pe = 0,20 i e alfabetul canalului S = {0, 1}. Generarea codului optim se
s
face astfel (vezi g. 2.5):
prima faz creem noduri izolate corespunztoare mesajelor sursei
In
a
a
(g. 2.5(a));
Alegem dou noduri cu cele mai mici probabiliti i le unim. Acestea pot
a
at s
,,b cu ,,c, ,,b cu ,,d sau ,,c cu ,,d. Oricare dintre alegeri duce la un
45
Algoritmul Human
intrarea: M multime nit de mesaje
a
pm (0, 1), m M , probabilitile mesajelor;
at
mM pm = 1 S =
{s1 , s2 , . . . , sd } multime nit de simboluri de cod, d 2
a
ieirea: c : M S cod prex
s
algoritmul:
E:=M
d :=(|M | 2) mod (|S| 1) + 2
ct timp |E| > 1 execut
a
a
alege e1 , . . . , ed E cu pei pe , i {1, . . . , d } , e E \
{e1 , . . . , ed }
creaz t unic
a
pentru i {1, . . . , d } execut
a
pune ei ca u al lui t
s(t,ei ) :=si
sfrit pentru
as
pt := d pei
i=1
E:=(E \ {e1 , . . . , ed }) {t}
d :=d
sfrit ct timp
as a
c:=codul prex asociat unicului arbore din E
sfrit algoritm
as
Algoritmul 2.4: Algoritmul lui Human
s
unit e cu arborele format din ,,a, e cu arborele format din ,,d i
s
,,e. Alegem a doua variant.
a
nal unim cei doi arbori rmai.
In
a s
Avem acum codurile mesajelor: c(a) = 0, c(b) = 100, c(c) = 101, c(d) = 110,
c(e) = 111. Lungimea medie a cuvintelor de cod este
l = 0,35 1 + 0,15 3 + 0,15 3 + 0,15 3 + 0,2 3 = 2,3
Pentru comparatie, entropia este
0.35
0.35
0.15
0.15
0.15
c
(b) Pasul 2
0.35
0.30
0.20
(a) Pasul 1
0.35
0.15
0.20
0.30
0.35
0.65
1
0
0
b
(c) Pasul 3
b c
d e
(d) Pasul 4
1
1
b c
d e
47
de arbori din gura 2.6(a) i nal arborele asociat codului prex din gura 2.6(b).
s n
S observm c se obtine exact aceeai lungime medie a cuvintelor de cod:
a
a
a
s
l = 0,35 2 + 0,15 3 + 0,15 3 + 0,15 2 + 0,2 2 = 2,3
0.65
0.35
0
d e
b c
1
1
1 d e
b c
(a) Pasul 4
M = {a, b, c, d, e, f}
cu probabilitile corepsunztoare pa = 0,4, pb = 0,15, pc = 0,15, pd = 0,1,
at
a
pe = 0,1, pf = 0,1 i e alfabetul canalului S = {0, 1, 2}.
s
Constructia codului prin algoritmul lui Human este prezentat
a n
gura 2.7. Lungimea medie a cuvintelor de cod este l = 1,6, entropia este
H 2,346439 i avem
s
H
2,346439
1,4804382 1,6 = l
log2 |S|
1,5849625
Teorema 2.15 Codul obtinut prin algoritmul Human este optim.
at
mesajelor sursei, e S alfabetul canalului i e c : M S un cod optim.
s
Pentru orice mesaje m1 , m2 M , dac pm1 < pm2 atunci |c(m1 )| |c(m2 )|.
a
0.15 0.15
0.1
0.1
0.1
0.15 0.15
0.2
a
c
f
e
(b) Pasul 2
0.4
0.1
(a) Pasul 1
0.4
0.2
(c) Pasul 3
1
0
s
|c(m1 )| < |c(m2 )|. Construim atunci un alt cod, c : M S , prin interschimbarea cuvintelor de cod asociate mesajelor m1 i m2 :
s
c(m2 ) , m = m1
c(m1 ) , m = m2
c (m) =
c(m)
, m M \ {m1 , m2 }
Avem
pm |c (m)| =
L(c ) =
mM
a
s
lungimi ale cuvintelor de cod ca i codul c. Deoarece ne intereseaz doar
s
a
libere ale unui nod intern (un nod ce are cel putin un u) valoarea |S| minus
libere
Intr-adevr, 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;
a
prin aceast operatie ar scdea lungimea cuvntului de cod corea
a
a
spunztor i ca urmare ar scdea lungimea medie a cuvintelor de
a
s
a
cod, contrazicnd ipoteza c c este optim.
a
a
Suma numerelor pozitiilor libere ale nodurilor penultimului nivel este
cel mult |S| 2. Dac arborele are altime 1, atunci unicul nod
a
n
intern este rdcina, aceasta are cel putin 2 i, deoarece |M | 2, i,
a a
s
consecint, numrul pozitiilor libere este cel mult |S| 2. Conn
a
a
s a
a
prin absurd c am avea |S| 1 pozitii libere. Fie t un nod intern de
a
a
are |S| k pozitii libere, deci mai rmn cel putin k 1 pozitii libere
a a
a
k. Dac arborele are total j pozitii libere, prin completarea acestora cu
a
n
s
n = k (|S| 1) + 1 j
Notnd q = |S| j 2, 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, de unde rezult c
a a
pe ultimul nivel exist cel putin |S| j frunze. 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
n1
prin inductie dup numrul k = |S|1 .
a
a
a
notm cu pm , m M , probabilitile mesajelor, s notm cu ch codul gena
at
a
a
erat de algoritmul lui Human i cu co un cod prex optim pentru aceeai
s
s
multime de mesaje i aceleai probabiliti i s notm cu L(ch ), respec
s
s
at s a
a
tiv L(co ) lungimile medii ale cuvintelor de cod corespunztoare. Avem de
a
demonstrat c L(ch ) L(co ).
a
Deoarece co este un cod optim, aplicnd lema 2.17 deducem c co
a
a
are cel putin (n 2) mod (|S| 1) + 2 cuvinte de lungime maxim. Din
a
lema 2.16, deducem c acestea sunt cuvintele corespunztoare mesajelor cu
a
a
probabilitile cele mai mici, adic e mesajele e1 , . . . , ed alese de algoritmul
at
a
lui Human pentru prima unicare, e mesaje de aceleai probabiliti;
s
at n
al doilea caz putem, prin interschimbri de cuvinte de cod, s facem ca cele
a
a
(n2) mod (|S|1)+2 cuvinte de lungime maxmim din co s e cele alese
a
a
prima etap a algoritmului lui Human, fr ca prin aceasta s pierdem
n
a
aa
a
optimalitatea lui co . De asemenea, prin interschimbri de cuvinte de cod,
a
putem face ca celor (n 2) mod (|S| 1) + 2 mesaje alese de algoritmul lui
Human s le corespund prin co cuvinte de cod ce difer doar prin ultimul
a
a
a
simbol.
Creem acum un cod co : (M \ {e1 , . . . , ed }) {t} S , unde t este
un obiect nou introdus, dnd ca valoare pentru c(t) prexul comun al lui
a
c(e1 ),. . . ,c(ed ). acelai mod, creem un cod ch pornind de la ch . Observm
In
s
a
d
s
acum c, notnd pt = i=1 pei , avem L(co ) = L(co ) pt i analog, L(ch ) =
a
a
L(ch ) pt . S mai remarcm c ch este codul produs de algoritmul lui
a
a
a
Human pentru multimea de mesaje (M \ {e1 , . . . , ed }) {t} i, conform
s
ipotezei de inductie, el este optim; prin urmare L(ch ) L(co ). De aici
rezult L(ch ) L(co ), deci codul obtinut prin algoritmul lui Human este
a
optim.
51
a
c emittorul
a
a
ncepe emisia cu un cod standard, dup care modic pena
l
a
tru a-l optimiza conform frecventelor observate date. Dac algoritmul de
n
a
generare a codului este xat i codul folosit la un moment dat depinde doar
s
de datele trimise (codate) deja, atunci receptorul poate recalcula codul folosit
de emittor (folosind acelai algoritm ca i emittorul).
a
s
s
a
De notat c nici un cod nu poate folosi mai putini biti pentru codare
a
a
compresia. Ca o consecint, nici un program de compresie nu poate comprima
a
un ir aleator de octeti.
s
lucru;
corectarea erorilor presupune c receptorul determin cuvntul de cod cel
a
a
a
mai probabil s fost transmis de ctre emittor i d sursei mesajul
a
a
a
s a
corespunztor acelui cuvnt.
a
a
Ca principiu, att detectarea ct 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 cuvnt de cod i, ca urmare, alterrile cele mai probabile ale irului de
a
s
a
s
simboluri transmis conduc la secvente de simboluri de cod care nu constituie
de simboluri de cod.
Prin urmare, posibilitile de detectare a erorilor in de constructia
at
t
s
de cuvinte de cod este o submultime strict a multimii irurilor arbitrare
s
de simboluri de cod, rezult c orice cod detector sau corector de erori are
a a
redundant.
a
cele ce urmeaz vom considera alfabetul canalului S = {0, 1}.
In
a
a a n
aa fel at s fac sucient de mic probabilitatea unei erori nedetectate.
s
nc a
a
a
Este deci esential constructia unui model probabilistic al erorilor, adic de a
a
terminarea, pentru ecare modicare a irului de simboluri transmis de canal,
s
a probabilitii corespunztoare.
at
a
Distingem urmtoarele tipuri de erori:
a
erori individuale, care schimb valoarea unui bit din 0 1 sau reciproc;
a
n
rafale de erori, care schimb o parte dintr-un ir de bit (nu neaprat
a
s
a
toti). Lungimea rafalei este numrul de biti dintre primul i ultimul bit
s
modicat;
erori de sincronizare, care determin pierderea unui bit sau introducerea
a
unui bit,
mpreun cu decalarea corespunztoare a bitilor urmtori.
a
a
a
Transmisia unui ir de biti poate afectat simultan de mai multe
s
a
erori distincte.
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 aceeai pentru toti bitii i independent de valorile bitilor i de pozitiile
s
s
a
53
l!
pk (1 p)lk ,
k!(l k)!
Observm c,
a
a ntruct p
a
1, pentru l sucient de mic avem p0
p1
p2
. . ., adic probabilitatea de-a avea mai mult de cteva erori este
a
a
extrem de mic.
a
s
simboluri de cod de lungime l: W {0, 1}l .
Ca model al erorilor, considerm c avem doar erori individuale, ina
a
dependente (cazul studiat paragraful anterior).
n
Deoarece nu avem erori de sincronizare i deoarece toate cuvintele de
s
cod au aceeai lungime l, receptorul poate departaja cuvintele de cod succes
sive, independent de erorile de transmisie survenite. Ne vom pune deci doar
problema detectrii sau corectrii erorilor ce afecteaz un cuvnt de cod de
a
a
a
a
lungime x l.
a
Intruct probabilitatea de-a avea k sau mai multe erori scade foarte
a
repede o dat cu creterea lui k, 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 construiete codul
as
s
presupunnd c nu se produc mai mult de k 1 erori.
a
a
Denitia 2.18 Spunem despre codul c : M {0, 1}l c detecteaz k erori
a
a
individuale dac, pentru orice cuvnt de cod w W = c(M ), prin transfora
a
marea lui w ca urmare a k sau mai putine erori, cuvntul rezultat w nu este
a
cuvnt de cod: w W .
a
Pentru a determina numrul de erori detectate de un cod, denim
a
urmtoarele:
a
Denim pe {0, 1}l o functie distant:
a
l
|ui vi |,
d(u, v) =
i=1
Notm acum
a
dmin (W ) = min d(u, v),
u,vW
u=v
s
a
k erori dac i numai dac dmin (W ) k + 1.
as
a
S examinm acum codurile corectoare de erori.
a
a
Denitia 2.20 Spunem despre codul c : M {0, 1}l c corecteaz k erori
a
a
individuale dac, pentru orice cuvnt de cod w W = c(M ), prin transa
a
formarea lui w ca urmare a k sau mai putine erori cuvntul rezultat w are
a
proprietatea c w este cel mai apropiat cuvnt de w din W :
a
a
ws W , d(w , ws ) d(w , w).
Propozitia 2.21 Fie codul c : M {0, 1}l i W = c(M ). Codul c corecteaz
s
a
k erori dac i numai dac dmin (W ) 2k + 1.
as
a
S analizm acum ecienta codului. De obicei, datele utile pentru un
a
a
cod detector sau corector de erori sunt iruri de biti, obtinuti prin codicarea
s
datelor din universul aplicatiei. Ca urmare, multimea mesajelor este multimea
a
1
echiprobabile, probabilitatea oricrui mesaj ind aceeai: pm = |M | = 2n ,
a
s
m M . Ca urmare, ecienta codului este
n
H
= .
l
l
S mai notm c |M | = |W | = 2n .
a
a
a
Constructia efectiv a unui cod detector sau corector de erori cuprinde
a
dou aspecte:
a
constructia unei multimi W {0, 1}l cu dmin (W ) sucient de mare pentru
s
rilor (adic vericarea apartenentei unui ir de l biti la W ) i eventual
a
s
corectarea erorilor (adic gsirea celui mai apropiat cuvnt din W fat
a a
a
a
de un ir de l biti dat).
s
55
a nc s
primilor n dintre cei l biti s poat lua oricare dintre cele 2n valori posibile,
a
a
iar ultimii l n biti sunt unic determinati de primii n biti. Primii n biti din
a
a
de bitii de control. Receptorul citete informatia util i bitii de control; pentru
as
detectarea erorilor aplic acelai algoritm ca i emittorul asupra informatiei
a
s
s
a
a
a
s
a
odd parity), care W este multimea irurilor de l biti continnd un numr
n
a
a
impar de valori 1. Unicul bit de control se mai numete bit de paritate.
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
s
Bitul de paritate se calculeaz numrnd bitii cu valoare 1 din infora
aa
as
a
a
Exemplul 2.13: Pentru codul cu paritate par i n = 7, irul de biti 1010110
as
s
(informatie util) se codic 10101100 (bitul de control este 0). Sirul 1110110
a
a
se codic 11101101 (bit de control 1). Sirul 11001100 este cuvntul de cod
a
a
corespunztor informatiei utile 1100110. Sirul 11001101 nu este cuvnt de cod
a
a
valid.
Exemplul 2.14: Pentru codul cu paritate impar i n = 7, irul de biti
a s
s
1010110 se codic 10101101 (bitul de control este 1). Sirul 1110110 se codic
a
a
11101100 (bit de control 1). Sirul 11001100 nu este cuvnt de cod valid. Sirul
a
a
de biti, cu n1 i n2 xati. Ca urmare n = n1 n2 . Codul are l = (n1 + 1) (n2 +
1). Cuvintele de cod sunt vzute ca ind matrici (n1 + 1) (n2 + 1) care
a
n
ultima linie i ultima coloan cuprind bitii de control. Multimea cuvintelor de
s
a
n
s
ecare coloan numrul de valori 1 este par.
a
a
Se poate arta uor c dmin (W ) = 4, prin urmare codul detecteaz 3
a
s
a
a
erori sau corecteaz 1 eroare.
a
Codicarea i detectarea erorilor se face calculnd bitul de paritate
s
a
pentru ecare linie i pentru ecare coloan. De remarcat c ultimul bit din
s
a
a
matrice trebuie calculat e ca bit de paritate al bitilor de paritate ai liniilor,
la acelai rezultat.
s
Exemplul 2.15: Pentru n1 = n2 = 4, irul 1011010111001111 se codic
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, cuvntul de cod rezultat este irul: 1011101010110001111011011.
a
s
Pentru corectarea erorilor, se caut mai ai liniile i coloanele care
a
nt
s
s
a
Exemplul 2.16: Sirul 101001101011010011000111111101 nu este cuvnt 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.
a a
a
s
a
Prin urmare, primul bit de pe linia a 2 este eronat, ind 0 original. Datele
n
utile sunt deci: 1010010101100111.
2.4.3.3. Coduri polinomiale
Oricrui ir de biti v = (v1 , . . . , vk ) {0, 1}k i se asociaz un polinom
a
s
a
de grad cel mult k 1:
v(X) = v1 X k1 + v2 X k2 + . . . + vk1 X + vk .
57
({0, 1}, +, ), unde + este operatia sau exclusiv, iar este operatia i, 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 pstreaz multe din proa
a
a
prietile polinoamelor ,,obinuite, particular se poate deni la fel adunarea,
at
s
n
scderea i
a
s nmultirea i are loc teorema artirii cu rest.
s
mp
Pentru constructia unui cod polinomial, se alege un aa-numit poli
s
nom generator g(X) de grad l n (reamintim c l este lungimea cuvintelor
a
de cod, iar n este numrul de biti ai informatiei utile; n < l). Multimea cua
a
se construiete polinomul i(X) asociat informatiei utile,
s
a
r(X).
Pentru a ne convinge de corectitudinea algoritmului de mai sus, s
a
observm c obtinem ca i cuvnt de cod un ir de forma i1 , . . . , in , r1 , . . . , rln
a
a
s
a
s
al crui polinom asociat este
a
v(X) =i1 X l1 + . . . + in X ln + r1 X ln1 + . . . + rln =
=i(X) X ln + r(X).
Deoarece r(X) este restul artirii lui i(X) X ln la g(X), rezult c polimp
a a
nomul i(X) X ln r(X) este divizibil cu g(X). Deoarece F2 avem c
n
a
1 + 1 = 0 rezult c r(X) = r(X). De aici rezult c v(X) este divizibil cu
a a
a a
g(X).
Codurile polinomiale sunt mult utilizate datorit simplitii construca
at
iei unor circuite (hardware) care calculeaz bitii de control.
t
a
Dac se dorete corectarea erorilor, se observ c pozitiile erorilor nu
a
s
a a
v (X), la g(X).
uor citind aceast fraz. Din pcate a, nu garanteaz detectarea nici mcar
s
a
a
a
ns
a
a
a unei singure erori; sunt cazuri care o singur eroare poate schimba radial
n
a
sensul unei fraze.
Transmisia vocii prin radio sau prin telefonie analogic este general
a
n
zgomotoas i adesea cu distorsiuni puternice. Ca urmare, riscul erorilor de
as
transmisie este ridicat. Cum, pe de alt parte, diverse indicative cum ar
a
numere de telefon, numere de
nmatriculare, .a.m.d. nu contin redundant,
s
a
la transmiterea acestora cifrele se pronunt cu anumite modicri, iar pentru
a
a
litere se pronunt un cuvnt
a
a ntreg, dintr-un set standardizat, care
ncepe cu
litera ce se dorete a transmis. De exemplu, 2 minute se va pronunta doi
s
a
Capitolul 3
Nivelul zic
s
destinatia se a la distant una fat de cealalt.
a
a
a
a
Sursa i destinatia sunt ,,clientii sistemului de comunicatie; nivelul
s
a
Pentru
ndeplinirea scopului su, nivelul zic dispune de un mediu de
a
transmisie. Mediul de transmisie se
ntinde de la amplasamentul sursei pn
a a
la amplasamentul destinatiei i este capabil s transmit la distant o anumit
s
a
a
a
a
actiune zic.
a
Nivelul zic cuprinde trei elemente: mediul de transmisie, emitatorul
a s n
formitate cu valorile lor, actioneaz asupra mediului. Receptorul sesizeaz
a
a
actiunile emittorului asupra mediului i reconstituie irul de biti produs de
a
s
s
s
ntotdeauna analizat ca o
functie continu de timp.
a
Mrimea zic utilizat ca semnal este aleas de proiectantul sistemua
a
a
a
lui de comunicatii dintre acele mrimi pe care mediul ales le poate propaga
a
conditii bune. De exemplu, pentru transmisia prin perechi de conductoare,
n
Nivelul zic
Sursa
Emittor
a
Sir de
biti
Semnal
Mediu
Receptor
Semnal
Destinatie
Sir de
biti
ntr-un semnal adecvat transmiterii prin mediul de comunicatie. Receptorul efectueaz operatia
s
a
poart denumirea de schem de codicare a informatiei prin semnal continuu.
a
a
a
in cont de aceste modicri. O parte din schemele folosite vor studiate
t a
a
n
3.3.
continuarea acestui capitol vom trece revist problemele speciIn
n
a
ce legate de transmiterea semnalelor i de codicarea informatiei prin sems
s
lemele respective, vederea elegerii solutiilor existente, limitrilor lor,
n
nt
a
parametrilor specicati documentatiile privind echipamentele folosite i,
n
s
mai ales, posibilitii comunicrii cu specialitii domeniul electronicii i
at
a
s n
s
comunicatiilor.
a
s
s
semnal emis i vom nota cu Ue (t), unde t este timpul. Semnalul msurat
s l
a
61
s
s
s l
nota cu Ur (t).
Transformrile suferite de semnal sunt urmtoarele:
a
a
arziereaconst faptul c semnalul receptionat urmeaz cu o anumit
nt
a n
a
a
a
arziere semnalul emis. Cu notatiile de mai sus i neglijnd fenomenele
nt
s
a
ce vor descrise la punctele urmtoare, avem Ur (t) = Ue (t t). Dua
rata t se numete arziere (de propagare) sau timp de propagare.
s nt
arzierea are valoarea t = l , unde l este lungimea mediului iar
Int
v
v este viteza de propagare a semnalului. Viteza de propagare a semnalului depinde de natura mediului de transmisie. La transmisia prin
conductoare, v depinde numai de materialul izolator dintre conductoare
i, pentru materialele folosite mod curent, are valoarea aproximativ
s
n
a
v 2/3c = 2 108 m/s, unde c este viteza luminii vid.
n
atenuarea const faptul c semnalul receptionat are amplitudine mai
a n
a
mic dect cel emis. Neglijnd arzierea, are loc Ur (t) = g Ue (t), cu
a
a
a nt
0 < g < 1. Tinnd cont i de arziere, avem Ur (t) = g Ue (t t).
a
s
nt
Numrul 1/g se numete factor de atenuare tensiune.
a
s
n
De cele mai multe ori atenuarea unui semnal este exprimat prin
a
factorul de atenuare putere, numit pe scurt factor de atenuare, denit
n
ca raportul dintre puterea semnalului emis i a celui receptionat. cazul
s
In
perechii de conductoare, deoarece puterea este proportional cu ptratul
a
a
tensiunii (raportul tensiune/intensitate ind aproximativ constant), factorul de atenuare putere este egal cu 1/g 2 .
n
Prin conectarea unul dup cellalt a mai multor medii de transa
a
misie, factorul de atenuare a mediului rezultat este produsul factorilor
de atenuare ai componentelor. Din acest motiv, loc de factorul de
n
atenuare se folosete adesea logaritmul su: logaritmul factorului de
s
a
atenuare rezultat este suma logaritmilor, aceeai baz, ai factorilor de
n
s
a
atenuare ai componentelor.
Logaritmul factorului de atenuare se numete pe scurt atenuare.
s
Valoarea logaritmului depinde de baza utilizat, baze diferite dua
cnd la valori proportionale. Deoarece schimbarea bazei de logaritmare
a
10
nmultit cu 10, e ca valoarea logaritmului baza 101/10 . De ex a
n
2 ) = 10, logaritmul su este
emplu, dac factorul de atenuare este (1/g
a
a
1 B = 10 dB. Dac factorul de atenuare este 2, logaritmul su (atena
a
uarea) este log10 2 B 0,3 B = 3 dB.
Puterea semnalului emis se msoar watti (W) sau miliwatti
a
a n
(mW). Adesea, este specicat nu puterea ci logaritmul puterii: se ia
a
numrul ce reprezint puterea, miliwatti, i logaritmul su se exprim
a
a
n
s
a
a
decibeli. Pseudo-unitatea de msur corespunztoare reprezentrii
n
a a
a
a
de mai sus se numete decibel-miliwatt, avnd simbolul (neconform regs
a
ulilor Sistemului International de Masuri i Uniti) dBm. Ca exemple:
s
at
o putere de emisie de 1 mW poate scris i 0 dBm, o putere de 1 W
as
se scrie 30 dBm, iar 0,1 mW se scrie ca 10 dBm.
Puterea minim a semnalului receptionat, pentru care receptorul
a
a
de cel emis, diferit de arziere i atenuare. (O modicare este detera
nt
s
minist dac, oridecteori transmitem un acelai semnal, modicarea se
a
a
a
s
manifest identic.) Mai multe detalii despre distorsiuni vor date
a
n
3.2.2.
zgomotele sunt modicri nedeterministe ale semnalului receptionat,
a
n
nal/zgomot este raportul dintre puterea semnalului i puterea cores
spunztoare zgomotului. Uneori termenul de raport semnal/zgomot este
a
utilizat i pentru logaritmul raportului semnal/zgomot; de obicei nu este
s
pericol de confuzie deoarece logaritmul este exprimat decibeli, timp
n
n
ce raportul semnal/zgomot nu are unitate de msur.
a a
O categorie special de zgomot este diafonia, care este un zgomot
a
provenit din semnalul transmis pe un mediu de transmisie vecin.
63
Ui
Ue
a
semnalul de intrare. Valoarea operatorului este functia timp-tensiune Ue =
s
s
i , are loc
s
L(f + g) = L(f ) + L(g).
Pentru un dispozitiv liniar, dac semnalul de intrare Ui (t) poate
a
descompus ca o sum de forma
a
Ui (t) = 1 Ui1 (t) + 2 Ui2 (t) + + n Uin (t),
atunci pentru semnalul de ieire avem
s
Ue (t) = L(Ui )(t) = 1 Ue1 (t) + 2 Ue2 (t) + + n Uen (t),
unde Ue1 = L(Ui1 ), Ue2 = L(Ui2 ),. . . ,Uen = L(Uin ).
Dispozitivele liniare au proprietatea c, dac semnalul de intrare este
a
a
sinusoidal , adic
a
Ui (t) = U0 cos (2f t + ) ,
atunci semnalul de ieire este tot sinusoidal i, mai mult,
s
s
Ue (t) = g(f ) U0 cos(2f t + (f )),
f a semnalului.
Orice semnal se poate scrie unic ca o sum de semnale sinusoidale.
a
(Nota: conditiile matematice asupra semnalului, i alte detalii se gsesc
s
a
n
lucrrile de specialitate, de exemplu [Crstici et al. 1981]; aici facem doar o
a
prezentare semi-intuitiv).
a
Un semnal periodic de perioad T se poate descompune aa-numita
a
n s
serie Fourier :
U (t) =
ak cos
k=0
2k
t + k .
T
Un semnal limitat timp, adic nul afara unui interval nit [0, T ],
n
a
n
se poate descompune sub forma:
U (t) =
(3.1)
Not: relatia (3.1) este dat de obicei sub forma numit transformata
a
a
a
Fourier invers :
a
U (f ) e2if t df,
U (t) =
(3.2)
I
R
a
s
U.
Relatia (3.1) spune c semnalul U se poate scrie ca o sum de sinu
a
a
soide cu diferite frecvente f avnd amplitudinile a(f ) i defazajul (decalajul
a
s
sinusoidei de-a lungul axei Ox) egal cu (f ).
Frecventele f pentru care amplitudinile corespunztoare a(f ) sunt
a
nenule alctuiesc spectrul semnalului.
a
Pentru un dispozitiv liniar, semnalul de ieire se poate calcula des
scompunnd sinusoide semnalul de intrare, calculnd efectul dispozitivului
a n
a
asupra ecrei sinusoide parte i
a
n
s nsumnd nal ieirile:
a n
s
65
= L
ai (f ) cos(2f t + i (f ))df =
0
(3.3)
=
0
s
relatiei (3.1), a semnalului de intrare Ui .
s
Un semnal este nedistorsionat dac i numai dac, pentru toate frecas
a
ventele f din spectrul semnalului, g(f ) este constant i (f ) este proportional
as
(3.4)
a a
ncadreaz
a ntr-un anumit interval f
[fmin , fmax ]. Acest interval se numete banda de trecere a dispozitivului.
s
In
consecint, dac spectrul semnalului de intrare se
a
a
ncadreaz banda de trea n
cere a dispozitivului, semnalul de ieire va prezenta distorsiuni acceptabil de
s
mici.
Diferenta fmax fmin se numete limea de band a dispozitivului.
s at
a
De exemplu, banda de trecere a unei linii telefonice este cuprins
a
s a
a
semnalul la mijlocul ecrui interval. Dac tensiunea este mai mare dect 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, iar caz contrar decide c
a
n
a
bitul are valoarea 0.
Valoarea pragului poate x sau poate stabilit dinamic functie
a
a
n
t
S observm c receptorul trebuie s e sincronizat cu emittorul,
a
a
a
a
a
adic s examineze semnalul receptionat la mijlocul intervalului corespunztor
a a
a
unui bit. Acest lucru se poate face a este adesea nepractic transmitnd
ns
a
un al doilea semnal, de sincronizare, pe un mediu separat (adic folosind o alt
a
a
pereche de re).
Sincronizarea se poate face i pe baza semnalului util, dac receptorul
s
a
dispune de un ceas sucient de precis. acest scop, receptorul va msura
In
a
timpul ct semnalul este ,,sus (peste prag) i va determina de cte ori se
a
s
a
cuprinde acest interval durata unui bit. Numrul de biti consecutivi identici
n
a
a
s
a
Limitarea numrului de biti identici consecutivi se poate face mai
a
n
multe feluri:
Codicarea Manchester. Semnalul are una sau dou tranzitii pentru
a
ului arat valoarea bitului: tranzitia este sus pentru 1 i jos pentru
a
n
s n
0. Pentru a face posibil ca doi biti consecutivi s aib aceeai valoare,
a
a
s
la
nceputul intervalului corespunztor unui bit mai poate s apar o
a
a
a
tranzitie (g. 3.4).
67
nceputul ecrui interval de bit. Dac bitul este 1 atunci semnalul mai are
a
a
o tranzitie la mijlocul intervalului (g. 3.5).
restrictia ca
a
nt
de n biti consecutivi se
s
de biti astfel obtinut se codic direct, un bit 0 ind reprezentat printr-o
a
valoare a tensiunii i un bit 1 prin alt valoare.
s
a
Retelele Ethernet de 100 Mbit/s utilizeaz un cod de grup cu n = 4
a
i m = 5.
s
at
a
a
mult sau mai putin.
a
a
a
este mai mic dect 2 , atunci un semnal rectangular care are, alternativ, un
a
a 1
timp o valoare i urmtorul timp cealalt valoare va distorsionat att
s
a
a
a
de mult at ,,urcuurile i ,,coborurile semnalului nu vor mai putea
nc
s
s
as
identicate de ctre receptor i ca urmare informatia purtat nu mai poate
a
s
a
obtinut.
a
Pentru un mediu dat, cu o band de trecere dat, exist, prin urmare,
a
a
a
o valoare minim a lui pentru care receptorul poate extrage informatia util
a
a
din semnalul receptionat. Dac limita superioar a benzii de trecere este fmax ,
a
a
1
valoarea minim este = 2fmax .
a
Diversele codicri studiate mai sus au diferite rapoarte k
a
ntre durata medie a unui bit i valoarea lui . La codicarea direct, durata unui
s
a
bit este egal cu i deci k = 1. La codicrile Manchester i Manchester
a
s
a
s
diferential, durata unui bit este 2 i avem k = 2. La codurile de grup, durata
a
s
s
unui bit util este m i avem k = m . Debitul maxim cu care se pot transmite
n
n
datele este fmax .
k
3.3.2. Modulatia
nt
a
circuitele sau mediul de transmisie nu pot transmite frecventele apropiate de
zero (este de exemplu cazul transmiterii prin unde radio), e pentru a putea
transmite mai multe semnale pe acelai mediu prin multiplexare frecvent
s
n
a
(vezi 3.3.3).
aceste situatii, semnalul rezultat direct urma uneia dintre schemele
In
n
de codicare descrise paragraful precedent nu poate transmis direct. O
n
posibil solutie este modulatia, descris continuare.
a
a n
69
s
frecventa purttoare i o vom nota continuare cu fp .
a
s
n
Semnalul rezultat urma modulatiei se numete semnal modulat.
n
s
Operatia de constructie a semnalului modulat pornind de la semnalul
s(t) > 0.
Se observ c modulatia amplitudine este liniar (modulatia
a a
n
a
sin(2fp t)+
m
m
cos(2(fp fs )t ) cos(2(fp + fs )t + )
2
2
(3.5)
a
a
ele fp fs , fp i fp + fs .
t
s
Din liniaritatea modulatiei amplitudine i din relatia (3.5) de n
s
a
s
a
erale, stng i dreapt, acestea cuprinznd diferentele, respectiv sumele,
a as
a
a
a
s
a
a
a
FM ), care const modicarea frecventei f jurul frecventei pura n
ttoare fp .
a
Semnalul transmis are forma
U (t) = U0 sin 2 (fp + m s(t)) t
unde, din nou, fp este frecventa purttoare, s(t) este semnalul modulator,
a
iar m este o constant. Semnalul modulator trebuie s respecte restrictia
a
a
m s(t)s0
fp .
Analiza spectrului unui semnal modulat frecvent este mult mai
n
a
difcil dect cazul modulatiei amplitudine.
a
a n
n
modulatia de faz, care const modicarea fazei .
a
a n
Semnalul transmis are forma
U (t) = U0 sin 2fp t + m s(t)
Este evident c,
a ntruct receptorul nu are de obicei un reper aba
solut de timp, el nu poate detecta dect variatiile de faz ale semnalului
a
a
receptionat. Ca urmare, o valoare constant a lui s(t) nu poate de
a
osebit de zero i, mai mult, nici variatii lente ale lui s(t) nu pot
a
s
prea apropiate de 0.
Exist i posibilitatea de-a varia simultan doi sau chiar toti cei trei
as
71
U (t) = U0
a
a
ntre frecventele
n
s
care cunoaterea principiului conservrii energiei ne folosete pentru a nu
n
s
a
s
a s
1
nalului luate la interval 2fmax unul de altul.
a
s
limitat la o valoare proportional cu log(s/n + 1).
a
a
Deoarece pentru o schem de codicare xat exist o relatie de
a
a
a
proportionalitate
ntre conductoare.
a
a
a
acest scop doar anumite
dac este plasat
a
a ntr-un cmp electric variabil. In
a
substante sunt potrivite. Materialele utilizate cel mai frecvent sunt polietilena
a
Ca form i dispunere relativ, exist trei constructii utilizate:
as
a
a
conductor este
nvelit
ntr-un strat izolator.
Adesea, mai multe perechi de conductoare sunt duse
mpreun,
a
cadrul unui cablu, este posibil ca un
paralel, formnd un cablu. In
n
a
conductor s e comun, partajat
a
ntre dou sau mai multe circuite de
a
semnalizare. acest caz, n circuite utilizeaz n + 1 conductoare,
In
a
n
loc de 2n cte sunt cazul care perechile sunt complet separate.
a
n
n
73
cu cmpul electromagnetic
a
nconjurtor, adic micorerea zgomotului
a
a
s
indus de un cmp electromagnetic
a
nconjurtor i, totodat, micorarea
a
s
a
s
cmpului electromagnetic produs de semnalul ce trece prin perechea de
a
conductoare. Acest lucru este important special pentru micorarea din
s
afoniei cu celelalte perechi de conductoare din acelai cablu. afar de
s
In
a
rsucire, restul constructiei este identic cu perechea simpl. Cablurile
a
a
a
formate din perechi torsadate nu au niciodat un conductor comun pena
tru mai multe circuite.
Este important ca, cazul unui cablu ce contine mai multe perechi
n
nfs
elicoidal, o parte din re ind aurate
nfs
ntr-un sens i alt parte
s
a
n
cellalt sens.
a
Cablul coaxial este i mai protejat de interferente dect perechea
s
a
torsadat. Are de obicei atenuare mai mic dect perechea simpl sau
a
a
a
a
cea torsadat. Costul este a mai ridicat.
a
ns
oricare dintre variante, pentru a reduce suplimentar interferentele
In
cu cmpul electromagnetic
a
nconjurtor, perechea de conductoare poate
a
ecranat , adic
a
a nvelit
a ntr-un strat conductor continuu. Pentru ca ecranul
s e ecient, trebuie s aib continuitate de jur
a
a
a
mprejurul conductoarelor
(dac este realizat prin aurarea unei foite metalice, marginile foitei trebuie
a
nfs
nfs
ntr-o manta de protectie,
a
a
prevzut cu un scut metalic contra roztoarelor.
a
a
a
In
a
electric dintre conductoare) i efectul pelicular (la frecvente mari curens
a
a
a
sa
capt al unei buci innite de cablu o surs de tensiune alternativ. Se
a
at
a
a
75
a
tensiune i intensitate se numete impedanta caracteristic a cablului.
s
s
a
Receptorul se caracterizeaz i el printr-o impedant de intrare,
a s
a
denit ca raportul dintre tensiunea aplicat la bornele receptorului i
a
a
s
intensitatea curentului absorbit de receptor. Emittorul se caractera
izeaz printr-o impedanta de ieire, denit ca raportul dintre scderea
a
s
a
a
tensiunii la borne cauzat de absorbtia unui curent de ctre un dispozitiv
a
a
montat la bornele emittorului i intensitatea curentului absorbit.
a
s
Dac la un capt de cablu de o anumit impedant legm un
a
a
a
a
a
cablu de alt impedant sau dac emittorul sau receptorul ataat are
a
a
a
a
s
alt impedant dect impedanta caracteristic a cablului, spunem c
a
a
a
a
a
avem o neadaptare de impedant. acest caz, jonctiunea respectiv
a In
a
reect o parte din semnalul incident (este analog reexiei luminii la
a
trecerea din aer sticl, sau general
n
a
n
ntre medii cu indice de refractie
diferit).
Reexia produce dou neajunsuri: pe de o parte scade puterea
a
semnalului util ce ajunge la receptor, iar pe de alt parte un semnal ce
a
sufer dou reexii succesive se poate suprapune peste semnalul util i,
a
a
s
ind arziat fat de acesta, distorsioneaz.
nt
a
l
a
Impedanta se msoar ohmi (simbol ). Cablul pentru televiz
a
a n
iune are impedanta de 75 . Cablul coaxial pentru retea Ethernet are
a
ctre mai multe receptoare) sau pentru a permite mai multor calculatoare s
a
a
comunice ecare cu ecare.
O astfel de pereche de conductoare la care se leag mai multe dispoza
itive se numete magistral .
s
a
Realizarea mediului zic, acest caz, este complicat de necesitatea
n
a
de a avea adaptare de impedant ecare punct al mediului. general, la
a n
In
simpla conectare a trei perechi de conductoare sau, echivalent, la ramicarea
unei perechi apare, punctul de ramicatie, o neadaptare de impedant.
n
a
Exist dispozitive mai complicate (continnd transformatoare de sema
a
nal) care permit ramicarea unei perechi de conductoare fr a introduce o
aa
a
receptoare) la un cablu const realizarea unei ramicatii foarte scurte, asta n
s
dect impedanta perechii de conductoare la care se conecteaz. O astfel de
a
a
conectare se utilizeaz, de exemplu, retelele Ethernet vechi (vezi 9.1.3 i
a
n
s
g. 9.1).
Dac un capt de pereche de conductoare este lsat liber (neconeca
a
a
tat), el produce reexii. De fapt, un capt neconectat poate vzut ca o
a
a
jonctiune de la perechea ce are o anumit impedant la un dispozitiv avnd
a
a
a
impedanta innit. Pentru evitarea reexiilor, la captul unei perechi de
a
a
conductoare trebuie montat un dispozitiv numit terminator . Terminatorul
este un simplu rezistor, avnd rezistenta egal cu impedanta cablului. El aba
a
nc
as
a
siune a cablurilor i montarea conectoarelor se pot realiza cu unelte relativ
s
ieftine i fr a necesita prea mult calicare din partea lucrtorilor. Aceste
s aa
a
a
motive fac ca, majoritatea situatiilor practice, perechile de conductoare s
n
a
e a cea mai potrivit solutie pentru comunicatii pe distante mici.
nc
a
n
s curg curenti din alte surse.
a
a
Astfel,
ntre carcasele, legate la pmntarea retelei electrice, a dou
a a
a
calculatoare sau alte echipamente, poate apare o tensiune electric de ordinul
a
ctorva volti; dac echipamentele sunt conectate la retelele electrice a dou
a
a
cldiri diferite, tensiunea dintre carcase de propagarele lor poate chiar mai
a
mare. Pentru ca aceasta s nu perturbe semnalul util, constructia plcilor
a
n
a
de retea trebuie luate msuri speciale de izolare. Dac unul dintre conduc
a
a
77
toare este expus atingerii cu mna (este cazul la retelele Ethernet cu cablu
a
a a
a conductorului respectiv; legarea la pmnt trebuie a fcut
a a
ns a a ntr-un singur punct pentru a evita suprapunerea peste semnalul util a tensiunilor dintre
diverse puncte ale retelei de pmntare.
a a
O alt surs de tensiuni parazite
a
a
ntre conductoarele de semnal sunt
descrcrile electrice din atmosfer (fulgerele i trznetele). Deoarece mod
a a
a
s a
n
normal conductoarele retelei sunt izolate fat de reteaua de pmntare, fenomenele
a a
atmosferice pot induce tensiuni ridicate
ntre conductoarele retelei i carcasele
s
echipamentelor, putnd duce la distrugerea echipamentelor retelei. Ca ura
mare, cazul unor cabluri de retea duse prin exteriorul cldirilor, este necen
a
sar e ecranarea cablului i legarea ecranului la pmnt, e amplasarea unor
a
s
a a
descrctoare care s limiteze tensiunea dintre conductoarele retelei i pmnt.
a a
a
s a a
a
Aceste oscilatii se propag din aproape aproape.
a
n
Frecventa unei unde electromagnetice este frecventa de oscilatie a
cmpului electromagnetic
a
ntr-un punct xat din spatiu.
a
a n
timpul unei oscilatii complete. Lungimea de und se noteaz cu i are
a
a
s
v
s
valoarea = f , unde f este frecventa i v este viteza de propagare. Viteza de
propagare depinde de mediul care se propag unda. Ca urmare, lungimea
n
a
de und se modic la trecerea dintr-un mediu altul.
a
a
n
Lungimea de und se utilizeaz adesea locul frecventei pentru a
a
a
n
a ntre 1 GHz
( = 30 cm) i 300 GHz ( = 1 mm), 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.
a
ntre 1 m i 1 cm.
s
La transmisia prin unde radio, mrimile zice utilizate ca semnal
a
sunt intensitatea cmpului electric i inductia magnetic. Cele dou mrimi
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.
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.)
Mai multe proprieti ale sistemului de transmisie fac ca limea benat
at
zii de trecere a
ntregului sistem s e
a
ngust raport cu frecventele
a n
ntre
care se
ncadreaz banda de trecere; raportul
a
ntre limea benzii i limita
at
s
inferioar a benzii este mod tipic de cel mult cteva procente. Din aceast
a
n
a
a
cauz, transmisia prin unde radio este
a
ntotdeauna cu modulatie, iar frecventa
purttoare este cel putin de cteva zeci de ori mai mare dect limea de band.
a
a
a at
a
De exemplu, pentru o vitez de transmisie de 10 Mbit/s avem mod
a
n
tipic nevoie de o lime de band apropiat de 10 MHz, pentru care frecventa
at
a
a
a
notat cu E, i inductia magnetic, notat cu B.
a
s
a
a
a s i
a
s
79
s
n
perpendicular pe directia de deplasare a undei, fasciculul se numete polarizat
s
circular. Se distinge polarizare circular stng dac, privind directia de
a a a
a
n
s
sens invers acelor de ceas; i polarizare circular dreapt dac E se rotete
n
s
a
a
a
s
sensul acelor de ceas.
n
Un fascicol cu polarizare circular rezult de fapt prin suprapunerea a
a
a
dou fascicole, de amplitudine egal, polarizate perpendicular unul pe cellalt,
a
a
a
deplasndu-se aceeai directie i cu un decalaj de un sfert de ciclu
a
n
s
s
ntre ele.
Dac cele dou fascicole au amplitudini diferite, rezult ceea ce se numete
a
a
a
s
polarizare eliptic ; polarizarea liniar i polarizarea circular sunt de fapt
a
a s
a
cazuri particulare de polarizare eliptic.
a
3.5.1.2. Absorbtia i reexia
s
Absorbtia undelor radio aer este neglijabil.
n
a
Picturile de ap (din ploaie, nori, ceat) absorb destul de puternic
a
a
a
undele radio, special microundele. Apa absoarbe puternic toate undele ran
dio; de aceea este greu de obtinut legtur radio sub ap. Absorbtie moderat
a a
a
a
se produce pmnt i diferite materiale de constructie.
n a a s n
a
cu distanta, ca i cazul propagrii semnalelor prin cabluri.
s n
a
Metalele reect undele radio. Plasele metalice care au contact bun
a
ntre rele componente i au ochiurile mult mai mici dect lungimea de und se
s
a
a
comport ca o suprafat metalic compact. Armturile cldirilor din beton
a
a
a
a
a
a
armat nu fac contact electric prea bun
ntre ele, a perturb serios propagarea
ns
a
undelor radio.
Ionosfera reect undele cu lungimi de und de ordinul metrilor; prin
a
a
reexii repetate
ntre Pmnt si ionosfer, aceste unde pot parcurge uor multe
a a
a
s
mii de kilometri.
3.5.1.3. Difractia
Orice und ocolete obstacolele mai mici dect o fractiune din lungimea
a
s
a
Dac
a ntr-un punct ajung unde pe mai multe ci, de exemplu o cale
a
direct i o cale prin reexia pe un obstacol, unda receptionat acel punct
as
a n
este suma undelor ce ajung pe toate cile.
a
Dac diferenta de drum
a
In
aceste situatii, deplasarea receptorului (sau emittorului) pe o distant de la
a
a
un sfert din lungimea de und i pn la de cteva ori lungimea de und poate
as a a
a
a
modica mult calitatea semnalului (reaminitim c transmisiile de date se
a n
utilizeaz lungimi de und cuprinse
a
a
ntre 1 cm i 1 m). Schimbarea lungimii
s
de und pe care se face transmisia poate de asemenea modica mult efectul.
a
Dac diferenta de drum
a
a
este comparabil sau mai mare dect lungimea unui bit i puterile semnalului
a
a
s
pe cele dou ci sunt apropiate, semnalele propagate pe cele dou ci se bruiaz
a a
a a
a
reciproc. Situatia apare mult mai rar dect cea prezentat mai sus, a nu
a
a
ns
poate corectat dect prin mutarea statiilor fat de obstacolele ce produc
a
a
a
reexiile.
3.5.1.5. Divergenta undelor
a
cu suprafata frontului de und, care la rndul ei este proportional cu ptratul
a
a
a
a
distantei fat de emittor.
a
a
Ca urmare, puterea receptionat Pr este invers proportional cu p
a
a
a
tratul distantei d dintre emittor i receptor:
a
s
Pr = Pe
1
d2
s
receptie, iar Pe este puterea emittorului.
a
Scderea puterii datorit extinderii frontului de und este indepena
a
a
dent de eventuala absorbtie a undelor mediu; aceasta din urm duce la o
a
n
a
scdere exponential cu distanta a puterii semnalului.
a
a
3.5.2. 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
81
n
nconjurtor antenei. Orice anten este
a
a
reversibil: dac i se aplic un semnal electric la borne, va radia unde electroa
a
a
magnetice i, reciproc, dac este plasat calea undelor electromagnetice, va
s
a
a n
produce semnal electric la borne.
general o anten este optimizat pentru o anumit band de treIn
a
a
a
a
cere.
O anten are un anumit randament, denit ca raportul dintre puta
erea undei electromagnetice radiate i puterea absorbit din semnalul electric
s
a
primit.
3.5.2.1. Directivitatea
O anten nu radiaz uniform de jur
a
a
mprejur. Prin ctigul (engl.
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, aceleai conditii. Ca
s
a
a
n
s
s
a as
este pe unele directii supraunitar i pe altele subunitar, integrala lui pe
s
ntreaga
sfer ind 4 (unde reprezint randamentul antenei). Ctigul este dat
a
a
as
uneori direct, alteori este dat logaritmul ctigului, exprimat decibeli.
as
n
Ctigul antenei pe diverse directii este reprezentat grac prin diaas
as
mpreun cu directiile apropia
as
este numit ctigul antenei.
a as
O anten optimizat s aib ctig ct mai mare pe o directie,
a
a a
a as
a
n
detrimentul celorlalte directii, se numete anten directiv. O anten opti
s
a
a
a
mizat pentru a avea ctig ct mai uniform, cel putin planul orizontal,
a
as
a
n
se numete anten nedirectiv. O anten cu ctig perfect uniform de jur
s
a
a
a
as
a
a
(msurat radiani) nu poate mai mic dect raportul dintre diametrul
a
a n
a
a
antenei i lungimea de und. Ca exemplu, pentru a obtine un lob principal
s
a
a
fenomenele de difractie a undelor i nu poate ocolit.
s
a
a n
a
ere proportional cu densitatea de putere a undei incidente. Raportul dinte
a
puterea disponibil la bornele antenei i densitatea de putere a undei incia
s
dente se numete aria efectiv sau apertura antenei. Apertura poate privit
s
a
a
ca suprafata, transversal pe directia de propagare a undelor, de pe care an
a
tena preia
ntreaga energie. Apertura depinde de directia considerat a undei
a
incidente.
Apertura fat de o anumit directie a undei incidente este proportia
a
S=G
2
4
(3.6)
unde S este aria efectiv, G este ctigul, iar este lungimea de und.
a
as
a
Utiliznd relatia (3.6), se poate calcula puterea receptionat, dac
a
a
a
distanta dintre emittor i receptor este mult mai mare dect dimensiunile
a
s
a
antenelor:
1
Sr =
4d2
2
= Pe Ge
Gr
16 2 d2
Pr = Pe Ge
a
s
tor, Ge este ctigul emittorului pe directia spre receptor, iar Gr i Sr sunt
as
a
s
respectiv ctigul i apertura antenei receptoare pe directia spre emittor.
as
s
a
Exemplul 3.1: Considerm un emittor (de exemplu, un calculator dintr-o
a
a
retea IEEE 802.11 wireless) care emite un semnal cu puterea Pe = 100 mW
a
este atunci = 0,125 m). Mai presupunem c receptorul se gsete la o
a
a s
distant d = 100 m fat de emittor, c absorbtia semnalului este neglijabil
a
a
a
a
a
(emittorul i receptorul se gsesc cmp deschis i nu plou) i c ambele
a
s
a
n a
s
a s a
antene au un ctig Ge = Gr = 2 pe directia spre partenerul de comunicatie.
as
Pr = 101 W 2
adic aproximativ 84 dBm.
a
(0,125 m)2
2 3,9 109 W,
16 2 (100 m)2
83
3.5.2.2. Polarizarea
Antenele cele mai simple au polarizare liniar: unda emis este poa
a
larizat liniar, pe o directie stabilit prin constructia antenei. Rotirea antenei
a
ntre un maxim (cnd directiile polarizrilor celor dou antene sunt paralele)
a
a
a
i un minim (teoretic zero) cnd directiile sunt perpendiculare.
s
a
ntotdeauna, indiferent de
directia de polarizare, o transmisie polarizat circular; reciproc, o anten po
a
a
larizant circular va receptiona o emisie polarizat liniar. O anten polarizant
a
a
a
a
circular va receptiona o transmisie polarizat circular numai dac are acelai
a
a
s
sens al polarizrii. Rotirea antenelor jurul dreptei ce le unete nu are efect.
a
n
s
3.5.2.3. Tipuri de antene
Antenele nedirective sunt de cele mai multe ori un simplu baston
metalic (de fapt, bastonul este un pol, iar carcasa aparatului sau, dup caz,
a
Pmntul. este cellalt pol). O astfel de anten are ctig maxim planul
a a
a
a
as
n
orizontal (perpendicular pe baston) i zero pe directie vertical ( lungul
s
a n
bastonului). Undele produse sunt polarizate vertical.
Antenele directive cele mai rspndite pentru comunicatii de date
a a
a
a n a
parte, iar unda electromagnetic este adus focarul reectorului parabolic
a
a n
printr-un tub metalic numit ghid de und.)
a
a
Spre deosebire de legturile prin perechi de conductoare sau prin
a
bre optice, legturile prin unde radio nu pot delimitate net la un anumit
a
domeniu. Dm continuare factorii care inuenteaz raza de actiune a unei
a n
a
a i
a
a
a a
ntrun domeniu spatial limitat pentru a nu interfera cu legturi radio din apropiere.
a
Cabluri electrice sau optice putem duce cte dorim; cmp electromagnetic este
a
a
numai unul. . .
3.5.3.1. Obstacolele
Obstacolele limiteaz raza de actiune a legturii radio. Mai mult, din
a
a
cauza interferentei dintre undele reectate pe diferite ci, este dicil de analizat
exact punctele care este posibil receptia unei emisii radio i punctele
n
a
s
n
care emisia este obstructionat.
a
3.5.3.2. Linia orizontului
Unul dintre obstacolele ce limiteaz raza de actiune a undelor radio
a
a
a
altime poate comunica cu o statie aat la nivelul solului dac i numai dac
n
a
as
a
statia de pe sol se a mai aproape dect linia orizontului celeilalte statii.
a
a
Dou statii pot comunica dac exist cel putin un punct comun orizontului
a
a
a
a a
msurat de-a lungul curburii, de la baza turnului care se a obsera
a
n
a
r
vatorul: d = r arccos h+r ;
msurat linie dreapt de la observator:
a
a n
a
d=
(r + h)2 r2 =
h(2r + h);
dac h
a
r, d 2rh. De remarcat c dac exprimm numeric 2r
a
a
a
n
3 km) i h metri, distanta d rezult
mii de kilometri (2r 12,7 10
s
n
a
kilometri.
n
Exemple:
Distanta pn la linia orizontului pentru un observator aat la 1,6 m
a a
deasupra pmntului (de exemplu un radiotelefon inut mn) este d =
a a
t
n a a
a
De pe un turn cu altimea de 50 m, distanta la linia orizontului
n
a
altime ecare pot comunica direct dac sunt la mai putin de 50 km unul de
n
a
altul.
Distanta la linia orizontului crete
s
3.5.3.3. Utilizarea satelitilor articiali ai Pmntului
a a
Satelitii articiali ai Pmntului sunt utilizati ca echivalentul unor
a a
turnuri
nalte pentru montarea unor statii radio. Dup altitudinea la care
85
a
ntre 200 . . . 1000 km, cu perioada de
rotatie de 1,5 . . . 1,8 h;
s
s a
a a
Un satelit are o arie de acoperire incomparabil mai mare fat de o
a
statie terestr. La 200 km altitudine, un satelit acoper o raz de 1500 km,
a
a
a
iar un satelit de medie altitudine acoper o raz de peste 7000 km.
a
a
Din cauza distantelor mari, comunicatia cu satelitii necesit e put
a
eri mari, e antene cu directivitate foarte bun. Este de remarcat faptul c
a
a
distanta de la un satelit la o statie terestr este de la cteva zeci la cteva
a
a
a
sute de ori mai mare dect distanta de la un releu amplasat
a
ntr-un turn la o
statie terestr. Ca urmare, pentru aceleai antene, puterile necesare sunt de
a
s
la cateva sute la cteva sute de mii de ori mai mari.
a
La comunicatia
ntre sateliti geostationari i statii xe de pe sol se pot
a
ns
a
a
c avem antene ce dau un fascicul cu diametrun unghiular de 6 , (vezi exemplul
a
care rezulta, pentru f = 5 GHz, un diametru al antenei de peste 1,2 m)
n
putem distinge doar
ntre 60 de sateliti distincti.
a
a
pentru a dubla raza de actiune a emittorului trebuie s-i cretem puterea de
a
a
s
4 ori.
Pe de alt parte, dac dou emittoare radio functioneaz aceeai
a
a
a
a
a n
s
regiune geograc i emit pe frecvente identice sau foarte apropiate, atunci
a s
a
corect. Dac puterile sunt apropiate, receptorul nu va putea ,, elege nici
a
nt
una dintre transmisii.
3.5.3.6. Emisia directionat i polarizat
as
a
Domeniul de actiune a unui emittor sau receptor poate restrns
a
a
mod voit dotnd emittorul sau receptorul (de obicei ambele) cu antene din
a
a
rective. Trebuie a calculate cu atentie divergenta lobului principal, puterea
ns
cazul polarizrii circulare se vor folosi cele dou sensuri (stnga i dreapta).
n
a
a
a
s
Lobii secundari ai antenelor, precum i undele reectate de diverse corpuri, au
s
polarizri greu de controlat.
a
a
a
s
cu sensul de interval de frecvente care se
n
ncadreaz o transmisie (efectiv,
a
band sensul de la semnale). Frecvente diferite, acest sens,
a n
n
nseamn
a
de fapt benzi disjuncte. Valoarea numeric a frecventei, specicat acest
a
a n
context, este frecventa purttoare utilizat. Limitele efective ale benzii se
a
a
determin din standardul de transmisie folosit.
a
87
a n
a n
un interval de frecvente alocat pentru o anumit categorie de transmisii radio.
a
Benzile, acest sens, se specic e printr-o anumit frecvent sau lungime de
n
a
a
a
und, din interiorul benzii, i avnd o valoare ,,rotund, e printr-un nume.
a
s
a
a
Limitele benzii se gsesc standarde.
a
n
Dou transmisii radio ce se fac pe frecvente diferite, sau mai precis, a
a
cror benzi de trecere sunt disjuncte, pot separate general uor. Separarea
a
n
s
frecvent este mult mai uor controlabil dect separarea spatial studiat
n
a
s
a
a
a
a
3.5.3. Dou transmisii pe aceeai frecvent i aceeai zon geograc
n
a
s
a s n
s
a
a
sunt practic imposibil de separat, dac au puteri apropiate, sau transmisia
a
mai slab este imposibil de receptionat ind ,,acoperit de cea mai puternic.
a
a
a
Pentru evitarea suprapunerilor
ntre utilizatori, utilizarea diverselor
benzi de frecvente face obiectul unor reglementri legale ecare ar, precum
a
n
t a
i a unor acorduri internationale. Emiterea unui semnal radio, pe o frecvent
s
a
pentru care operatorul emittorului nu este autorizat sau de o putere mai
a
mare dect cea autorizat, poate duce la sanctionarea contraventional sau
a
a
a
chiar penal a operatorului.
a
majoritatea cazurilor, un utilizator de comunicatii radio care doIn
a
a n
a
Exist frecvente alocate posturilor de radio, sistemelor de comunicatii radio
a
at
radioamator i nu unei persoane sau institutii, a radioamatorii trebuie s
s
ns
a
se
nregistreze pentru a putea emite.
Exist a benzi pentru care nu este necesar o autorizare expres a
a ns
a
a
emittorului, cu conditia ca emittorul s nu depeasc o anumit putere.
a
a
a
as
a
a
In
aceast categorie intr frecventele folosite de: retelele IEEE 802.11 (Wireless
a
a
aa
n t
de origine, dar s necesite autorizatie alt ar.
a
n
at a
Echipamentele care lucreaz pe frecvente pentru care nu trebuie aua
a
a
n
acestea permit selectarea frecventei de lucru dintre 24 frecvente predenite.
a
a
a ntre emittor i rea
s
ceptor, i tolerarea unui numr de ciocniri ale transmisiilor pe perioadele
s
a
n
care echipamentele vecine se nimeresc aceeai frecvent. Tehnica se numete
s
a
s
frequency hopping (salturi ale frecventei).
enumerm cteva:
a
a
Sursele de alimentare de la aproape toate aparatele electronice moderne (aa-numitele surse comutatie), precum i blocul de baleiaj de
s
n
s
linii de la televizoarele i monitoarele cu tub catodic, emit semnicativ
s
pe frecvente pn la cteva sute de kiloherti (aa-numitele armonice,
a a
a
s
adic frecvente care sunt multipli ai frecventei de lucru a circuitului).
a
a
i uneori chiar medii.
s
Radioemittoarele emit i pe frecvente ce sunt multipli ai frecventei
a
s
ndeprtat).
a
n
i dotate cu antene parabolice, sunt general punct la punct, ca cazul
s
n
n
legturilor prin perechi de conductoare.
a
Legturile
a
ntre satelitii geostationari i statiile terestre sunt astfel
a a
s
reciproc, satelitul receptioneaz emisia de la mai multe statii de pe Pmnt;
a a
statiile de pe Pmnt nu comunic a direct
a a
a ns
ntre ele. O astfel de comunicatie
a a
a
a aa
ca statiile s observe direct acest lucru.
a
La echipamente mobile exist mai multe posibiliti. Pentru distante
a
at
as
a ntr-un turn de unde poate comunica
direct cu toate celelalte. Celelalte statii nu se ,,vd direct una pe alta i de cele
a
s
mai multe ori nici dac ,,se vd protocoalele folosite nu permit comunicatii
a
a
directe
ntre ele (exemplu: telefoanele GSM). Statia central primete rol de
a
s
arbitraj al transmisiilor.
89
a
(exemplu IEEE 802.11): statiile comunic direct
a
ntre ele, iar arbitrarea mediului se face prin mijloace asemntoare cu cele utilizate pe cabluri magistral
a a
a
( 4.2). Spre deosebire a de cablurile magistral, unde un pachet emis de o
ns
a
statie de pe cablu este receptionat de toate celelalte i, ca urmare, ciocnirea la
s
receptie a dou pachete este sesizat i de ctre emittoare, la legturile 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.
3.5.5.2. Fiabilitatea
Fiabilitatea unei legturi radio este general mai sczut dect a
a
n
a a
a
unei legturi pe cablu:
a
Rata de erori este mult mai mare. La o legtur radio, probabilitatea unei
a a
erori de un bit este mod normal de 103 . . . 105 . Pentru comparatie,
n
a
n
a
a
legturii poate depinde de starea vremii.
a
Umbrele provocate de cldiri i relief, precum i interferentele
a
s
s
ntre undele
reectate, sunt imposibil de calculat mod practic. O statie ce ajunge
n
aa
esential s aib incorporate msuri de securitate. Acestea presupun metode
a
a
a
criptograce (vezi capitolul 6) ce previn ascultarea sau contrafacerea unui
mesaj, i eventual schimbarea frecventei (metoda frequency hopping) pentru a
s
preveni bruiajul.
ntre
1,6 1014 Hz ( = 1,8 m) i 3,7 1014 Hz ( = 0,8 m). Aceste unde elecs
tromagnetice fac parte din categoria undelor infraroii. Vom folosi termenul de
s
as a
a
n
dine pentru a transmite semnalul util.
Emisia i receptia se realizeaz cu dispozitive semiconductoare capas
a
bile s emit raze infraroii la trecerea curentului prin ele (LED-uri, asemna
a
s
a a
toare celor de pe panourile de aparate, sau, dup caz, diode laser) i, respectiv,
a
s
care permit trecerea curentului doar prezenta luminii.
n
a
mult civa metri (de exemplu, pentru telecomenzi de televizoare sau pentru
at
dispozitive IrDA), raza de lumin se propag direct prin aer de la emittor la
a
a
a
receptor. Metoda este dicil de extins la distante mai mari.
ntoarce
napoi br. In
n
a
a
a
iese prin cellalt capt chiar dac bra nu este perfect dreapt.
a
a
a
a
Fibra optic se mai numete i ghid de und optic (engl. optical
a
s s
a
waveguide), deoarece este identic ca i scop i foarte asemntor functional cu
s
s
a a
a
sunt atenuarea mic (sub 1 dB/km) i imunitatea aproape perfect la zgomot.
a
s
a
Intre miez i
s nveli poate o discontinuitate net, sau se poate ca
s
a
indicele de refractie s scad gradual. Fibrele cu discontinuitate net se numesc
a
a
a
bre optice cu discontinuitate (engl. step index ber ) iar brele cu trecere
gradual de la miez la
a
nveli se numesc bre optice graduale (engl. grade
s
index ber ).
Fibra propriu-zis ind extrem de subtire i fragil, ea este
a
s
a
nvelit
a
91
a
Ideea de baz a conducerii semnalului prin br 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 reecte
s a
napoi miez. Reexia trebuie s e cu pierderi
n
a
extrem de mici, deoarece o raz se va reecta de multe ori de la un capt la
a
a
cellalt al brei.
a
3.6.1.1. Conectarea brelor optice
Problemele legate de conectarea brelor optice reprezint principalul
a
dezavantaj al brelor optice fat de perechile de conductoare. Conectarea cap
a
la cap a dou tronsoane de br se poate face:
a
a
prin lipire, alzind bra pn la temperatura de topire a sticlei i
nc
a a
s
avnd grij ca s se lipeasc capetele dar s nu se amestece miezul cu
a
a
a
a
a
a
a
nt
a
propagare a semnalului br este egal cu valoarea componentei longitudin
a
a
nale a vitezei de propagare a luminii, care depinde de unghiul dintre directia
a
a
ca mai multe copii putin decalate timp. Acest fenomen de distorsionare a
n
semnalului se numete dispersie intermodal .
s
a
Opusul brei multimod este bra monomod , care ecuatia undelor
n
admite o singur solutie. Existenta unui singur mod elimin dispersia intera
a
modal,
a mbuntind calitatea propagrii semnalului. Pentru a admite un
a at
a
singur mod, bra trebuie s e mult mai subtire, diametrele standard ind
a
a
a
a
iar pe de alt parte densitatea de putere luminoas emis prin br trebuie
a
a
a
a
s e mai mare. Acest din urm fapt duce la necesitatea utilizrii diodelor
a
a
a
laser ca surs de lumin (LED-urile nu mai sunt adecvate) i, consecint,
a
a
s n
a
la creterea preturilor echipamentelor.
s
a
s
s n
neglijabile.
s
a a
ptrat a puterii luminoase emise.
a
a
93
a n
optice, lipsa mijloacele de-a analiza direct semnalul electromagnetic (asupra
n
cruia opereaz multiplexarea frecvent ), analizm doar puterea semnalului
a
a
n
a
a
electromagnetic.
Este posibil i transmisia duplex pe o singur br optic. Pentru
as
a
a
a
aceasta se realizeaz o constructie cu oglinzi semitransparente care permite ca
a
raza de lumin emis s ptrund br, iar raza de lumin ce iese din br
a
a a a
a n
a
a
a
s ajung pe elementul receptor. Pentru a preveni diafonia
a
a
ntre cele dou
a
sensuri de propagare, este necesar ca reexiile pe capetele brei s e extrem
a
de reduse sau s se aplice o multiplexare lungimea de und
a
n
a ntre cele dou
a
sensuri.
este dicil de interceptat comunicatia prin ele (fr a le tia este aproape
aa
a
imposibil de interceptat semnalul, iar tierea brei poate uor detectat),
a
s
a
au atenuare mic i, sfrit, sunt mult mai uoare (contin mult mai putin
a s n a s
s
s
a
conditii mai speciale, de exemplu la tensiuni electrice mari sau medii cu
n
n
radiatii electromagnetice puternice.
a
a
de mare pentru a periculoas. Riscul principal este ca, cazul care
a
n
n
lumina de la emittorul optic ptrunde ochi, s produc leziuni ireparabile
a
a
n
a
a
ale retinei. Riscul de accident este mrit prin faptul c lumina nu este vizibil.
a
a
a
Ca msur de protectie, se pot utiliza ochelari speciali prevzuti cu ltre care
a a
las s treac lumina vizibil, dar blocheaz infraroiile transmise prin bre.
a a
a
a
a
s
Lipirea brelor sau montarea conectoarelor pe bre 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 montrii conectoarelor) i pera
s
sonal calicat. Din acest motiv, se comercializeaz cabluri, de diferite lungimi,
a
cu conectoare gata ataate.
s
Un r de praf ajuns pe captul unei bre optice obstructioneaz sea
a
rios trecerea luminii. De aceea, conectoarele necuplate se acoper cu capace
a
protectoare.
Capitolul 4
n
n
de ctre emittor, o parte din date se vor pierde.
a
a
Constructia legturii zice este scump; mai mult, exist un cost indepen
a
a
a
dent de capacitate. Ca urmare, este de dorit s putem construim mai
a
multe legturi logice, care s transmit uxuri independente de pachete,
a
a
a
partajnd aceeai legtur zic.
a
s
a a
a
Ca urmare, nivelul legturii de date are sarcina de-a realiza urmtoaa
a
rele:
detectarea sau corectarea erorilor de transmisie;
controlul accesului la mediu cazul care exist mai multe emittoare
n
n
a
a
ce partajeaz acelai mediu de transmisie;
a
s
retransmiterea pachetelor pierdute din cauza erorilor de transmisie, a
ciocnirilor
ntre pachete transmise de mai multe emittoare simultan
a
sau a incapacitii destinatiei de-a le prelua la timp;
at
96
a a
primit;
a
multiplexarea mai multor legturi logice prin aceeai legtur zic.
a
s
a a
a
Surs
a
(modulul
retea)
Emittor
a
legtur
a a
de date
Calculator emittor
a
Nivel zic
Receptor
legtur
a a
de date
Destinatie
(modulul
retea)
Calculator receptor
s
realizarea functiilor lor, modulele nivelului legturii de date ale dispozitivelor
a
ce comunic si transmit unul altuia, utiliznd serviciile nivelului zic, dou
a
a
a
tipuri de informatii:
a
Informatiile de control sunt transmise e
n
forma unui antet, e dup acestea. cazul transmiterii datelor de control
a
In
a
Receptorul recalculeaz bitii de control conform continutului pachetua
s
a
In
de nepotrivire, receptorul deduce c s-a produs o eroare de transmisie.
a
In
cazul utilizrii unui cod corector de erori, receptorul reconstituie continutul
a
97
cel mai probabil al pachetului original. cazul unui cod detector de erori,
In
pachetul nu poate recuperat; acest caz, eventuala retransmitere a datelor
n
cade sarcina unui mecanism de tipul celui ce va studiat 4.3.
n
n
a
a
a
tan interfereaz aa fel at un receptor nu poate receptiona corect oricare
a
a n s
nc
a n
elabora un protocol care s evite transmisia simultan.
a
a
practic, problema accesului la mediu apare urmtoarele ipostaze:
In
a
n
a
la transmisia semi-duplex , adic cazul comunicatiei bidirectionale,
a n
ntre
dou entiti, utiliznd acelai mediu zic pentru ambele sensuri.
a
at
a
s
la comunicatia prin unde radio, dac exist mai multe statii care emit pe
a
a
a
de toate statiile pe o anumit raz. Este cazul aproape tuturor retelelor
a
a
a
a
s
maxim de ateptare din momentul care are ceva de transmis i pn la
s
n
s a a
intrarea emisie; metoda cu coliziuni i retransmiteri este nedeterminist
n
s
a
i ca atare asigur un anumit debit i un anumit timp de ateptare doar cu
s
a
s
s
o anumit probabilitate strict mai mic dect unu. schimb, sistemele
a
a
a
In
n
ce asigur un interval exclusiv de emisie, intrarea i ieirea unei statii din
a
s s
s
a
a
In
cazul asigurrii unui interval exclusiv de emisie, o parte din capacitatea de
a
transmisie a mediului este consumat de mesajele de sincronizare necesare
a
stabilirii intervalelor ecrei statii; cazul acceptrii coliziunilor, o parte din
a
n
a
capacitate este pierdut datorit pachetelor distruse coliziuni.
a
a
n
a
industriale transmisie audio-video. Detectarea coliziunilor i retransmiterea
s
pachetelor distruse coliziuni este favorabil sistemele interactive, cum ar
n
a n
retelele ,,obinuite de calculatoare.
s
Aproape orice sistem care mai multe dispozitive sunt conectate
n
n
la acelai mediu zic este necesar ca ecare dispozitiv s aib un identicator
s
a
a
unic. Acest identicator se numete adres zic sau adres MAC (de la Mes
a
a
a
dia Access Control controlul accesului la mediu) sau, dac nu e pericol de
a
confuzie, adres. Alocarea adresei zice se face mod normal prin mecanisme
a
n
exterioare retelei, adic adresele sunt alocate e manual, de ctre administra
a
a
torul retelei, e cadrul procesului de fabricatie al dispozitivului conectat la
retea.
s
de emisie. Anuntul se face printr-un pachet emis de arbitru i continnd adresa
s
a
zic a statiei ce poate emite. Statia anuntat de arbitru are la dispozitie un
a
interval de timp care poate s emit ceea ce are de transmis. Dac statia nu
n
a
a
a
statiei c a
a
Arbitrul trebuie s aib lista tuturor statiilor din retea. Ieirea unei
a
a
s
statii se face simplu prin anuntarea arbitrului; ieirea arbitrului nu este posibil
s
a
(dect eventual prin desemnarea unui alt arbitru). Intrarea unei statii noi
a
a
n
a
a
se defecteaz, statia e este vzut ca o statie ce nu are nimic de transmis,
a
a a
a
ntregii retele.
99
plet a statiilor, lista este distribuit, ecare statie cunoscnd adresa statiei
a
datele utile, dup care anunt statia urmtoare. Metoda cu jeton a fost utia
a
a
lizat retelele IEEE 802.4.
a n
a
a
In
unei coliziuni, statia emittoare va repeta ulterior pachetul, pn la o trans
a
a a
mitere cu succes.
Detectarea unei coliziuni, de ctre ecare dintre statiile emittoare,
a
a
se poate face prin dou metode:
a
prin ascultarea mediului pentru a detecta o eventual transmisie simula
tan.
a
Datorit arzierilor de propagare diferite, este posibil ca dou
a nt
a
pachete s e coliziune pentru o statie receptoare i s nu e cola
n
s a
n
iziune pentru alt statie (g 4.2). Din acest motiv, un emittor trebuie
a
a
s considere coliziune orice situatie care detecteaz o transmisie prea
a
n
a
apropiat timp de o transmisie proprie. Din acelai motiv, arzierea
a n
s
nt
maxim datorat propagrii retea trebuie limitat prin standard, ceea
a
a
a n
a
ce impune o limit asupra
a
ntinderii geograce a retelei.
B
a
C
c
B
a
C
c
B
c
C
a
a
primete pachetul lui C
s
i C primete pachetul lui
s
s
A.
Figura 4.2: Dou pachete emise simultan, conditiile care timpul de propagare
a
n
n
este mai mare dect timpul de transfer. Coliziunea nu este detectat de nici unul
a
a
dintre emittoare, a este detectat de o statie aat la jumtatea distantei dintre
a
ns
a
a
a
acestea.
Figura 4.3: Este posibil ca dou emittoare radio, A i C, s e situate prea departe
a
a
s
a
pentru a-i receptiona una transmisia celeilalte, dar s existe o a treia statie, B, care s
s
a
receptioneze transmisiile ambelor emittoare (liniile punctate delimiteaz zona care
a
a
n
transmisia unei statii poate receptionat). acest caz, A i C pot emite simultan
a In
s
fr a detecta coliziune, a pentru B se produce coliziune
aa
ns
ntre transmisiile lui A i
s
C.
s
s
innit pachetele. Mai mult, dac apar frecvent coliziuni, este bine ca timpul
a
pn la urmtoarea retransmitere s e mrit.
a a
a
a
a
Acest protocol simplu de acces la mediu se numete Aloha pur .
s
O variant
a mbunit a protocolului Aloha este protocolul numit
atat a
Aloha cuanticat (engl. slotted Aloha). acest protocol, toate pachetele au
In
aceeai lungime. Inceperea transmisiei unui pachet nu poate avea loc oricnd,
s
a
ci doar la momente xate, aate la o durat de pachet unul de altul.
a
Alte
mbuniri ce pot aduse protocolului Aloha pur (nu a i
atat
ns s
la Aloha cuanticat) sunt:
detectarea purttoarei (CSMA Carrier Sense Multiple Access): o statie
a
101
a a
a a
a
statii.
a
durata unui pachet lung, este probabil s se adune mai multe statii care
a
a
O solutie mai bun este ca o statie, care dorete s emit i con
a
s
a
as
stat c mediul este ocupat, s atepte un interval de timp aleator, dup
a a
a s
a
care s verice din nou dac mediul este liber. Dac mediul este liber,
a
a
a
ncepe emisia proprie; dac nu, ateapt un nou interval de timp aleator
a
s
a
. a. m. d.
s
oprirea transmisiei la detectarea unei coliziuni (numit, oarecum improa
priu, detectarea coliziunii collision detection, CSMA/CD): dac o
a
statie, timpul emisiei proprii, detecteaz o coliziune, abandoneaz
n
a
a
datele rmase de transmis, transmite un semnal de o form special pena
a
a
tru a anunta c pachetul este invalid i apoi oprete transmisia. acest
a
s
s
In
fel, se economisete timpul necesar transmisiei datelor rmase, transs
a
misie oricum compromis.
a
s
s transmit un pachet de date unei statii B va trimite ai un pachet de
a
a
i
nt
control, numit RTS (request to send, cerere de transmisie), care specic
n
a
timpul necesar transmiterii pachetului (sau, echivalent, lungimea pachetului).
B rspunde printr-un alt pachet de control, CTS (clear to send, liber la transa
misie), destinat lui A dar receptionat de toate statiile, care pune i durata
n
s
transmisiei copiat din pachetul RTS. La primirea pachetului CTS, statia A
a
a
statii nu are voie s transmit nici date, nici pachete de control, pe durata
a
a
anuntat CTS i rezervat astfel destinatarului CTS-ului.
a n
s
a
a
s
de aproape de A i de C astfel at s poat comunica cu ecare dintre ele.
s
nc a
a
aceast situatie, dac A i C emit simultan, din punctul de vedere al lui
In
a
a
s
B se produce o coliziune, dar nici A nici C nu pot detecta acest lucru. Protocolul CSMA, descris paragraful precedent, nu permite lui C s detecteze
n
a
dac A transmitea deja ctre B momentul care C dorete s transmit la
a
a
n
n
s
a
a
rndul lui; ca urmare, CSMA se comport exact ca Aloha pur. protocolul
a
a
In
CSMA/CA, schimb, C receptioneaz CTS-ul adresat de B lui A i amn
n
a
s
a a
transmisia proprie.
Alt posibilitate de combinare a celor dou strategii o constituie proa
a
cazul acestor protocoale, statiile sunt artite
tocolalele cu conict limitat. In
mp
grupuri. Fiecrui grup i se aloc intervale exclusive de emisie (ca cazul
n
a
a
n
protocoalelor bazate pe intervale exclusive de emisie, dar cu diferenta c ecare
a
interval se aloc unui
a
ntreg grup, nu unei statii). cadrul ecrui grup se
In
a
aplic un protocol cu coliziuni i retransmitere. artirea grupuri poate
a
s
Imp
n
fcut dinamic: dac cadrul unui grup apar frecvent coliziuni, grupul
a a
a n
este scindat dou; dac dou grupuri au transmisii sucient de rare, pot
n
a
a
a
recombinate
ntr-unul singur.
a
comunicatie
napoi dinspre receptor spre emittor. Principial, exist dou
a
a
a
strategii:
receptorul conrm (engl. acknowledge, ACK) primirea corect a paa
a
chetelor
receptorul inrm (engl. negative acknowledge, NAK) un pachet eronat.
a
Evident, conrmrile sau inrmrile sunt i ele pachete i deci sunt
a
a
s
s
la rndul lor supuse eventualelor erori de transmisie.
a
Rolul unui protocol de retransmitere este s asigure c la destinatie
a
a
103
Emittor
a
Receptor
Destinatie
Un mesaj
Un mesaj
Un mesaj
ACK
al doilea
al doilea
timeout
al doilea
al doilea
ACK
i
Algoritmul emittorului este urmtorul: pentru ecare pachet al sura
a
sei, ct timp nu a primit conrmare de la receptor, trimite pachetul i ateapt
a
s s
a
pn cnd e primete conrmarea, e trece un timp egal cu durata dus-
a a a
s
ntors
normal.
a
Emittor
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.5: lipsa unor msuri adecvate, pierderea unei conrmri conduce la
In
a
a
dublarea unui pachet.
a
a
s
gura 4.4) c receptorul nu are cum s disting
a
a
a ntre trimiterea urmtorului
a
pachet de date i retrimiterea unui pachet datorit pierderii conrmrii.
s
a
a
Pentru a obtine un algoritm corect, trebuie s furnizm receptorului
a
a
sucient informatie pentru ca acesta s disting
a
a
a ntre repetarea pachetului
precedent i pachetul urmtor. O solutie este ca emittorul s pun ecare
s
a
a
a
a n
pachet trimis numrul su de ordine cadrul uxului de date; acest numr de
a
a
n
a
ordine se numete numrul de secvent al pachetului. acest fel, receptorul
s
a
a
In
va retine numrul ultimului pachet receptionat i va capabil s verice dac
s
a
a
urmtorul pachet primit este repetarea acestuia sau este urmtorul pachet al
a
a
105
sursei.
a
a
de unde s tie dac un pachet de date a ajuns sau nu la receptor. Dac
a s
a
a
primete conrmarea unui pachet, poate sigur c pachetul conrmat a ajuns
s
a
la receptor; dac a a trimis un pachet i nu a primit ( a) conrmarea
a ns
s
nc
acestuia, este posibil (conform informatiilor emittorului) ca pachetul s
a
a
ajuns (i eventual s se pierdut conrmarea) sau ca pachetul s nu ajuns
s
a
a
deloc. El insist retransmiterea pachetului pn la primirea conrmrii.
a n
a a
a
Prin urmare, receptorul trebuie s conrme ecare pachet primit, chiar dac
a
a
este un duplicat al unui pachet anterior (vezi gura 4.6).
Surs
a
Emittor
a
Receptor
Destinatie
Un mesaj
1 Un mesaj
Un mesaj
ACK
al doilea
2 al doilea
al doilea
timeout
ACK
2 al doilea
timeout
.
.
.
2 al doilea
a
s
pentru receptor: functionarea emittorului este descris algoritmul 4.1, iar
a
a n
cea a receptorului algoritmul 4.2. Un exemplu de functionare a acestora
n
a
aa
s
a
ct timp n = n sau a expirat durata t
a
sfrit ct timp
as a
sfrit algoritm
as
Algoritmul 4.1: Algoritmul emittorului protocolul simplu cu conrmri i rea
n
a s
transmiteri. Parametrul t este ales putin mai mare dect durata dus-
a
ntors a nivelului
zic.
a
dac n = n atunci
a
n:=n + 1
livreaz d destinatiei
a
sfrit dac
as
a
trimite n spre nivelul zic
sfrit ct timp
as a
sfrit algoritm
as
Algoritmul 4.2: Algoritmul receptorului protocolul simplu cu conrmri i ren
a s
transmiteri.
Surs
a
Emittor
a
107
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
a
dup care ateapt (cea mai mare parte a timpului) propagarea pachetului
a
s
a
spre destinatar i
s ntoarcerea conrmrii.
a
Pentru creterea ecientei, ar util ca emittorul s poat trimite
s
a
a
a
unul dup altul mai multe pachete, fr a atepta conrmarea primului pentru
a
aa
s
a-l trimite pe urmtorul. Timpul maxim de ateaptare pentru conrmarea
a
s
unui pachet rmne neschimbat, a permitem trimiterea mai multor pachete
a a
ns
acest timp.
n
Trimiterea mai multor pachete avans schimb cteva lucruri fat
n
a a
a
de cazul trimiterii unui singur pachet:
Deoarece la un anumit moment pot exista mai multe pachete trimise de
emittor i neconrmate, pentru a putea corela conrmrile cu pachetele
a
s
a
de date, este necesar ca i conrmrile s e numerotate. Exist dou
s
a
a
a
a
strategii posibile:
- Fiecare pachet de date este conrmat printr-un pachet de conrmare
distinct, continnd numrul de secvent al pachetului conrmat.
a
a
a
- Un pachet de conrmare contine numrul de secvent pn la care
a
a a a
receptorul a primit toate pachetele. Cu alte cuvinte, un pachet de
conrmare conrm toate pachetele de date cu numr de secvent
a
a
a
mai mic sau egal cu valoarea din pachetul de conrmare. Aceast
a
strategie permite trimiterea unui singur pachet de conrmare pentru o serie de cteva pachete de date sosite imediat unul dup altul.
a
a
De mentionat c alegerea
a
ntre aceste variante trebuie consemnat ca
a
parte a protocolului stabilit
ntre emittor i receptor.
a
s
urma pierderii unui pachet, receptorul poate ajunge situatia de-a
In
n
aceast
primi un pachet fr s primit mai ai pachetul anterior. In
aa a
nt
a
situatie, receptorul nu poate livra imediat acel pachet destinatiei. Exist
a
dou actiuni posibile pentru receptor:
a
- Receptorul ignor complet pachetul ( consecint, nici nu trimite
a
n
a
conrmare).
- Receptorul memoreaz pachetul, urmnd s-l livreze destinatiei
a
a
a
109
sau de-a ignora pachetul poate luat independent pentru ecare pachet
a
primit de receptor, functie de memoria disponibil acel moment.
n
a n
O metod utilizat frecvent este ca receptorul s xeze o fereastr
a
a
a
a
de receptie, adic un interval de numere de secvent acceptabile. Pentru
a
a
aceasta, receptorul xeaz la
a
nceput un numr k. Dac la un moa
a
ment dat toate pachetele pn la numrul de secvent n inclusiv au fost
a a
a
a
receptionate i livrate destinatiei, receptorul accept doar pachetele cu
a
numere de secvent situate
a
ntre n + 1 i n + k; acest interval constituie
s
fereastra de receptie. Un pachet cu numr de secvent mai mic sau egal
a
a
cu n este sigur un duplicat, un pachet
ntre n + 1 i n + k este memorat
s
(dac nu a fost primit deja) i conrmat, iar un pachet cu numr de
a
s
a
secvent strict mai mare dect n + k este ignorat. La primirea pachetua
a
lui n + 1, fereastra este avansat pn la primul numr de secvent ce
a a a
a
a
nu a fost a primit.
nc
Este esential ca un pachet, ce nu este nici memorat de receptor,
a
In
a
astfel de pachet, este probabil ca emittorul s nu-l mai retransmit
a
a
a
niciodat, ca urmare receptorul nu va putea s-l furnizeze destinatiei.
a
a
a
mod repetat, pachetele din fereastr, pn ce primete conrmri pentru
n
a a a
s
a
momentul care pachetul n este conrmat, fereastra emittorului
ele. In
n
a
avanseaz pn la urmtorul pachet neconrmat.
a a a
a
Din cauza ferestrelor emittorului i receptorului, protocolul acesta
a
s
se numete protocolul ferestrei glisante. Dac fereastra emittorului este de
s
a
a
dimensiune 1, protocolul ferestrei glisante functioneaz exact ca i protocolul
a
s
pas cu pas din paragraful precedent.
Functionarea protocolului ferestrei glisante, diverse variante, este
n
ilustrat gurile 4.84.10.
a n
Surs
a
Unu
doi
Emittor
a
Receptor
Destinatie
1 Unu
2 doi
Unu
ACK=1
trei
patru
3 trei
4 patru
nu e pachetul ateptat;
s
se ignor
a
2 doi
nu e pachetul ateptat;
s
se ignor
a
3 trei
doi
ACK=2
4 patru
trei
ACK=3
patru
ACK=4
n
n
receptie este 1 i dimensiunea ferestrei de emisie este cel putin 3.
Surs
a
Unu
doi
Emittor
a
111
Receptor
Destinatie
1 Unu
2 doi
Unu
ACK=1
trei
patru
3 trei
4 patru
ACK=3
2 doi
ACK=4
memoreaz pachetul,
a
dar a nu-l livreaz
nc
a
destinatiei
memoreaz pachetul,
a
dar a nu-l livreaz
nc
a
destinatiei
doi
ACK=2
trei
patru
Figura 4.9: Functionarea ferestrei glisante cazul care dimensiunea ferestrei de
n
n
receptie este cel putin 3 i protocolul prevede conrmarea individual a pachetelor.
s
a
Surs
a
Unu
doi
trei
Emittor
a
Receptor
1 Unu
2 doi
Unu
3 trei
doi
ACK=2
patru
Destinatie
4 patru
memoreaz pachetul,
a
dar a nu-l livreaz
nc
a
destinatiei
3 trei
trei
ACK=4
patru
n
n
de receptie este cel putin 2 i protocolul prevede c un pachet de conrmare conrm
s
a
a
toate pachetele de date pn la numrul de secvent continut pachet. De remarcat
a a
a
a
n
posibilitatea de optimizare a numrului de pachete de conrmare prin combinarea
a
mai multor conrmri
a ntr-un singur pachet (conrmarea cu numrul 2).
a
113
n s
nc
s compare efectiv numerele de secvent teoretice. Pentru aceasta, este necea
a
sar ca, orice moment, att receptorul ct i emittorul s poat, pe baza
n
a
a s
a
a
a
informatiilor pe care le au, s deduc univoc numrul de secvent teoretic din
a
a
a
a
numrul de secvent transmis.
a
a
Vom analiza continuare ce relatie trebuie s existe
n
a
ntre numrul
a
n de valori distincte pe care le poate lua numrul de secvent transmis i
a
a
s
numrul de pachete trimise avans pentru a nu exista ambiguiti privitor
a
n
at
la numrul de secvent teoretic al unui pachet de date sau de conrmare.
a
a
Propozitia 4.1 Dac dimensiunea ferestrei emittorului este k i dac pa
a
a
s
a
chetele se pot doar pierde, fr s-i poat schimba ordinea, atunci sunt neceaa as
a
sare i suciente 2k numere de secvent distincte pentru identicarea univoc
s
a
a
a pachetelor.
Demonstratie. Trebuie s artm trei lucruri: c exist
a aa
a
a ntotdeauna un interval de lungime 2k, calculabil cu datele receptorului, care se
n
ncadreaz
a
numrul de secvent al urmtorului pachet primit de receptor, c exist un
a
a
a
a
a
interval de lungime 2k care se
n
ncadreaz urmtoarea conrmare primit
a
a
a
de emittor i, nal, c dac utilizm doar 2k 1 numere de secvent
a
s n
a
a
a
a
distincte putem da un exemplu care apare o ambiguitate.
n
Presupunem c cel mai mare numr de secvent primit de ctre rea
a
a
a
ceptor este n. Deoarece emitatorul a trimis deja pachetul n, rezult c
a a
pachetele pn la n k inclusiv au fost deja conrmate i deci nu vor mai
a a
s
trimise. Pe de alt parte, deoarece pachetul n + 1 a nu a ajuns la
a
nc
receptor, rezult c acest pachet nu a fost conmat i deci receptorul nu
a a
s
poate trimite pachete cu numere de secvent strict mai mari dect n + k.
a
a
Ca urmare, dac la un moment dat cel mai mare numr de secvent primit
a
a
a
de receptor este n, urmtorul numr de secvent primit va intervalul
a
a
a
n
[n k 1, n + k].
S privim acum din perspectiva emitatorului. Fie n cel mai mare
a
a
a n
acesta primete pachetele de la 1 la k, dup care, primul caz primete
s
a
n
s
pachetul 1, iar al doilea caz primete pachetul 2k. Pentru ca receptorul
n
s
s poat distinge aceste pachete, este necesar ca acestea s aib numere
a
a
a
a
de secvent transmise distincte. Ca urmare, trebuie s existe cel putin 2k
a
a
a
prelucreze.
lipsa controlului uxului, dac sursa emite date mai rapid dect
In
a
a
este capabil destinatia s le prelucreze, o parte din date se pierd. De remarcat
a
a
c stocarea datelor
a
ntr-o memorie tampon a destinatiei nu rezolv problema,
a
ci doar permite destinatiei s preia, pe durat scurt de timp (pn la umplerea
a
a
a
a a
memoriei tampon), un debit mai ridicat de date.
Vom presupune cele ce urmeaz c transmisia
n
a a
ntre emittor i
a
s
receptor este sigur (fr erori i fr pierderi, duplicri sau inversiuni de
a aa
s aa
a
pachete).
Forma cea mai simpl de control al uxului este standardizarea unui
a
debit x de transmitere a datelor i proiectarea tuturor componentelor siss
temului de comunicatie aa fel at s poat opera la acel debit. O astfel
n s
nc a
a
de abordare poate adecvat sisteme timp real, cum ar de exemplu
a n
n
telefonia digital. astfel de sisteme, capacitatea de prelucrare a informatiei,
a In
115
a a
necesar un mecanism prin care receptorul s informeze emittorul asupra posia
a
bilitii sale de preluare a datelor. Pentru aceasta este necesar un al doilea
at
canal de comunicatie,
napoi, dinspre receptor spre emittor.
a
a
emittorului s continue transmisia.
a
a
Acest mecanism este utilizat la transmisia prin linie serial, sub nua
mele de software ow control sau de xon/xo. Cererea de suspendare a transmisiei se face prin trimiterea unui caracter, numit uneori xo, avnd codul
a
ASCII 19. Reluarea transmisiei se cere prin transmiterea unui caracter, numit
uneori xon, avnd codul 17. De la un terminal text, clasic, caracterul xo
a
se transmite tastnd combinatia ctrl-S, iar xon se transmite tastnd ctrl-Q.
a
a
Astfel, un utilizator lucrnd la un terminal text poate tasta ctrl-S pentru a
a
cere calculatorului oprirea trimiterii de date spre aare i, dup ce citete
s
s
a
s
datele aate, va tasta ctrl-Q pentru continuarea transmisiei. Evident, cu
s
acest mecanism de control al uxului, caracterele cu codurile 17 i 19 nu pot
s
utilizate pentru a transmite informatie util.
a
Acelai principiu, implementat putin diferit, este mecanismul numit
s
a
acest fel,
contin i numrul de ordine al ultimului pachet de date primit. In
as
a
dac emittorul primete un anunt de disponibilitate prin care este informat
a
a
s
117
este numit canal logic; ecare comunicatie ocup deci cte un canal logic i
a
a
s
toate canalele logice sunt construite pe acelai canal zic.
s
3.3.3 i 3.6.2.3 am vzut mecanisme de multiplexare ( frecIn
s
a
n
vent, respectiv lungime de und) construite la nivelul zic. La nivelul
a
n
a
legturii de date se poate construi un al treilea mecanism de multiplexare:
a
multiplexarea timp.
n
Ideea multiplexrii timp este de-a transmite intercalat, prin canalul
a n
zic, pe rnd, pachete sau iruri de biti apartinnd ecrui canal logic. Eva
s
a
a
ident, intercalarea trebuie fcut aa fel at receptorul s poat separa
a a n s
nc
a
a
datele corespunztoare ecrui canal logic. De asemenea, emittorul trebuie s
a
a
a
a
asigure o artire echitabil a capacitii canalului zic
mp
a
at
ntre canalele logice.
Separarea datelor corespunztoare canalelor logice se poate face prin
a
dou metode:
a
Fiecare canal logic are asociat un identicator unic. Fiecare pachet
are, antet, identicatorul canalului logic cruia apartin datele utile
n
a
i
(g. 4.11(b)).
Se stabilete o ordine de succesiune
s
ntre canalele logice. Prin canalul
zic se transmite, pe rnd, cte un pachet apartinnd ecrui canal
a
a
a
a
logic (g. 4.11(c)). De notat c, dac sursa unui canal logic nu transmite
a
a
pachete o perioad mai lung de timp, trebuie ca emittorul de la nivelul
a
a
a
legturii de date s trimit pachete vide contul acelui canal (pentru
a
a
a
n
a permite celorlalte canale logice s transmit pachete fr a
a
a
a a ncurca
evidentele receptorului).
118
Surs 1
a
Surs 1
a
D
Surs 2
a
Surs 3
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 2
a
Surs 1
a
Surs 2
a
Surs 3
a
Multiplexor
D
C Z
B NY
A MX
Demultiplexor
Destinatie 1 Destinatie 2 Destinatie 3
Capitolul 5
a
ntre care exist o legtur direct se numesc vecini .
a
a a
a
nod nal sau statie (engl. host): un nod care este surs sau destinatie
pentru date;
nod intermediar sau ruter (engl. router ): un nod ce poate tranzitat de
trac ce nu are ca surs sau destinatie acel nod; uneori este numit,
a
n
mod incorect, server.
adres de retea sau, simplu, adres : un identicator (un ir de simboluri)
a
a
s
ce identic unic un nod al retelei. Fiecare nod terminal trebuie s aib
a
a
a
cel putin o adres; nodurile intermediare nu au
a
ntotdeauna adrese.
drum sau rut : o secvent de noduri, ecare vecin cu urmtorul,
a
a
a
mpreun
a
cu legturile directe dintre ele.
a
Notm c unele retele exist o distinctie net
a
a n
sunt noduri nale iar centralele telefonice sunt noduri intermediare. alte
In
retele, unele sau toate nodurile sunt simultan noduri nale i noduri interme
s
diare.
Unei retele i se asociaz un graf, construit astfel: ecrui nod al
a
a
retelei i se asociaz un vrf al grafului, iar ecrei legturi directe i se asociaz
a
a
a
a
a
o muchie (sau un arc, dac legturile sunt asimetrice). Reteaua trebuie s
a
a
a
e astfel construit at graful asociat ei s e conex (respectiv tare conex),
a nc
a
altfel, evident, vor exista perechi de noduri ce nu vor putea comunica.
Functia principal a nodurilor retelei este aceea de-a retransmite
a n
miterea datelor spre destinatie, ecare nod trebuie s decid crui vecin s re
a
a a
a
transmit datele; problema lurii aceastei decizii se numete problema dirijrii
a
a
s
a
nal, 5.3 vom studia problemele
(engl. routing) i va studiat 5.2. In
s
a n
n
ce apar atunci cnd solicitarea retelei este ridicat (nu este neglijabil fat de
a
a
a a
capacitatea nodurilor i legturilor utilizate).
s
a
a
a
a
destinatie (problema dirijrii) va studiat mai trziu, 5.2.
a
a
a
n
Constructiv,
ntr-un nod al unei retele trebuie s existe urmtoarele
a
a
componente (vezi gura 5.1):
Adaptarea spre legtura zic, pentru ecare legtur zic ce pleac din
a
a
a a
a
a
nod, este o component care realizeaz transmisia i receptia datelor
a
a
s
prin acea legtur. Aceasta este format din modulul nivelului legturii
a a
a
a
de date i din modulul nivelului zic.
s
Adaptarea spre aplicatie, pentru nodurile terminale, 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. Aceasta este, de principiu,
a
modulul nivelului transport.
Modulul de retea este componenta care dirijeaz uxul de date prin nod,
a
ind responsabil de alegerea vecinului cruia trebuie s-i e transmise
a
a
datele, precum i de transmiterea efectiv a acestora ctre modulul de
s
a
a
adaptare spre mediul zic ( nodurile intermediare) sau, respectiv, ctre
n
a
modulul de adaptare spre aplicatie ( nodul destinatie).
n
121
Nod nal
Nod intermediar
Nod nal
Aplicatie
Aplicatie
Nivelul aplicatie
Adaptare
aplicatie
Adaptare
aplicatie
Nivelul transport
Modul
de retea
Modulul de retea
Modul
de retea
Nivelul retea
Adaptare
legatur
a
zic
a
Adaptare Adaptare
legatur legatur
a
a
zic
a
zic
a
Adaptare
legatur
a
zic
a
Nivelul legturii
a
de date i
s
nivelul zic
Legatur zic
a
a
Legatur zic
a
a
Figura 5.1: Modulele nodurilor unei retele. Sunt gurate doar modulele din trei
as
a
graful nodurilor i legturilor directe este conex (tare conex, dac legturile pot
s
a
a a
asimetrice), i plus modulele de retea ale tuturor nodurilor pot comunica
s n
a
a a
s
Din acest punct de vedere spunem c nivelul retea, i special protocolul
a
s n
utilizat de nivelul retea, este liantul
ntregii retele.
a
creaz o datagram continnd datele de transmis i o paseze modulului
a
a
a
s
retea, specicnd totodat adresa nodului destinatie. Datagrama este
a
a
a
a
generate de acelai nod surs i adresate aceluiai nod destinatie sunt
s
a s
s
a
a
de pot (pota obinuit).
sa
s
s
a
conexiune:
Intr-o retea ce ofer serviciu de tip conexiune, o aplicatie
licita modulului retea deschiderea unei conexiuni ctre acel nod. Nivelul
a
retea informeaz nodul destinatie despre cererea de deschidere a cone
a
a
as
nodul initiator este informat de acest lucru. Dup deschiderea cone
a
xiunii, unul sau ambele noduri ( functie de tipul conexiunii deschise,
n
a
date prin conexiunea deschis. La terminarea comunicatiei, una dintre
a
a
nchiderea conexiunii. Ca efect, nivelul
retea informeaz nodul partener cu privire la
a
nchiderea conexiunii i
s
elibereaz resursele alocate conexiunii. Functionarea retelelor ce ofer
a
a
serviciu de tip conexiune este descris 5.1.2. Un model tipic de retea
a n
n
a
s
a
superior (dinspre aplicatie), e de la nivelul inferior (de pe o legtur direct).
a a
a
Modulul de retea memoreaz temporar datagrama primit. continuare, el
a
a In
are de fcut dou lucruri:
a
a
s determine dac datagrama este destinat nodului curent, iar dac nu,
a
a
a
a
care este urmtorul vecin direct pe ruta spre destinatie;
a
n
n
a
mp a n
a
sarcini: stabilirea i desfacerea conexiunilor, pe de o parte, i transmiterea
s
s
efectiv a datelor pe conexiuni, pe de alt parte.
a
a
Deschiderea conexiunii
ncepe print trimiterea, de ctre nodul termia
nal ce dorete initierea conexiunii, a unei cereri ctre primul nod intermediar.
s
123
Fiecare nod intermediar, pe rnd, determin nodul urmtor prin care trebuie
a
a
a
s treac conexiunea i-i trimite mai departe cererea de deschidere a conexiua
a
s
nii. Determinarea nodului urmtor se face la fel ca i cazul retelelor bazate
a
s n
a
a
spunztor
a
ntre cele dou noduri nale este xat pe toat durata conexiunii.
a
a
faza de comunicare prorpiu-zis, exist dou metode prin care se
In
a
a
a
poate realiza tranzitarea tracului prin ecare nod intermediar:
Comutare de circuite zice: acest caz, mediul prin care intr datele
In
a
nod este conectat zic (de exemplu, cu ajutorul unui
n
ntreruptor
a
electric) la mediul prin care trebuie trimise mai departe datele (vezi
g. 5.2). Aceasta metod, amintit aici doar pentru completudine, nu
a
a
se mai utilizeaz prezent (a fost utilizat retelele telefonice vechi,
a n
a n
analogice).
Y
X
A
1
2
3
B
C
1
2
1
2
B
Figura 5.2: O retea cu comutare de circuite zice. Cercurile mari reprezint nodurile
a
intermediare, iar liniile punctate reprezint interconectrile mediilor zice. De remara
a
cat necesitatea mai multor legturi zice
a
ntre cte dou noduri.
a
a
asociat unei singure conexiuni; dou conexiuni nu pot utiliza (direct) o aceeai
a
a
s
legtur. (Din acest motiv, sistemul telefonic vechi,
a a
n
ntre dou centrale
a
telefonice erau duse paralel mai multe perechi de conductoare, numrul de
n
a
convorbiri simultane utiliznd o rut trecnd prin cele dou centrale ind lima
a
a
a
itat la numrul de perechi de conductoare.) Deoarece, special pe distante
a
n
X
A
XY
B
C
C
XZ
ZY
B
Figura 5.3: O retea cu comutare de circuite virtuale. Desfurarea timp a receptiei
as
n
i transmitere mai departe a pachetelor, pentru nodul X, este prezentat gura 5.4.
s
a n
Legturile directe
a
ntre nodurile intermediare utilizeaz multiplexare timp.
a
n
s
A
b1
b2
b3
c1
c2
c3
XY
a3
a2
a1
a1
1
XZ
125
c1 a2
2
b1
1
c2 a3
2
b2
2
c3
2
b3
2
timpul
Figura 5.4: Desfurarea timp a receptiei i a transmiterii mai departe a paas
n
s
chetelor, pentru nodul X din reteaua din gura 5.3. XY i XZ desemneaz legturile
s
a a
zice
ntre nodurile X i Y , respectiv X i Z. Numerele de sub axe marcheaz pes
s
a
rioadele de timp alocate canalelor logice corespunztoare. Legturile dintre canalele
a
a
virtuale de intrare i de ieire sunt identice cu legturile zice din gura 5.2
s
s
a
de datagrame. Diferenta vine din felul care un nod, care primete un pachet
n
s
i trebuie s-l trimit mai departe, ia decizia privind legtura prin care s-l
s
a
a
a
a
trimit. cazul comutrii de circuite virtuale, decizia este luat functie
a In
a
a n
a
a
de date prin care a intrat pachetul. Decizia se ia pe baza tabelei de circuite
i este identic pentru toate pachetele apartinnd aceluiai circuit. O urmare
s
a
a
s
a acestui fapt este c defectarea oricrui nod sau oricrei legturi de-a lungul
a
a
a
a
unei conexiuni duce la
nchiderea fortat a conexiunii. cazul retelei bazate
a
In
a
datagram. Dou datagrame
n
a
a
ntre aceleai dou statii pot dirijate pe rute
s
a
diferite.
respectiv spre care dintre vecini s transmit cererea de initiere a unei conea
a
a
nod vecin se numete problema dirijrii.
s
a
a
a
asociat ecrui nod al retelei i cte o muchie asociat ecrei legturi directe
a
s a
a
a
a
a
a
a
a a
a
cu att costul asociat este mai mare);
a
functie de capacitatea legturii;
n
a
functie de arcarea legturii.
n
nc
a
Remintim, din teoria grafelor, o proprietate important a drumurilor
a
de cost minim: Dac v0 , v1 , . . . , vj1 , vj , vj+1 , . . . , vk este un drum de cost
a
minim de la v0 la vk , atunci v0 , v1 , . . . , vj1 , vj este un drum de cost minim
de la v0 la vj i vj , vj+1 , . . . , vk este un drum de cost minim de la vj la vk .
s
De asemenea, dac exist cel putin un drum de cost minim de la v0 la vk
a
a
s
a
poart denumirea de tabel de dirijare.
a
a
Pentru a putea aplica direct un algoritm clasic de determinare a drumurilor de cost minim, este necesar centralizarea datelor despre nodurile i
a
s
legturile din retea, vederea obtinerii efective a grafului retelei. Dup cala
a
culul drumurilor, este necesar distribuirea tabelelor de dirijare ctre toate
a
a
nodurile retelei.
a
s
distribuirea informatiilor de dirijare ctre noduri se poate face manual, de
a
ctre administratorul retelei.
a
127
a
se modic vreo legtur, trebuie luate msuri ca timpul scurs de la modia
a a
a
carea legturilor pn la actualizarea a regulilor de dirijare pe toate nodurile
a
a a
s e scurt i functionarea retelei acest timp s e acceptabil. Metodele
a
s
n
a
a
principale de calcul pentru tabelele de dirijare sunt descrise 5.2.1 i 5.2.2.
n
s
retelele foarte mari, cum ar Internet-ul, centralizarea complet a
In
a
datelor nu este rezonabil; trebuie utilizati algoritmi de dirijare care s permit
a
a
a
ecrui nod efectuarea dirijrii fr a necesita dect putine informatii i doar
a
a
aa
a
s
despre o mic parte a retelei. De asemenea, tabela de dirijare trebuie s aib
a
a
a
o reprezentare mai compact dect cte un rnd pentru ecare nod destinatie
a
a a
a
retelei
a
iile despre graful asociat retelei, dup care calculeaz drumurile de la el la
t
a
a
toate celelalte noduri.
Pentru ca ecare nod s dispun permanent de graful asociat
a
a n
a
retelei de calculatoare, ecare modicare a retelei trebuie anuntat tuturor
a
nodurilor. Pentru aceasta, ecare nod testeaz periodic legturile cu vecinii si
a
a
a
i, oridecteori constat o modicare, transmite o stiintare toat reteaua.
s
a
a
n
n
a
Transmisia informatiei respective se face astfel:
a
pachetul este mai vechi,
nseamn c este o copie ce a sosit pe alt cale
a a
a
i este ignorat.
s
cel mai ecient este algoritmul lui Dijkstra (algoritmul 5.1). Notnd cu n
a
numrul de vrfuri (noduri ale retelei) i cu m numrul de muchii (legturi
a
a
s
a
a
directe), complexitatea algoritmului lui Dijkstra este timp O(m + n log n) i
s
spatiu O(m + n). Calculul trebuie refcut complet la ecare modicare a
a
grafului asociat retelei de calculatoare.
distant
a
Aceast metod (vezi algoritmul 5.2) este inspirat din algoritmul
a
a
a
Bellman-Ford de determinare a drumurilor de cost minim
ntr-un graf, a
ns
calculele sunt repartizate
ntre nodurile retelei de calculatoare aa fel at
n s
nc
nici un nod s nu aib nevoie de informatii complete despre graf. Metoda se
a
a
a
a
ecare destinatie posibil, distanta pn la ea i primul nod de pe drumul
a
a a
s
optim spre acea destinatie. Initial, tabelul este initializat astfel: pentru vecinii
directi, costul drumului este pus ca ind costul legturii directe spre acel nod,
a
iar primul nod spre acea destinatie este xat chiar acel nod; pentru nodurile
Pentru ecare nod, calculul se face astfel: mai ai, nodul cere vecinilor
nt
directi tabelele acestora. Apoi, pentru ecare destinatie posibil, drumul op
a
tim este calculat ca ind cel mai putin costisitor dintre legtura direct i
a
a s
drumurile prin ecare dintre vecinii directi. Costul drumului printr-un vecin
direct este calculat ca ind costul legturii dintre nodul curent i vecinul cona
s
siderat adunat cu costul, conform tabelei vecinului, al drumului de la vecinul
respectiv la nodul destinatie. De remarcat c, calculul tabelei de distante a
a n
precedent.
a
Dup cteva iteratii ale buclei principale, algoritmul se stabilizeaz
a a
a
(converge), sensul c tabelele calculate la ecare iteratie sunt identice cu
n
a
a
a
a a
este egal cu numrul cel mai mare de muchii de-a lungul vreunui drum optim.
a
Dup stabilizare, algoritmul este lsat continuare s se execute
a
a
n
a
129
Algoritmul Dijkstra
intrarea: G = (V, E) graf orientat (E V V )
c : E [0, ) costurile asociate arcelor
x0 V vrful curent
a
ieirea: t : V {(x0 , y) E} tabela de dirijare; t(x) este legtura direct prin
s
a
a
care x0 trebuie s trimit pachetele destinate lui x.
a
a
algoritmul:
pentru i V execut
a
d[i]: =
sfrit pentru
as
d[x0 ]: = 0
Q: = V
ct timp Q = execut
a
a
e v Q elementul din Q pentru care d[v] este minim
Q: = Q \ {v}
pentru y Q : (v, y) E execut
a
dac d[v] + c(v, y) < d[y] atunci
a
d[y]: = d[v] + c(v, y)
dac v = x0 atunci
a
t(y): = (x0 , y)
altfel
t(y): = t(v)
sfrit dac
as
a
sfrit dac
as
a
Q: = Q {y}
sfrit pentru
as
sfrit ct timp
as a
sfrit algoritm
as
Algoritmul 5.1: Algoritmul lui Dijkstra cu adugirea pentru calculul tabelei de
a
dirijare.
x nodul curent;
N out (i) multimea vecinilor directi ai lui i;
(ci,j )i,jV costurile legturilor directe; ci,j = dac i N out (i); ecare
a
a
nod x cunoate doar (cx,j )jV .
s
ieirea: (di,j )i,jV costurile drumurilor optime; ecare nod va calcula doar
s
(dx,j )jV ;
(pi,j )i,jV primul nod, dup i, pe drumul optim de la i la j.
a
algoritmul:
pentru i V execut
a
dx,i :=cx,i
sfrit pentru
as
ct timp adevrat execut
a
a
a
obtine de la vecinii directi di,j , pentru i N out (i)
pentru j V execut
a
dx,j :=min(cx,j , min )cx,i + di,j
iN out (x)
sfrit pentru
as
sfrit ct timp
as a
sfrit algoritm
as
Algoritmul 5.2: Algoritmul de dirijare cu vectori distant
a
131
egal cu numrul maxim de muchii de-a lungul unui drum optim. Dac se
a
a
elimin o legtur direct sau crete costul unei legturi directe, tabelele de
a
a a
a
s
a
dirijare se stabilizeaz mult mai
a
ncet, aa cum se vede exemplul 5.2.
s
n
A
2
B
21
20
3
5
Figura 5.5: Reteaua pentru exemplele 5.1 i 5.2. Numerele reprezint costurile
s
a
asociate legturilor directe.
a
Exemplul 5.1: Fie reteaua din gura 5.5. Calculul tabelelor de dirijare, con
form algoritmului 5.2, de la initializare pn la stabilizare, duce la urmtoarele
a a
a
tabele:
Initializarea: aceast faz, sunt luate considerare doar legturile
In
a
a
n
a
directe; dac un nod nu este accesibil direct, ruta pn la acesta este
a
a a
marcat ca avnd cost innit.
a
a
Nodul B:
Nodul C:
Nodul A:
dest. via cost
dest. via cost
dest. via cost
B
B
2
A
A
2
A
C
C
5
B
B
5
D
D
21
D
D
20
D
D
3
Nodul D:
dest. via cost
A
A
21
B
B
20
C
C
3
Iteratia 1: Pentru ecare destinatie posibil, se ia considerare legtura
a
n
a
direct (dac exist) i rutele prin ecare din vecinii directi. Costul
a
a
a s
legturii directe este cunoscut, iar costul rutei printr-un vecin este costul
a
legturii spre acel vecin plus costul raportat de acel vecin. De exemplu,
a
nodul B ia considerare ca rute spre D: legtura direct de cost 20,
n
a
a
Nodul A:
Nodul B:
Nodul C:
dest. via cost
dest. via cost
dest. 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. via cost
A
A
21
B
C
8
C
C
3
Iteratia 2: S urmrim ruta calculat de A ctre D. Sunt luate con
a
a
a
a
n
siderare legtura direct de cost 21 i legtura prin B a crui cost este
a
a
s
a
a
acum 2+8=10
ntruct se bazeaz pe costul legturii BD calculat de
a
a
a
ctre B la iteratia 1.
a
Nodul A:
Nodul B:
Nodul C:
dest. via cost
dest. via cost
dest. 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. via cost
A
C
10
B
C
8
C
C
3
2.
Exemplul 5.2: Fie reteaua din gura 5.5 i e tabelele de dirijare rezultate
s
dup stabilizarea algoritmului cu vectori distant (vezi exemplul 5.1). S prea
a
a
supunem c legtura BC cade, rezultnd reteaua din gura 5.6. S urmrim
a
a
a
a
a
evolutia, continuare, a tabelelor de dirijare.
n
La prima iteratie, la recalcularea rutelor nodului B spre C i spre D,
s
nodul B ia calcul rute prin A sau prin D. Rutele optime gsite sunt cele
n
a
prin A, bazate pe vechile tabele ale lui A; nodul B nu are cum s determine
a
s
A
2
21
133
20
Figura 5.6: Reteaua rezultat prin cderea legturii BC din reteaua din gura 5.6.
a
a
a
c aceste rute nu mai sunt valide deoarece se bazau pe legtura BC. La fel
a
a
procedeaz i nodul C, gsind c rutele optime spre A i B trec prin D.
as
a
a
s
Nodul
dest.
B
C
D
Nodul
dest.
A
B
C
A:
via
B
B
B
D:
via
C
C
C
cost
2
7
10
Nodul
dest.
A
C
D
B:
via
A
A
A
cost
2
9
12
Nodul
dest.
A
B
D
C:
via
D
D
D
cost
13
11
3
cost
10
8
3
i D i din D spre A i B:
s
s
s
Nodul
dest.
B
C
D
Nodul
dest.
A
B
C
A:
via
B
B
B
D:
via
C
C
C
cost
2
11
14
Nodul
dest.
A
C
D
B:
via
A
A
A
cost
2
9
10
Nodul
dest.
A
B
D
C:
via
D
D
D
cost
13
11
3
cost
16
14
3
Nodul B:
Nodul C:
A:
via cost
dest. via cost
dest. via cost
B
2
A
A
2
A
D
19
B
11
C
A
13
B
D
17
B
14
D
A
14
D
D
3
D:
via cost
C
16
C
14
C
3
Urmeaz, la a 4-a iteratie, descoperirea de ctre D a rutelor reale
a
a
spre A i spre B:
s
Nodul A:
Nodul B:
Nodul C:
dest. via cost
dest. via cost
dest. via cost
B
B
2
A
A
2
A
D
19
C
B
15
C
A
13
B
D
17
D
B
18
D
A
14
D
D
3
Nodul D:
dest. via cost
A
A
21
B
B
20
C
C
3
Restul rutelor reale sunt descoperite i mai trziu, stabilizarea tabelelor
s
a
survenind abia la a 8-a iteratie.
Nodul
dest.
B
C
D
Nodul
dest.
A
B
C
Pentru a
mbunti comportamentul cazul cderii sau creterii
a at
n
a
s
costului legturilor, se poate modica algoritmul astfel: tabelele vor ine ruta
a
t
complet spre destinatie, iar la recalcularea rutelor, rutele ce trec de dou ori
a
a
prin acelai nod nu sunt luate considerare.
s
n
Exemplul 5.3: S relum reteaua din exemplul 5.2, cu memorarea
a
a
ntregului
135
drum tabela de distante. Dup stabilizarea tabelelor pe reteaua din gura 5.5,
n
a
Nodul
dest.
B
C
D
Nodul
dest.
A
B
C
A:
ruta
B
B,C
B,C,D
D:
ruta
C,B,A
C,B
C
cost
2
7
10
Nodul
dest.
A
C
D
B:
ruta
A
C
C,D
cost
2
5
8
Nodul
dest.
A
B
D
C:
ruta
B,A
B
D
cost
7
5
3
cost
10
8
3
a
a
Legtur direct nu exist. Drumul prin A
a a
a
a
ncepe cu muchia AB i cons
tinu cu ruta din tabela, de la iteratia anterioar, a lui A, adic drumul
a
a
a
ABC. Prin urmare, drumul prin A este BABC i este respins datorit
s
a
repetrii vrfului B. De mentionat c nu se face vreo vericare urma
a
a
a
n
creia s se observe c drumul BABC contine muchia inexistent BC;
a
a
a
a
din lipsa unor informatii globale, este imposibil de prins toate cazurile
de la C la B.
Nodul B:
Nodul C:
Nodul A:
dest. ruta cost
dest. ruta cost
dest. ruta
cost
B
B
2
A
A
2
A
C
B,C
7
C
D,C
23
B
D
B,C,D
10
D
D
20
D
D
3
Nodul D:
dest. ruta
cost
A
C,B,A
10
B
C,B
8
C
C
3
Iteratia 2:
Nodul A:
dest. ruta cost
B
B
2
C
D,C
24
D
D
21
Nodul D:
dest. ruta cost
A
A
21
B
B
20
C
C
3
Iteratia 3: Se stabilizeaz
a
Nodul A:
dest. ruta cost
B
B
2
C
D,C
24
D
D
21
Nodul D:
dest. ruta cost
A
A
21
B
B
20
C
C
3
Nodul
dest.
A
C
D
B:
ruta
A
D,C
D
cost
2
23
20
Nodul
dest.
A
B
D
C:
ruta
cost
tabelele.
Nodul B:
dest. ruta
A
A
C
D,C
D
D
cost
2
23
20
Nodul
dest.
A
B
D
C:
ruta
D,A
D,B
D
cost
24
23
3
s
a
Ideea dirijrii ierarhice este ca reteaua s e artit subretele.
a
a
mp a n
a
a
a a a
a
pe nivelul 0), cteva subretele subordonate ei (nivelul 1), subretele subordoa
a
s
nod are informatii de dirijare:
137
a
a
a
a
pentru toate nodurile din acea subretea, ruta conducnd spre cel mai
a
apropiat
ctre ecare din subretelele imediat inferioare ierarhic, cte o rut pentru
a
a
a
ecare subretea.
Ruta de la un nod initial ctre o subretea vecin subretelei nodului initial este
ruta de la nodul initial ctre cel mai apropiat nod de la granita dintre cele
dou subretele.
a
a
nc n
ecrei subretele, calculul rutelor se face prin metode de dirijare ,,obinuite.
a
s
Pentru ca orice nod s poat determina din ce subretea face parte
a
a
n
ierarhie, adresa ecrui nod este astfel construit at s descrie pozitia nodua
a nc a
lui ierarhia de retele. Astfel, adresele sunt formate din componente, prima
n
component identicnd subreteaua de nivel 1 din care face parte sau creia
a
a
a
i
este subordonat nodul, urmnd identicatorul subretelei de nivel 2, . a. m. d.,
a
n
a
a
local ecare subretea i, ca urmare, este posibil s se rateze optimul global
n
s
a
(a se vedea exemplul 5.4).
Exemplul 5.4: gura 5.7 este reprezentat o retea cu dirijare ierarhic pe
In
a
a
dou nivele. Reteaua este format dintr-o subretea rdcin i patru subretele
a
a a as
subordonate ei.
Adresa ecrui nod este format din dou componente, prima idena
a
a
ticnd subreteaua de nivel 1 din care face parte i a doua identicnd nodul
a
s
a
cadrul subretelei respective.
n
a
el si; ca urmare, caut drumul spre cel mai apropiat nod ce are
nsu
a
legtur cu reteaua ierarhic superioar. Nodul acesta este 1.2.
a a
a
Nodul 1.2 caut drumul spre cel mai apropiat nod din subreteaua 3.
a
Nodul gsit este 3.1 i drumul pn la el este 1.2, 2.3, 3.1 (echivalent, se
a
s
a a
poate lua drumul 1.2, 2.1, 3.1).
Nodul 3.1 trimite pachetul spre destinatia 3.4 pe drumul cel mai scurt,
anume 3.1, 3.2, 3.3, 3.4 (alt drum, echivalent, este 3.1, 3.6, 3.5, 3.4).
S observm c drumul pe care urmeaz pachetul, 1.1, 1.2, 2.3, 3.1, 3.2, 3.3,
a
a
a
l
a
1.1
1.5
1.4
4.2
4.3
1.3
1.2
4.1
3.2
3.1
2.3
3.3
2.2
2.4
3.4
3.6
3.5
2.1
ncercuite
cu linie punctat.
a
1.3
4.1
1.2
2.3
3.3
2.1
3.1
(b)
Reprezentarea
(micorat)
s
a
doar
a
subretelei rdcin.
a a a
a
a
rdcin are nodurile reprezentate prin cercuri pline (mici) i legturile reprezentate
a a a
s
a
cu linii
ngroate.
s
139
as
sunt prea arcate (astfel at s se sacrice datagrame din lips de spatiu de
nc
nc a
a
a
inundarea nu necesit ca nodurile s adune nici un fel de informatie despre
a
a
retea.
ajung toate pachetele care circul prin retea. La un numr de noduri mai
a
a
mare de cteva zeci, metoda inundrii genereaz prea mult trac pentru a
a
a
a
general acceptabil.
n
a
Dac graful retelei este un arbore, atunci, considernd nodul surs a
a
a
a
datagramei ca rdcin, copiile datagramei circul arbore de la ecare nod
a a a
a n
la i si; transmisia se oprete la frunze. De notat a c o retea al crei graf
a
s
ns a
a
ataat este un arbore este extrem de vulnerabil la pene: defectarea oricrui
s
a
a
nod intern duce la deconectarea retelei.
a
a
ajuns
a ntr-un ciclu, cicleaz la innit. Pentru ca inundarea s e utilizabil
a
a
a n
retele cu cicluri, trebuie fcut o modicare pentru prevenirea ciclrii innite.
a a
a
O posibil solutie utilizat i pentru alte metode de dirijare este
a
as
aceea de-a asocia ecrei datagrame un contor de salturi care marcheaz prin
a
a
cte noduri a trecut datagrama. La atingerea unei anumite valori prestabilite,
a
datagrama nu mai este trimis mai departe. Cu aceast modicare, inundarea
a
a
transmite datagramele pe toate drumurile (nu neaprat simple) de la sursa
a
datagramei i de lungime dat.
s
a
O alt solutie, cu avantajul suplimentar c asigur ca ecare pachet
a
a
a
s ajung
a
a ntr-un singur exemplar la destinatie, este ca ecare nod al retelei s
a
identice (de exemplu, prin mentinerea unor numere de secvent) duplicatele
a
unui pachet i s trimit mai departe un pachet doar la prima lui sosire.
s a
a
Inundarea se utilizeaz retelele Ethernet. Graful unei retelele Etha n
ernet trebuie s e
a
ntotdeauna un arbore.
a
toate nodurile unei retele i difuziune selectiv (engl. multicast) trim
s
a
iterea datagramei spre o submultime dat a multimii nodurilor.
a
Desigur,
ntotdeauna este posibil difuzarea prin transmiterea sepaa
rat a unei datagrame spre ecare nod. O astfel de metod este a neecoa
a
ns
nomic.
a
O posibilitate simpl de realizare a difuziunii complete este inuna
darea. ( 5.2.4.1).
O alt posibilitate este s se construiasc ai un arbore partial
a
a
a nt
a n
n
multe datagrame aceleiai multimi de destinatari.
s
a
a
s
din lista din datagram. Apoi trimite cte o datagram pe ecare legtur
a
a
a
a a
direct ce apare pe ruta spre cel putin una dintre destinatii. Datagrama trimis
a
a
prin ecare legtur direct va avea lista de destinatii doar acele noduri ctre
a a
a
n
a
care ruta trece prin acea legtur direct. Intuitiv, metoda ar putea privit
a a
a
a
astfel: se trimite cte o datagram ctre ecare nod destinatie, a, ct timp
a
a a
ns a
drumul a dou sau mai multe datagrame este comun, datagramele cltoresc
a
aa
reunite
ntr-o singur datagram cu mai multe adrese destinatie.
a
a
141
n
care debitul uxului de date care intr
a ntr-un nod nu depete niciodat nici
as s
a
capacitatea legturilor prin care trebuie trimis mai departe, nici capacitatea
a
modulului de retea de-a efectua prelucrrile necesare. Dac debitul cu care
a
a
intr pachete
a
ntr-un nod depete e capacitatea de prelucrare a nodului,
as s
e capacitatea legturii prin care pachetele trebuie s ias, nodul memoreaz
a
a
a
a
pachetele
ntr-o structur de coad, de unde le extrage pe msur ce pot
a
a
a a
transmise prin legtura de ieire. Un efect imediat este creterea timpului
a
s
s
de propagare, din cauza stationrii pachetelor coada de ateptare. Dac
a
n
s
a
excesul de debit de intrare se pstreaz mai mult timp, coada crete pn cnd
a
a
s
a a a
memoria alocabil cozii de ateptare este epuizat; acel moment, nodul va
a
s
a n
trebui e s sacrice pachete, e s solicite, prin intermediul mecanismului
a
a
de control al uxului de la nivelul legturii de date, micorarea debitului de
a
s
intrare. De notat c reducerea i, extremis, blocarea uxului 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 ux, ducnd mai departe la blocarea reciproc a
a
a
unui grup de noduri.
Principalele probleme ce apar cazul care capacitatea nodurilor
n
n
sau legturilor directe este depit sunt urmtoarele:
a
as a
a
Intr-o retea aglomerat, pachetele sau datagramele arzie mult sau chiar
a
nt
se pierd, lucru care poate declana retrimiteri intempestive de pachete,
s
ducnd la aglomerare i mai mare a retelei i la performante i mai
a
s
s
s
sczute. O astfel de situatie, de degradare suplimentar a performantelor
a
a
mp a n
ntre
utilzatori.
Diferite aplicatii au diferite prioriti cu privire la caracteristicile necesare
at
ale serviciului oferit de retea. Reactia unei retele aglomerate trebuie s
a
in cont de aceste prioriti. De exemplu, un nod supraaglomerat poate
t a
at
s e nevoit s arunce o parte dintre datagramele aate tranzit. Dac
a
a
n
a
datagramele apartin unei aplicatii de transfer de iere, este preferabil
s
s e aruncate cele mai recente (acestea ind retransmise mai trziu;
a
a
dac se arunc datagramele mai vechi, este posibil ca destinatarul s nu
a
a
a
aib ce face cu cele mai noi i s trebuiasc retransmise toate). Dima
s a
a
potriv, dac datagramele apartin unei aplicatii de tip videoconferint,
a
a
a
as
un pachet proaspt sosit dac are loc coad i de a-l distruge dac nu are
a
a
n
as
a
loc. Atunci cnd debitul de intrare este mare, solutia duce la a accepta primul
a
s
a
n
numete ateptare echitabil (engl. fair queueing).
s
s
a
O variant a metodei anterioare este de a oferi ecrei intrri nu
a
a
a
un numr egal de pachete preluate ci un numr egal de biti preluati. Pentru
a
a
aceasta, se poate asocia ecrei cozi numrul total de biti ai pachetelor preluate
a
a
din acea coad i retransmise mai departe. De ecare dat nodul intermediar
as
a
extrage urmtorul pachet din coada cu cel mai mic numr de biti transmii.
a
a
s
Pe lng posibilitatea de a oferi intrrilor transmiterea aceluiai nua a
a
s
mr de biti sau de pachete, se poate oferi numere de biti sau pachete transmise
a
s
s a
a a
a
s
ateptare echitabil ponderat (engl. weighted fair queueing).
s
a
a
afar de metodele de ateptare echitabil eventual,
In
a
s
a
mpreun cu
a
ele se poate pune aplicare i un sistem de prioriti. Astfel, ecrui 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, iar aplicatiilor care transfer iere mari li se asociaz nivele de
a s
a
prioritate cobort.
a a Intr-un ruter, ecrui nivel de prioritate i se asociaz o
a
a
coad separat, cu spatiu de memorare rezervat. Atunci cnd linia de ieire
a
a
a
s
este liber i ruterul trebuie s decid care este urmtorul pachet, examineaz
as
a
a
a
a
143
n
a
s
a
mare de pachete.
Ca principiu general, este bine ca, dac reteaua este foarte arcat,
a
nc
a
nodurile terminale s
a ncerce s reduc frecventa i mrimea pachetelor transa
a
s a
mise. Evident, pentru acest lucru, este necesar un mecanism care s semnaleze
a
nodurilor nale asupra prezentei sau iminentei congestiei.
la astfel de semnale.
Prima posibilitate de semnalizare a congestiei este ca, atunci cnd un
a
nod intermediar este arcat la limita capacitii sale, pentru ecare 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 tracul. Cusurul metodei const
a
a a
a
a n
faptul c pachetele de cerere de reducere a tracului
a
ncarc suplimentar o
a
retea deja arcat. Metoda este utilizabil Internet, existnd un tip de
nc
a
a n
a
pachete ICMP pentru acest scop (vezi 10.2.5.4).
A doua posibilitate este ca nodul arcat s semnalizeze destinatiei
nc
a
a a
deci necesar de elaborat un protocol de informare a sursei. Informarea sursei
poate fcut simplu dac
a a
a ntre surs i destinatie se utilizeaz un protocol de
as
a
control al uxului: cazul care destinatiei este semnalizat c reteaua este
n
n
i
a
congestionat, destinatia cere sursei, prin intermediul protocolului de control
a
a
s s
a
a
a
rspund la cerere). Pentru ca pierderea pachetelor s poat utilizat ca
a
a
a
a
a
semnalizare a congestiei, mai este necesar ca pierderea unui pachet din alte
cauze dect congestia s e putin probabil. Rezult, pentru legturile directe
a
a
a
a
a
cu rat a erorilor ridicat ( principal, legturi radio), necesitatea utilizrii,
a
a n
a
a
la nivelul legturii de date, e a unui cod corector de erori, e a unui protocol
a
de conrmare i retransmitere .
s
Indiferent de metoda de semnalizare utilizat, o implementare simpl
a
a
risc s duc la oscilatii: dac un nod intermediar ajunge congestionat, sema a
a
a
nalizeaz tuturor nodurilor terminale ale legturilor stabilite prin el despre
a
a
congestie. Reactia este diminuarea tracului prin toate legturile i ca ur
a
s
mare scderea tracului mult sub maximul admis. Dup un timp, nodurile
a
a
terminale vor crete din nou tracul, pn la congestionarea, din nou, a nodus
a a
lui intermediar considerat. Solutionarea problemei oscilatiilor se face punnd
a
nodul intermediar s trimit semnale c este supra arcat cu putin
a
a
a
nc
nainte
de-a ajunge la limita capacitii sale i de-a alege aleator legturile crora li
at
s
a
a
se semnalizeaz arcarea.
a nc
circuit virtual sau asupra uxului ce intr sau iese printr-o anumit legtur
a
a
a a
direct.
a
Cel mai simplu mecanism de formare a tracului este limitarea debitului de date la o anumit valoare xat. Mecanismul se numete gleat
a
a
s
a
a
gurit, prin analogie cu urmtorul mecanism zic:
a
a
a
ntr-o gleat (reprezentnd
a
a
a
coada de ateptare a ruterului) se toarn ap (reprezentnd pachetele unui
s
a a
a
ux). Gleata are o gaur prin care curge ap (pachete ce sunt preluate din
a
a
a
coad i retransmise de ctre ruter). Debitul apei care curge (debitul uxului
as
a
de ieire) este constant att timp ct gleata nu este goal. De asemenea,
s
a
a a
a
dac gleata este plin, o parte din apa ce intr se revars afar (surplusul
a a
a
a
a n
a
145
de pachete se pierd).
Un mecanism mai elaborat permite scurte rafale. Ca idee, ruterul
ine evidenta capacitii nefolosite (diferenta dintre debitul maxim acceptat
t
at
as
iar numrul de jetoane asociat cozii este sczut cu o valoare egal cu numrul
a
a
a
a
de biti ai pachetului. Mecanismul se numete gleata cu jeton.
s
a
n
Reteaua telefonic utilizeaz astfel de mecanisme.
a
a
Avantajul unui debit garantat se pltete prin limitarea drastic a
a s
a
debitului permis. Dac debitul efectiv utilizat de un ux de date este adesea
a
sub debitul alocat uxului sau dac o parte din capacitatea unei legturi dia
a
recte rmne adesea nealocat complet conexiunilor ce trec prin ea, reteaua
a a
a
Sunt permise i alte date (de exemplu, prin conexiuni fr trac garantat),
s
aa
a acestora li se asociaz un nivel de prioritate sczut. ecare ruter se
ns
a
a
In
utilizeaz un mecanism bazat pe prioriti. acest fel, uxurile ce au rezervat
a
at In
resurse au capacitate garantat, iar restul datelor sunt transmise, fr vreo
a
aa
garantie, dac mai rmn resurse i pentru ele.
a
a a
s
ndeplinite de nivelul
transport sunt similare cu unele dintre functiile nivelului legturii de date:
a
Transport sigur : O retea congestionat se poate s distrug pachete din
a
a
a
lips de spatiu de memorare. plus,
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, iar anumite cazuri este
a a
n
n
posibil ca o datagram s ajung mai multe exemplare la destinatie
a a
a n
a
limite foarte largi. De aceea, pe de o parte trebuie luate msuri
n
a
pentru a xa o durat maxim de viat a unei datagrame retea, iar
a
a
a
n
pe de alt parte algoritmul de conrmare i retransmitere trebuie s se
a
s
a
atepte 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
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 uxuri
a as
a
de date.
147
n
n
se dorete ca dou sau mai multe retele ce nu pot functiona unitar ca o singur
s
a
a
retea s ofere totui servicii de comunicare similare unei retele unitare.
a
s
a
protocoale diferite la nivel retea, retele ce utilizeaz acelai protocol, dar exist
a
s
a
suprapuneri
ntre adresele alocate aceste retele, dorinta unor administratori
n
de-a nu divulga informatii despre legturile din retea sau de-a ltra pachetele
a
conectat. Exist a cteva metode generale, dintre care vom analiza aici
a ns a
metoda tunelrii.
a
Reteaua A
2
1
4
3
Reteaua B
4
10
6
7
a
a
(reprezentate prin linii continue) i legturi res
a
alizate ca tunele prin reteaua B
(b) Reteaua B
Figura 5.8: Legturi prin tunel. O parte dintre legturile directe din reteaua A,
a
a
a
apare ca legtur direct pentru reteaua A, dar este construit de reteaua B prin
a a
a
intermediul nodului 6.
a
transportate ca date utile printr-o conexiune sau, dup caz, prin datagrame
a
ale primei retele.
Capitolul 6
dou entiti contra actiunilor unui tert, numit adversar sau intrus, care intera
at
mpotriva
actiunilor unui adversar se numete securizarea comunicatiei.
Adversarul poate :
adversar pasiv , care doar intercepteaz mesajele transmise;
a
adversar activ , care i intercepteaz i modic mesajele.
s
as
a
Protectia comunicatiei fat de actiunile adversarului cuprinde:
at
a
pasiv s eleag un mesaj interceptat sau s extrag vreo informatie
a nt
a
a
a
din el.
Vericarea autenticitii mesajelor, numit i autenticarea mesajelor,
at
as
are ca obiectiv detectarea, de ctre receptor, a falsurilor, adic a mesajelor
a
a
create sau modicate de un adversar activ. Vericarea autenticitii
at
mesajelor se aseamn cu detectarea erorilor. Spre deosebire a de
a a
ns
detectarea erorilor, unde modicrile produse de mediul de transmisie
a
sunt aleatoare, la vericarea autenticitii mesajelor avem un adversar
at
care
ncearc mod deliberat s produc modicri nedetectabile.
a n
a
a
a
Asigurarea non-repudiabilitii mesajelor are ca obiectiv s permit
at
a
a
receptorului s dovedeasc autenticitatea unui mesaj fata unui tert,
a
a
n
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 bncii multiple copii ale ordinului
n
s
a
a a
de transfer de bani. lipsa vericrii prospetimii, banca va efectua de
In
a
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
n
a a
nu poate altera comunicatia printr-o conexiune deschis de altcineva.
a
prezenta unui adversar activ, autenticarea entitilor nu este prea
In
at
util, deoarece adversarul poate s lase protocolul de autenticare s
a
a
a
se desfoare 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 ctre partenerii de comu
a
nicatie legitimi, a unui ir de biti, numit cheie, ce urmeaz a utilizat
a
a
la asigurarea condentialitii i la vericarea autenticitii mesajelor.
at s
at
Cheia obtinut trebuie s e cunoscut doar de ctre cei doi parteneri
a
a
a
a
care doresc s comunice.
a
multe lucrri, loc de autenticarea mesajelor se pune problema
In
a n
vericrii integritii mesajelor vericarea de ctre receptor c mesajul
a
at
a
a
este identic cu cel emis de emittor (c nu a fost modicat pe traseu) i
a
a
s
a autenticrii sursei mesajului vericarea de ctre receptor a identitii
a
a
at
autorului unui mesajului. Cele dou operatii vericarea integritii i aua
at s
tenticarea sursei nu au sens dect
a mpreun. Aceasta deoarece, dac
a
a
un mesaj a fost alterat de ctre adversar (lucru care se constat cu ocazia
a
a
vericrii integritii), mesajul poate vzut ca un mesaj produs de adversar
a
at
a
i pretinznd c provine de la autorul mesajului original; acest din urm mesaj
s
a
a
a
nu a fost modicat timpul transportului (de la adversar spre destinatar),
n
dar sursa sa nu este autentic (mesajul provine de la altcineva dect autorul
a
a
indicat mesaj).
n
151
at
6.1.1. Introducere
Problema asigurrii condentialitii unui mesaj const a transa
at
a n
mite informatii aa fel at doar destinatarul dorit s le poat obtine; un
n s
nc
a
a
adversar care ar intercepta comunicatia nu trebuie s e capabil s obtin
a
a a
informatia transmis.
a
Formal, presupunem c emittorul are un mesaj de transmis, nua
a
mit text clar (engl. plaintext). Emittorul va genera, printr-un algoritm,
a
plecnd de la textul clar, un aa-zis text cifrat (engl. ciphertext). Receptorul
a
s
autorizat trebuie s poat recupera textul clar aplicnd un algoritm asupra
a
a
a
textului cifrat. Adversarul, care dispune de textul cifrat dar nu cunoate ans
umite detalii ale algoritmului aplicat de emittor, trebuie s nu e capabil
a
a
s reconstituie textul clar. Operatia prin care emittorul transform textul
a
a
a
clar text cifrat se numete criptare sau, uneori, cifrare (engl. encryption).
n
s
Operatia prin care receptorul obtine textul clar din textul cifrat se numete
bile de transmis; ecare 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 corespunztor 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:
152
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 xat a cheii k K, criptarea devine ck : T M , iar decriptarea
a
dk : M T , cu dk ck = 1T . Pentru ecare k K, (ck , dk ) formeaz o
a
pereche criptare-decriptare.
Algoritmii propriu-zii, 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 ct de secret puteti ine
a
t
algoritmul fat de adversar. . . Ca urmare, pentru o aplicatie, un algoritm
a
a
vulnerabiliti
at nainte ca vulnerabilitile s e 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
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 ): Considerm un alfabet (nit) S
a
a
i notm cu n numrul 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 .
Cheile posibile sunt permutrile 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 ), . . . , k1 (ml )).
Criptarea i decriptarea sunt simplu de executat, chiar i manual.
s
s
Cheile sunt uor de reprezentat. Dac alfabetul are o ordine cunoscut,
s
a
a
153
a
a
ncearc decriptarea textului cifrat cu ecare cheie posibil. O astfel de
a
a
ncercare se
numete atac prin fort brut. S mai presupunem c adversarul reuete s
s
a
a a
a
s s
a
verice un miliard de chei ecare secund. Deoarece numrul de chei este
n
a
a
26! 4 1026 , adversarul ar avea nevoie medie de 6,5 miliarde de ani pentru
n
a gsi cheia corect.
a
a
Pe de alt parte,
a
ntr-un text limba romna, anumite litere (de
n
a
exemplu e, a, t, s) apar mai frecvent dect altele. Ca urmare, permutrile
a
a
primelor prin functia k vor apare textul cifrat cu frecvent mai mare dect
n
a
a
permutrile celorlalte. Un adversar, care dispune de sucient text cifrat, va
a
ncerca doar acele chei care fac s corespund unei litere din textul cifrat doar
a
a
litere a cror frecvent normal de aparitie este apropiat de frecventa de
a
a
a
n
In
a
ncercri
a
se reduce considerabil, astfel at un astfel de cifru poate spart uor
nc
s n
cteva 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}
ck (t1 , t2 , . . . , tl ) = (t1 k1 , t2 k2 , . . . , tl kl ),
unde este operatia sau exclusiv.
154
din acest argument, numit vector de initializare, are rolul de-a face ca acelai
a
s
text clar s e 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 e posibil, informatia corespunza
a
a
toare argumentului aleator trebuie s se regseasc textul cifrat. Ca urmare,
a
a
a n
lungimea textului cifrat trebuie s e cel putin egal cu lungimea textului clar
a
a
plus lungimea argumentului aleator.
Adesea, argumentul aleator nu este secret; ca urmare, poate transmis clar. Trebuie a ca adversarul s nu poat s controleze generarea
n
ns
a
a a
argumentului aleator utilizat de emittor. 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 folosit.
155
a
s
cheia poate dobndi informatii despre textul clar prin observarea textului
a
cifrat. Dac adversarul poate decripta o parte din textul clar sau poate s
a
a
verice 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 transmise i eventual probabilitile lor; exist cazuri care textul
s
at
a
n
clar transmis este dintr-o multime mic, de exemplu poate doar da sau
a
nu. Dac un adversar ce a interceptat textul cifrat poate elimina anumite
a
texte clare, sau, estimnd probabilitile diverselor chei de cifrare, poate esa
at
tima probabiliti, pentru textele clare, diferite fat de estimrile sale initiale,
at
a
a
s n
consecint cifrul este partial spart.
a
a
momentul care adversarul interceptez textul cifrat AZF, el calIn
n
a
culeaz probabilitile diverselor texte clare cunoscnd textul cifrat i gsete
a
at
a
s a s
50% ION, 0% ANA i 50% DAN (exclude ANA deoarece ar da aceeai liter pe
s
s
a
prima i pe ultima pozitie textul cifrat). Adversarul a dobndit o informatie
s
n
a
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 lng textul cifrat
a a
de spart, de un numr 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 ecare mesaj, este necesar
a
n
a
ca cifrul s nu poat spart printr-un atac cu text clar ales.
a
a
156
a
dicultate computational.
a
Dicultatea informational const faptul c pot exista mai multe
a
a n
a
perechi text clar, cheie, care ar putut produce textul cifrat interceptat m.
Presupunnd |T | = |M | i c orice bijectie c : T M putea 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 aceeai 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 |)!). Presupunnd c T este multimea irurilor de n biti, avem |T | = 2n
a
a
i lungimea cheii este log2 ((2n )!) biti, lungime a crei comportament asimptotic
s
a
n ). Pentru n = 20, cheia are civa megabiti.
este de forma (n2
at
s
de a alese.
Cifrul Vernam (vezi exemplul 6.2) este de asemenea un cifru perfect,
ct vreme cheia nu este refolosit.
aa
a
exemplul 6.3, dicultatea 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, numrul de biti ai cheii trebuie s e mai mare sau egal cu numrul
a
a
a
de biti de informatie din mesaj. Cifrul Vernam este acelai timp perfect
n
s
(sub aspectul dicultii informationale a spargerii) i optim din punctul de
at
s
vedere al lungimii cheii.
Dicultatea computational const imposibilitatea adversarului de
a
a n
a deduce informatii asupra textului clar cu un efort computational rezonabil.
clar (sau un text clar inteligibil, dac textul clar adevrat nu este cunoscut
a
a
dinainte). Fezabilitatea unui atac prin fort brut depinde direct de lungimea
a
a
cheii (de fapt, de numrul 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
157
a
a
a
putea spart vreodat prin fort brut.
a
a
a
a
Un cifru se consider a vulnerabil momentul care se descoper
a
n
n
a
o metod de decriptare a unui mesaj semnicativ mai ecient dect un atac
a
a
a
prin fort brut. Inexistenta unei metode eciente de spargere nu este nicioa
a
dat demonstrat; cel mai bun caz se demonstreaz c spargerea unui cifru
a
a n
a a
este cel putin la fel de dicil ca rezolvarea unei anumite probleme de matem
a
atic, problem cunoscut de mult vreme dar fr rezolvare ecient cunosa
a
a
a
aa
a
cut. Acest din urm tip de demonstratie se aplic mai mult la cifrurile asia
a
a
metrice din 6.1.5; problemele de matematic sunt de exemplu descompunerea
a
factori primi a unui numr mare de ordinul sutelor de cifre sau logn
a
aritmul discret rezolvarea x {0, . . . , p 1} a ecuatiei ax = b (mod p),
n
a
at
a
o distributie uniform a continutului ecrui bloc, un ir de 2n/2 blocuri are
a
s
probabilitate cam 1/2 s aib cel putin dou blocuri cu continut identic. (Acest
a
a
a
peste 50%; general,
n
ntr-un grup de k numere aleatoare avnd k valori
posibile, probabilitatea ca cel putin dou s e egale este jur de 1/2).
a a
n
Ca o consecint, dimensiunea n a blocului trebuie s e sucient
a
a
de mare i cheia s e schimbat sucient de des, astfel at numrul de
s
a
a
nc
a
blocuri criptate cu o cheie dat s e mult mai mic dect 2n/2 . majoritatea
a a
a
In
cazurilor, valoarea minim rezonabil pentru n este 64 de biti. La aceast
a
a
a
lungime, repetarea unui bloc de text cifrat este probabil s apar
a
a ncepnd de
a
la 232 blocuri, adic 32 GiB.
a
158
a a
pot zerouri, biti aleatori sau se pot utiliza alte scheme de completare.
Text clar
1
0
1
0
1
0
C
(a) Criptarea
Text cifrat
Text clar
1
0
1
0
1
0
(b) Decriptarea
a
de text clar, chiar dac nu elege nimic din textul cifrat. Dei armatia
a
nt
s
s
initializare. Vectorul de initializare se transmite de obicei separat. Se
s
clar; rezultatul se cifreaz i se trimite. Apoi, se face xor
as
ntre ecare
bloc de text clar i blocul precedent de text cifrat, i rezultatul se cifreaz
s
s
a
i se transmite destinatarului.
s
Fat de ECB, metoda CBC face ca un acelai bloc de text clar s
a
s
a
se cripteze diferit, functie de vectorul de initializare utilizat. Dac
n
Nume
lungime
bloc
64
lungime
cheie
56
3DES
64
112 sau
168
AES
128
128, 192
sau 256
CAST-128
64
ntre 40
i 128
s
biti
64 pn la
a a
448 biti
128 pn la
a a
256 biti
DES
Blowsh
Twosh
Serpent
RC6
RC4
ux
pn la
a a
256 biti
159
observatii
a
ar fost proiectat astfel at s e uor
nc a
s
de spart de ctre cei care ar cunoate
a
s
nite detalii de proiectare.
s
Const aplicarea de 3 ori succesiv a
a n
cifrului DES, cu 2 sau toate 3 cheile distincte. A fost creat pentru a nu inventa
un cifru total nou, dar fcnd imposibil
a a
a
spargerea prin fort brut.
a
a
Desemnat, urma unui concurs, ca nou
n
standard utilizat de guvernul american.
Proiectat de doi belgieni, Joan Daemen
i Vincent Rijmen i publicat sub numele
s
s
rijndael.
Creat de Carlisle Adams i Staord
s
Tavares 1996.
n
Creat de Bruce Schneier 1993.
n
Creat de Bruce Schneier i altii i a pars s
ticipat la concursul pentru AES.
Creat de Ross Anderson, Eli Biham i
s
Lars Knudsen; candidat pentru AES.
Creat de Ronald Rivest; candidat pentru
AES; patentat favoarea rmei RSA
n
Security.
Creat de Ronald Rivest 1987; foarte
n
rapid; are cteva slbiciuni, care pot
a
a
contracarate prin articii legate de
modul de utilizare.
160
Vector
initia
lizare
Text clar
1111
0000
1111
0000
1111
0000
C
11
00
11
00
11
00
11
00
(a) Criptarea
Vector
Text cifrat
initia
111111111
000000000
lizare
111111111111
000000000000
111111111111
000000000000
111
000
111
000
D
Text clar
1
0
1
0
1
0
1
0
(b) Decriptarea
161
a
cifrat vor extrem de rare (imposibil de exploatat de adversar).
Vectorul de initializare trebuie ales satisfcnd :
a a
- s e distribuit uniform i necorelat cu textul clar sau alti vectori
a
s
de initializare;
l
s l ncarc
a
totodat
a ntr-un registru de deplasare. Apoi, pentru ecare caracter de
162
registru de deplasare
registru de deplasare
Se ignor
a
Se ignor
a
1
0
1
0
1
0
+
Text clar
Text cifrat
(a) Criptarea
11
00
11
00
11
00
Text cifrat
Text clar
(b) Decriptarea
criptat, emittorul:
a
- cripteaz continutul registrului de deplasare utiliznd cheia secret,
a
a
a
- execut xor pe biti
a
ntre urmtorii m biti din textul clar i primii
a
s
m biti din rezultatul criptrii,
a
- transmite ca text cifrat rezultatul pasului precedent,
- deplaseaz continutul registrului de deplasare cu m biti spre stnga,
a
a
- introduce, pe pozitiile cele mai din dreapta ale registrului de de
plasare, m biti de text cifrat produs.
s
pseudoaleator se obtin criptnd vectorul de initializare, urmtorii n biti
163
s
La OFB utilizarea unui vector de initializare aleator este chiar mai
s
Vernam), rezultnd un cifru relativ uor de spart.
a
s
CTR Counter: Se construiete similar cu OFB, a irul pseudoaleator
s
ns s
se obtine criptnd numerele v, v + 1, v + 2, etc., reprezentate pe n biti,
a a
OFB, a are avantajul c destinatarul poate decripta un fragment de
ns
a
mesaj fr a decripta tot mesajul pn la fragmentul dorit. Acest fapt
aa
a a
face potrivit pentru criptarea ierelor pe disc. Totui, deoarece cifrul
l
s
s
Vernam aat la baz este vulnerabil unui adversar avnd la dispozitie
a
a
dou texte clare criptate cu aceeai cheie, metoda este vulnerabil dac
a
s
a
a
adversarul are posibilitatea de-a obtine dou variante ale unui ier.
a
s
a
calculabil mod rezonabil. realitate, exist functii de criptare (injective)
a n
In
a
a
ncercarea
tuturor valorilor posibile pentru t.
Pentru ca o astfel de metod de criptare s e util, trebuie ca desa
a
a
tinatarul autorizat al mesajului s-l poat totui decripta timp rezonabil.
a
a
s
n
Pentru aceasta, se cere ca functia de criptare c s poat inversat uor
a
a
a s
de ctre cineva care cunoate o anumit informatie, dicil de dedus din c.
a
s
a
a a
a
tat. De fapt, cazul criptograei asimetrice, destinatarul mesajului este chiar
n
autorul acestei informatii secrete i a functiei de criptare.
s
un parametru, cheia kc , numit cheie de criptare sau cheie public. Astfel,
a
a
criptarea se calculeaz m = ckc (t).
a
Pentru decriptare, vom nota cu d algoritmul general i cu kd infors
matia care permite decriptarea timp rezonabil. Decriptarea o scriem t =
n
dkd (m). kd o numim cheie de decriptare sau cheie secret. Fiecare cheie secret
a
a
kd este asociat unei anumite chei publice kc , putnd servi la decriptarea
a
a
mesajelor criptate doar cu cheia public pereche.
a
164
a
a
a
ca sistemul de criptare s e util mai este necesar s existe un procedeu ecient
a
a
(computational) de generare a unei perechi de chei (kc , kd ) aleatoare.
a
a
P = M = {0, 1, . . . , n 1}.
Criptarea i decriptarea sunt:
s
ckc (p) = pe
dkd (m) = m
(mod n)
d
(mod n)
(6.1)
(6.2)
a
chei (kc , kd ) i face public kc . Emittorul poate cripta un mesaj, folosind
s
a
a
kc , i numai posesorul lui kd va putea decripta. Notm c odat criptat un
s
l
a
a
a
mesaj, acesta nu mai poate decriptat nici mcar de autorul su (dei autorul
a
a
s
i dealtfel oricine poate verica dac un text cifrat dat corespunde sau
s
a
nu unui text clar dat).
Dac se dorete comunicatie bidirectional, se utilizeaz cte o pereche
a
s
a
a a
de chei (kc , kd ) distinct pentru ecare sens.
a
165
n
a
Algoritmii criptograci asimetrici sunt mult mai lenti dect cei si
a
metrici. Din acest motiv, datele propriu-zise se cripteaz de obicei cu algoritmi
a
simetrici, iar cheia de criptare pentru date se transmite utiliznd criptograe
a
asimetric (vezi i 6.3).
a
s
a
cetean ar trebui s poat verica dac textul ce i-a parvenit este textul
at
a
a
a
autentic emis de autoritatea abilitat.
a
Remarcm de asemenea c faptul c un mesaj criptat utiliznd un
a
a
a
a
algoritm simetric poate decriptat de ctre receptor (utiliznd cheia secret)
a
a
a
i este inteligibil nu e o garantie privind autenticitatea mesajului.
s
Intr-adevr,
a
pentru unele metode de criptare, cum ar modul OFB al oricrui cifru bloc,
a
un adversar poate opera modicri asupra textului cifrat cu efecte previzibile
a
asupra textului clar, chiar dac nu cunoate efectiv textul clar. Din acest
a
s
motiv, metodele de asigurare a condentialitii se separ de metodele de
at
a
control a autenticitii.
at
a
s
a a
conditia c, pentru irurile care apar in problema unde se folosete functia de
a
s
s
a
a
e dicil de regsit t. Eventual, dicultatea s se pstreze chiar cazul
a
a
a
n
cunoaterii unei prti din t.
s
a
2. rezistenta la a doua preimagine (engl. second preimage resistence):
a
a
dou iruri distincte t1 i t2 (t1 = t2 ), astfel at h(t1 ) = h(t2 ).
as
s
nc
De remarcat c cele trei conditii sunt diferite. Totui, conditia de
a
167
a
la preimagine.
Numrul de biti n ai dispersiei trebuie s e sucient de mare pentru
a
a
a
mpiedica cutarea unei coliziuni prin fort brut. Conform paradoxului zilei
a
a
a
de natere, exist anse mari de gsire a unei coliziuni
s
as
a
ntr-o multime de 2n/2
intrri. Pentru a face impractic un atac prin fort brut, trebuie ca n/2 64
a
a
a
(i mai bine n/2 80), de unde n 128 sau mai bine n 160.
s
Functiile de dispersie mai cunoscute sunt descrise tabelul 6.2.
n
Nume
MD5
lungime
128
SHA1
160
RIPEMD-160
160
observatii
Presupunem existenta
ntre emittor 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. Ca exemplu practic, canalul nesigur este Internet-ul,
a
iar canalul sigur este un bilet scris sau o convorbire telefonic.
a
Presupunem de asemenea c h este o functie de dispersie rezistent
a
a
la a doua preimagine i preferabil rezistent la coliziuni.
s
a
Emittorul unui mesaj t calculeaz s = h(t). Apoi, transmite t prin
a
a
canalul principal i transmite s prin canalul sigur. Receptorul testeaz dac
s
a
a
h(t) = s. Un adversar care ar modica t t ar trebui s gseasc un t cu
n
a a
a
h(t ) = h(t) pentru a pcli receptorul; acest lucru este nefezabil virtutea
a a
n
proprietii de rezistent la a doua preimagine a functiei de dispersie h.
at
a
isfcnd h(t ) = h(t) pentru t xat (adic de-a crea a doua preimagine) ci
a a
a
este situatia de-a crea t i t distincte cu h(t) = h(t ) (adic de-a gsi o
n
s
a
a
coliziune). Din acest motiv, o functie de dispersie utilizat pentru controlul
a
autenticitii mesajelor se cere s e rezistent la coliziuni.
at
a
a
Exist pe sistemele Linux comenzile md5sum i sha1sum care cala
s
culeaz i aeaz dispersia md5 respectiv sha1 a continutului unui ier.
a s
s a
s
Dispersia este aat hexa. Dac notm
s a n
a
a ntr-un loc sigur dispersia unui
ier, putem controla ulterior dac ierul a fost sau nu modicat
s
a s
ntre timp.
a a
a
pereche (s, t) care s = hk (t), chiar dac cunoate un numr de perechi
n
a
s
a
(si , ti ) cu si = hk (ti ).
O functie de dispersie cu cheie se utilizeaz astfel: Mai ai, emit
a
nt
a
torul i receptorul se eleg asupra unei chei secrete k (de exemplu conform
s
nt
metodelor din 6.3). La trimiterea unui mesaj t, emittorul calculeaz s =
a
a
hk (t) i trimite
s
mpreun perechea (s, t). Receptorul testeaz dac s = hk (t).
a
a
a
Orice autenticare prin dispersie cu cheie este a priori vulnerabil
a
la un atac numit atac prin reexie, descris continuare. Notm cu A i
n
a
s
B cele dou prti care comunic i cu k cheia de dispersie utilizat pentru
a a
a s
a
autenticarea mesajelor. Un adversar activ poate intercepta un mesaj trimis
de A ctre B i s-l trimit
a
s a
a napoi lui A. Dac aceeai cheie k este utilizat
a
s
a
pentru autenticarea ambelor sensuri de comunicatie (i de la A la B, i de
s
s
la B la A) i dac mesajele au acelai format, atunci A accept mesajul ca
s
a
s
a
venind de la B. Pentru a preveni un atac prin reexie, exist dou solutii:
a
a
at
a
entitii nu apare efectiv mesajul transmis, dar particip la calculul
at
n
a
dispersiei: s = hk (t A) i A trimite spre B perechea (t, s).
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, preferabil 80 de biti.
169
hash este functia de dispersie criptograc (de exemplu md5 sau sha1 ),
a
K este cheia k completat la o lungime B aleas functie de anumite
a
a n
a
s
B se ia de 64 de octeti.
a
a
c functia de dispersie hash d 128160 biti, iar pentru o dispersie cu cheie
a
s
at
de informatie pus la dispozitia adversarului.
a
dou chei de criptare), rezultnd valoarea dispersiei.
a
a
a
diat paragraful precedent. Constructia este a asimetric, utiliznd chei
a n
ns
a
a
diferite pentru crearea dispersiei (numit, acest caz, semntur) i, respeca n
a a s
tiv, pentru vericare dispersiei. Astfel, relatia dintre semntura digital i
a
a s
dispersia cu cheie este similar cu cea dintre criptograa asimetric i cripa
a s
tograa simetric.
a
O schem de semntur digital are urmtoarele elemente:
a
a a
a
a
un algoritm prin care se poate genera aleator o pereche de chei (ks , kv ),
unde ks este cheia secret sau cheia de semntur, iar kv este cheia
a
a a
public sau cheia de vericare.
a
o functie de semnare h;
o functie de vericare v.
a a
a
a
acest caz exist mai multe semnturi valide pentru un acelai mesaj.
In
a
a
s
O posibilitate de constructie pentru semntur este pe baza unui
a a
mecanism de criptare asimetric care criptarea este bijectiv; de exemplu
n
a
RSA are aceast proprietate. Constructia simplicat este:
a
a
hks (t) = dks (t)
vkv (t, s) = (ckv (s) = t)
Constructia de mai sus se bazeaz pe nefezabilitatea calculului lui s =
a
dks (t) fr cunoaterea lui ks . Totui, constructia aceasta permite adversarului
aa
s
s
a
atest faptul c documentul a fost produs de emittor. Functiile de dispersie
a
a
a
171
a
a
o sum de bani dintr-un cont altul, este necesar ca destinatarul s accepte
a
n
a
mesajul doar o singur dat.
a
a
O copie a unui mesaj ,,vechi este identic cu originalul din momentul
a
cnd acesta era ,,nou. Ca urmare, un test de autenticitate nu detecteaz
a
a
niciodat vechimea mesajului.
a
Notm c testul de prospetime nu poate consta simpla vericare
a
a
n
dac un mesaj este identic cu vreunul dintre mesajele anterioare. Aceasta
a
deoarece, pe de o parte, producerea unui mesaj identic cu un mesaj anterior
este perfect legitim (de exemplu, se poate cere un nou transfer, constnd
a
a n
aceeai sum de bani ctre acelai destinatar), iar pe de alt parte, memorarea
s
a
a
s
a
tuturor mesajelor deja primite nu este fezabil.
a
Solutiile problemei vericrii prospetimii sunt similare cu metodele
at nt
a
Ideea este s introducem mesajul autenticat un ,,identicator de
a
n
mesaj care s e diferit de la un mesaj la altul i asupra cruia s se execute
a
s
a
a
de fapt testul de prospetime. Un astfel de element se numete numr unic
s
a
(engl. nonce, de la number (used) once).
Numrul unic poate :
a
un numr de ordine: Emittorul ine evidenta unui numr curent de
a
a
t
a
ordine. Pentru ecare mesaj, emittorul scrie numrul curent mesaj
a
a
n
i incrementeaz apoi numrul curent. Receptorul ine de asemenea
s
a
a
t
evidenta numrului curent de ordine. La ecare mesaj primit, veric
a
a
dac numrul din mesaj coincide cu numrul curent de ordine; caz
a
a
a
n
contrar mesajul nu este acceptat. Dup acceptarea unui mesaj, numrul
a
a
curent de ordine este incrementat. Remarcm c numrul de ordine
a
a
a
poate omis din mesajul transmis efectiv; el trebuie doar s participe
a
la calculul semnturii mesajului.
a
Metoda are dou neajunsuri: necesit mentinerea pe termen lung
a
a
a
a
a
s
testul de prospetime accept un decalaj de 10 secunde, numrul unic al
a
a
mesajului va pstrat pn la ora 08:12:55). La primirea unui mesaj,
a
a a
receptorul veric dac marcajul de timp este actual ( interiorul intera
a
n
valului acceptabil) i dac numrul unic nu este identic cu cel al unuia
s
a
a
dintre mesajele memorate.
Utilizarea orei la vericarea prospetimii necesit un mecanism
a
sigur care s mentin sincronismul ceasurilor dispozitivelor care comua
a
nic.
a
un numr (aleator) ales de receptor: Receptorul care ateapt un
a
s
a
mesaj trimite emittorului un numr aleator proaspt generat. Numrul
a
a
a
a
aleator trebuie s aib cel putin 6480 biti, pentru ca s nu se repete
a
a
a
(dect cu probabilitate neglijabil de mic) i s nu poat prezis de
a
a s a
a
ctre adversar. Emittorul adaug numrul la mesajul trimis. Recepa
a
a
a
torul accept un mesaj ca proaspt doar dac numrul aleator din mesaj
a
a
a
a
coincide cu numrul aleator tocmai trimis. Ca i pentru varianta cu
a
s
numr de ordine, numrul aleator nu este necesar s e inclus mesaj;
a
a
a
n
este sucient s participe la calculul semnturii mesajului.
a
a
Neajunsul principal al metodei este necesitatea de-a transfera numrul aleator dinspre receptor spre emittor. plus, este necesar ca
a
a
In
receptorul s tie c urmeaz s primeasc un mesaj, ceea ce necesit
a s
a
a a
a
a
adesea a un mesaj (emittorul spune vezi c vreau s-ti spun ceva,
nc
a
a
a
receptorul rspunde trimitnd numrul aleator i, nal, emittorul
a
a
a
s n
a
trimite mesajul propriu-zis). Acest lucru face aplicarea metodei scump
a
i anumite cazuri imposibil de exemplu metoda nu este aplicabil
s n
a
a
pentru securizarea potei electronice sau pentru protocoale de difuziune
s
(broadcast).
cazul unui schimb de mai multe mesaje, de exemplu o sesiune
In
173
a
inclus mesaj, numr unic pe care receptorul veric la primirea mesajului.
n
a
l
a
Dac numrul unic are o singur valoare valid, se poate conveni c numrul
a
a
a
a
a
a
nu se transmite efectiv, a dispersia sau semntura se calculeaz ca i cnd
ns
a
a
s a
numrul ar parte a mesajului.
a
Combinarea criptrii cu autenticarea se poate face trei moduri:
a
n
Se calculeaz ai semntura sau dispersia, iar apoi se cripteaz rezula nt
a
a
tatul concatenrii datelor utile cu dispersia sau semntura. Dei nu
a
a
s
exist o slbiciune cunoscut, unii criptogra sustin c prezenta dispera
a
a
a
Acest mod de combinare a criptrii cu dispersia cu cheie este utilizat de
a
protocolul ssh versiunea 2. Dac autenticarea se face prin semntur
a
a a
digital, metoda nu este corect deoarece permite unui adversar care
a
a
bnuiete textul clar s verice dac textul clar este cel bnuit de el.
a
s
a
a
a
cele ce urmeaz, vom studia cum se poate face ca aceste chei s e disponibile
a
a
partenerilor. Cheile respective pot chei pentru criptograe simetric sau
a
pentru autenticare prin dispersie cu cheie, caz care cheile le vom numi
n
chei simetrice, sau pot chei publice pentru criptograe asimetric sau pentru
a
semntur digital. Transmiterea celor dou tipuri de chei au cerinte distincte.
a a
a
a
cazul unei chei simetrice, actiunea prin care cheia este generat i
In
as
fcut disponibil partenerilor de comunicatie se numete stabilirea cheii . Un
a a
a
s
protocol de stabilire a cheii trebuie s
a ndeplineasc urmtoarele cerinte:
a
a
a
denumirea de autenticarea cheilor i este obligatorie orice proces de
s
n
stabilire a cheilor.
Cheia stabilit s e proaspt i, eventual, s nu poat impus unilata a
a as
a
a
a
eral de vreuna dintre prti ci s e calculat din elemente generate de
a
a
a
ecare dintre parteneri. Aceast cerint este util pentru a pre ampina
a
a
a
nt
situatia care un adversar, care reuete s obtin o cheie mai veche,
n
s s
a a
ar putea determina entitile care comunic s refoloseasc acea cheie.
at
a a
a
Fiecare entitate ce comunic s aib conrmarea c partenerul de coa a
a
a
municatie a primit efectiv cheia. Actiunea care veric satisfacerea
a
aceastei cerinte poart denumirea de conrmarea cheii, iar conrmarea
a
cheii
mpreun cu autenticarea cheii poart denumirea de autenticarea
a
a
explicit a cheii. Este posibil s nu se prevad conrmarea cheii ca parte
a
a
a
a protocolului de stabilire a cheii; acest caz,
n
nceperea comunicatiei
a a
bil partenerilor se numete certicarea cheii. Spre deosebire de cazul cheilor
a
s
simetrice, unde transmisia unei chei
ntre partenerii de comunicatie se face
Receptorul unei chei publice s poat verica dac cheia primit este
a
a
a
a
Receptorul cheii s poat verica dac cheia mai este valid. O cheie
a
a
a
a
175
s
cheilor publice necesit mecanisme de securizare a comunicatiei (criptare i
a
s
autenticare).
Stabilirea cheilor sau certicarea cheilor
ntre dou entiti care nu
a
at
au deja chei care s le permit o comunicatie securizat
a
a
unei a treia entiti care s poat deja comunica securizat cu ecare din
at
a
a
primele dou i care s prezinte
as
a
ncredere acestora.
prin intermediul unui utilizator uman ( 6.3.5).
Dup rolul lor fat de un mecanism de stabilire a cheilor, cheile se
a
a
numesc:
chei efemere (engl. ephemeral key) sau chei de sesiune (engl. session
key), utilizate pentru comunicatia propriu-zis
a
a
tograe simetric i, uneori, prin dispersie cu cheie, cheile efemere sunt
as
chei simetrice.
chei de lung durat (engl. long-term key), utilizate cadrul mecanisa
a
n
melor de stabilire sau certicare a cheilor. Cheile de lung durat pot
a
a
chei simetrice sau chei asimetrice.
Mai dm cteva considerente practice legate de stabilirea sau certia
a
carea cheilor:
Numrul de chei pe care trebuie s le posede o entitate pentru a putea
a
a
comunica trebuie s e ct mai mic. Ideal, ecare entitate dispune de o
a
a
singur cheie de lung durat, permitnd o comunicatie securizat cu un
a
a
a
a
a
tert de
a n
a
a
s
un prim transport manual al unei chei este
ntotdeauna necesar.
a
s
terior, obtine o cheie de lung durat utilizat stabilirea acelei chei
a
a
a n
de sesiune, este bine s nu poat s obtin cheia de sesiune, pentru a nu
a
a a a
putea mai departe decripta sesiunea.
s n
deja disponibile. Cu alte cuvinte, problema este ca A i B s ajung la un
s
a
a
secret partajat printr-o comunicatie integral la vedere.
descris 6.3.1.3.
n
Exist dou metode utilizabile acest scop:
a
a
n
utilizarea criptograei asimetrice,
alte metode, dintre care cea mai cunoscut este metoda Die-Hellman.
a
6.3.1.1. Stabilirea cheilor prin criptograe asimetric
a
Protocolul este urmtorul:
a
Pregtirea: A genereaz o pereche de chei pentru criptograe asimetric;
a
a
a
cheia secret este cheia sa de lung durat.
a
a
a
Stabilirea cheii de sesiune:
a) A trimite lui B cheia public a lui A.
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 mbuntit este ca A s aib, pe lng cheia (mai bine
a at a
a
a
a a
zis, perechea de chei) de lung durat, o a doua pereche de chei pentru cripa
a
tograe asimetric care s e regenerat periodic. A transmite lui B ambele
a
a
a
chei publice (cheia de lung durat i cheia public proaspt), iar B cripteaz
a
as
a
aa
a
cheia de sesiune cu cheia proaspt iar rezultatul cripteaz cu cheia de lung
aa
l
a
a
177
a
a
a
lung durat a lui A, dar
a
a
ntre timp cheia proaspt a expirat i a fost distrus,
aa
s
a
adversarul nu mai poate decripta comunicatiile vechi.
a
o cheie de lung durat. De asemenea, aplicarea metodei Die-Hellman este
a
a
mai rapid dect regenerarea la ecare mesaj a unei perechi de chei pentru
a
a
un cifru asimetric. Ca dezavantaj, este necesar o comunicatie interactiv;
a
a
protocolul Die-Hellman nu este aplicabil transmiterii mesajelor prin pot
sa
electronic.
a
6.3.1.3. Atacul man-in-the-middle
Protocoalele descrise paragrafele 6.3.1.1 i 6.3.1.2 sunt aplicabile
n
s
doar absenta unui adversar activ. Un adversar activ I se poate interpune
n
ntre A i B astfel:
s
comunic cu A jucnd rolul lui B pentru a stabili o cheie de sesiune k1 ;
a
a
comunic cu B jucnd rolul lui A pentru a stabili o cheie de sesiune k2 ;
a
a
decripteaz mesajele trimise de A lui B (acestea ind criptate cu k1 ),
a
le citete, eventual le modic, dup care le cripteaz (i eventual le
s
a
a
a s
autentic) utiliznd cheia k2 .
a
a
Rezultatul atacului este c A i B cred c comunic ecare cu cellalt
a s
a
a
a
cnd de fapt ei comunic cu I.
a
a
Exist metode, bazate pe transmiterea fragmente a mesajelor, care
a
n
a
a
n
a
ntre B i A, sau
s
ntre B i
s
un tert de
ncredere i
s ntre tert i A.
s
In
cheia de sesiune trebuie s e cunoscut doar de A i de B i s e proaspt
a
a
s
s a
aa
(un adversar s nu poat impune alegerea unei chei stabilite la o executie
a
a
In
general, aceste protocoale se construiesc astfel:
1. Fie una dintre prti genereaz aleator o cheie i o transmite criptat
a
a
s
partenerului, e se aplic un protocol de tipul Die-Hellman.
a
2. Fiecare parte trimite celeilalte un nonce (de exemplu un numr aleator).
a
179
s
Primul punct are ca scop obtinerea unei chei pe care s o cunoasc doar prtile
a
a
a
ntre care a avut loc schimbul de mesaje. Al doilea punct are rolul de-a asigura
c negocierea i, consecint, cheia rezultat este proaspt. Al treilea punct
a
s n
a
a
aa
are rolul de-a asigura ecare parte c mesajele de la punctele 1 i 2 au fost
a
s
schimbate cu partenerul dorit. Dac vericarea semnturii sau dispersiei de
a
a
la punctul 3 eueaz,
s
a nseamn c protocolul a fost inuentat de un adversar
a a
activ i, consecint, cheia negociat este compromis. Este esential deci ca,
s n
a
a
a
ncredere
Vom studia continuare problema stabilirii unei chei
n
ntre dou
a
entiti A i B care nu partajeaz prealabil nici un fel de cheie, prezenta
at
s
a n
n
at
(un tert de
KDC).
Mai presupunem c protocolul de stabilire a cheii este initiat de ctre
a
a
A.
Ideea solutiei este urmtoarea: serverul T genereaz aleator o cheie
a
a
de sesiune, pe care o transmite lui A i lui B. Transmisia ctre A este criptat
s
a
a
i autenticat cu cheia partajat
s
a
a ntre A i T , iar transmisia ctre B este
s
a
criptat i autenticat cu cheia partajat
as
a
a ntre B i T .
s
Deoarece este de presupus c T face acest serviciu pentru mai multe
a
entiti, pachetele transmise ctre A i B trebuie s contin i numele lor,
at
a
s
a
a s
astfel at, la primirea pachetului, A i B s tie cine este partenerul cu care
nc
s
as
comunic.
a
Simplicat, protocolul ar urmtorul:
a
1. A transmite spre T o cerere clar prin care cere o cheie de sesiune
n
pentru B;
2. T genereaz o cheie de sesiune k;
a
3. T transmite spre A un pachet
(A, B, cKcA (k), hKcA (k A B))
181
a
a
a
adversar poate trimite mesajele de la paii 3 i 4 locul serverului T pentru a
s
s n
forta stabilirea unei chei vechi. Dac adversarul reuete s obtin o cheie de
a
s s
a a
sesiune, el poate forta astfel stabilirea aceleiai chei, compromise, sesiunile
s
n
urmtoare.
a
Pentru vericarea prospetimii, trebuie introduse mesaje nite ele
n
s
mente de control al prospetimii.
a
a
a
una pentru criptare, cealalt pentru auteticare) cu ecare dintre entitile din
a
at
retea.
a
server T , deoarece aceasta ar cere tuturor s aib
a
a ncredere administran
torul serverului T . Pentru stabilirea de chei
ntre orice dou entiti aceste
a
at n
s
Se congureaz mai multe servere de distribuire a cheilor, ecare entitate
a
avnd o cheie partajat cu unul dintre aceste servere.
a
a
Se congureaz chei partajate
a
ntre cte dou servere de distribuire a
a
a
cheilor. Aceste chei partajate formeaz legturi securizate
a
a
ntre servere.
Graful format de serverele de distribuire a cheilor i de legturile securs
a
izate trebuie s e conex.
a
Atunci cnd o entitate A dorete s comunice cu o entitate B, se caut un
a
s
a
a
lant de servere, T1 ,. . . ,Tn , astfel at A s aib cheie partajat cu T1 , T1 s
nc
a
a
a
a
aib cheie partajat cu T2 , . a. m. d. Apoi, se stabilete, cu ajutorul lui T1 ,
a
a
s
s
o cheie
ntre A i T2 ; cu ajutorul lui T2 se stabilete o cheie
s
s
ntre A i T3
s
. a. m. d. pn la obtinerea unei chei
s
a a
ntre A i B.
s
acest sistem, loc s aib toat lumea
In
n
a
a
a
ncredere
ntr-un singur
server, ecare pereche de entiti care doresc s comunice trebuie s aib
at
a
a
a
a
a
uman (vezi 6.3.5 pentru detalii). Acest lucru nu este a fezabil dect
ns
a
pentru un numr mic de chei. O solutie aplicabil retele mari const
a
a n
a n
utilizarea certicatelor.
Un certicat este un ansamblu cuprinznd o cheie public, un nume
a
a
de entitate i o semntur a unui tert pe ansamblul celor dou. Tertul sems
a a
at
a
gureaz certicat.
a n
Utilizarea certicatelor se face astfel. Dac A nu are cheia public a
a
a
lui B, dar:
are cheia public a lui C dintr-o surs sigur,
a
a
a
are un certicat pentru B semnat de C, dintr-o surs nesigur,
a
a
are
ncredere C c a vericat corect identitatea lui B
n
a
nainte de a-i
semna certicatul,
atunci A poate verica semntura lui C pe certicatul lui B i, dac este
a
s
a
corect, poate prelua cheia lui B de pe certicat.
a
183
a
i un lant de autoriti din care ecare semneaz certicatul urmtoareia.
s
at
a
a
Pentru schimbarea cheilor, cazul compromiterii unei chei secrete,
n
se prevd dou mecanisme:
a
a
expirarea cheilor. Un certicat are durat de valabilitate limitat; data
a
a
creerii i data expirrii sunt de asemenea
s
a
nscrise certicat i semnate
n
s
de autoritatea de certicare. O entitate a crui certicat se apropie
a
de expirare va crea o nou pereche de chei i va solicita autoritii de
a
s
at
certicare eliberarea unui nou certicat pentru noua cheie public. Dup
a
a
expirare, un certicat nu mai este recunoscut de nimeni ca valid i nu
s
mai este folosit.
revocarea certicatelor. Se in, pe servere accesibile public, aa-zise
t
s
certicate de revocare ale certicatelor ale cror chei secrete se consider
a
a
compromise. Un certicat de revocare al unui certicat este un ansamblu
cuprinznd datele de identicare ale certicatului revocat i semntura
a
s
a
autoritii de certicare a certicatului revocat asupra acelor date de
at
identicare.
Publicarea unui certicat de revocare pentru un certicat anunt
a
invalidrii certicatului original. O entitate care utilizeaz un certicat
a
a
va verica
nainte, de ecare utilizare, dac nu exist un certicat de
a
a
revocare al certicatului respectiv.
Certicatul de revocare poate produs doar de ctre autoritatea
a
de certicare emitent sau de posesorul certicatului.
a
a
de un canal sigur bazat pe alte mijloace dect cele criptograce. Acest canal
a
este necesar pentru transportul unei prime chei criptograce, utilizabil pena
tru transportul sigur al altor chei. Acest canal sigur implic
a ntotdeauna
interventia omului, i se prezint sub una din urmtoarele forme:
s
a
a
1. Omul transport, pe un suport amovibil (dischet, CD, DVD, memorie
a
a
ash) sau printr-o legtur ad-hoc securizat (cablu direct), o cheie de
a a
a
pe sistemul surs pe sistemul destinatie. Eventual aceast cheie poate
a
a
cheia public a unei autoriti recunoscute, cheie
a
at
nglobat
a ntr-un
produs soft (de regul browserele web au
a
nglobate astfel de chei);
2. Omul citete o informatie de pe sistemul surs i o introduce sau o
s
a s
veric pe sistemul destinatie. Cantitatea de informatie astfel transa
portabil este mic, de ordinul ctorva sute de biti cel mult. Metoda
a
a
a
ntr-un ir
s
de silabe ce alctuiesc cuvinte, probabil fr sens, dar pronuntabile. Pentru un
a
aa
a
a
a
Pentru a aplica metoda 3, remarcm pentru
a
nceput c o parol ina
a
ventat i memorat de om nu poate 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 12 biti pe caracter. O parol ce
n
a
poate memorat rezonabil va avea o entropie cuprins undeva
a
a
ntre aceste
dou limite. Pe de alt parte, securitatea unui sistem criptograc 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
185
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 sucient de mare. acest caz, micorarea lungimii efective a cheii
In
s
derivate din parol trebuie compensat prin
a
a
ngreunarea
ncercrii cheilor de
a
ctre adversar. Mai exact, protocolul ce utilizeaz cheia derivat din parol
a
a
a
a
trebuie modicat aa fel at s nu permit unui adversar s fac
n s
nc a
a
a a ncercarea
exhaustiv a cheilor pe maina lui (unde poate dispune de putere mare de
a
s
calcul i nu las urme) ci s trebuiasc s contacteze una din mainile care
s
a
a
a a
s
cunosc cheia (maini care
s
nregistreaz tentativa i pot refuza un numr prea
a
s
a
mare de tentative timp scurt).
n
Ca terminologie, distingem tentative de spargere o-line, care adn
versarul poate verica dac o parol este corect utiliznd doar echipamentele
a
a
a
a
proprii, i tentative de spargere on-line, care adversarul contacteaz serverul
s
n
a
atacat,
ncercnd s deschid o conexiune cu parola supus vericrii. Dac o
a
a
a
a
a
a
cheie nu poate spart o-line, o lungime efectiv (entropie) de 3040 biti este
a
a
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 zice, care functioneaz pe baza unor fenomene zice sucient
a
de aleatoare;
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
ductorul dispozitivului l-a construit corect i nu a instalat o ,,u dosnic,
a
s
sa
a
permitndu-i acestuia s prevad numerele generate. plus, ind 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 su. De exemplu, s msurm timpul scurs
n
a
a a a
ntre momentele care sunt apsate dou taste consecutive i s exprimm printr-un
n
a
a
s a
a
numr durata respectiv. Vom constata c cifrele cele mai putin semnicative
a
a
a
ndreptat spre o acr 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 supravea
a
a
Dispozitivele nededicate au ca avantaj pretul mai redus i riscul mai
s
mic de-a ,,msluite de ctre fabricant. Debitul de biti aleatori produi
a
a
s
variaz a functie de utilizarea sistemului; particular, pentru un server
a ns n
n
care nu admite utilizatori locali este dicil de obtinut un debit satisfctor de
a a
biti aleatori.
a
ecare moment t, generatorul are asociat o stare intern st . Starea
In
a
a
intern este o valoare dintr-o multime arbitrar sucient de mare.
a
a
Atunci cnd este nevoie de un numr aleator, acest numr este obtinut
a
a
a
a
a
187
a
Dup producerea unui numr aleator, starea intern este modicat,
a
a
a
a
pentru ca urmtorul numr s nu mai aib aceeai valoare. Actua
a a
a
s
alizarea strii interne se face pe baza unei a doua functii, g. Avem
a
s
a
s
doaleator produs, (xt )tIN are proprieti statistice sucient de apropiate de
at
numerele cu adevrat aleatoare.
a
De remarcat c
a ntregul ir depinde de valoarea strii initiale s0 a
s
a
s
este bun deoarece face comportamentul programelor reproductibil.
De asemenea, trebuie remarcat c, deoarece, practic, multimea
a
n
a
strilor interne posibile este nit, mai devreme sau mai trziu 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 numrul de stri interne posibile.
s
a
a
a
Pentru o functie g cu comportament apropiat de o functie aleatoare sau de
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 e rezistent la preimagine. O alt conditie necesar este
a
a
a
a
ca multimea strilor interne posibile s e sucient de mare pentru ca
a
a
explorarea ei prin fort brut s nu e posibil practic.
a
a a
a
Starea initial s0 trebuie s e creat pornind de la un generator zic.
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 reuete s obtin starea intern st , s nu
a
s s
a a
a
a
poat calcula numerele pseudoaleatoare deja generate (adic x0 . . . xt1 ).
a
a
Aceast lucru este util pentru ca, dac un adversar reuete s spagr
a
s s
a
a
un calculator, s nu poat decripta comunicatiile anterioare. Pentru a
a
a
de la generatorul zic. Acest lucru are scopul ca, dac un adversar reuete s
a
s s
a
obtin starea intern la un moment dat sau s ae starea intern initial, s
a
a
a
a a a
nu poat prevedea dect o mic parte dintre numerele aleatoare produse ultea
a
a
rior. De asemenea, starea initial nu este generat la pornirea calculatorului,
a
a
ntruct, de obicei, acel moment nu sunt disponibili prea multi biti aleatori
a
n
de la generatoarele zice. Starea intern este salvat la oprirea calculatorua
a
lui,
ntr-un ier ce nu poate citit de utilizatorii obinuiti, i re arcat la
s
s s nc
a
pornirea calculatorului.
a n s
antet wincrypt.h.
De remarcat c utilizarea unor functii non-criptograce pentru genera
a
t
corespondenta nume, parol. Aceast solutie (stocarea parolelor clar) are un
a
a
n
dezavantaj: un adversar care reuete s sparg sistemul sau un administrator
s s
a
a
indiscret poate obtine direct parolele tuturor utilizatorilor. ,,Recolta este
189
n
a
a
a
care obtine s poate obtine p printr-un dictionar creat o-line: adversarul ia o
s
a
as
a
obtinnd astfel un dictionar care asociaz dispersiei parola corespunztoare.
a
a
a
a
rapid p dac p era dictionarul
a
n
ncercat.
Metoda de mai sus poate
mbuntit,
a at a mpiedicnd crearea unui
a
dictionar de dispersii i oblignd 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
a
rile descrise mai sus nu pot
nlocui criptarea ,,adevrat. Dac, vederea
a a
a n
autenticrii utilizatorului, serverul cere h(p) ( loc de p), atunci h(p) devine
a
n
efectiv parola de conectare prin retea i orice adversar care cunoate h(p) poate
s
s
impersona utilizatorul, fr a avea nevoie de p
aa
a
a
sistem, prezenta unui adversar pasiv, fr a recurge la criptare. Notm c
n
aa
a
a
aplicativitatea este foarte limitat:
a
comunicatia neind criptat, metoda este inaplicabil dac datele trans
a
a
a
as
s a
a
aleator, nesecret, r. De asemenea, sistemul aeaz un numr de iteratii,
s a
a
Retele de calculatoare
Protocoale
Radu-Lucian Lupa
s
a
a
a
Casa Crtii de Stiint, 2008, ISBN: 978-973-133-377-9.
a
a n
Drepturile de autor apartin subsemnatului, Radu-Lucian Lupa.
s
Subsemnatul, Radu-Lucian Lupa, acord oricui dorete dreptul de a copia
s
s
continutul acestei crti, integral sau partial, cu conditia atribuirii corecte autorului i
s
a pstrrii acestei notite.
a a
Cuprins
Principii
Cuprins
Prefat
a
13
Introducere
1.1 Serviciile oferite de retea . . . . . . . . . . . . . . . . . . . . . . . . .
15
15
20
25
26
29
29
31
33
39
40
41
44
50
51
52
53
55
55
55
56
57
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
22
Nivelul zic
3.1 Problema transmisiei informatiei la nivelul zic . . . . . . .
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 legturi radio . . . . . . . . . .
a
3.5.3.1 Obstacolele . . . . . . . . . . . . . . . . . . . . . .
3.5.3.2 Linia orizontului . . . . . . . . . . . . . . . . . . .
3.5.3.3 Utilizarea satelitilor articiali ai Pmntului . . . .
a a
3.5.3.4 Zgomotul . . . . . . . . . . . . . . . . . . . . . . .
3.5.3.5 Scderea puterii cu distanta . . . . . . . . . . . . .
a
as
a
3.5.4 Spectrul radio i alocarea lui . . . . . . . . . . . . . . .
s
3.5.5 Particulariti ale sistemelor de comunicatie prin radio
at
Cuprins
. . . . .
. . . . .
. . . . .
Fourier
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
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
197
92
92
93
.
.
.
.
.
.
.
.
.
.
.
.
.
.
95
96
97
98
99
101
102
103
108
109
114
115
115
116
117
a
5.2.3 Dirijarea ierarhic . . . . . . . . . . . . . . . . . . . . . . . . .
a
5.2.4 Metode particulare de dirijare . . . . . . . . . . . . . . . . . .
5.2.4.1 Inundarea . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2.4.2 aarea rutelor din adresele surs ale pachetelor . . . .
Invt
a
5.2.5 Metode de difuziune . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Functionarea la trac ridicat . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
119
120
122
122
125
127
128
136
139
139
140
140
141
142
143
144
145
146
147
at
6.1.1 Introducere . . . . . . . . . .
6.1.2 Refolosirea cheilor . . . . . .
6.1.3 Problema spargerii unui cifru
.
.
.
.
149
151
151
154
155
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
ncredere . . . . .
6.3.4 Certicarea cheilor publice . . . . . . . . . . . . . . . . . .
6.3.5 Transportul prin utilizatori umani . . . . . . . . . . . . . .
6.4 Numere aleatoare . . . . . . . . . . . . . . . . . . . . . . . . . .
6.4.1 Generatoare zice . . . . . . . . . . . . . . . . . . . . . . .
6.4.2 Generatoare de numere pseudoaleatoare . . . . . . . . . . .
6.4.3 Generatoare utilizate practic . . . . . . . . . . . . . . .
n
a
6.5 Autenticarea 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
7.1.1.1 Bitul . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.1.1.2 Siruri de biti . . . . . . . . . . . . . . . . . . . . . . .
ntregi . . . . . . .
7.1.2 Reprezentri pe octeti . . . . . . . . . . . . . . . . . . . . .
a
7.1.2.1 Octeti . . . . . . . . . . . . . . . . . . . . . . . . . . .
195
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
203
203
203
204
204
205
206
206
208
208
210
212
214
199
Codicarea textelor . . . . . . . . . . . . . . . . . . . . . . . .
7.2.1 Codicarea ASCII . . . . . . . . . . . . . . . . . . . . . .
7.2.2 Codicrile ISO-8859 . . . . . . . . . . . . . . . . . . . .
a
7.2.3 Codicrile Unicode . . . . . . . . . . . . . . . . . . . . .
a
7.2.3.1 Codicarea UTF-8 . . . . . . . . . . . . . . . . . . .
7.2.3.2 Codicrile UTF-16 . . . . . . . . . . . . . . . . . .
a
7.2.3.3 Codicrile UTF-32 . . . . . . . . . . . . . . . . . .
a
7.3 Reprezentarea datei i orei . . . . . . . . . . . . . . . . . . . .
s
7.3.1 Msurarea timpului . . . . . . . . . . . . . . . . . . . . .
a
7.3.2 Obiectivele alegerea reprezentrii timpului calculator
n
a
n
7.3.3 Formate utilizate practic . . . . . . . . . . . . . . . .
n
a
7.3.3.1 Formatul utilizat de pota electronic . . . . . . . .
s
a
7.3.3.2 ISO-8601 i RFC-3339 . . . . . . . . . . . . . . . . .
s
7.3.3.3 Timpul POSIX . . . . . . . . . . . . . . . . . . . . .
7.3.3.4 TAI 64 . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4 Recodicri . . . . . . . . . . . . . . . . . . . . . . . . . . . .
a
7.4.1 Codicarea hexazecimal . . . . . . . . . . . . . . . . . .
a
7.4.2 Codicarea baza 64 . . . . . . . . . . . . . . . . . . . .
n
7.4.3 Codicri bazate pe secvente de evitare . . . . . . . . . .
a
a
8.1.1.4
Inchiderea conexiunii . . . . . . . . . . . . .
8.1.2 Comunicatia prin datagrame . . . . . . . . . . .
s
8.1.3.8 Functiile getsockname() i getpeername()
s
8.1.3.9 Functiile send() i recv() . . . . . . . . .
s
8.1.3.10 Functiile shutdown() i close() . . . . . .
s
8.1.3.11 Functiile sendto() i recvfrom() . . . . .
s
8.1.4 Exemple . . . . . . . . . . . . . . . . . . . . . .
8.1.4.1 Comunicare prin conexiune . . . . . . . . .
8.1.4.2 Comunicare prin datagrame . . . . . . . . .
8.2 Formatarea datelor . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
215
216
217
218
220
220
221
221
222
224
225
225
226
227
227
228
228
229
229
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
accept()
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
231
231
232
233
233
234
234
235
237
237
237
238
239
239
240
242
242
243
245
245
246
246
249
252
s
8.2.1.3 Variabile compuse (struct-uri) . . .
8.2.1.4 Pointeri . . . . . . . . . . . . . . . .
8.2.2 Formate text . . . . . . . . . . . . . . . .
8.2.3 Probleme de robustete i securitate . . .
s
8.2.4 Probleme privind costul apelurilor sistem
8.3 Probleme de concurent comunicatie . . . .
a n
Cuprins
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
10 Internetul
10.1 Arhitectura retelei . . . . . . . . . . . . . . . . .
10.2 Protocolul IP . . . . . . . . . . . . . . . . . . .
10.2.1 Structura pachetului IP . . . . . . . . . . .
10.2.2 Bazele dirijrii pachetelor IP . . . . . . . .
a
10.2.2.1 Subretele i interfete . . . . . . . . . .
s
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
10.3.1.3 Deschiderea i
s nchiderea conexiunii . . . . . . . . . . . . .
10.3.1.4 Alegerea numrului initial de secvent . . . . . . . . . . . .
a
a
10.3.1.5
Inchiderea fortat a conexiunii . . . . . . . . . . . . . . . .
a
10.3.1.6 Identicarea aplicatiei destinatie . . . . . . . . . . . . . . .
10.3.1.7 Corespondenta
ntre functiile socket() i actiunile modulu
s
lui TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10.3.1.8 Controlul uxului . . . . . . . . . . . . . . . . . . . . . . . .
10.3.1.9 Stabilirea time-out-ului pentru retransmiterea pachetelor . .
10.3.1.10Algoritmul lui Nagle i optimizarea numrului de pachete .
s
a
10.3.1.11Trimiterea datelor speciale (out of band) . . . . . . . . . . .
10.3.2 Datagrame nesigure: UDP . . . . . . . . . . . . . . . . . . . . .
10.4 Identicarea nodurilor dup nume: sistemul DNS . . . . . . . . . . .
a
10.4.1 Numele de domeniu . . . . . . . . . . . . . . . . . . . . . . . . .
10.4.2 Structura logic a bazei de date DNS . . . . . . . . . . . . . . .
a
10.4.3 artirea domenii de autoritate . . . . . . . . . . . . . . . .
Imp
n
10.4.4 Mecanismul de interogare a serverelor . . . . . . . . . . . . . . .
10.4.5 Sincronizarea serverelor pentru un domeniu . . . . . . . . . . . .
10.4.6 Cutarea numelui dup IP . . . . . . . . . . . . . . . . . . . . .
a
a
10.5 Legturile directe
a
ntre nodurile IP . . . . . . . . . . . . . . . . . . .
10.5.1 Rezolvarea adresei ARP . . . . . . . . . . . . . . . . . . . . .
10.6 Congurarea automat a statiilor DHCP . . . . . . . . . . . . . .
a
n
10.7.1 Filtre de pachete (rewall) . . . . . . . . . . . . . . . . . . . . .
10.7.2 Retele private . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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
Cuprins
10.7.3.2 Translatia adresei destinatie . . . . . . . . . . . . . . . . . . 350
11 Aplicatii retele
n
11.1 Pota electronic . . . . . . . . . . . . . . . . . . . . . . . .
s
a
11.1.1 Formatul mesajelor . . . . . . . . . . . . . . . . . . .
11.1.1.1 Antetul mesajelor . . . . . . . . . . . . . . . . . .
11.1.1.2 Extensii MIME . . . . . . . . . . . . . . . . . . .
11.1.1.3 Ataarea ierelor i mesaje din mai multe prti
s
s
s
a
11.1.1.4 Codicarea corpului mesajului i a ataamentelor
s
s
11.1.2 Transmiterea mesajelor . . . . . . . . . . . . . . . . .
11.1.2.1 Protocolul SMTP . . . . . . . . . . . . . . . . . .
11.1.2.2 Determinarea urmtorului MTA . . . . . . . . .
a
11.1.2.3 Congurarea unui MTA . . . . . . . . . . . . . .
11.1.3 Securitatea potei electronice . . . . . . . . . . . . . .
s
11.2 Sesiuni interactive la distant . . . . . . . . . . . . . . . .
a
11.2.1 Protocolul ssh . . . . . . . . . . . . . . . . . . . . . .
11.2.1.1 Conexiunea ssh protejat criptograc . . . . . .
a
11.2.1.2 Metode de autenticare ssh . . . . . . . . . . .
n
11.2.1.3 Multiplexarea conexiunii, tunelarea i aplicatii .
s
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
Bibliograe
401
Index
405
Capitolul 7
s
boluri dintr-un alfabet nit.
Intre simbolurile ce alctuiesc irul se stabilete o
a
s
s
ordine, existnd un prim element al irului, un al doilea, etc. Transmisia elea
s
mentelor se face ordinea care apar ele ir, primul simbol transmis ind
n
n
n s
cel care ocup prima pozitie din ir. Pn aici am considerat c transmisia
a
s
a a
a
unui ir de la un dispozitiv la altul conserv ordinea
s
a
ntre elemente.
Aa cum vom vedea a paragraful de fat, din ratiuni legate
s
ns n
a
n
s
c, memoria calculatorului, adresele identic octeti i nu biti.
a n
a
s
(byte).
7.1.1.1. Bitul
Pentru reprezentarea diverselor date, alegerea unui alfabet cu dou
a
simboluri este avantajoas din dou motive. Pe de o parte, este cel mai mic
a
a
alfabet posibil, ca urmare alegerea unui alfabet cu dou elemente aduce o
a
anumit simplitate i naturalete constructiei matematice. Pe de alt parte,
a
s
a
din punct de vedere practic, al constructiei echipamentelor zice, dispozitive
cu dou stri stabile sunt mult mai uor de construit dect dispozitive cu mai
a a
s
a
multe stri.
a
scris, cele dou simboluri sunt notate mod obinuit cu 0 i 1.
In
a
n
s
s
Atragem atentia c:
a
Alegerea celor dou simboluri utilizate, precum i a corespondentei dintre
a
s
a
a
irului. Pentru aceasta, se stabilete o ordine a bitilor: avem un prim bit, un
s
s
a
legtur direct
a a
a ntre ordinea conventional a unui ir de biti i amplasamentul
a
s
s
dispozitivelor zice care memoreaz acei biti. Numrul de ordine al unui bit,
a
a
cadrul acestei ordini conventionale, se numete mod obinuit pozitia (sau,
n
s n
s
obicei
ncepnd de la 0 sau de la 1; cele ce urmeaz vom utiliza numerotarea
a
n
a
de la 0.
La transmiterea unui ir de biti, este natural ca primul bit transmis,
s
memorarea unui ir
s ntr-o memorie cu acces direct (memorie RAM sau ier
s
pe disc), este natural ca celula cu adresa cea mai mic, dintre celulele alocate
n
a
irului, s e plasat primul bit al irului (bitul de pe pozitia 0). acest fel,
s
a
s
In
primul bit al unui ir
s nseamn, simultan, bitul de pe pozitia (conventional)
a
a
0, bitul transmis primul (cronologic) i bitul memorat la adresa cea mai mic.
s
a
205
ntregi
Reprezentarea numerelor naturale prin iruri de biti se bazeaz pe
s
a
ceea ce matematicienii numesc reprezentare pozitional baza 2, pe care o
a n
presupunem cunoscut. reprezentarea
a In
ntr-o baz de numeratie, distingem
a
n s
1. Primul bit al irului este cifra de pondere maxim. Aceasta alegere
s
a
este identic celei utilizate scrierea numerelor limbile ,,obinuite
a
n
n
s
(indo-europene), cu scriere de la stnga spre dreapta. Se mai numete
a
s
big endian.
aceast schem de reprezentare, un ir de biti b0 b1 . . . bn1
In
a
a
s
reprezint numrul
a
a
b0 2n1 + b1 2n2 + . . . + bn1 20 .
2. Primul bit al irului este cifra de pondere 1. Aceast reprezentare este
s
a
asemntoare scrierii numerelor limbile semite (araba i ebraica, cu
a a
n
s
scriere de la dreapta spre stnga i unde numerele sunt scrise tot cu cifra
a
s
unitilor dreapta). Se mai numete little endian.
at
n
s
Aceast alegere are avantajul unei scrieri mai simple a relatiei dina
a
pe n biti este
b0 20 + b1 21 + . . . + bn1 2n1 .
Fiind dou scheme de reprezentare distincte, dac un sistem transa
a
mite un numr reprezentare little endian, iar cellalt sistem interpreteaz
a n
a
a
irul de biti primit ca ind
s
n
n
din 7.1.1.2) pe pozitia cea mai din stnga.
a
Dac acest ir este reprezentarea big endian a unui numr, numrul
a
s
a
a
respectiv este 25. Dac reprezentarea a fost fcut format little endian,
a
a a n
numrul este 19.
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 zic, iar pe de alt parte ecare bit are o
a
anumit pondere reprezentarea unui numr
a
n
a ntreg.
n
s
a n
bitilor octeti nu este vizibil programatorului.
a
7.1.2.1. Octeti
n
siune x, mod obinuit cte 8 biti. Un astfel de grup se numete octet
a n
s
a
s
(denumire intrat pe lier francez) sau bait (adaptare a englezescului byte).
a
a
a
Un octet poate privit dou moduri distincte:
n
a
ca un ir de 8 biti,
s
ca un numr
a ntreg cuprins
ntre 0 i 255.
s
Echivalenta
ntre aceste dou moduri de-a privi un octet este o problem ce
a
a
necesit mult atentie. Dac identicm bitii dup ponderile lor, exist o
a
a
a
a
a
a
corespondent biunivoc
a
a ntre un astfel de grup de 8 biti i un numr
s
a ntreg
ntre 0 i 255. Dac a identicm bitii dup pozitia lor irul de 8 biti
s
a ns
a
n s
a ntre numr i
a s
ir de biti exist doar dup ce am stabilit o corespondent
s
a
a
a ntre pozitia unui
a
a
octetul este privit ca numr. Aici se
a
ncadreaz operatiile aritmetice i
a
s
operatiile de deplasare pe biti. De remarcat c operatiile deplasare la
stnga (engl. shift left), respectiv deplasare la dreapta (engl. shift right)
a
pot descrise termeni de operatii aritmetice: deplasarea la stnga
n
a
este o
nmultire cu 2, iar deplasarea la dreapta este o artire la 2.
mp
acest context, ,,spre stnga i ,,spre dreapta
In
a
s
nseamn spre pozitiile
a
207
a
a
sau, echivalent, octetul este privit ca un ir arbitrar de biti, fr a avea
s
aa
asociat o valoare numeric. Aici intr transmiterea bit cu bit (transa
a
a
mitere serial) a unui octet. Aceast operatie este efectuat de placa de
a
a
a
retea i de alte adaptoare seriale (de exemplu, adaptoarele USB). Tot
s
aici s-ar
ncadra, dac ar exista, o operatie de obtinere sau de modicare
a
a n
ntr-un sistem de calcul
nu exist o instructiune care s extrag, de exemplu, bitul numrul 5
a
a
a
a
dintr-un octet.
3. Operatii care pot denite e identicnd bitii dup ponderea lor, e
a
identicnd bitii dup numrul lor de ordine. aceast categorie se
a
a
a
In
a
s
s
cnd bitii dup numrul lor de ordine, efectul ei asupra valorii numerice
a
a
a
a octetului nu depinde de corespondenta aleas
s
ponderile lor.
aceste conditii, interiorul unui calculator, bitii din cadrul unui
In
n
s
La transmisia unui octet
ntre dou sisteme de calcul, mecanismele
a
de transmisie sunt astfel construite at s transmit valoarea octetului.
nc a
a
Intruct, prin mediul zic al retelei, bitii sunt transmii secvential, bitii unui
a
octet sunt aici identicati prin numrul lor de ordine in cadrul transmisiei.
a
Pentru a pstra valoarea octetului timpul transmisiei prin mediul retelei,
a
n
n
unor scheme de reprezentare a datelor unde un numr este reprezentat pe un
a
grup de biti ce nu formeaz un numr
a
a ntreg de octeti. Este cazul schemelor
biti, etc. Si aici este necesar s se specice dac numerotarea bitilor este little
a
a
endian sau big endian. Mai multe detalii despre astfel de reprezentri vor
a
studiate 7.1.2.4.
n
7.1.2.2. Siruri de octeti
n
a
ir de biti care
s
n
ntre pozitia pB a unui bit irul de 8n biti, pozitia pBO
n s
n
irul de octeti are loc relatia:
s
pB = 8 pO + pBO .
(7.1)
Relatia de mai sus are aceast form simpl dac se utilizeaz numerotare de
a
a
a
a
a
la 0; pentru numerotarea de la 1, forma relatiei e mai complicat.
a
Transmiterea unui ir de octeti printr-o conexiune, precum i mems
s
orarea irului
s
ntr-un ier pe disc urmat de citirea lui
s
a
napoi memorie,
n
pstreaz ordinea i valorile octetilor din ir. Valorile octetilor sunt pstrate
a
a
s
a
dac privim octetii ca numere
a
s
8 biti, valorile octetilor se pstreaz numai dac pe ambele sisteme utilizm
a
a
a
a
aceeai corespondent
s
a ntre numerele de ordine i ponderile bitilor.
s
reprezenta numere din intervale mai largi, sunt necesare scheme de reprezentare
pe mai mult de 8 biti. Schemele cele mai simple sunt cele care utilizeaz un
a
numr
a ntreg de octeti; acestea vor prezentate continuare. Schemele de
n
reprezentare ce utilizeaz iruri de biti ce nu formeaz neaprat un numr
a s
a
a
a
209
a n
a
a
a
posibile:
little endian: primul octet are ponderea 1, al doilea octet are ponderea 256, al treilea octet are ponderea 2562 = 65536, etc.
big endian: primul octet are ponderea 256n1 (unde n este numrul de
a
n2 . a. m. d.,
octeti ai reprezentrii), al doilea octet are ponderea 256
a
s
penultimul octet are ponderea 256, iar ultimul octet are ponderea 1.
Reamintim c prin primul octet elegem octetul care este transmis primul,
a
nt
ordine cronologic, de la un dispozitiv la altul i, totodat, octetul memorat
n
a
s
a
la adresa cea mai mic.
a
Exemplul 7.2: Descriem mai jos reprezentarea numrului 300 schemele
a
n
de reprezentare little endian i big endian, pe 2 i pe 4 octeti. Pentru ecare
s
s
dintre aceste patru scheme de codicare, este dat irul de octeti ce reprezint
s
a
numrul 300.
a
pozitie
octet
(nr. ordine)
0
1
2
3
a
2 octeti
2 octeti
4 octeti
4 octeti
1
0
44
0
a
a
tor variabile, programatorul trebuie s aib vedere c operatiile aritmetice
a
a n
a
a
a
rat sau, respectiv, transmis. Majoritatea protocoalelor pentru Internet prevd
a
formate big endian pentru numerele
ntregi transmise. Multe dintre formatele
de iere prevd formate little endian. Exist i formate (de exemplu, fors
a
a s
matul TIFF pentru imagini, formatele UTF-16 i UTF-32 pentru texte) care
s
permit emittorului s aleag formatul dorit i prevd un mecanism prin care
a
a
a
s
a
emittorul informeaz receptorului despre alegerea fcut.
a
a
a a
Dac formatul de pe disc sau de pe conexiune coincide cu formatul
a
unitii aritmetice locale, un program poate transfera direct iruri de octeti
at
s
ntre o variabil
a ntreag local i ierul de pe disc sau, respectiv, conexiunea
a
as s
spre cellalt calculator. Dac formatul de pe disc sau de pe conexiune este
a
a
invers fat de cel local, un program care transfer date trebuie s inverseze
a
a
a
ordinea octetilor imediat
nainte de scrierea pe disc sau de trimiterea pe conexiune, precum i imediat dup citirea de pe disc sau receptionarea de pe
s
a
conexiune.
7.1.2.4. Reprezentarea numerelor pe un ir arbitar de biti
s
a n
a
a
neaprat un numr
a
a ntreg de octeti. O astfel de schem este o generalizare a
a
schemei prezentate paragraful precedent.
n
O astfel de metod de reprezentare se bazeaz pe reprezentarea nua
a
merelor baza 2 (vezi i 7.1.1.3). Pentru ca o astfel de schem s e
n
s
a a
complet denit, este necesar s e stabilit (standardizat) corespondenta
a
a
a
a
descrierea
dintre pozitia ecrui bit din reprezentare i ponderea asociat. In
a
s
a
211
a
endian sau little endian;
dac numerotarea bitilor cadrul ecrui octet se face
a
n
a
ncepnd de
a
la bitul de pondere 1 (adic valoarea octetului este reprezentat dup
a
a
a
schema little endian) sau
ncepnd de la bitul de pondere 128 (adic
a
a
valoarea octetului este reprezentat dup schema big endian).
a
a
dac numerotarea bitilor cadrul irului de biti se face dup relatia (7.1)
a
n
s
a
a
a
e formatul big endian pentru amndou, e formatul little endian pentru
a
a
amndou, iar la punctul al treilea se utilizeaz relatia (7.1).
a
a
a
bit al primului octet urmeaz cel mai semnicativ bit al celui de-al doilea
a
octet. Orice numr, indiferent pe ci biti s-ar reprezenta, se reprezint
a
at
a
format big endian.
n
little endian. aceast metod, numerotarea bitilor
In
a
a
a
bit al primului octet urmeaz cel mai putin semnicativ bit al celui dea
a
a ntreg de octeti, formatele de reprezentare rezultate
n
Exemplul 7.3: Considerm o schem de reprezentare pentru dou numere
a
a
a
4 biti ai primului octet vor cei mai semnicativi 4 biti ai lui b, iar cel de-al
doilea octet va contine cei mai putin semnicativi 8 biti din b. Aceast schem
a
a
de reprezentare este ilustrat gura 7.1, cu valori concrete a = 11 i b = 300.
a n
s
Dac alegem metoda little endian, schema de reprezentare va utiliza
a
cei mai putin semnicativi 4 biti ai primului octet pentru a-l reprezenta pe a,
ceilalti 4 biti ai primului octet vor cei mai putin semnicativi 4 biti ai lui b,
212
iar cel de-al doilea octet va contine cei mai semnicativi 8 biti din b. Aceast
a
schem de reprezentare este ilustrat gura 7.2, cu valori concrete a = 11
a
a n
i b = 300.
s
b0
1
b1
0
b2
1
b3
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
Nr.
octet
0
1
c0
1
0
c1
0
0
c2
1
1
Valoare
(binar)
c3 c4
1
0
0
1
Valoare
(zecimal)
c5
0
1
c6
0
0
c7
1
0
177
44
n
(coloana din mijloc) s-a utilizat conventia obinuit, de-a scrie
s
a
cifrele mai semnicative stnga.
n a
b0
1
b1
1
b2
0
b3
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
Nr.
octet
0
1
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
n
(coloana din mijloc) s-a utilizat conventia obinuit, de-a scrie
s
a
cifrele mai semnicative stnga.
n a
s
n
a n
7.4.2.
213
indiferent de natura obiectelor: biti, octeti, cifre zecimale, caractere ale unui
a
a
pozitiile ,,neutilizate din ir; de exemplu, reprezentarea numerelor,
s
n
pozitiile cele mai semnicative se completeaz cu zerouri.
a
Deoarece la transmisia printr-o conexiune nu se poate pune problema accesului direct (adic altfel dect secvential) la date, metoda este
a
a
a n
a
se utilizeaz la reprezentarea binar a numerelor.
a
a
Numrul de obiecte este transmis separat, fata irului. Aceast metod
a
n s
a
a
uureaz munca receptorului, care tie exact ce s astepte i poate aloca
s
a
s
a
s
memorie pentru receptionarea datelor. schimb, munca emittorului
In
a
este complicat prin faptul c acesta trebuie s cunoasc de la
a
a
a
a
nceput
numrul de obiecte din ir. Acest fapt face metoda inaplicabil anua
s
a n
mite situatii.
Transmiterea de la
nceput a numrului de obiecte este utilizat,
a
a
de exemplu, de protocolul HTTP ( 11.3.2) la transmiterea, de ctre
a
server, a continutului paginii cerute de client. Serverul transmite ai
nt
numrul de octeti ai paginii i apoi irul de octeti ce formeaz pagina.
a
s
s
a
Dup ultimul obiect din irul propriu-zis, se transmite o valoare special,
a
s
a
cu rol de terminator. Aceast metod uureaz munca emittorului,
a
a s
a
a
care poate s
a nceap transmiterea irului
a
s
nainte de-a ti cte elemente
s a
are, schimb
n
ngreuneaz munca receptorului, care trebuie s citeasc
a
a
a
elementele irului unu cte unu i s verice dac nu a alnit terminas
a
s a
a
nt
torul. De asemenea, trebuie xat valoarea terminatorului, care trebuie
a
s e o valoare reprezentabil formatul pentru element, dar care nu
a
a n
apare niciodat ca valoare a unui element valid.
a
Metoda este utilizat frecvent transmiterea unui ir de caraca
n
s
tere. Rolul de terminator poate acordat caracterului null (caracterul
cu codul ASCII zero), caracterului newline (sfrit de rnd), caracterului
as
a
spatiu, etc. Orice alegere s-ar face, caracterul sau caracterele astfel alese
din 7.1.2.4.
Descriem putin mai pe larg reprezentarea numerelor format text,
n
deoarece o astfel de reprezentare se utilizeaz frecvent protocoalele retea.
a
n
n
Motivul principal al utilizrii formatului text este uurinta depanrii aplicatiia
s
nregistrat
a ntr-un
ier i examinat cu un program obinuit pentru vizualizarea ierelor text.
s s
a
s
s
format text, se utilizeaz conventiile de reprezentare a numerelor
In
a
textele scrise: se
n
ncepe cu cifra cea mai semnicativ, numrul de cifre este
a
a
variabil (depinde de valoarea numrului) i prima cifr (cea mai semnicativ)
a
s
a
a
scris nu este zero, cu exceptia cazului numrului 0 care se reprezint ca o
a
a
a
singur cifr zero.
a
a
Fiecare cifr se reprezint ca un caracter, ind necesar mai departe
a
a
a
cazul codicrii ASCII,
o schem de reprezentare a textelor (vezi 7.2). In
a
a
reprezentarea ecrei cifre ocup exact un octet. De remarcat a c, acest
a
a
ns a n
caz, cifra 0 nu se reprezint ca un octet cu valoarea 0, ci ca un octet avnd
a
a
ca valoare codul ASCII pentru caracterul ,,0; acesta este 48 (sau, echivalent,
3016 ).
Deoarece lungimea reprezentrii este variabil, este necesar s e
a
a
a
transmis sub o form sau alta informatia privind lungimea reprezentrii
a
a
a
numrului (numrul de cifre). acest scop, reprezentrile text, numerele
a
a
In
n
a
sunt separate de obicei prin spatii, caractere tab, caractere newline etc.
215
Exemplul 7.4: Redm mai jos reprezentrile text ASCII terminat cu spatiu,
a
a
BCD big endian pe 4 octeti i BCD little endian pe 4 octeti, pentru numrul
s
a
300. Valorile octetilor sunt scrise baza 2, bitul cel mai semnicativ ind
n
scris stnga.
n a
pozitie
octet
(nr. ordine)
0
1
2
3
text
ASCII
00110011
00110000
00110000
00100000
Valorile octetilor
BCD
BCD
big endian little endian
00000000
00000000
00000000
00000011
00000011
00000000
00000000
00000000
ntre diferitele variante de-a scrie o aceeai liter (litere ,,normale, cursive
s
a
(,,italice), adline (,,bold), etc).
Pe lng caracterele grace, descrise mai sus, sunt denite caractere
a a
de control, avnd rolul de a marca puncte (locuri) cadrul textului sau fraga
n
mente din text. Utilizri ale caracterelor de control sunt, de exemplu, trecerea
a
la rnd nou sau interzicerea trecerii la rnd nou (ruperea rndului)
a
a
a
ntr-un
anumit punct.
Un aspect discutabil legat de alegerea setului de caractere este dac
a
o liter cu un semn diacritic este cazul s e caracter distinct fat de litera
a
a
a
simpl din care provine sau s e format din caracterul corespunztor literei
a
a
a
respective fr semne diacritice i un caracter de control care s marcheze
aa
s
a
semnul diacritic adugat. aceeai idee, s-ar putea face i distinctia dintre
a
In
s
s
a
codicarea aleas, sunt principal urmtoarele:
a
n
a
aarea textului;
s
concatenarea unor texte sau alte operatii de sintez;
cutarea unui cuvnt, extragerea unor cuvinte sau unor fragmente de text
a
a
i diverse alte operatii de analiz a textului;
s
a
sortarea alfabetic.
a
De notat c regulile de sortare alfabetic sunt complexe i depind
a
a
s
de limb. De exemplu, limba romn, literele cu diacritice sunt consida
n
a a
erate imediat dup literele fr diacritice. Urmtoarele cuvinte sunt sortate
a
aa
a
alfabetic: sac, suc, iret; de notat c orice cuvnt ce
s
a
a
ncepe cu este sortat
s
francez, a, literele cu diacritice sunt
dup toate cuvintele ce
a
ncep cu s. In
a ns
considerate, prima faz, echivalente cu cele fr diacritice, intervenind
n
a
aa
n
ordinea alfabetic doar pentru cuvinte care difer doar prin diacritice. Exa
a
emplu: t, tre, tude; de notat c apar amestecate cuvinte ce
ee e
e
a
ncep cu i
e s
.
e
Majoritatea codicrilor sunt bazate pe reprezentarea una dup alta
a
a
a literelor (caracterelor) ce formeaz cuvintele textului.
a
Codicrile caracterelor sunt de obicei descrise dou etape.
a
n
a
In
prima etap, ecrui caracter este asociat un numr
a
a
i
a ntreg pozitiv, numit
codul caracterului. a doua etap, ecrui cod de caracter este asociat o
In
a
a
i
a
codicare ca ir de biti sau ca ir de octeti.
s
s
altii ca ind caracter de control);
217
a
s
corespunztoare este 32 (20 hexa).
a
Pentru reprezentarea unui caracter ASCII sunt necesari doar 7 biti,
a a
(cca. 140) care nu sunt utilizate. Se poate extinde setul de caractere, asociind
noilor caractere coduri
ntre 128 i 255 sau coduri
s
ntre 0 i 31 a cror caractere
s
a
corespunztoare nu sunt folosite efectiv. Toate aceste codicri rezultate se
a
a
numesc generic seturi ASCII extinse.
a
un octet pentru ecare caracter, octetul continnd codul caracterului.
a
Fiecare cod din familie este extensie a codului ASCII sensul c
n
a
multimea caracterelor din ecare astfel de cod include multimea caracterelor
Caracter
I
S
a
C2
a
CE
AA
s
DE
Cod (hexa)
E3
E2
EE
BA
FE
a a
aa
n
codicrile ISO-8859-1 sau ISO-8859-2, de exemplu, literele cu diacritice au
a
codurile mai mari de 128 vreme ce literele fr diacritice au coduri
n
aa
ntre 65
i 123.
s
a a n
mai multe moduri. Cele mai rspndite codicri sunt:
a a
a
UTF-8 este o codicare de lungime variabil,
a ntre 1 i 4 octeti pentru
s
un caracter;
UTF-16, UTF-16LE, UTF-16BE sunt codicri de lungime variabil, 2
a
a
sau 4 octeti pentru un caracter;
Caracter
S
,
s
,
T
,
t
,
S
s
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
219
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
a n
tabelul 7.3.
Valorile lui c
( baza 16)
n
07F
807FF
800FFFF
100001FFFFF
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
a
a
a
ncepe un caracter nou), deoarece
ecare caracter nou
ncepe cu un octet cuprins
ntre 0 i 127 sau
s
ntre 192
i 255, iar ceilalti octet din codicarea unui caracter sunt cuprini
s
s ntre 128
i 191. O alt proprietate este c lungimea codicrii UTF-8 a unui caracter
s
a
a
a
poate determinat dup citirea primului octet.
a
a
7.2.3.2. Codicrile UTF-16
a
Codicarea UTF-16 este descris dou etape:
a n
a
ntr-o prim etap,
a
a
codul unicode este transformat
ntr-unul sau dou numere de cte 16 biti, iar
a
a
nt
rezultnd o valoare
a
ntre 0 i FFFFF16 (20 biti). Primul
s
ntreg de 16 biti se
doilea
ntreg se formeaz punnd cifrele 110111 urmate de ultimii 10 din cei
a
a
20 de biti. De exemplu, codul unicode 1030216 se scrie ca doi
ntregi astfel:
D83C16 DF0216 .
221
a
a
at
de
ntreg,
ncepnd de la octetul mai semnicativ (de rang mai mare) sau
a
a
s
sunt FE16 urmat de FF16 ,
nseamn c ordinea octetilor este big ena a
little endian.
7.2.3.3. Codicrile UTF-32
a
Codicarea UTF-32 const codicarea ecrui caracter ca un
a n
a
ntreg
pe 32 de biti, reprezentat la rndul lui ca un ir de 4 octeti. Ca i cazul
a
s
s n
codicrilor UTF-16, exist trei codicri UTF-32 :
a
a
a
UTF-32LE : Primul octet este cel mai putin semnicativ (little endian);
a
s
nseamn c ordinea octetilor este big endian; dac este F F16 , F E16 , 0,
a a
a
0,
nseamn c ordinea octetilor este little endian.
a a
prin ,,ora curent, iar apoi vom vedea ce scheme de reprezentare ale datei i
a
s
orei exist i ce avantaje i dezavantaje aduce ecare dintre ele.
as
s
a
alternanta zi-noapte nu este simultan pe tot Pmntul ci este decalat
a
a a
a
pe longitudine;
anul, luna i ziua sunt incomensurabile (rapoartele duratelor lor sunt
s
numere irationale);
ntre cele dou nivele hiperne ale strii fundamentale a atomului de cesiu 133.
a
a
Ca urmare a acestor complicatii, exist mai multe standarde de m
a
a
surare i reprezentare a timpului:
s
Timpul atomic international (TAI) este dat de numrul de secunde SI
a
scurse de la un anumit moment ales ca reper. Secundele TAI se grupeaz
a
minute, ore, zile, etc.
n
Timpul universal UT1 este de fapt msura unui anumit unghi, legat
a
de rotatia Pmntului, exprimat uniti de timp (24 h loc de
a a
a n
at
n
). (Unghiul respectiv este unghiul orar, pentru un observator aat
360
223
a a
a
at
ani, 24 h UT1 este aproximativ 86400,002 s SI.
Timpul universal coordonat (UTC) este bazat pe secunda SI, dar
gruparea secundelor zile este modicat pentru a mentine diferenta
n
a
nc
are 86401 s, proces aproape echivalent cu a muta UTC cu o secund
a
acest scop, ultimul minut al zilei are 61 de secunde loc de
napoi. In
n
60, dup ora 23:59:59 urmeaz, la o secund, 23:59:60 i abia dup a
a
a
a
s
a nc
o secund ora 0:00:00 a zilei urmtoare. Dac UT1UTC se apropie
a
a
a
de 1 s, se elimin o secund din ultimul minut al unei zile, astfel c la
a
a
a
o secund dup 23:59:58 urmeaz ora 0:00:00 a zilei urmtoare. Din
a
a
a
a
anul 1972 (de la introducerea UTC forma actual) pn 2008 au
n
a a a n
fost adugate 23 de secunde de corectie i nu a fost eliminat nici una.
a
s
a
A 24-a secund de corectie se va aduga la sfritul anului 2008, astfel
a
a
as
at ziua de 31 decembrie 2008 va avea 86401 secunde. Datorit unei
nc
a
diferente initiale de 10 s
n
prezent de 33 s.
Timpul legal ecare ar este denit e pe baza UT1, e pe baza UTC
n
t a
(diferenta este neglijabil pentru uzul practic), ca ind UTC (sau UT1)
a
plus sau minus un anumit numr de ore i uneori i fractiuni de or
a
s
s
a
(exemplu, India are ora legal UTC+5h30min).
a
rile care exist or de var, la trecerea de la ora de iarn la
In ta
n
a a
a
a
cea de var i invers, diferenta dintre ora legal i UTC crete, respectiv
as
as
s
scade, cu o or (de notat c UTC nu are or de var). De exemplu,
a
a
a
a
ora legal Romnia este UTC+2 h timpul iernii (din ultima dua n
a
n
minic din octombrie pn ultima duminic din martie) i UTC+3 h
a
a a n
a
s
timpul verii.
n
Ora suplimentar introdus la trecerea de la ora de var la cea de
a
a
a
iarn nu are notatie distinct, de tipul secundelor de corectie din UTC.
a
a
momente de timp, ora de var 3:30:00 (la 30 min
a
naintea schimbrii
a
orei) i ora de iarn 3:30:00 (la 30 min dup schimbarea orei).
s
a
a
fr a divizibili cu 400. Ani bisecti sunt 1600, 2000, 2400 etc; ani
aa
nebisecti divizibili cu 100 sunt 1700, 1800, 1900, 2100, 2200 etc. Durata
medie a anului gregorian este 365,2425 zile, ceva mai lung dect anul
a
tropic de aproximativ 265,2422 zile.
Calendarul iulian , predecesorul calendarului gregorian, introdus anul
n
45
.e.n. i avnd regula mai simpl cum c sunt bisecti toti anii cu
s
a
a
a
a
este JD 0,5, etc. Cealalt, MJD (modied julian day), are ca referint
a
a
17 noiembrie 1858 ora 0, adic este JD2400000,5 .
a
adunrii sau scderii unei durate formale (exemplu: mine la aceeai or;
a
a
a
s a
aceasta
nseamn mod obinuit peste 24 de ore, 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).
a
2. determinarea ordinii cronologice a dou momente de timp;
a
3. determinarea exact, ca timp zic, a duratei
a
ntre dou momente de
a
timp,
225
s
n
(timpul legal al altui fus orar, UTC, TAI, JD, etc).
Punctul 1 este cerut de toate sistemele. Punctul 2 este important
pentru foarte multe aplicatii i rezolvarea lui corect interzice mutarea ceasului
s
a
n
functionarea ceasului sistem presupune, mod repetat, adunarea unei durate
n
de timp la un moment de timp.
Reprezentarea direct a orei legale, sub forma an, lun, zi, or, minut,
a
a
a
secund, fractiuni de secund, rezolv simplu punctul 1. Ea ridic a proba
a
a
a ns
leme la punctul 2 dac sunt implicate calculatoare aate 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, despre ecare or, pe ce fus orar este considerat i care
a
s
a
a s
sunt regulile privind ora de var. Punctul 3 ridic, pe lng problemele coa
a
a a
mune cu cele legate de punctul 2, 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;
a
a s
de asemenea, pentru calcule exacte ale duratelor, sunt necesare informatii cu
orare distincte, aproape orice format util retea e transmite direct ora
n
UTC sau TAI, e transmite sucient informatie pentru ca receptorul s poat
a
a
a
calcula uor ora UTC.
s
7.3.3.1. Formatul utilizat de pota electronic
s
a
Pentru pota electronic ( 11.1), reprezentarea datei se face ca text
s
a
i contine, ordine:
s
n
optional ziua din sptmn, ca prescurtare de 3 litere din limba englez),
a a a a
a
ziua, ca numr
a ntre 1 i 31,
s
luna, ca ir de trei litere, prescurtare din englez,
s
a
anul, ca ir de 4 cifre,
s
ora, totdeauna ca 2 cifre,
ntre 00 i 23,
s
minutul, ca dou cifre,
a
ntre 00 i 59,
s
optional, secunda, ca dou cifre
a
ntre 00 i 60,
s
diferenta dintre ora legal conform creia a fost scris data i ora UTC;
a
a
a
s
aceasta este dat ca 4 cifre, 2 pentru numrul de ore i 2 pentru numrul
a
a
s
a
de minute, cele patru cifre ind precedate de semnul + sau . Componentele datei sunt separate printr-un amestec de virgule, spatii i carac s
tere dou puncte.
a
De exemplu, data:
a
Cele trei componente sunt separate prin liniute (ISO-8601 permite i alipirea
s
lor):
227
2007-10-28
as
lui orar. Ora, minutul i secunda sunt separate prin dou puncte, fractiunile
s
a
a
n
s
ani conform regulilor obinuite. De fapt, numrul dat ca dat nu este exs
a
a
act numrul de secunde scurse de la 1 ianuarie 1970, ci difer de acesta prin
a
a
numrul de secunde de corectie adugate pentru mentinerea sincronism a
a
n
UTC cu rotatia Pmntului. De aceea, ,,timpul unix are salturi
a a
napoi de cte
a
o secund la ecare introducere a unei astfel de secunde de corectie. Timpul
a
a
reprezentat pe 63 de biti (plus un bit rezervat), cu valoarea 262 corespunznd
a
datei de 1 ianuarie 1970 ora 0 TAI. Intervalul de timp reprezentabil este imens,
de ordinul a 1011 ani.
a
a
standardul prevede a dou cmpuri de cte 32 de biti (total 128 de biti),
nc
a a
a
7.4. Recodicri
a
Este necesar uneori s codicm un ir mai mult sau mai putin arbia
a
s
trar de octeti sub forma unui ir de caractere supus unor restrictii. Astfel de
situatii apar:
ecrui rnd, s nu aib rnduri prea lungi, etc. Pe de alt parte, ierele
a
a
a
a a
a
s
ataate pot iere binare cu continut arbitrar.
s
s
s
arbitrar de octeti, de exemplu la stocarea iere text a unor chei de
n s
criptare, semnturi electronice, etc.
a
limbaje de programare, 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).
s
astfel de situatii, este necesar s se codice un ir arbitrar de octeti
In
a
s
a
imale (09) i literele AF.
s
Exemplu: irul de octeti 120, 0, 23, 45, 20 se scrie: 7800172D14.
s
229
a
cifrele i caracterele +, / i =.
s
s
Codicarea se face modul urmtor:
n
a
1. Sirul initial de octeti se completeaz la un multiplu de 3 octeti prin
a
a
a
a
a
ntre 0 i 63,
s
considernd primul bit din ir ca ind cel mai semnicativ.
a
s
5. Fiecare numr obtinut la pasul anterior se reprezint printr-un caracter.
a
a
Cele 64 de valori posibile, de la 0 la 63, se reprezint ca: litere mari (0A,
a
25Z), litere mici (26a, 51z), cifre (520, 619) i caracterele + i
s
s
/ (62+, 63/). Dac o valoare 0 provine din biti 0 proveniti integral
a
a
011110 000000 000000 010111 001011 010001 010000 000000
rezultnd irul de numere ,, baza 64: 30, 0, 0, 23, 11, 17, 16, 0, care se
a
s
n
codic eAAXLRQ=
a
n
n
majoritatea octetilor sau caracterelor din textul de recodicat sunt codurile
a
n
forma recodicat.
a
Recodicarea se face astfel. Se distinge un caracter alfabetul
n
destinatie, caracter ce este denumit caracter de evitare (enlg. escape char
acter ).
Orice caracter din alfabetul surs care se regsete alfabetul destinatie
a
a s n
7.4. Recodificari
230
a
prin caracterul procent (%) urmat de dou cifre hexa reprezentnd vala
a
oarea caracterului respectiv. De notat c aceste coduri sunt cadrul
a
n
codicrii UTF-8; ca urmare, o pagin cu numele ir ar avea un URL
a
a
s
de forma
http://example.com/%C8%98ir
Capitolul 8
a n
sistemului de operare BSD (sistem de tip UNIX, dezvoltat la Universitatea
Berkley) de aici denumirea de socket BSD. Interfata socket este disponibil
a
aproape toate sistemele de operare actuale.
n
Termenul socket se utilizeaz att pentru a numi ansamblul functiilor
a a
a s
a
al unei conexiuni deschise cadrul retelei.
n
proces
proces
utilizator
utilizator
socket
nucleul S.O.
nucleul S.O.
legtur logic
a a
a
retea
i gura 8.1):
s
Pe ecare calculator ruleaz mai multe procese i ecare proces poate avea
a
s
mai multe ci de comunicatie deschise. Prin urmare, pe un calculator
a
s
local (prin intermediul apelurilor din familia socket), capetele locale ale
conexiunilor deschise sunt numite socket-uri i sunt identicate prin nus
mere
ntregi, unice cadrul unui proces la ecare moment de timp.
n
Fiecare entitate care comunic cadrul retelei este identicat printr-o
a n
adres unic. O adresa este asociat de fapt unui socket. Adresa este
a
a
a
format conform regulilor protocolului de retea utilizat.
a
a
elului conexiune ct i conform modelului cu datagrame.
a s
Functiile sistem oferite permit stabilirea comunicatiei prin diferite pro
tocoale (de exemplu, IPv4, IPv6, IPX), dar au aceeai sintax de apel
s
a
independent de protocolul dorit.
printr-o adres, iar prin server elegem procesul care ateapt mod pasiv
a
nt
s
a n
conectarea unui client.
Vom da cele ce urmeaz o scurt descriere a operatiilor pe care
n
a
a
a
i
s nchiderea conexiunii.
O descriere mai amnuntit a functiilor sistem apelate i a parametrilor
a
a
s
mai des utilizati este fcut separat ( 8.1.3), iar pentru detalii suplimentare
a a
se recomand citirea paginilor corespunztoare din documentatia on-line.
a
a
233
s
connect() pentru deschiderea efectiv a conexiunii.
a
s
a
crearea acestui socket, serverul trebuie s cear sistemului de operare stabilirea
a
a
adresei la care serverul ateapt cereri de conectare (desigur, acea parte din
s
a
adres care identic maina serverului nu este la alegerea procesului server)
a
a
s
i apoi cere efectiv
s
nceperea ateptrii clientilor. Functiile apelate aceast
s
a
n
a
faz sunt, ordinea care trebuie apelate: socket() pentru crearea socketa
n
n
ului, bind() pentru stabilirea adresei i listen() pentru
s
nceperea ateptrii
s
a
clientilor.
a
comunica efectiv cu acel client.
a
O dat deschis conexiunea, clientul poate trimite iruri de octeti
a
a
s
ctre server i invers, serverul poate trimite iruri de octeti ctre client. 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 cellalt sens).
a
Pe ecare sens al conexiunii, se poate transmite un ir arbitrar de
s
octeti. Octetii trimii de ctre unul dintre procese spre cellalt sunt plasati
s
a
a
ntr-o coad, transferati prin retea la cellalt capt i cititi de ctre procesul
a
a
a s
a
de acolo. Comportamentul acesta este similar cu cel al unui pipe UNIX.
Trimiterea datelor se face prin apelul functiei send() (sau, cu functio
nalitate mai redus, write()). Apelul acestor functii plaseaz datele coad
a
a
n
a
spre a transmise, dar nu ateapt transmiterea lor efectiv (returneaz, de
s
a
a
a
principiu, imediat controlul ctre procesul apelant). Dac dimensiunea datelor
a
a
din coad este mai mare dect o anumit valoare prag, (aleas de sistemele
a
a
a
a
de operare de pe cele dou maini), apelul send() se blocheaz, returnnd
a
s
a
a
controlul procesului apelant abia dup ce partenerul de comunicatie citete
a
s
date din coad, ducnd la scderea dimensiunii datelor din coad sub valoarea
a
a
a
a
prag.
Receptionarea datelor trimise de ctre partenerul de comunicatie se
face prin intermediul apelului sistem recv() (cu functionalitate mai redus
a
se poate utiliza read()). Aceste functii returneaz procesului apelant datele
a
deja sosite pe calculatorul receptor i le elimin din coad. cazul care nu
s
a
a In
n
sunt a date disponibile, ele ateapt sosirea a cel putin un octet.
nc
s
a
s
(sau stiintarea receptorului, printr-un cod de eroare, asupra cderii conen
a
xiunii), ordinea care au fost trimii. Nu se pstreaz a demarcarea
n
n
s
a
a ns
n
posibil ca emittorul s trimit, dou apeluri succesive, irurile abc i def,
a
a
a n
a
s
s
iar receptorul s primeasc, apeluri recv() succesive, irurile ab, cde i f.
a
a n
s
s
8.1.1.4.
Inchiderea conexiunii
shutdown()
nchide, la captul local al conexiunii, sensul de comunicatie
a
235
Terminarea unui proces are efect identic cu un apel close() pentru toate
socket-urile existente acel moment posesia acelui proces.
n
n
Dac captul de emisie al unui sens de comunicatie a fost
a
a
nchis,
receptorul poate citi continuare datele existente acel moment coad,
n
n
n
a
dup care un eventual apel recv() va semnaliza apelantului faptul c a fost
a
a
nchis conexiunea.
a
Dac captul de receptie al unui sens a fost
a
a
dent una de cealalt i ecare datagram are o adres surs, o adres destinatie
as
a
a
a
a
a
unui socket, se poate cere sistemului de operare s asocieze socket-ului o ana
umit adres sau se poate lsa ca sistemul de operare s-i atribuie o adres
a
a
a
a
a
liber arbitrar. Crearea unui socket se face prin apelul functiei socket(), iar
a
a
a
surs adresa socket-ului i ca adres destinatia i continut util valorile date ca
a
s
a
s
a
datagrame i orictor destinatari.
s
a
Datagramele emise sunt transmise ctre sistemul de operare al desa
tinatarului, unde sunt memorate buer-ele sistemului. Destinatarul poate
n
citi o datagram apelnd functia recvfrom(). Aceast functie ia urmtoarea
a
a
a
datagram adresat socket-ului dat ca parametru la recvfrom() i o transfer
a
a
s
a
din buer-ele sistemului local memoria procesului apelant. Functia ofer
n
a
apelantului continutul datagramei (datele utile) i, separat, adresa expeditoru
s
lui datagramei. ciuda numelui, recvfrom() nu poate instruit s ia
In
a a
n
considerare doar datagramele expediate de la o anumit adres.
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. Mai mult, exist posibilitatea (e drept,
n
a
rar) ca o datagam s e duplicat (s ajung dou copii la destinatar) i
a
a a
a a
a
a
s
este posibil ca dou sau mai multe datagrame adresate aceluiai destinatar s
a
s
a
ajung la destinatie alt ordine dect cea care au fost emise. Dac astfel
a
n a
a
n
a
de situatii sunt inadmisibile pentru aplicatie, atunci protocolul de comunicatie
close().
mod curent,
In
ntr-o comunicatie prin datagrame, unul dintre pro
cese are rol de client, sensul c trimite cereri, iar cellalt actioneaz ca
n
a
a
a
server, sensul c prelucreaz cererile clientului i trimite
n
a
a
s
napoi clientului
rspunsurile la cereri.
a
Intr-un astfel de scenariu, serverul creaz un socket
a
cruia asociaz o adres prestabilit, dup care ateapt cereri, apelnd
a
i
a
a
a
a
s
a
a
mod repetat recvfrom(). Clientul creaz un socket, cruia nu-i asociaz
n
a
a
a
o adres (nu execut bind()). Clientul trimite apoi cererea sub forma unei
a
a
datagrame de pe socket-ul creat. La trimiterea primei datagrame, sistemul
de operare d o adres socket-ului; datagrama emis poart ca adres surs
a
a
a
a
a
a
acest adres. La primirea unei datagrame, serverul recupereaz datele utile
a
a
a
i adresa surs, proceseaz cererea i trimite rspunsul ctre adresa surs a
s
a
a
s
a
a
a
cererii. acest fel, rspunsul este adresat exact socket-ului de pe care clienIn
a
tul a trimis cererea. Clientul obtine rspunsul executnd recvfrom() asupra
a
a
socket-ului de pe care a expediat cererea.
Cu privire la tratarea datagramelor pierdute, un caz simplu este acela
care clientul pune doar
n
ntrebri (interogri) serverului, iar procesarea ina
a
terogrii nu modic nici un fel starea serverului. Un exemplu tipic acest
a
a n
n
sens este protocolul DNS ( 10.4). acest caz, datagrama cerere contine inIn
a
a
a s
rspunsul la interogare. Serverul ia ( mod repetat) cte o cerere, calculeaz
a
n
a
a
rspunsul i trimite o
a
s
napoi o datagram cu cererea primit i rspunsul la
a
as a
cerere. Clientul trimite cererile sale i ateapt rspunsurile. Deoarece ecare
s s
a a
rspuns contine el i cererea, clientul poate identica ecare rspuns la ce
a
n s
a
cerere corespunde, chiar i cazul inversrii ordinii datagramelor. Dac la o
i
s n
a
a
cerere nu primete rspuns
s a
ntr-un anumit interval de timp, clientul repet cera
erea; deoarece procesarea unei cereri nu modic starea serverului, duplicarea
a
cererii de ctre retea sau repetarea cererii de ctre client ca urmare a pierderii
a
237
a
s
a
a
sunt:
type: desemneaz tipul de servicii dorite:
a
SOCK STREAM:conexiune punct la punct, ux de date bidirectional
s
SOCK DGRAM:datagrame, att punct la punct ct i difuziune; transa
a s
misia este garantat a fr erori, dar livrarea nu este sigura i
a
aa
s
nici ordinea datagramelor garantata.
SOCK RAW:acces la protocoale de vel cobort; este de exemplu utilizat
a
de ctre comanda ping pentru comunicatie prin protocolul ICMP.
a
a
proto family identic tipul de retea cu care se lucreaz (IP, IPX, etc).
Valori posibile:
PF INET:protocol Internet, versiunea 4 (IPv4)
PF INET6:protocol Internet, versiunea 6 (IPv6)
PF UNIX:comunicatie local pe o main UNIX.
a
s a
protocol selecteaz protocolul particular de utilizat. Acest parametru
a
este util dac pentru un tip de retea dat i pentru un tip de serviciu
a
s
xat exist mai multe protocoale utilizabile. Valoarea 0 desemneaz
a
a
protocolul implicit pentru tipul de retea i tipul de serviciu alese.
s
8.1.3.2. Functia connect()
la serverul identicat prin adres dat prin parametrii addr i addr len.
a
a
s
La adresa respectiv trebuie s existe deja un server care s atepte conexiuni
a
a
a s
(s fost deja executat apelul listen() asupra socket-ului serverului).
a
Adresa trebuie plasat,
a nainte de apelul connect(),
ntr-o structur
a
avnd un anumit format; continutul acestei structuri va descris 8.1.3.6.
a
n
Adresa memorie a acestei structuri trebuie dat ca parametrul addr, iar
n
a
lungimea structurii de adres trebuie dat ca parametrul addr len. Motivul
a
a
acestei complicatii este legat de faptul c functia connect() trebuie s poat
a
a
lucra cu formate diferite de adres, pentru diferite protocoale, iar unele proa
tocoale au adrese de lungime variabil.
a
Functia connect() returneaz 0 caz de succes i 1 caz de
a n
s
n
eroare. Eroarea survenit poate constatat e vericnd valoarea variabilei
a
a
a
globale errno, e apelnd functia perror() imediat dup functia sistem ce a
a
ampinat probleme. Eroarea cea mai frecvent este lipsa unui server care s
nt
a
a
asculte la adresa specicat.
a
8.1.3.3. Functia bind()
n
socket-ului identicat prin identicatorul sd. Aceast functie se apeleaz
a
a n
mod normal dintr-un proces server, pentru a pregti un socket stream de
a
ateptare sau un socket dgram pe care se ateapt cereri de la clienti.
s
s
a
s
poate e una dintre adresele mainii locale, e valoarea special INADDR_ANY
s
a
(pentru IPv4) sau IN6ADDR_ANY_INIT (pentru IPv6). primul caz, socket-ul
In
va primi doar cereri de conexiune (sau, respectiv, pachete) adresate adresei IP
date socket-ului, i nu i cele adresate altora dintre adresele mainii server.
s
s
s
Exemplul 8.1: S presupunem c maina server are adresele 193.226.40.130
a
a
s
i 127.0.0.1. Dac la apelul functiei bind() se d adresa IP 127.0.0.1, atunci
s
a
a
socket-ul respectiv va primi doar cereri de conectare destinate adresei IP
127.0.0.1, nu i adresei 193.226.40.130. Dimpotriv, dac adresa acordat
s
a
a
a
prin bind() este INADDR_ANY, atunci socket-ul respectiv va accepta cereri de
conectare adresate oricreia dintre adresele mainii locale, adic att adresei
a
s
a a
193.226.40.130 ct i adresei 127.0.0.1.
a s
Adresa atribuit prin functia bind() trebuie s e liber acel moa
a
a n
ment. Dac momentul apelului bind() exist un alt socket de acelai tip
a n
a
s
avnd aceeai adres, apelul bind() eueaza.
a
s
a
s
239
a
a
cruia nu i s-a atribuit a o adres. Aceasta
a
nc
a
nseamn c functia bind()
a a
accept() i nici pentru un socket asupra cruia s-a apelat prealabil vreuna
s
a
n
dintre functiile connect(), listen() sau sendto() aceste functii avnd ca
a
efect atribuirea unei adrese libere aleatoare.
Functia returneaz 0 caz de succes i 1 caz de eroare. Eroarea
a n
s
n
cea mai frecvent este c adresa dorit este deja ocupat.
a
a
a
a
8.1.3.4. Functia listen()
a
de conexiune pe adresa socket-ului sd. Dac socketului respectiv nu i s-a
a
atribuit a o adres (printr-un apel bind() anterior), functia listen()
nc
a
i
atribuie o adres aleas aleator.
a
a
Parametrul backlog xeaz dimensiunea cozii de ateptare aca
s
n
ceptarea conexiunilor. Anume, vor putea exista backlog clienti care au exe
cutat connect() fr ca serverul s creat a pentru ei socket-uri de coneaa
a
nc
xiune prin apeluri accept(). De notat c nu exist nici o limitare a numrului
a
a
a
de clienti conectati, preluati deja prin apelul accept().
s
a a a
urmtorului client.
a
Functia returneaz identicatorul socket-ului de conexiune creat.
a
Dac procesul server nu dorete s ae adresa clientului, va da valori
a
s
a
NULL parametrilor addr i addrlen. Dac procesul server dorete s ae adresa
s
a
s a
clientului, atunci va trebui s aloce spatiu pentru o structur pentru memoa
a
rarea adresei clientului, s pun adresa structurii respective parametrul
a
a
n
addr, 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.
n
acest caz, la revenirea din apelul accept(), procesul server va gsi strucIn
a n
tura de adres adresa socket-ului client i variabila
a
s n
ntreag a crui adres
a
a
a
a fost dat parametrul adrlen va gsi dimensiunea efectiv utilizat de sisa n
a
a
temul de operare pentru a scrie adresa clientului.
8.1.3.6. Formatul adreselor
Pentru functiile socket ce primesc de la apelant (ca parametru) o
adres din retea (bind(), connect() i sendto()), precum i pentru cele ce rea
s
s
turneaz apelantului adrese de retea (accept(), recvfrom(), getsockname()
a
a
a
s
a
independent de tipul de retea (i, consecint, de structura adresei), functiile
s n
a
a
retea.
a
s
sendto()) au doi parametri: un pointer ctre structura de adres i
a
a s
un
ntreg reprezentnd dimensiunea acestei structuri;
a
functiile care furnizeaz apelantului o adres (accept(), recvfrom(),
a
a
getsockname() i getpeername()) primesc doi parametri: un pointer
s
ctre structura de adres i un pointer ctre o variabil de tip
a
as
a
a
ntreg pe
care apelantul trebuie s-o initializeze,
n
timpul apelului, dimensiunea utilizat efectiv de astuctura de adres.
a
a
ambele cazuri, parametrul pointer ctre structura de adres este declarat
In
a
a
ca ind de tip struct sockaddr*. La apelul acestor functii este necesar con
a
versia a pointer-ului ctre structura de adres de la pointer-ul specic tipului
a
a
de retea la struct sockaddr*.
241
aa
n
a
cmp, s_addr, de tip
a
ntreg pe 4 octeti ordine retea.
n
s
a
aa
n
a
cmp, s6_addr, de tip tablou de 16 octeti.
a
a
(vezi 10.4) se face cu ajutorul functiei
a
care cele mai importante sunt:
int h addrtype:tipul adresei, AF_INET sau AF_INET6;
s
La apelul connect(), sistemul de operare de pe maina client trimite
s
mainii server o cerere de conectare. La primirea cererii de conectare, sistemul
s
de operare de pe maina server actioneaz astfel:
s
a
dac adresa din cerere nu corespunde unui socket pentru care s-a efectuat
a
deja apelul listen(), refuz conectarea;
a
dac adresa corespunde unui socket pentru care s-a efectuat listen(),
a
a prin accept(). Dac plasarea reuete (coada ind mai mic dect
nc
a
s s
a
a
valoarea parametrului backlog din apelul listen()), sistemul de operare trimite sistemului de operare de pe maina client un mesaj de
s
acceptare; caz contrar trimite un mesaj de refuz.
n
Apelul connect() revine procesul client momentul sosirii acceptului sau
n
n
refuzului de la sistemul de operare de pe maina server. Revenirea din apelul
s
connect() nu este deci conditionat de apelul accept() al procesului server.
a
Apelul accept() preia un client din coada descris mai sus. Dac
a
a
coada este vid momentul apelului, functia ateapt sosirea unui client.
a n
s
a
Dac coada nu este vid, apelul accept() returneaz imediat.
a
a
a
Parametrul backlog al apelului listen() se refer la dimensiunea
a
cozii de clienti conectati (prin connect()) i a nepreluati prin accept(),
s nc
s
int getsockname(int sd, struct sockaddr *name, socklen_t *namelen);
int getpeername(int sd, struct sockaddr *name, socklen_t *namelen);
a
Functia getpeername(), apelat pentru un socket de tip conexiune deja conec
a
tat, furnizeaz adresa partenerului de comunicatie.
a
a
a
a
cre acest scop un socket de ateptare, dar numrul portul pe care
nd n
s
a
ateapt conexiunile nu este prestabilit ci este transmis, pe alt cale, viitorilor
s
a
a
acest caz, procesul server creaz un socket (apelnd socket()),
client. In
a
a
243
s
Apelurile sistem send() i recv() sunt utilizate faza de comunis
n
catie pentru socket-uri de tip conexiune. Descriem continuare utilizarea
n
acestor functii considernd 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.
s
n
De notat a c o conexiune socket stream este bidirectional i comunicarea
ns a
as
cele dou sensuri se desfoar independent i prin aceleai mecanisme.
n
a
as a
s
s
Sintaxa functiilor este:
ssize_t send(int sd, const void *buf, size_t len, int flags);
ssize_t recv(int sd, void *buf, size_t len, int flags);
a
un numr de len octeti din variabila a crui adres este indicat de pointer-ul
a
a
a
a
buf. Functia returneaz controlul dup plasarea datelor de transmis buer
a
a
n
ele sistemului de operare al mainii locale. Valoarea returnat de functia
s
a
send() este numrul de octeti scrii efectiv, sau 1 caz de eroare. Datele
a
s
n
plasate buer-e prin apelul send() urmeaz a trimise spre receptor fr
n
a
aa
alte actiuni din partea emittorului.
a
modul normal de lucru, dac nu exist spatiu sucient buer-ele
In
a
a
n
sistemului de operare, functia send() ateapt ca aceste buer-e s se elibereze
s
a
a
(prin transmiterea efectiv a datelor ctre sistemul de operare al receptorului
a
a
i citirea lor de ctre procesul receptor). Aceast ateptare are ca rol frnarea
s
a
a s
a
procesului emittor dac acesta produce date la un debit mai mare dect cel
a
a
a
cu care este capabil reteaua s le transmit sau procesul receptor s le preia.
a
a
a
a
Prin plasarea valorii MSG_DONTWAIT parametrul flags, acest comportament
n
este modicat. Astfel, acest caz, dac nu exist sucient spatiu buer-ele
n
a
a
n
sistemului de operare, functia send() scrie doar o parte din datele furnizate
s
In
sarcina procesului emittor s apeleze din nou, la un moment ulterior, functia
a
a
a s
Deoarece functia send() returneaz
s
socket-ului corespunztor conexiunii, adresa unei zone de memorie unde s
a
a
plaseze datele citite i numrul de octeti de citit.
s
a
a
a
n
este mai mic, doar octetii disponibili acel moment vor transferati. Dac
a
momentul apelului nu exist nici un octet disponibil buer-ele sistemului
n
a
n
de operare local, functia recv() ateapt sosirea a cel putin un octet. Functia
s
a
Comportamentul descris mai sus poate modicat prin plasarea uneia din urmtoarele valori parametrul flags:
a
n
n
n
s
a a
s
a
len=3 i flags=0, s primeasc ab, cd i ef. Singurul lucru garantat este c
s
a
a
s
a
prin concatenarea tuturor fragmentelor trimise de emittor se obtine acelai
a
s
ir de octeti ca i prin concatenarea tuturor fragmentelor primite de receptor.
s
s
cazul
In
nchiderii conexiunii de ctre emittor, apelurile recv() efeca
a
tuate de procesul receptor vor citi mai ai datele rmase buer-e, iar
nt
a
n
245
dup epuizarea acestora vor returna valoarea 0. Prin urmare, functia recv()
a
s
int shutdown(int sd, int how);
int close(int sd);
Functia shutdown()
socket sd, conform valorii parametrului how: SHUT_WR, SHUT_RD sau respectiv
SHUT_RDWR. Utilitatea principal a functiei este
a
a
conectat acel moment,
n
nchide ambele sensuri de comunicatie. Dup apelul
a
close(), identicatorul de socket este eliberat i poate utilizat ulterior de
s
ctre sistemul de operare pentru a identica socket-uri sau alte obiecte create
a
ulterior. Apelul close() este necesar pentru a elibera resursele ocupate de
socket. Poate efectuat oricnd asupra oricrui tip de socket.
a
a
Terminarea unui proces, indiferent de modul de terminare, are ca
efect i distrugerea tuturor socket-urilor existente acel moment, printr-un
s
n
mecanism identic cu cte un apel close() pentru ecare socket.
a
8.1.3.11. Functiile sendto() i recvfrom()
s
ssize_t sendto(int sd, const void *buf, size_t len, int flags,
const struct sockaddr *to, socklen_t tolen);
ssize_t recvfrom(int sd, void *buf, size_t len, int flags,
struct sockaddr *from, socklen_t *fromlen);
a
reprezint :
a
sd: socket-ul de pe care se transmite datagrama, adic a crui adres va
a
a
a
utilizat ca adres surs a datagramei;
a
a
a
a
lungimea datelor utile. Datele utile sunt un ir arbitrar de octeti.
s
a
a
a
lui len) caz de succes i 1 caz de eroare. Functia returneaz conn
s
n
a
trolul apelantului
nainte ca pachetul s e livrat destinatarului i ca urmare
a
s
eventuala pierdere a pachetului nu poate raportat apelantului.
a
Functia recvfrom() citete din buerele sistemului de operare local
s
urmtoarea datagram adresat socket-ului dat ca parametru. Dac nu exist
a
a
a
a
a
nici o datagram, functia ateapt sosirea urmtoarei datagrame, cu exceptia
a
s
a
a
n
returneaz imediat valoarea 1 i seteaz errno la valoarea EAGAIN.
a
s
a
Datagrama este citit zona de memorie pointat de parametrul
a n
a
buf i a crei dimensiune este dat variabila len. Functia recvfrom()
s
a
a n
a
a
a
a
n
dimensiunea utilizat efectiv pentru scrierea adresei emittorului.
a
a
8.1.4. Exemple
8.1.4.1. Comunicare prin conexiune
Dm mai jos textul surs ( C pentru Linux) pentru un client care se
a
a n
conecteaz la un server TCP/IPv4 specicat prin numele mainii i numrul
a
s
s
a
portului TCP (date ca argumente linia de comand), trimite un ir de
n
a i
s
caractere xat (abcd), dup care citete i aeaz tot ce trimite server-ul.
a
s s
s a
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
int main(int argc, char* argv[])
{
247
249
write(1,buf,r);
}
if(r==-1){
perror("recv()");
return 1;
}
send(sd_c, "xyz", 3, 0);
close(sd_c);
return 0;
}
a
s s
a
o datagram ca rspuns, a crei continut aeaz.
a
a
a
l s a
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <arpa/inet.h>
int main(int argc, char* argv[])
{
int port, sd, r;
struct hostent* hh;
struct sockaddr_in adr;
socklen_t adr_size;
char buf[100];
if(argc!=3){
fprintf(stderr, "Utilizare: cli adresa port\n");
return 1;
}
memset(&adr, 0, sizeof(adr));
adr.sin_family = AF_INET;
if(1!=sscanf(argv[2], "%d", &port)){
fprintf(stderr, "numarul de port trebuie sa fie un numar\n");
return 1;
}
adr.sin_port = htons(port);
hh=gethostbyname(argv[1]);
if(hh==0 || hh->h_addrtype!=AF_INET || hh->h_length<=0){
250
napoi, la adresa de la
care a sosit datagrama de la client, o datagram continnd irul de 3 octeti
a
a
s
xyz.
#include
#include
#include
#include
#include
#include
#include
<sys/socket.h>
<netinet/in.h>
<arpa/inet.h>
<netdb.h>
<stdio.h>
<unistd.h>
<string.h>
251
Tip msg;
...
send(sd, &msg, sizeof(msg), 0);
i receptia prin
s
Tip msg;
...
recv(sd, &msg, sizeof(msg), MSG_WAITALL);
unde Tip este un tip de date oarecare declarat identic ambele programe
n
(emittor i receptor).
a
s
Exist a cteva motive pentru care o astfel de abordare nu este,
a ns a
n
general, acceptabil. Vom descrie continuare problemele legate de ecare
a
n
tip de date parte, precum i cteva idei privind rezolvarea lor.
n
s a
8.2.1.1. Tipuri
ntregi
La transmiterea variabilelor
ntregi apar dou probleme de portabila
itate:
dimensiunea unui
ntreg nu este, general, standardizat exact (
n
a
n
C/C++ un int poate avea 16, 32 sau 64 de biti);
n
arhitectura calculatorului.
Dac scriem un program pentru un anumit tip de calculatoare i
a
s
pentru un anumit compilator, pentru care tim exact dimensiunea unui int i
s
s
ordinea octetilor, putem transmite i receptiona date prin secvente de tipul:
int a;
...
send(sd, &a, sizeof(a), 0);
253
pentru emittor i
a
s
int a;
...
recv(sd, &a, sizeof(a), MSG_WAITALL);
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;
s
functii de conversie
s
to network, short, respectiv host to network, long), pentru conversia de
la format local la format big endian (numit i format retea), i ntohs()
s
s
i ntohl() pentru conversia sens invers. Variantele cu s (htons() i
s
n
s
ntohs()) convertesc
ntregi de 16 biti (de tip uint16_t, iar cele cu l
convertesc
ntregi de 32 de biti (uint32_t).
uint32_t a;
...
recv(sd, &a, sizeof(a), MSG_WAITALL);
a=ntohl(a);
a
ntreg reprezentat pe 32 de biti format big endian.
n
s
Transmiterea sau memorarea unui tablou necesit transmiterea (rea
spectiv memorarea),
ntr-un fel sau altul, a numrului de elemente din tablou.
a
Dou metode sunt frecvent utilizate acest scop: transmiterea prealaa
n
n
bil a numrului de elemente i transmiterea unui element cu valoare speciale
a
s
(terminator) dup ultimul element.
a
Pe lng numrul de elemente efective ale tabloului este necesar
a a
a
a
cunoaterea numrului de elemente alocate. La reprezentarea memorie sau
s
a
n
iere pe disc, sunt utilizate frecvent tablouri de dimensiune xat la comn s
a
pilare. Avantajul dimensiunii xe este c variabilele situate dup tabloul rea
a
spectiv se pot plasa la adrese xe i pot accesate direct; dezavantajul este
s
un consum sporit de memorie i o limit mai mic a numrului de obiecte ce
s
a
a
a
pot puse tablou.
n
La transmiterea tablourilor prin conexiuni retea, de regul numrul
n
a
a
de elemente transmise este egal cu numrul de elemente existente mod real,
a
n
plus elementul terminator (dac este adoptat varianta cu terminator). Nu
a
a
sunt utilizate tablouri de lungime x deoarece datele situate dup tablou
a
a
oricum nu pot accesate direct.
cazul reprezentrii cu numr de elemente, receptorul citete ai
In
a
a
s nt
numrul de elemente, dup care aloc spatiu (sau veric dac spatiul aloa
a
a
a
a
n
a
aloce spatiu pentru tablou i s copieze spatiul nou alocat elementele citite,
s a
n
a
irului, urmat de irul propriu-zis (reprezentare diferit deci de reprezentarea
s
s
a
uzual memorie, unde irul se termin cu un caracter nul). Descriem
a n
s
a
n
continuare emittorul:
a
char* s;
uint16_t l;
...
l=htons(strlen(s));
send(sd, &l, 2, 0);
send(sd, s, strlen(s), 0);
i receptorul:
s
255
char* s;
uint16_t l;
if(2==recv(sd, &l, 2, MSG_WAITALL) &&
0!=(s=new char[l=ntohs(l)+1]) &&
l==recv(sd, s, l, MSG_WAITALL)){
s[l]=0;
// sir citit cu succes
} else {
// tratare eroare
}
Receptorul:
char s[500];
int dim_alloc=500, pos, ret;
while(pos<dim_alloc-1 &&
1==(ret=recv(sd, s+pos, 1, 0)) &&
s[pos++]!=0) {}
if(ret==1 && s[pos-1]==0){
// sir citit cu succes
} else {
// tratare eroare
}
privind alinierea
ntregilor. Din considerente legate de arhitectura magistralei
de date a calculatorului (detalii ce ies din cadrul cursului de fat), accesarea de
a
ctre procesor a unei variabile de tip
a
ntreg sau real a crui adres memorie
a
a n
nu este multiplu de un anumit numr de octeti este pentru unele procesoare
a
(
ntregi pe 1 octet). Compilatorul,
mpreun cu functiile de alocare dinamic
a
a
a memoriei, asigur alinierea recurgnd la urmtoarele metode:
a
a
a
adaug octeti nefolositi
a
ntre variabile,
adaug octeti nefolositi
a
tablou,
aloc variabilele de tip structur la adrese multiplu de o limea magisa
a
at
tralei.
Ca urmare, reprezentarea memorie a unei strcturi depinde de platn
form i, consecint, un fragment de cod de forma:
a s n
a
struct Msg {
char c;
uint32_t i;
};
Msg m;
...
m.i=htonl(m.i);
send(sd, &m, sizeof(m), 0);
at
a
corect duce la imposibilitatea accesrii variabilei sau doar la inecient i,
a
a
a s n
acest din urm caz, de optiunile de compilare, dimensiunea structurii Msg de
a
257
};
Msg m;
...
m.i=htonl(m.i);
send(sd, &m.c, 1, 0);
send(sd, &m.i, 4, 0);
8.2.1.4. Pointeri
Deoarece un pointer este o adres cadrul unui proces, transmiterea
a n
unui pointer ctre un alt proces este complet inutil.
a
a
s
se aplic i la obiectele transmise formate de tip text.
as
n
s
la ecare apel send() sau recv() programul trebuie s verice valoarea rea
turnat.
a
Un receptor robust trebuie s se comporte rezonabil la orice fel de
a
date trimise de partenerul de comunicatie, inclusiv cazul alcrii de ctre
n
nc a
a
acesta a standardului de reprezentare a datelor i inclusiv cazul care
s
n
n
emittorul
a
nchide conexiunea mijlocul transmiterii unei variabile.
n
Validitatea datelor trebuie vericat
a ntotdeauna dup citire. Dac
a
a
receptorul ateapt un
s
a
ntreg pozitiv, este necesar s se verice prin program
a
c numrul primit este
a
a
ntr-adevr pozitiv. Este de asemenea necesar s se
a
a
stabileasc i s se impun explicit nite limite maxime. Astfel, s presupunem
as a
a
s
a
c programul receptor primete un ir de
a
s
s
ntregi reprezentat prin lungimea, ca
numr de elemente, pe 32 de biti, urmat de elementele propriu-zise. Chiar
a
a
dac de principiu numrul de elemente ne ateptm s e
a
a
s
a a
ntre 1 i cteva sute,
s a
trebuie s ne asigurm c programul se comport rezonabil dac numrul de
a
a
a
a
a
a
elemente anuntat de emittor este 0, 2147483647 (adic 231 1) sau alte aseme
a
a
nea valori. Comportament rezonabil
nseamn e s e capabil s proceseze
a
a
a
corect datele, e s declare eroare i s
a
s a ncheie curat operatiile
ncepute.
Orice program care nu este robust este un risc de securitate.
s
n
de procesor, deoarece, ind functii sistem, necesit o comutare de drepturi
a
n
procesor, salvarea i restaurarea contextului apelului i o serie de vericri din
s
s
a
partea nucleului sistemului de operare; total, echivalentul ctorva sute de
n
a
instructiuni. Acest cost este independent de numrul de octeti transferati.
Este, prin urmare, ecient ca ecare apel send() sau recv() s transa
fere ct de multi octeti se poate. Un program care trimite date este bine s
a
a
pregteasc datele
a
a
ntr-o zon tampon local i s trimit totul printr-un sina
as a
a
gur apel send(). Un program care primete date este bine s cear (prin
s
a
a
recv()) cte un bloc mai mare de date i apoi s analizeze datele primite.
a
s
a
Acest mod de lucru se realizeaz cel mai bine prin intermediul unor functii de
a
bibliotec adecvate.
a
Descriem continuare functiile din biblioteca standard C utilizabile
n
acest scop. Biblioteca poate utilizat att pentru emisie i receptie printr-o
n
a a
s
i fgetc(). Fiecare dintre aceste functii extrage datele din zona tampon a
s
octeti pentru a satisface cererea, aceste functii apeleaz functia sistem read()
Pentru ecare din functiile de mai sus, dac datele de returnat aplicatiei se
gsesc deja zona tampon, costul executiei este de cteva instructiuni pena
n
a
de ori.
Exemplul 8.4: Fie urmtoarele fragmente de cod:
a
int sd;
char s[512];
int i,r;
...
while( ((r=recv(sd, s+i, 1, 0))==1 && s[i++]!=0 ) {}
259
i
s
FILE* f;
char s[512];
int i,r;
...
while( (r=fgetc(f))!=EOF && (s[i++]=r)!=0) {}
a
a
a
chiar dac s-a ajuns la nalul datelor; rezultatul true este garantat doar dup
a
a
o tentativ nereuit de-a citi dincolo de nalul datelor transmise.
a
s a
Pentru scriere, functiile de bibliotec corespunztoare sunt fwrite(),
a
a
fprintf(), fputs() i fputc(). Aceste functii scriu datele zona tampon
s
n
din structura FILE. Transmiterea efectiv pe conexiune (sau scrierea ier)
a
n s
se face automat la umplerea zonei tampon. Dac este necesar s ne asigurm
a
a
a
c datele au fost transmise efectiv (sau scrise ier), functia fflush()
a
n s
efectueaz acest lucru. Functia fclose() de asemenea trimite sau scrie ula
s
parametru este identicatorul de socket cruia trebuie s-i asocieze zona tama
a
pon (identicatorul returnat de functia socket() sau accept()). Al doilea
a
a
pentru citire sau pentru scriere; este de tip ir de caractere i poate avea vals
s
oarea "r" pentru citire sau "w" pentru scriere. Pentru un socket stream, cele
dou sensuri functionnd complet independent, aceluiai socket i se pot asocia
a
a
s
dou zone tampon (dou structuri FILE), cte una pentru ecare sens.
a
a
a
Functia fclose() scrie informatiile rmase zona tampon (dac
a
n
a
zona tampon a fost creat pentru sensul de scriere), elibereaz memoria aloa
a
cat zonei tampon i
a
s nchide conexiunea.
a
Dac serverul execut un apel recv() blocant de pe socket-ul unui
a
a
client, serverul va pus ateptare pn ce acel client va trimite date. Este
n s
a a
posibil ca utilizatorul ce comand acel client s stea 10 minute s se gndeasc.
a
a
a
a
a
Dac acest timp un alt client trimite o comand, serverul nu o va putea
a n
a
,,vedea ct timp este blocat ateptarea datelor de la primul client. Ca
a
n s
urmare, datele de la al doilea client vor atepta cel putin 10 minute pentru a
s
procesate.
Exist mai multe solutii la problema de mai sus:
a
a
agul MSG_DONTWAIT):
for(i=0 ; true ; i=(i+1)%nr_clienti){
r=recv(sd[i], buf, dim, MSG_DONTWAIT);
if(r>=0 || errno!=EAGAIN){
/* prelucreaza mesajul primit
sau eroarea aparuta */
}
}
acest fel, serverul nu este pus ateptare dac un client nu i-a trimis
In
n s
a
nimic. Dezavantajul solutiei este acela c, dac o perioad de timp
a
a
a
nici un client nu trimite nimic, atunci bucla se execut mod repetat,
a n
consumnd inutil timp de procesor.
a
Pentru evitarea inconvenientului solutiei anterioare, sistemele de operare
a
s
list de identicatori de socket i, optional, o durat, i pune procesul
a
s
a s
n
ateptare pn cnd e exist date disponibile pe vreunul din socket-ii
s
a a a
a
dati, e expir durata de timp specicat.
a
a
O abordare complet diferit este aceea de-a crea mai multe procese sau,
a
sistemele de operare moderne, mai multe re de executie (thread-uri)
n
a
un singur client. acest caz, procesul sau rul de executie poate executa
In
261
n
este nevoie de a urmri simultan evenimente pe mai multe canale. Alte situatii
a
sunt:
un client care trebuie s urmreasc simultan actiunile utilizatorului i
a
a
a
s
mesajele sosite de la server;
un server care poate trimite date cu debit mai mare dect capacitatea
a
retelei sau capacitatea de prelucrare a clientului; acest caz serverul
n
are de urmrit simultan, pe de o parte noi cereri ale clientilor, 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 acetia.
a
s
un server care trebuie s preia mesaje de la clientii conectati i, acelai
a
s n
s
timp, s poat accepta clienti noi.
a
a
acestora. Dac un client trimite cereri mai repede dect este capabil serverul
a
a
s-l serveasc, serverul trebuie s execute o parte din cereri, apoi s serveasc
a
a
a
a
a
cereri ale celorlalti clienti, apoi s revin la primul i s mai proceseze o parte
a
a
s a
din cereri i aa mai departe. 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 atepte la innit.
a s
Capitolul 9
locale. IEEE 802 denete de fapt o familie de tipuri de retele locale, dintre
s
Ethernet (denumirea standardului original, din care a fost dezvoltat standardul IEEE 802.3) sau retele UTP 10/100/1000 (UTP vine de la unshielded
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. cele ce urmeaz vom
In
a
trece revist aspectele mai importante.
n
a
Componentele din care se realizeaz o retea Ethernet sunt:
a
a
a
ntrun cablu, format din dou conductoare izolate
a
ntre ele, la care sunt
In
acest sistem, semnalul emis de orice interfat de retea este receptionat
a
statie
terminator
statie
cablu magistral
a
statie
statie
terminator
a
a
a
Dou interfete care emit simultan si bruiaz reciproc semnalele
a
a
emise; este necesar deci un mecanism de control al accesului la mediu
(vezi 4.2). IEEE 802.3 alege solutia cu detectarea coliziunilor i re
s
transmiterea pachetelor distruse de coliziuni.
Deoarece ecare interfat de retea ,,aude toate pachetele emise
a
a
a
a
a
zic sau adres MAC i ecare pachet poart adresa sursei i adresa
a
a
s
a
s
destinatiei.
a
de retea se numete port.
s
Oridecteori repetorul receptioneaz un pachet printr-unul dintre
a
a
porturile sale (printr-unul din cablurile de retea conectate la repetor),
l
retransmite (repet) pe toate celelalte cabluri de retea conectate (toate
a
arziere de ordinul duratei ctorva biti, orice caz mai putin dect
nt
a
n
a
durata unui pachet. Dac repetorul receptioneaz simultan pachete prin
a
a
dou sau mai multe porturi, consider c are loc o coliziune i semnala
a a
s
izeaz acest lucru emitnd, prin toate porturile, un semnal special de
a
a
anuntare a coliziunii. Acest semnal de coliziune se propag toat
a n
a
reteaua.
265
repetor
repetor
Figura 9.2: O retea construit din mai multe cabluri magistral interconectate prin
a
a
repetoare.
ntinse pe o distant
a
mai mare dect lungimea maxim a unui singur cablu (lungime limitat
a
a
a
de atenuarea semnalului pe cablu). O retea construit cu repetoare este
a
desenat gura 9.2.
a n
Odat cu ieftinirea repetoarelor, a devenit curent utilizarea cte
a
a
a
acest
unui cablu pentru conectarea ecrui calculator la un repetor. In
a
fel, un cablu de retea va avea legate la el doar dou echipamente: e
a
o interfat de retea i un repetor, e dou repetoare, e 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). De regul, cablul de legtur folosit aceste cazuri este o
a
a a
n
legtur duplex (vezi mai jos) i poate conecta doar dou echipamente.
a a
s
a
Repetoarele utilizate aceast situatie se mai numesc hub-uri (engl.
n
a
at
a
darde privind nivelul zic (debite diferite i mod semi-duplex sau duplex),
s
exist un protocol de negociere al modului de transmisie la nivel zic folosit;
a
acesta va studiat 9.1.1 cu ocazia prezentrii standardului 10 Base T.
n
a
a s
a a
sigur pentru legturi aeriene prin exteriorul cldirilor. Pentru astfel de scopa
a
a
uri standardul recomand utilizarea brelor optice.
a
Descriem continuare particularitile tuturor standardelor privin
at
toare la nivelul zic construit pe perechi torsadate.
10 Base T . Este o legtur duplex la 10 Mbit/s utiliznd dou perechi de
a a
a
a
conductoare torsadate, cte o perechie pentru ecare sens (4 conductoare
a
n
total). Denumirea standardului vine de la viteza de comunicatie (10 Mbit/s),
267
as
n
ican de telefonie, UTP Cat 3 (UTP de la Unshielded Twisted Pairs perechi
torsadate neecranate, iar Cat 3, de la Category 3 ).
Dm continuare, cu titlu informativ, cteva caracteristici:
a n
a
impedanta caracteristic: 100 ;
a
atenuare: maxim 11,5 dB pentru tot tronsonul de cablu (de fapt acesta
este parametrul care limiteaz lungimea unui tronson de cablu; dac
a
a
folosim un cablu cu atenuarea pe 200 m mai mic de 11,5 dB, putem
a
cabla un tronson de 200 m cu astfel de cablu fr probleme);
aa
timpul de propagare al semnalului: maxim 1000 ns. Standardul cere,
n
plus, ca viteza de propagare s e cel putin 0,585 c (adic cel putin de
a
emittor
a
receptor
alb-portocaliu
portocaliu
alb-verde
alb-verde
verde
alb-portocaliu
verde
1
2
3
4
5
6
7
8
portocaliu
1
2
3
4
5
6
7
8
emittor
a
1
2
3
4
5
6
7
8
emittor
a
receptor
receptor
1
2
3
4
5
6
7
8
alb-portocaliu
portocaliu
alb-verde
alb-portocaliu
portocaliu
alb-verde
verde
verde
receptor
conector
cu inversare
conector
normal
emittor
a
1
2
3
4
5
6
7
8
conector
cu inversare
alb-portocaliu
portocaliu
alb-verde
alb-verde
verde
alb-portocaliu
verde
portocaliu
1
2
3
4
5
6
7
8
receptor
emittor
a
conector
cu inversare
Figura 9.3: Conectarea a dou echipamente 10 Base T. Sunt date i culorile standard
a
s
pentru izolatiile conductoarelor din cablu.
269
a
descrise mai jos.
Transmiterea bitilor se face codicare Manchester. Cele dou
n
a
nivele de tensiune, la emittor, sunt unul
a
ntre 2,2 V i 2,8 V i cellalt
s
s
a
ntre
2,2 V i 2,8 V.
s
Pe lng transmiterea informatiei utile, standardul prevede emiterea
a a
s
de la cellalt capt va ,,deduce c legtura nu este valid. Starea legturii
a
a
a
a
a
a
este semnalat printr-un led; de asemenea, plcile de retea semnaleaz starea
a
a
a
legturii printr-un bit de control ce poate citit de driver-ul plcii de retea.
a
a
n
a
a
conform unuia din standardele descrise mai jos). Un echipament capabil de
comunicatie duplex i care este informat c echipamentul de la cellalt capt
s
a
a
a
este capabil de asemenea de comunicatie duplex va intra automat mod
n
duplex.
Un echipament vechi, datnd dinaintea acestei adugiri la standard,
a
a
va functiona numai regim semiduplex. Pstrarea compatibilitii este asig
n
a
at
urat de faptul c echipamentul vechi va elege pulsurile doar ca testarea
a
a
nt
liniei, iar pulsurile generate de el este putin probabil s coincid ampltor
a
a nt
a
cu pulsurile de negociere a modului de transmisie.
100 Base Tx. Este foarte asemntor cu 10 Base T, dar obtine o vitez de
a a
a
transmisie de 100 Mbit/s.
Cablul const tot din dou perechi de conductoare torsadate, a cu
a
a
ns
proprieti mai bune de transmitere a semnalului (obtine aceleai caracteristici
at
s
de atenuare pn la frecvente de 10 ori mai mari). Cablurile utilizate sunt cele
a a
nu testeaz i calitatea cablului; din acest motiv, dac legm 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 ), este necesar s congurm
n
a
a
manual viteza de 10 Mbit/s.
100 Base T4. Transmite 100 Mbit/s semi-duplex, utiliznd cabluri Cat 3.
a
Sunt necesare 4 perechi de conductoare (8 conductoare total).
n
Cte o pereche de conductoare este rezervat pentru ecare sens.
a
a
Celelalte dou perechi se utilizeaz sensul care are loc efectiv transmiterea
a
a n
n
informatiei (adic,
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
a s
a
a
(g. 9.4).
271
a
Se utilizeaz cte o pereche pentru ecare sens.
a a
Standardul permite dou tipuri de conectoare: conectoare trapea
zoidale cu 9 pini (identice cu cele utilizate pentru porturile seriale) sau nite
s
conectoare cu 8 pini asemntoare, dar incompatibile, cu RJ45.
a a
Datorit incompatibilitii cu 10 Base T i 100 Base Tx, putine
a
at
s
a
a
retele 10 Base T i 100 Base Tx, care nu utilizeaz deloc perechile albastru
s
a
i maro. Pentru 1000 Base T, varianta ,,semi-inversat nu este prevzut de
s
a a
standard; ca urmare unele echipamente functioneaz cu astfel de cabluri, iar
a
alte echipamente nu functioneaz.
Nr.
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
a
a
conectare din urmtoarele motive:
a
Rsucirea relor afecteaz transmiterea semnalului i sensibilitatea la
a
a
s
paraziti. Nerespectarea perechilor, adic utilizarea pentru un circuit
a
a dou re care nu sunt
a
mperecheate prin rsucire, duce la pierderi
a
aleatoare de pachete, cu att mai multe cu ct cablul este mai lung.
a
a
Este necesar un efort inutil de mare pentru ataarea corect a conectorului
s
a
la al doilea capt, dac ataarea primului s-a fcut nestandard. Amatorii
a
a
s
a
s se gndeasc la cazul cnd captul cablat nestandard se gsete
a
a
a
a
a
a s ntrun dulap
nghesuit, iar captul unde trebuie ataat cellalt conector este
a
s
a
cteva etaje mai sus sau mai jos. . .
a
Toate sistemele IEEE 802.3 ce utilizeaz perechi torsadate sunt proieca
tate pentru legturi interiorul unei singure cldiri. La cablurile trase prin
a
n
a
exterior, descrcrile electrice din atmosfer risc s induc cablul de retea
a a
a
a a
a n
tensiuni sucient de mari pentru a distruge plcile de retea sau hub-urile sau
a
n
realizarea nivelului zic.
Toate legturile pe br optic sunt punct-la-punct (nu magistral).
a
a
a
a
Exist totui un echipament, numit stea pasiv, la care se pot conecta mai
a
s
a
273
multe plci de retea i care distribuie semnalul transmis de o plac spre toate
a
s
a
celelalte. Astfel, o stea pasiv se comport
a
a ntructva similar cu un cablu
a
magistral.
a
O legtur punct la punct const din dou bre optice, cte una
a a
a
a
a
pentru ecare sens; astfel, ecare legtur este capabile de transmisie duplex.
a a
10 Base F: standardizeaz transmisia prin br optic la un debit de transa
a
a
misie de 10 Mbit/s. Rata erorilor, obtinut cu o astfel de legtur, este jur
a
a a
n
9 (1 bit eronat la 109 biti transmii).
de 10
s
Grupeaz trei variante, cu diferente foarte mici
a
a
functionnd mod semi-duplex.
a n
10 Base FB, destinat utilizrii conjunctie cu multe repetoare cascad
a n
n
a
i functionnd mod semi-duplex.
s
a n
10 Base FL, functionnd mod duplex.
a n
Se utilizeaz o br optic cu diametrul miezului de 62,5 m (i dia
a
a
s
ametrul exterior, al
nveliului, de 125 m), avnd o vitez de propagare de
s
a
a
minim 0,67c, o atenuare de 3,75 dB/km (dac atenuarea brei utilizate este
a
mai mare, lungimea maxim a unei legturi trebuie micorat corespunztor)
a
a
s
a
a
i o band de 160 MHzkm. Lungimea unui tronson de cablu este maxim 2 km
s
a
(pentru 10 Base FP, lungimea ecrei conexiuni dintre placa de retea i steaua
a
s
pasiv este de cel mult 1 km).
a
Conectarea cablului la echipamente se face cu ajutorul a dou coneca
toare (cte unul pentru ecare br; reamintim c se utilizeaz o br pentru
a
a
a
a
a
ecare sens). Conectoarele sunt descrise de standardul IEC 60874-10:1992 sub
numele BFOC/2.5. Atenuarea introdus de conector nu trebuie s depeasc
a
a
as
a
1 dB, iar puterea undei reectate nu trebuie s depeasc 25 dB din puterea
a
as
a
undei incidente.
Pentru semnalizare se folosesc unde infraroii cu lungimea de und
s
a
cuprins
a ntre 800 nm i 910 nm. Nivelul semnalului emittorului 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. Nivelul acceptabil pentru semnalul receptionat este
s
100 Base FX: ofer o vitez de transfer de 100 Mbit/s. Pe lng viteza mai
a
a
a a
mare, 100 Base FX aduce cteva modicri fat de 10 Base F, i anume utia
a
a
s
lizarea unor conectoare duble (conectnd ambele bre simultan) i un mecana
s
ism de negociere a vitezei de transfer.
1000 Base SX i 1000 Base LX. 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,
a
prin bre cu diametrul miezului de 62,5 m sau de 50 m. Lungimea maxim
a
de cablu
ntre dou echipamente este cuprins
a
a ntre 220 m pentru br cu
a
dispersie intermodal de 160 MHzkm i 550 m pentru br cu dispersie intera
s
a
modal de 500 MHzkm.
a
Varianta 1000 Base LX transmite pe lungimea de und de 1310 nm,
a
prin bre multimod de 62,5 m sau de 50 m sau monomod de 10 m. Lungimea
maxim de cablu
a
ntre dou echipamente este de 550 m pentru bra multimod
a
i 5 km pentru bra monomod.
s
a
incompatibil cu cablul utilizat pentru televiziune, care are impedanta de 75 ).
a
aa
a
de ctre reexia lui.
a
Pe cablu se leag, paralel, interfetele de retea i eventual repetoarele.
a n
s
Derivatia pentru legtura la interfata de retea este construit special pentru
a
a reduce la minim reexiile produse (impedanta emittorului i receptorului
a
s
este mult mai mare dect impedanta cablului, anume de cel putin 100 k); din
a
275
a
crete peste un anumit prag la care se declar coliziune. La detectarea unei
s
a
coliziuni, interfetele de retea conectate la cablu opresc transmisia, conform
a
viteza de propagare a semnalului: minim 0,77 c;
atenuarea: maxim 17 dB/km (8,5 dB pe tot tronsonul de cablu) la 10 MHz
i maxim 12 dB/km (6 dB pe tot cablul) la 5 MHz;
s
se accept maxim 100 interfete de retea pe un tronson de cablu.
a
a a
cldirii)
a
ntr-un singur punct. Se specic explicit prin standard c att cablul
a
a a
ct i elementele legate de el trebuie s e izolate fat de pmnt sau fat de
a s
a
a
a a
a
alte conductoare (cu exceptia sus-mentionatei unice legturi de pmntare).
a
a a
De asemenea, 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.
s
a
La efectuarea lucrrilor asupra retelei, persoanele care lucreaz trebuie s aib
a
a
a
a
grij s nu ating simultan cablul de retea i un conductor legat la pmnt, 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.
a
Toate aceste msuri sunt luate deoarece este posibil s apar tensiuni electrice
a
a
a
n a
a
Circuitele electronice ale interfetelor de retea sunt artite dou
mp n
a
module: un modul, continnd emittorul i receptorul propriu-zise, se ataeaz
a
a
s
s a
direct pe cablu; al doilea modul cuprinde logic de comand i este construit
a
as
sub forma unei plci ce se introduce calculator.
a
n
Ataarea 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, numite conectoare N, cu
prindere cu let);
prin realizara unei prize vampir : se d o gaur cablu fr a-i intrerupe
a
a n
aa
conductoarele, prin gaur se introduce o clem ce va face contact cu rul
a
a
central, iar legtura cu tresa se face printr-o alt clem ce se strnge pe
a
a
a
a
o zon de pe care s-a
a
ndeprtat mantaua exterioar a cablului.
a
a
Legtura dintre modulul emittor-receptor (engl. transceiver ) i moda
a
s
ulul de logic al plcii de retea sau al repetorului este de asemenea standarda
a
izat, sub numele de interfat AUI . Cablul de legtur dintre cele dou module
a
a
a a
a
const din 5 perechi de conductoare torsadate i ecranate individual, utilizeaz
a
s
a
conectoare trapezoidale cu 15 pini i poate avea lungime maxim de aproxis
a
mativ 50m.
10 Base 2 se mai numete cablu subtire, cablu negru sau cablu BNC (oarecum
s
277
s
conectori standardizati sub numele BNC (conectorii BNC sunt standardizati
astfel (g. 9.5): Fiecare bucat de cablu trebuie s aib montate pe capete
a
a
a
conectoare BNC mam. Exist elemente numite jonctiuni T care contin o
a
a
a
mam i se ataeaz pe T-urile de la plcile de retea extreme.
as
s a
a
conectori BNC
terminator
jonctiuni T
cablu coaxial
a
recte, este
ntreruperea unui r (de obicei o pan de contact
a
ntre srm i
a a s
conector sau
ntre contactele unui conector). O
ntrerupere a cablului magistral duce de regul la oprirea functionrii
a
a
a ntregii retele, nu doar ,,ruperea
nt
a
a
produs
ntreruperea reect semnalul (este ca un cablu fr terminator) i, ca
a
aa
s
urmare, orice pachet emis pe acel cablu se ciocnete cu reexia lui. Solutia cea
s
mai ecient de gsire a penei este o cutare binar prin izolarea neaprat
a
a
a
a
a
cu terminatoare a unor portiuni din ce ce mai lungi din cablul retelei.
a
a s
este un dispozitiv la care sunt conectate mai multe cabluri de retea i care,
s
la primirea unui pachet pe un cablu, retransmite pachetul pe toate celelalte
cabluri conectate. Interfata repetorului sau comutatorului ctre ecare dintre
a
cabluri se numete port.
s
Exceptie fcnd cazul comutatoarelor mai evoluate (vezi 9.1.6.4),
a a
o retea construit cu repetoare sau comutatoare trebuie s aib o topologie
a
a
a
arborescent, 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.
s
s
a
a
de retea se propag prin cabluri i repetoare sau comutatoare din ce ce mai
a
s
n
departe de interfata de origine, sfrind prin a ajunge la toate plcile din retea.
as
a
n
a
a
a
a
a
incontrolabil a pachetelor.
a
cazul utilizrii repetoarelor, pe lng topologia arbore mai treIn
a
a a
n
buie respectate nite conditii, i anume:
s
s
toate componentele legate la repetoare trebuie s lucreze la aceeai vitez
a
s
a
(e 10 Mbit/s, e 100 Mbit/s, e 1 Gbit/s). Aceasta deoarece un repetor
nu memoreaz pachetul de retransmis i, ca urmare, nu-l poate retransa
s
mite la alt cadent a bitilor dect cea cu care receptioneaz.
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. Aceast restrictie este impus pentru ca diferentele
cazul switch-urilor, nu apare nici una din limitrile expuse mai sus,
In
a
cu exceptia faptului c pe eventualele legturi semi-duplex arzierea trebuie
a
a
nt
s e de cel mult jumtate din durata minim a pachatului.
a
a
a
La retele ce utilizeaz att switch-uri ct i repetoare, restrictiile
a a
a s
279
ntre adresa zic (adresa MAC) a unei interfete de retea i portul (conectorul)
a
s
la care este conectat, direct sau indirect, acea interfat.
a
a
Dac un comutator primete un pachet cu o anumit adres MAC
a
s
a
a
surs, comutatorul va asocia acea adres cu portul prin care a intrat pachetul.
a
a
Ulterior, dac comutatorul primete un pachet avnd ca destinatie acea adres
a
s
a
a
MAC, va trimite doar prin portul asociat acelei adrese.
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 mutrii interfetei de retea de la un port la altul (prin mutarea zic a
a
a
cablului).
Mai multe adrese MAC pot avea asociat acelai port; aceast situatie
s
a
apare dac la acel port este conectat un repetor sau un alt comutator. Unei
a
adrese poate asociat cel mult un port.
i
La primirea unui pachet, comutatorul caut portul asociat adresei.
a
Dac exist, va trimite pachetul doar prin acel port. Dac nu exist asociere,
a
a
a
a
pachetul este trimis prin toate porturile cu exceptia celui prin care a intrat.
a
nsu
a
a
a
MAC (adesea scris pe eticheta aplicat pe carcas) i o adres IP
a
a
a s
a
s
pentru modicarea parametrilor. Ca i cazul congurrii prin telnet,
s n
a
accesul poate i este recomandabil s e restrictionat prin parol.
s
a
a
Pentru cazul uitrii parolei, exist o procedur de revenire la conga
a
a
urarea implicit. Aceasta const de obicei apsarea unui buton de reset
a
a
n a
timp de 1015 secunde sau punerea sub tensiune a switch-ului timp ce se
n
ine apsat butonul de reset.
t
a
9.1.6.2. Filtrare pe baz de adrese MAC
a
Unele switch-uri pot congurate s nu accepte, pe un anumit port,
a
dect pachete ce provin de la o anumit adres MAC sau de la o adres dintra
a
a
a
o anumit list. De asemenea, un pachet destinat unei adrese MAC dintr-o
a
a
astfel de list nu va trimis dect prin portul pe a crui list se gsete adresa.
a
a
a
a
a s
Aceast facilitate este introdus pentru a
a
a
mpiedica eventuali intrui
s
s intre retea racordndu-se pur i simplu la prizele de retea accesibile.
a
n
a
s
Dei
s mbuntete securitatea unei retele, solutia are cteva limitri:
a at s
a
a
lista adreselor asociabile unui port este limitat (de multe ori la 8 sau 16
a
adrese);
multe plci de retea permit schimbarea (prin soft) a adresei MAC.
a
9.1.6.3. Trunking
Prin trunking se elege utilizarea mai multor cabluri paralel ca
nt
n
legtur
a a ntre dou switch-uri. acest fel, tracul ce se poate stabili
a
In
ntre
acele dou switch-uri este suma capacitilor legturilor congurate trunka
at
a
n
ing.
Porturile utilizate regim trunking trebuie congurate pe ambele
n
switch-uri. Este de asemenea posibil ca legarea trunking s utilizeze o
n
a
extensie a protocolului IEEE 802.3 care este proprietatea rmei productoare
a
a switch-ului; acest caz este posibil ca dou swithc-uri realizate de rme
n
a
diferite s nu se poat lega trunking.
a
a
n
281
a mp
irea tracului
t
ntre drumurile alternative. Unul din drumuri va obligatoriu
dezactivat complet, ct timp cellalt este functional.
a
a
a
artirea unei retele zice mai multe retele virtuale disjuncte. Fiecare
n mp
a
structiv, retelele virtuale partajeaz aceleai echipamente (comutatoare, ca
a
s
bluri sau chiar plci de retea).
a
n
a
cum ar : limitarea tracului de broadcast sau separarea tracului din motive
de securitate.
Exist dou posibiliti de constructie a VLAN-urilor.
a
a
at
s
switch-uri) retelei zice; VLAN-uri distincte pot partaja voie echipamente
n
zice. Astfel, ecare interfat de retea apartine unuia sau mai multor VLANa
uri, ecare cablu apartine unuia sau mai multor VLAN-uri i ecare port al
s
ecrui switch apartine unuia sau mai multor VLAN-uri. Fiecare switch, la
a
primirea unui pachet de broadcast sau pentru a crui destinatie nu are asociere,
a
a
se poat deduce crui VLAN apartine. Pentru aceasta, ecare pachet este
a
a
a a
i eliminarea etichetei de VLAN pe pachetele ce tranziteaz spre, respectiv dins
a
spre, restul retelei. Echipamentele incompatibile 802.1Q pot montate doar
a
a a a
din mai multe VLAN-uri. Pentru aceasta, ea se monteaz pe un cablu prin
a
care trec pachete etichetate. Placa de retea se comport ca i cnd ar de
a
s a
fapt mai multe plci de retea, virtuale, cte una ecare VLAN. Fiecare
a
a
n
plac virtual are asociat un VLAN-ID, primete doar pachetele ce poart
a
a
s
a
acel VLAN-ID i marcheaz cu VLAN-ID-ul su toate pachetele emise.
s
a
a
Pe ecare switch trebuie congurate porturile care apartin ecrui
a
VLAN. De asemenea, pentru ecare port trebuie stabilit dac utilizeaz paa
a
chete etichetate (cu VLAN ID-ul) sau pachete neetichetate. Un port ce utilizeaz pachete neetichetate poate apartine unui singur VLAN.
a
n
de uoar; acesta este i unul din motivele popularitii Ethernet-ului.
s a
s
at
De obicei este necesar s se construiasc o retea care toate calcua
a
n
latoarele s se ,,vad
a
a ntre ele (la nivel de retea Ethernet; controlul accesului
la diversele resurse oferite de sisteme se face prin soft, la nivel superior). Tot
ce este necesar acest caz este s se amplaseze un numr de switch-uri i
n
a
a
s
cabluri astfel at ecare calculator s e legat la un switch i switch-urile s
nc
a
s
a
e legate
ntre ele
ntr-o reta conex i fr ,,bucle.
as aa
Se utilizeaz de obicei o structurare ierarhic a legturilor (aa-numita
a
a
a
s
cablare structurat ): de la calculatoarele dintr-o apere sau eventual 23
a
nc
aperi vecine se adun cablurile
nc
a
ntr-un switch, iar de la aceste switch-uri se
adun cabluri ctre un switch central. Pentru retelele mai mari,
a
a
ntre switch-ul
central i switch-urile asociate aperilor se mai adaug un nivel.
s
nc
a
283
s aa
s
eaz de pereti sau pe mobil numai acolo unde este strict necesar. Uurinta rea
a
s
prin tavane false. Deoarece astfel de cablaje se modic mai dicil, este bine
a
s se aib vedere posibilele modicri ce ar putea de dorit viitor. 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. Cablurile neunc
tilizate nu e necesar s aib toate loc switch; se vor conecta sau
a
a
n
deconecta dup necesiti.
a
at
S se prevad 23 cabluri de la switch-urile corespunztoare unei aperi
a
a
a
nc
la switch-ul central. Astfel, dac va nevoie s se construiasc dou
a
a
a
a
retele distincte, o parte din calculatoarele din apere conectndu-se la
nc
a
o retea i altele la alt retea, se vor pune dou switch-uri apere,
s
a
a
n nc
ecare conectat prin cte un cablu la switch-ul central.
a
Elementul de baz
a ntr-o retea wireless [IEEE 802.11, 1999] este celula
ntr-o
zon geograc destul de restrns (de ordinul ctorva zeci de metri) pentru
a
a
a a
a
ca semnalul emis de ecare statie s e receptionat de toate statiile din celul.
a
a
Fiecare celul are asociat un identicator de 48 de biti, unic, numit
a
prin anten se poate determina celula wireless creia apartine. Mai multe
a
a
i
celule wireless pot coexista aceeai zon, tracul din cadrul ecrei celule
n
s
a
a
putnd distins pe baza BSSID-ului de tracul celorlalte celule.
a
Fiecare statie apartine (este asociat) la un anumit moment cel mult
a
unei celule. Asocierile sunt dinamice o statie poate s intre sau s ias
a
a
a
a
a
a
de biti, numit mod curent adresa MAC a statiei.
a n
s
caractere numit SSID sau uneori numele retelei (engl. network name). Acest
s
s
utilizatorii umani.
O statie poate obtine lista celulelor active zona sa ascultnd pa
n
a
chetele beacon. Lista aat utilizatorului va contine SSID-urile retelelor.
s a
a
s
Retea format din una sau mai multe celule, opernd
a
a mpreun i posibil
as
conectate la o infrastructur IEEE 802 (de exemplu la o retea Ethernet
a
are rolul legrii celulei la infrastructur (altfel spus, la restul retelei IEEE
a
a
a
este o statie, i ca atare are o adres MAC.
s
a
Intr-o celul a unei retele de tip
a
infrastructur, o statie ce intr sau iese dintr-o celul trebuie s anunte AP-ul
a
a
a
a
a
formnd aa-numitul Distribution System (DS). DS-ul poate conectat la
a
s
alte retele din familia IEEE 802 prin intermediul unor dispozitive numite por
tal -uri. Celulele din aceeai retea vor avea acelai SSID.
s
s
Standardul original nu prevede nimic legtur cu modul de conectare
n a a
a AP-urilor i deci de realizare a DS-ului. Ca urmare, ecare fabricant de APs
uri i-a construit propriul protocol de comunicare inter-AP. Ulterior IEEE a
s
285
a
modul radio prin intermediul cruia se comport ca o statie cu rol de AP i
a
a
s
un conector Ethernet.
Intr-o prim aproximatie, un astfel de dispozitiv poate
a
at
suplimentare fat de un AP combinat cu un portal. Aceste functii sunt
a
at
sunt:
functie de switch (punte)
a s
a
actionnd a ca i statie oarecare (nu AP). Aceast functie se numete
a ns
s
s
wireless bridge sau AP client (uneori exist functii cu ambele nume, cu
a
diferente minore
ntre ele);
functie de AP, dar utiliznd tot reteaua wireless pentru partea de infra
a
n
a
a
a
a a
a
pentru dirijarea spre reteaua x a datelor din celula care dispozitivul
a
n
este AP.
aa
a
a
principal, la transmisia radio nu exist o delimitare comun
In
a
a ntre zonele de
actiune pentru diverse statii din aceeai celul: este posibil ca o statie B s
s
a
a
receptioneze bine transmisia statiei A, statia C s receptioneze transmisia lui
a
a
detecteze coliziunea.
retelele IEEE 802.11, o statie care dorete s trimit un pachet
In
s
a
a
va trimite ai un pachet de control, numit Request To Send (RTS; rom:
nt
cerere de transmisie), care specic destinatarul i durata de timp necesar
n
a
s
a
transmiterii pachetului. Dac destinatarul a primit pachetul RTS i este liber,
a
s
va trimite
napoi un pachet de control Clear To Send (CTS; rom: accept
transmisia). La primirea pachetului CTS, emittorul trimite pachetul de date.
a
O statie care receptioneaz un pachet CTS destinat altei statii nu
respectat i cazul receptiei unui pachet CTS destinat altei retele din aceeai
a s n
s
zon (adic purtnd un BSS-ID diferit).
a
a
a
Utilizarea pachetelor RTS i CTS nu este obligatorie. Pentru pas
chetele mici este preferabil trimiterea direct a pachetului de date i repetarea
a
s
acestuia cazul unei coliziuni. Pentru pachetele de broadcast, utilizarea RTS
n
i CTS este imposibil; ca urmare un pachet de broadcast este trimis direct.
s
a
receptioneaz un beacon
a
ntr-un anumit interval de timp predenit genereaz
a
ea ai pachetul beacon.
nss
a
domeniu de actiune nu poate net limitat, utilizarea unor metode care s
a
asigure condentialitatea i integritatea datelor transportate este esential.
s
a
Exist mai multe mecanisme de securitate ce pot utilizate. cadrul
a
In
unei celule se poate utiliza, la alegere, unul singur dintre acestea:
Open system:
nseamn, de fapt, lipsa oricrui mecanism de securitate.
a
a
Se utilizeaz acolo unde se dorete s se ofere acces public la Internet. De
a
s a
remarcat a c, datorit lipsei oricrui mecanism de condentialitate
ns a
a
a
n
Wired Equivalent Privacy WEP (rom. securitate echivalent cu reteaua
a
s
s
at
287
a
a
umit cheie de lung durat, numit pre-shared key (rom. cheie para
a
a
a
tajat prealabil ); aceast cheie trebuie dat de utilizator la initierea
a n
a
a
a
RC4 (exist cteva chei slabe, foarte uor de spart), WEP poate spart
a a
s
destul de uor; pe de alt parte, modelul de securitate oferit este destul
s
a
de neexibil.
WiFi Protected Access WPA: corecteaz problemele WEP, pstrnd
a
a a
compatibilitatea cu plcile de retea existente. privinta criptrii, WPA
a
In
a
pstreaz cifrul RC4 din motive de compatibilitate, dar vine cu o schem
a
a
a
diferit de gestiune a cheilor de criptare, capabil s evite cheile slabe.
a
a a
privinta obtinerii unui model de securitate mai exibil, WPA
In
a
[IEEE 802.1X, 2001].
Arhitectura EAP contine urmtoarele componente:
a
clientul ce trebuie s-i dovedeasc identitatea scopul obtinerii accesului
as
a
n
supplicant.
punctul de acces este entitatea care trebuie s autentice clientul pentru
a
a-i oferi acces la serviciile retelei. Rolul de punct de acces are AP-ul
l
802.11 (sau switch-ul 802.3 sau serverul PPP). terminologia EAP,
In
acesta se numete authenticator.
s
serverul de autenticare este entitatea care detine baza de date cu cheile
s
a
Protocolul EAP prevede un schimb de mesaje
ntre client i serverul de autens
ticare. Dac serverul de autenticare este distinct fat de punctul de acces,
a
a
comunicatia dintre client i serverul de autenticare trece prin punctul de ac
s
ces, iar portiunea din calea de comunicatie dintre punctul de acces i serverul
s
de autenticare este protejat criptograc pe baza unui secret partajat
a
ntre
punctul de acces i serverul de autenticare. Serverul de autenticare este de
s
obicei un server RADIUS.
Unele dintre mecanismele efective de autenticare utilizabile cadrul
n
EAP sunt:
EAP-MD5 prevede c serverul de autenticare trimite clientului un numr
a
a
aleator, iar clientul rspunde cu dispersia MD5 a concatenrii numrului
a
a
a
aleator cu parola clientului. Functionarea mecanismului necesit ca
a
serverul s aib baza de date, clar, parola clientului. EAP-MD5
a
a n
n
permite doar autenticarea clientului, nu i stabilirea unor chei pentru
s
criptarea sau autenticarea mesajelor.
EAP-TLS necesit ca att clientul ct i serverul de autenticare s aib
a
a
a s
a
a
prestabilite chei secrete SSL/TLS, iar ecare dintre ei s aib certicatul
a
a
TLS al celuilalt (vezi i 11.3.2.5). Se stabilete o conexiune TLS
s
s
ntre
client i serverul de autenticare, utiliznd certicatele acestora, iar
s
a
n
cadrul acestei conexiuni stabilesc cheile pentru comunicatia ulterioar
289
Capitolul 10
Internetul
a
parte reteaua Internet, care este o retea la scar mondial bazat pe protocolul
a
a
a
Internet.
Capitolul de fat prezint:
a
a
protocolul Internet (IP),
mpreun cu celelalte protocoale de baz ale
a
a
retelelor de tip Internet (TCP, DNS, ARP, etc.);
a
a
noduri , interconectate
ntre ele. Intr-o retea Internet, toate nodurile pot
a a
a
Sunt numite statii (engl. hosts) nodurile ce nu pot actiona ca noduri interme
a
tip de legtur direct de ctre o retea Internet este standardizat prin stana a
a
a
darde auxiliare ( 10.5). Exist chiar un standard [RFC 1149, 1990] de utia
lizare ca legturi directe a porumbeilor cltori; dei standardul a fost publicat
a
aa
s
ca o glum de 1 aprilie, el ilustreaz foarte bine independenta
a
a
ntre nivele
ntr-o
retea.
a a
a
orice fel de canal de comunicatie pe care reteaua de tip Internet o poate folosi.
Fiecare nod este identicat prin una sau mai multe adrese IP . Cu
exceptia unor adrese cu rol special, o adres IP identic unic un nod. Unele
a
a
noduri, special cele intermediare, au mai multe adrese IP asociate.
n
Adresele IP sunt arareori folosite direct de utilizatorii umani. locul
In
lor se utilizeaz numele de domeniu. Corespondenta
a
ntre un nume de domeniu
i adresa IP se realizeaz cu ajutorul sistemulul DNS (Domain Name Service),
s
a
descris 10.4.
n
Protocolul Internet a fost proiectat pentru a asigura o tolerant dea
osebit de mare la pene. Dup cderea unor noduri sau a unor legturi, dac
a a
a
a
mai exist totui un drum
a
s
ntre dou noduri el va gsit i utilizat cele
a
a s
n
din urm. Aceast tolerant la pene vine cu un pret: nu exist garantii cu
a
a
a
privire la arzierea maxim livrarea unui pachet sau debit minim garannt
a n
tat; ba chiar este posibil ca un pachet s e pierdut complet (acest lucru se
a
poate ampla cu pachetele surprinse pe drum de o pan, precum i caz
nt
a
s n
de arcare mare a retelei), s ajung dublu exemplar sau dou pachete s
nc
a
a n
a
a
ajung la destinatie ordine invers a trimiterii.
a
n
a
Este sarcina nivelelor superioare s se descurce aceste conditii.
a
n
In
acest scop,
ntre aplicatie i nivelul retea este plasat un nivel intermediar,
s
10.2. Protocolul IP
Protocolul Internet (engl. Internet Protocol IP ) descrie formatul
pachetelor i cteva aspecte privind activitatea nodurilor retelei.
s a
293
s n
Antetul x contine datele necesare pentru dirijarea pachetului. Con
inutul antetului x este dat tabelele 10.1 (pentru versiunea 4) i 10.2 (pent
n
s
tru versiunea 6). Semnicatia diferitelor cmpuri va descris paragrafele
a
a n
care urmeaz.
a
Nume
cmp
a
Versiune
IHL
Lungime
(biti)
4
4
TOS
Lungime totala
8
16
Identicare
16
Rezervat
Nu fragmenta
Ultimul fragment
1
1
Deplasament
13
Timp de viat
a
Protocol
Suma de control
Adres surs
a
a
Adres destinatie
a
16
32
32
Rol
Versiunea protocolului; valoarea este x:
a
4.
Lungimea antetului, inclusiv optiunile,
n
grupuri de 32 biti (valoarea minim este
a
5, adic 160 biti).
a
mai speciale; deoarece aceste informatii nu sunt necesare dect pentru anumite
a
tipuri de pachete, ele sunt prezente doar pachetele care este nevoie de
n
n
Nume
cmp
a
Versiune
Clas trac
a
Etichet ux
a
Lungime rest
10.2. Protocolul IP
Lungime
(biti)
4
8
20
16
Limit salturi
a
Adresa surs
a
Adresa destinatie
128
128
Rol
Versiunea protocolului IP. Valoarea este
x: 6.
a
tip serviciu (vezi 10.2.6.2).
vezi 10.3.1.8.
Lungimea pachetului minus antetul x,
n
octeti.
a
i
apartin datele utile.
ele.
Datele utile sunt un ir de octeti asupra cruia protocolul IP nu
s
a
impune nici o restrictie, cu exceptia lungimii. Lungimea maxim admis de
a
a
protocol este de 65515 octeti (65535 octeti pachetul
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
a
a
a
a
a
cu o retea construit cu hub-uri sau switch-uri. Ca alt exemplu, o linie serial
a
a
construiete o subretea cu dou calculatoare.
s
a
Interfata de retea este un concept abstract care desemneaz legtura
a
a
cazul care legtura direct este realizat de
dintre un nod i o subretea. In
s
n
a
a
a
295
mpreun cu driver-ul
a
ei.
Fiecare interfat de retea are propria adres IP. Ca urmare, un nod
a
a
ce are n plci de retea va avea n adrese IP distincte.
a
ind interfetele prin care nodurile din subretea sunt conectate la acea subretea.
Adresele IP dintr-o subretea sunt adresele IP ale interfetelor din acea subretea.
a
s
de biti de lungime mai mic dect lungimea unei adrese IP. Toate adresele IP
a
a
ale interfetelor din acea subretea trebuie s
Prexul unei subretele nu este permis s e prex al unei adrese IP din afara
a
acelei subretele. Ca urmare, un prex identic unic o subretea.
Suxul unei adrese, adic irul de biti din adres care nu fac parte
as
a
din prexul subretelei, vom numi adresa cadrul subretelei. Numrul de
l
n
a
biti ai suxului determin numrul de noduri ce pot membre ale subretelei.
a
a
Adresele care suxul este format numai din biti 0 sau numai din
n
biti 1 (aadar dou adrese pentru ecare subretea) sunt rezervate i nu pot
s
a
s
asignate nodurilor retelei (a se vedea i [RFC 1700, 1994]).
s
Exemplul 10.1: Pentru simplicarea exemplului vom presupune c adresele
a
IP sunt doar de 8 biti. Presupunem c o subretea ar avea prexul de retea
nu
ncepe cu prexul subretelei. Notm c un nod care are o interfat
a
a
a n
subreteaua 10110 i o interfat alt retea ar putea avea adresa 10111010 pe
s
a n a
cea de-a doua interfat.
a
Din subreteaua considerat, cu prexul 10110, pot face parte adresele,
a
numr de 23 = 8, din intervalul 1011000010110111. Adresele 10110000 i
n
a
s
10110111 sunt rezervate; rmn deci 6 adrese ce pot asignate nodurilor
a a
subretelei.
10.2. Protocolul IP
1
10110010
10110100
10110001
3
10111010
10111001
4
10111011
5
Figura 10.1: O retea format din dou subretele. Vezi exemplul 10.1
a
a
a
legtura. Livrarea efectiv este realizat de interfata de retea; acesteia i se d
a
a
a
a
pachetul i adresa IP a vecinului.
s
Pentru pasul 3, trebuie determinat primul rnd vecinul direct
n
a
cruia i se va trimite pachetul. Dac acesta are mai multe interfete, trebuie
a
a
utilizat interfata prin intermediul cruia el este vecin nodului curent. O dat
a
a
a
determinat adresa interfetei, trimiterea pachetului se face ca la pasul 2.
a
pachet dat se aplic acea regul de dirijare care prexul ce specic grupul
a
a
n
a
este prex al adresei destinatie a pachetului. Dac exist mai multe astfel de
a
a
297
reguli de dirijare, se aplic regula cu prexul cel mai lung adic cea mai
a
a
specic dintre regulile de dirijare aplicabile.
a
Tinta poate e o interfat, e o adres IP.
a
a
Dac inta este o interfat, destinatia trebuie s e un vecin direct,
at
a
a
accesibil prin acea interfat; acest caz pachetul de dirijat este livrat direct
a n
destinatarului prin interfata dat regul, conform pasului 2.
a n
a
Dac inta este o adres, aceasta trebuie s e adresa unei interfete
at
a
a
vecine. acest caz pachetul de dirijat este trimis nodului vecin a crui adres
In
a
a
este specicat tabela de dirijare. Nodul vecin respectiv poart denumirea
a n
a
de gateway i trebuie s e congurat s actioneze ca nod intermediar.
s
a
a
De notat c adresa surs i adresa destinatie din antetul IP nu se
a
a s
modic cursul acestei proceduri. Sursa rmne nodul care a emis paa n
a a
chetul, iar destinatia rmne nodul cruia trebuie s-i e livrat cele din
a a
a
a
n
urm pachetul. Atunci cnd modulul de retea paseaz unei interfete de retea
a
a
a
n
Subreteaua 1000
10110010
10110100
10000010
eth0: 10110001
10000011
10000001
3
eth1: 10111010
10111011
10111001
4
Subreteaua 10111
Exemplul 10.2: Fie reteaua din gura 10.2, format din trei subretele. Pen
a
tru nodul nr. 3, au fost gurate i numele interfetelor de retea: eth0 ctre
s
a
subreteaua de sus i eth1 ctre subreteaua de jos. Tabela de dirijare a nodu
s
a
10.2. Protocolul IP
Nr.
crt.
1.
2.
3.
Grup de adrese
(prex)
10110
10111
1000
Tinta
interfata eth0
interfata eth1
nodul 10111011
Tabelul 10.3: Tabela de dirijare pentru nodul 3 din gura 10.2 (exemplul 10.2).
(nodul 1). Singura regul aplicabil este regula 1, deoarece 10110 este prex
a
a
pentru 10110010. Conform acestei reguli, pachetul poate livrat direct prin
interfata eth0.
s a s
conform creia pachetul se trimite prin interfata eth1. Prin urmare, pachetul
a
destinat lui 10000010 va trimis lui 10111011 prin interfat eth1 (urmnd ca
a
a
nodul 5 s-l livreze mai departe nodului 6).
a
De remarcat c nodurile ce apar ca int regulile tabelelor de diria
t a n
jare trebuie specicate prin adresele interfetelor accesibile direct din nodul
curent. exemplul 10.2, este esential ca, ultima regul a tabelei de dirijare
In
n
a
a nodului 3, nodul 5 s e specicat prin adresa 10111011 i nu prin adresa
a
s
10000001. Nodul cu adresa 10111011 este accesibil prin interfata eth1, con
form regulii 2; dac ar fost specicat prin adresa 10000001, nodul 3 nu ar
a
putut determina cum s-i trimit pachetul.
a
a
majoritatea cazurilor, tabela de dirijare are o regul numit imIn
a
a
plicit, corespunztoare prexului vid i, ca urmare, aplicat pentru pachetele
a
a
s
a
pentru care nu este aplicabil nici o alt regul. Aceast regul, dac exist,
a
a
a
a
a
a
a
are totdeauna ca int o adres IP a unui nod vecin al nodului curent. Acest
t a
a
nod (de fapt, aceast adres IP) poart denumirea de default gateway.
a
a
a
299
s
4 numere, scrise baza 10, separate prin puncte. Fiecare numr este de
n
a
fapt valoarea cte unui grup de 8 biti, vzut ca numr. Aceast scriere
a
a
a
a
se numete notatie zecimal cu punct.
s
a
Pe lng notatia zecimal cu punct, adresele IP versiunea 4 pot
a a
a
scrise notatia zecimal simpl : se scrie direct valoarea adresei ca
n
a
a
numr, scris baza 10.
a
n
Exemplul 10.3: Fie adresa 1100-0000-1010-1000-0000-0000-0010-0010
(liniutele au fost scrise numai pentru uurarea citirii). Notatia zecimal
a
cu punct este 192.168.0.34. Notatia zecimal simpl este 3232235554.
a
a
Adresele IP versiunea 6 sunt iruri de 128 de biti. Scrierea lor obinuit
s
s
a
se face ca un ir de 32 cifre hexa, ecare reprezentnd cte 4 biti din
s
a
a
adres. Cifrele hexa sunt grupate cte 4, iar grupurile succesive sunt
a
a
separate prin cte un caracter dou puncte. Pentru a scurta scrierea, se
a
a
permit urmtoarele optimizri:
a
a
- zerourile de la
nceputul unui grup pot s nu e scrise;
a
- un grup cu valoarea 0 sau mai multe astfel de grupuri consecutive
se pot elimina,
mpreun cu separatorii dou puncte dintre ei,
a
a
rmnnd doar dou caractere dou puncte succesive. Acest lucru
a a a
a
a
se poate face
ntr-un singur loc al adresei, altfel s-ar crea evident
o ambiguitate.
Exemplul 10.4: O posibil adres IPv6 este
a
a
fe80:0000:0000:0000:0213:8fff:fe4e:fbf4
sau
fe80::213:8fff:fe4e:fbf4
s n
iar ultimii 32 de biti sunt scrii format IPv4, separati de primii printr
s n
10.2. Protocolul IP
a
a a
valoarea efectiv a prexului ct i lungimea acestuia. Exist dou notatii:
a
a s
a
a
s
s
as
a
lungimea unei adrese IP (adic la 32 de biti pentru versiunea 4 i la 128 de biti
a
caracter slash (/) urmat de lungimea prexului scris ca numr baza 10.
a
a n
Exemplul 10.6: Prexul IPv4 1100-0000-1010-1000-110 se scrie, notatia cu
n
specicrii lungimii.
a
notatia cu adres de retea i masc de retea, se scrie mai ai
In
a
s
a
nt
adresa de retea, ca i cazul scrierii cu adres i lungime, dup care se scrie
s n
as
a
(cu un slash
ntre ele sau rubrici separate) aa-numita masc de retea.
n
s
a
a
s
a n
a
retea, se scrie ca i cnd ar o adres IP.
s a
a
Notatia cu adres i masc se utilizeaz numai pentru IP versiunea
as
a
a
4.
Exemplul 10.7: Prexul 1100-0000-1010-1000-110 se scrie, notatia cu
n
a
a
de ctre Internet Assigned Numbers Authority (IANA). Mai multe despre aloa
care se gsete la [IANA, ]. Dei nu este actualizat, este instructiv de citit i
a s
s
s
[RFC 1700, 1994].
301
a
a
a
a
cauz, adresele se aloc institutiilor doritoare blocuri de adrese, ecare bloc
a
a
n
avnd un prex unic,
a
ntocmai ca cazul subretelelor.
n
a
din bloc sunt dirijate identic, conform unei reguli care are ca prex prexul
blocului. tabela de dirijare a unui nod oarecare din Internet va necesar
In
astfel cte o regul pentru ecare bloc, i nu cte o regul pentru ecare nod.
a
a
s
a
a
Pentru stabilirea dimensiunilor blocurilor, initial adresele IP versi
unea 4 au fost artite clase:
mp n
A: Adresele cu prexul 0.0.0.0/1 au fost artite 128 blocuri alocabile,
mp n
ecare bloc avnd cte 224 adrese. Lungimea prexului unui bloc este
a
a
de 8 biti.
10.2. Protocolul IP
Ideea artirii
mp ntre clasele A, B i C era aceea ca, dndu-se o adres
s
a
a
IP, s se poat determina lungimea prexului blocului din care face parte.
a
a
Acest lucru simplic mult calcularea tabelelor de dirijare i chiar cutarea
a
s
a
n
tabela de dirijare a regulii aplicabile.
artirea clase s-a dovedit prea inexibil. Pe de o parte,
Imp
n
a
mprtirea este inecient, ducnd la alocarea cte unui bloc de clas B (adic
a
a
a
a
a
a
65536 adrese) pentru institutii care nu aveau nevoie de mai mult de cteva
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 aceeai zon geograc;
s
a
a n
consecint, pentru majoritatea ruterelor din Internet este nevoie de cte o
a
a
regul de dirijare pentru ecare institutie creia 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 numete CIDR (engl. Classless InterDomain Routing) i este
a
s
s
descris [RFC 1518, 1993].
a n
schema CIDR, un prex de bloc poate avea orice lungime. O
In
institutie ce dorete acces Internet poate solicita alocarea unui bloc de adrese,
s
cu un numr de adrese egal cu o putere a lui 2.
a
O institutie care furnizeaz acces Internet altor institutii este
ncurajat s aloce mai departe, din blocul alocat ei, sub-blocuri pentru institutiile
a a
crora le ofer acces Internet. Astfel, din afara retelei furnizorului de acces
a
a
a
subretea care toate adresele au acelai prex.
n
s
CIDR mai prevede o grupare a blocurilor pe continente, astfel at
nc
pentru un nod aat 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 realocrii adreselor deja alocate.
s
a
Pentru adresele IP versiunea 6 se folosete numai schema CIDR.
s
303
ICMP. Un pachet ICMP este un pachet IP care cmpul protocol are valn
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 aprute livrarea unui pachet IP. Pachete ICMP
a
n
mai pot generate i de programe utilizator, prin intermediul socket-urilor de
s
tip SOCK RAW. Astfel de aplicatii servesc la testarea functionrii retelei.
alt pachet IP. Ajuns la destinatie, modulul de retea (IP) al nodului destinatie
a
e prezent i functional orice nod IP; implementrile obinuite 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 cte 8 biti reprezentnd 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 cteva zeci de octeti
n
a
a
pachetului; sau
interfata de retea prin care trebuie trimis pachetul nu este functional
a
sau nu poate livra pachetul destinatarului (destinatarul nu rspunde).
a
aceste cazuri, nodul curent trimite un pachet ICMP, avnd:
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
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.
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
11 time exceeded
0 TTL exceeded
source
quench
5 redirect
8 echo request
9 echo reply
0
1
2
3
network
host
TOS & network
TOS & host
Ce semnalizeaz
a
pachet nelivrabil, conform 10.2.5.1
10.2.5.5
cerere ecou, 10.2.5.2
rspuns ecou, 10.2.5.2
a
305
a
Testarea functionrii comunicatiei la nivel retea este un test simplu
a
a
tipul echo request (rom. cerere ecou) ctre nodul specicat. Nodul destinatie
a
s
a
s
a
dimensiune arbitrar, de date utile; scopul acestui cmp este testarea transa
a
miterii pachetelor mari.
Pe lng comanda ping care testeaz functionarea unei legturi, exa a
a
a
ist o comand, traceroute (pe sisteme de tip Unix) sau tracert (pe Wina
a
dows), care aeaz adresele ruterelor prin care trece un pachet pentru o ans a
umit destinatie.
a
s n
s n
s-i scrie ecare adresa acest antet optional.
as
n
10.2. Protocolul IP
a
a
a
a
de ordinul zecilor) i este sczut cel putin cu 1 de ctre ecare 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. depire 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 dect poate nodul s retrimit pachetele,
a
a
a
rezultnd de aici o functionare proast a retelei (vezi 5.3).
a
192.168.7.7
192.168.7.1
192.168.1.3
192.168.1.9
192.168.1.1
Spre exterior
Figura 10.3: O retea pentru ilustrarea redirectionrii pachetelor (vezi exemplul 10.8)
Exemplul 10.8: Considerm reteaua din gura 10.3. Pentru nodurile din
a
307
a
n
o regul care s asocieze prexului 192.168.7.0/24 gateway-ul 192.168.1.3;
a
a
o regul indicnd ca default gateway adresa 192.168.1.1.
a
a
practic, pentru simplicarea administrrii, se omite congurarea
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
de pachet, are o dimensiune maxim a pachetului, care poate mai mic dect
a
a
a
dimensiunea maxim a pachetului IP: de exemplu, un pachet Ethernet are o
a
dimensiune maxim de 1500 octeti.
a
10.2. Protocolul IP
a
Fragmentarea poate fcut doar de emittorul pachetului, ruterele de pe
a a
a
traseu ind obligate s abandoneze transmiterea cazul care pachetul este
a
n
n
prea mare.
Fragmentele sunt pachete IP obinuite, 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 cmpurile identicare i deplasament i agul mai urmeaz fraga a
s
s
a
mente. Astfel, un pachet se va asambla din fragmente avnd toate aceeai
a
s
valoare cmpurile identicare, adres surs, adres destinatie i proton a
a
a
a
s
col. Pachetul asamblat va avea antetul identic cu al fragmentelor (mai putin
309
a
legturile 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 alctuirea subretelelor.
a
a
mit alocarea unui numr sucient 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 ecare subretea IP, nodurile componente trebuie s fac parte
a
a
din acelai VLAN 802.1Q (dac se denesc VLAN-uri) i ca urmare trebuie
s
a
s
s fac parte din aceeai retea 802 zic. Aceast cerint este determinat de
a
a
s
a
a
a
a
faptul c, cadrul unei subretele IP, ecare nod trebuie s poat comunica
a n
a
a
cu orice alt nod al subretelei fr a implica dirijare la nivel IP; comunicarea
aa
trebuie s e realizat de nivelul inferior, adic de reteaua 802.
a
a
a
s
n
cadrul aceluiai VLAN 802.1Q, se pot deni mai multe subretele IP. Astfel
s
a
a s
a
a legate logic
ntre ele. Pentru ca un nod s e membru subretelele IP
a
n
stabilite aceeai retea zic este sucient s deneasc mai multe adrese IP
n
s
a
a
a
pe aceeai plac de retea (vezi 10.5, special 10.5.1 pentru detalii).
s
a
n
Not: independenta subretelelor IP de pe acelai 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 zic din care face parte calculatorul spart.
a
Congurarea tabelelor de dirijare trebuie s e fcut astfel at,
a
a a
nc
pentru orice nod surs i pentru orice nod destinatie, ecare nod de pe traseul
as
a
lucru se realizeaz de regul astfel:
a
a
Pentru ecare subretea se alege, dintre nodurile ce actioneaz ca rutere
a
ctre alte subretele, un default gateway. Acesta se alege de regul ca
a
10.2. Protocolul IP
ind nodul din subretea cel mai apropiat de ieirea spre restul Internet
s
ului. Se obinuiete ca nodul ales ca default gateway s primeasc adresa
s
s
a
a
IP cea mai mic din subretea (adic adresa care suxul are valoarea
a
a
n
1).
Pe toate nodurile subretelei se congureaz ca default gateway nodul
a
ales ca default gateway al subretelei. Pentru nodurile care fac parte din
a
legtura spre exterior dect subreteaua considerat.
a
a
a
Mai notm c
a
a ntr-o tabel de dirijare static nu se pot congura,
a
a
pentru tolerant la pene, mai multe ci spre o aceeai destinatie. Dac se
a
a
s
a
dorete aa ceva este necesar instalarea unui program de calcul automat al
s
s
a
tabelei de dirijare.
Subretea secretariat
Subretea laboratoare
193.0.227.192/27
193.0.224.0/23
S1
S2
193.0.227.194
L1
193.0.227.222
L2
193.0.224.2
L3
193.0.224.3
193.0.225.254
eth0: 193.0.224.4
L4
eth1: 193.0.227.225
193.0.227.226
E1
193.0.227.238
E2
Subretea experimental
a
eth2: 193.0.224.1
eth1: 193.0.227.193
193.0.227.224/28
G
eth0: 193.226.40.130/255.255.255.240
Spre reteaua furnizorului
311
a
Imp
a
este o artire tipic din considerente de trac i de securitate: reteaua exmp
a
s
a
tariatului, reteaua din laboratoare i reteaua furnizorului de acces Internet i
s
s
L4 (probabil amplasat laborator, pentru a la
n
ndemn timpul experia a n
mentelor), dotat cu dou plci de retea, care leag reteaua experimental de
a a
a
a
reteaua din laborator.
a
a
disponibile este 193.0.224.0/22, continnd 1024 de adrese. Putem crea blocuri
a
avnd ca dimensiuni puteri ale lui 2: 512, 256, 128, 64, 32, 16, 8 sau 4 adrese.
a
Incepem prin a aloca laboratoarelor un bloc ct mai mare, de 512 adrese (510
a
utilizabile efectiv), anume 193.0.224.0/23. Din blocul de 512 adrese rmas
a
(193.0.226.0/23), s alocm 32 adrese secretariatului i 16 adrese retelei exa
a
s
experimental.
a
Pentru ecare din cele trei subretele, exist o alegere natural pentru
a
a
default gateway: G pentru reteaua secretariatului i pentru reteaua din labo
s
a In
gateway-ul este nodul cel mai apropiat de exterior. ecare subretea, adresa
In
dat ruterului cu rol de default gateway este cea mai mic adres din acea
a
a
a
subretea.
10.2. Protocolul IP
a
a
a
direct, care asociaz prexului subretelei unica interfat de retea, i o regul
a
a
s
a
implicit, care asociaz prexului vid adresa default gateway-ului.
a
a
Pentru nodul L4 , tabela de dirijare are trei reguli, dou ind pentru
a
livrarea direct prin cele dou interfete, iar a treia este regula implicit:
a
a
a
193.0.224.0/23 eth0 ;
193.0.227.224/28 eth1 ;
0.0.0.0/0 193.0.224.1 (prin eth0 ).
Pentru nodul G avem 5 reguli: trei reguli de livrare direct prin cele
a
trei interfete, o regul implicit indicnd default gateway-ul retelei furnizorului
a
a
a
a
193.0.227.224/28:
193.226.40.128/28 eth0 ;
193.0.227.192/27 eth1 ;
193.0.224.0/23 eth2 ;
0.0.0.0/0 193.226.40.129 (prin eth0 ).
193.0.227.224/28 193.0.224.1 (prin eth1 ).
10.2.7.2. Congurarea parametrilor de retea pe diverse sisteme de
operare
Pe sistemele Windows, exist dou posibiliti de congurare: coa
a
at
manda ipconfig ( mod text) i seria de casete de dialog din Start/ Control
n
s
panel/ Network/ interfat. Prin ambele interfete se realizeaz att modia
a a
carea parametrilor din modulul IP din nucleul sistemului de operare ct i
a s
scrierea lor Windows registry pentru re arcarea lor la repornirea sistemun
nc
lui. Comportamentul de ruter, dac este dorit, trebuie activat explicit.
a
Pe sistemele de tip Linux congurarea este putin mai complicat,
a
dar i mult mai exibil. Comanda ifconfig seteaz parametrii legati de
s
a
a
introduce tabela de dirijare regulile de livrare direct (de fapt acesta este
n
a
motivul pentru care are nevoie de masca de retea). Tabela de dirijare se
313
script-urile de initializare din nite iere text; din pcate, ecare distributie
s
s
a
Cel mai util instrument de depanare pentru problemele de conectivitate este comanda ping. Pentru buna functionare a acesteia i a comenzii
s
traceroute, este necesar ca, dac este instalat un ltru de pachete (rewall),
a
acesta s permit trecerea pachetelor ICMP cu tipurile echo-request, echoa
a
reply, destination unreachable i time exceeded.
s
Primul lucru ce trebuie testat, cazul unei probleme de conecn
tivitate sau dup o lucrare mai ampl la retea, este dac legturile directe
a
a
a
a
functioneaz. Acest lucru se face dnd comanda ping pentru cte un vecin
a
a
a
din ecare subretea din care face parte calculatorul de pe care se efectueaz
a
testul. Dac ping-ul merge,
a
nseamn c legtura functioneaz (plcile de
a a
a
a
a
retea, cablurile, switch-urile i access point-urile de pe traseu) i c adresele
s
s a
IP i mtile de retea sunt ,,sucient de bune pentru ca nodurile s e vzute
s as
a
a
ca fcnd parte din aceeai subretea. Dac ping-ul nu merge i pachetele ping
a a
s
a
s
i pong nu sunt ltrate, pana trebuie cutat printre lucrurile enumerate pn
s
a
a
a a
aici.
Dac ping-ul merge pe legturile directe, se trece la vericarea lega
a
a
turilor
ntre subretele diferite. Dac o legtur indirect nu functioneaz dei
a
a a
a
a s
toate legturile directe ce ar trebui s e utilizate functioneaz, problema este
a
a
a
de la regulile de dirijare (sau de la un ltru de pachete; de aceea este bine ca
pachetele ping i pong s nu e ltrate). Exist dou lucruri uor de scpat
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.
a
s
a
default gateway-ul, dac esre specicat prin alt adres dect cea din aceeai
a
a
a
a
s
subretea cu statia congurat. Alt exemplu: la reteaua din exemplul 10.9,
10.2. Protocolul IP
ntorc
napoi
spre G, deoarece furnizorul tie c toat reteaua 193.0.224.0/22 este spatele
s
a
a
n
lui G. Astfel, pachetele pong cicleaz
a ntre G i 193.226.40.129.
s
a
s
sistemului de operare s determine crei aplicatii este destinat ecare
a
a
i
pachet sosit;
serviciul oferit direct de nivelul retea (pachete ce se pot pierde, pot sosi
de bibliotec.
a
Componenta nivelului transport situat nucleul din sistemului de
a n
operare furnizeaz aplicatiei functiile sistem din familia socket(). Serviciile
a
oferite aplicatiei prin socket-uri de tip stream sunt implementate utiliznd pro
a
tocolul TCP. Serviciile oferite prin socket-uri de tip dgram sunt implementate
prin protocolul UDP. Modulele retelei IP i locul modulelor TCP i UDP sunt
s
s
artate gura 10.5.
a
n
a
tat. Protocolul este descris [RFC 793, 1981].
a
n
Mai detaliu, TCP ofer:
n
a
serviciu de tip conexiune, cu cele trei faze, de deschidere conexiune,
comunicatie i
s nchidere conexiune;
trasnport ux de octeti, adic emittorul trimite un ir de octeti, negrua
a
a
s
315
Nod intermediar
Nod nal
Aplicatie
Aplicatie
modulul
TCP sau UDP
modulul
TCP sau UDP
Modul
IP
Interfat
a
de retea
Modulul IP
Interfat
a
de retea
Interfat
a
de retea
Modul
IP
Interfat
a
de retea
Figura 10.5: Modulele unei retele IP. Partea inclus sistemul de operare este
a n
delimitat cu linie punctat.
a
a
a
a
s
a
fr duplicate i aceeai ordine care au fost trimii.
aa
s n
s
n
s
Modulul TCP are la dispozitie, pentru realizarea conexiunilor TCP,
a
i conrmare a pachetelor, aa cum am vzut 4.3. Mecanismul este imples
s
a
n
mentat dup cum urmeaz. Pentru
a
a
nceput considerm transmisia unidirectional
a
a
i conexiunea deja deschis.
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. Antetul TCP este
s
descris tabelul 10.5.
n
Fiecrui octet al uxului de date utile (de transportat de ctre TCP)
a
a
i se asociaz un numr de secvent ; octeti consecutivi au asociate numere de
a
a
a
secvent consecutive.
a
Fiecare pachet TCP contine, zona de date utile, un ir de octeti
n
s
utili consecutivi. Cmpul numr de secvent din antetul TCP contine numrul
a
a
a
a
de secvent al primului octet din datele utile.
a
Nume
cmp
a
Port surs
a
Port destinatie
Nr. secvent
a
Nr. conrmare
Deplasament date
Dim.
(biti)
16
16
32
32
4
Rezervat
Urgent
Acknowledge
6
1
1
Push
Reset
Synchronize
Finalize
Dim. fereastr
a
Suma de control
Pozitie date urgente
Optiuni
1
1
1
16
16
16
variabil
Observatii
n
de dimensiunea optiunilor
valoarea 0
vezi 10.3.1.11
indic faptul c numrul de conrmare
a
a
a
este valid
arat c pachetul trebuie trimis urgent,
a a
fr a inut diverse zone tampon
aa
t
n
cere
nchiderea fortat a conexiunii
a
cere deschiderea conexiunii
cere
nchiderea conexiunii
vezi 10.3.1.8
suma de control a antetului
vezi 10.3.1.11
317
a
a
ului octet primit. La primirea unui pachet TCP, modulul receptor determin
a
dac datele utile sunt octeti deja primiti (duplicate), octeti ce vin imediat
a
n
continuarea celor primiti pn acel moment sau octeti pn la care exist
a a n
a a
a
octeti lips (nereceptionati a din cauza unui pachet pierdut sau arziat).
nc
nt
Octetii primiti continuarea celor deja primiti sunt pui
a
egale cu n 1 au fost primiti de receptor i nu mai trebuie retransmii.
s
s
Emittorul retransmite octetii neconrmati. Datele utile, furnizate
a
a
a
ntr-o zon tampon i inute acolo pn
a
s t
a a
la conrmarea primirii lor de ctre receptor. Datele trimise i neconrmate
a
s
surs are de trimis irul abcdefghi, i c acesta este pasat modulului TCP
a
s
s a
emittor etape, ai irul abcd, apoi efg, h i nal i. Mai presupunem
a
n
nt s
s n
conexiunea TCP deja deschis i numrul curent de secvent 10. S analizm
as
a
a
a
a
putin schimbul de pachete:
a
10, 11, 12 i 13; primul dintre acestea este scris cmpul numr de
s
n a
a
secvent al antetului TCP.
a
La primirea acestui pachet, receptorul rspunde cu un pachet de cona
rmare, cu numrul de conrmare 14 (acesta este urmtorul numr de
a
a
a
secvent ateptat).
a s
Emittorul trimite acum urmtorul pachet de date, cu numrul de seca
a
a
vent 14 i date utile efg. Presupunem c acest pachet se pierde.
a
s
a
Ca urmare a primirii de la aplicatia surs a urmtorului octet, h, emi
a
a
torul TCP trimite imediat urmtorul pachet, cu numrul de secvent
ta
a
a
a
Surs
a
abcd
Emittor TCP
a
secv.=10
Receptor TCP
abcd
Destinatie
abcd
conrm=14
efg
secv.=14
h
efg
secv.=17
h
conrm=14
i
secv.=14
efghi
efghi
conrm=19
secv.=14
efghi
conrm=19
319
a
a
a
mpacheteaz acum tot
a
ce are de (re)trimis
ntr-un singur pachet i trimite numrul de secventa
s
a
a
a
Am presupus pna aici c numerele de secvent sunt numere natua
a
a
rale care pot crete nedeterminat de mult. realitate, numerele de secvent
s
In
a
sunt reprezentate (vezi tabelul 10.5) pe 32 de biti. Cum un numr de secvent
a
a
este asociat unui octet transmis, rezult c exist numere de secvent distincte
a a
a
a
doar pentru 4 GiB de date; dup aceea numerele de secvent
a
a ncep s se repete.
a
Aceasta nu era o problem anii 80, deoarece la 10 Mbit/s repetarea unui
a n
numr de secvent apare cel mai repede dup aproape o or, timp care
a
a
a
a
n
este putin probabil s mai existe retea un pachet vechi cu acelai numr
a
n
s
a
n
34 secunde, ceea ce face foarte posibil o confuzie
a
ntre un pachet care s-a
,,
ncurcat prin retea timp de 34 s i un pachet nou care poart informatie sit
s
a
a
a
doar la comunicatia
ntre module TCP care implementeaz RFC 1323. In
a
cazul care unul din modulele TCP nu implementeaz RFC 1323, modulele
n
a
TCP vor avea grij s nu repete un numr de secvent mai devreme de cteva
a a
a
a
a
minute, oprind efectiv transmisia la nevoie.
10.3.1.2. Comunicatia bidirectional
a
Cele dou sensuri de comunicatie ale unei conexiuni TCP functioneaz
a
a
(aproape) complet independent. Numerele de secvent utilizate pe cele dou
a
a
sensuri evolueaz independent.
a
Totui, datele utile pentru un sens sunt plasate acelai pachet
s
n
s
TCP cu conrmarea pentru cellalt sens. Astfel, ecare pachet TCP contine
a
a a
s
transmii zona de date utile; prezenta lor
s n
a
a
ctiv de pornire, urmat de cei k octeti din zona de date utile, cu numere de
la n + 1 la n + k.
Initiatorul unei comunicatii TCP trimite un pachet TCP continnd
a
un octet ctiv de pornire, fr a seta agul acknowledge (acesta este sinaa
gurul pachet ce nu are agul acknowledge setat) i punnd o valoare ars
a
bitrar (care va ignorat la destinatie) cmpul numr de conrmare.
a
a
n a
a
321
comunicatiei.
a
pornire.
Fiecare parte consider conexiunea deschis momentul care sunt
a
a n
n
satisfcute simultan conditiile:
a
a a
a
Marcarea
nchiderii unui sens se face trimitnd un octet ctiv de
a
ncheiere.
Dup trimitera octetului de
a
ncheiere este interzis s se mai trimit date noi.
a
a
Ca urmare, orice pachete (de conrmare) trimise de partea care a
nchis conexiunea vor avea ca numr de secvent numrul imediat urmtor octetului
a
a
a
a
ctiv de
ncheiere i date utile vide. Octetul ctiv de
s
ncheiere se conrm
a
normal. O conexiune poate functiona orict de mult timp cu un sens
a
nchis.
Nr.
pachet
1
2
3
4
5
6
7
8
9
10
Sens
AB
AB
AB
AB
AB
AB
AB
AB
AB
AB
Nr.
secv.
123
25
124
26
127
26
26
130
29
130
Nr.
conrm.
0
124
26
127
26
130
130
29
130
30
Flaguri
syn
syn,ack
ack
ack
ack,n
ack
ack
ack
ack,n
ack
Date
utile
abc
de
xyz
secvent de la 123 la 129 inclusiv, iar B trimite lui A un numr de 5 octeti din
a
a
a
s
date utile sau octeti ctivi syn sau n , trebuie conrmat. Pachetele ce
a
a
Din punctul de vedere a lui A, conexiunea este complet deschis la
a
primirea pachetului nr. 2; din punctul de vedere al lui B conexiunea este
complet deschis la primirea pachetului 3. Dup trimiterea pachetului 5, A
a
a
nu mai are voie s trimit date noi; poate doar s repete datele vechi (dac
a
a
a
a
nu ar primit pachetul 6 ar trebuit s retrimit pachetul 5) i s trimit
a
a
s a
a
conrmri. B consider conexiunea complet
a
a
nchis dup primirea pachetului
a
a
10 (a primit un n de la A i a trimis i i s-a conrmat n -ul propriu).
s
s
A poate considera de asemenea conexiunea complet
nchis dup trimiterea
a
a
pachetului 10, a mai trebuie s pstreze un timp datele despre conexiune
ns
a a
pentru cazul care pachetul 10 s-ar pierde i B ar repeta pachetul 9.
n
s
O problem special legat de
a
a
a
nchiderea conexiunii este problema
determinrii duratei de la
a
nchiderea conexiunii pn la momentul care
a a
n
datele asociate conexiunii nu mai sunt necesare i memoria asociat poate
s
a
eliberat.
a
Din punctul de vedere al unui modul TCP, conexiunea este
nchis
a
momentul care sunt
n
n
ndeplinite conditiile:
a a a
partener primete conrmarea octetului su de
s
a
ncheiere. Din pcate, detera
minarea acestui moment este imposibil, deoarece din acel moment modulul
a
TCP partener nu va mai trimite nici un pachet (conexiunea ind
nchis). Ca
a
solutie de compromis, protocolul TCP prevede pstrarea datelor despre cone
a
xiune un anumit interval de timp (de ordinul ctorva minute) dup
a
a nchiderea
323
conexiunii.
10.3.1.4. Alegerea numrului initial de secvent
a
a
Numrul de secvent al octetului ctiv de pornire, numit i numr
a
a
s
a
initial de secvent (engl. initial sequence number, ISN ), trebuie ales aa 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 aceleai dou prti (aceleai adrese
s
a a
s
IP i numere de port).
s
Ideal, modulul TCP ar trebui s pstreze datele despre o conexiune
a a
att timp ct mai pot exista retea pachete apartinnd conexiunii. aceste
a
a
n
a
In
conditii, la redeschiderea unei conexiuni
n syn .
Dac de la precedenta conexiune a trecut destul timp pentru ca paa
chetele corespunztoare s nu mai existe retea (e au ajuns la destinatie, e
a
a
n
a
a
a
dei realitate provine de la adversar.
s n
De multe ori,
ntr-un atac de tip spoong adversarul nu are i posibilis
tatea de-a determina ruterele de pe traseu s-i permit recuperarea pachetelor
a
a
de rspuns. Un atac astfel de conditii se numete blind spoong.
a
n
s
Un atac blind spoong se contracareaz foarte simplu genernd aleator
a
a
numrul initial de secvent, adic fcnd ca valoarea lui s e imprevizibil
a
a
a a a
a
a
pentru adversar. Cum adversarul trebuie s emit pachete cu numere de
a
a
secvent i de conrmare valide, cazul acestor msuri adversarul trebuie
a s
n
a
at a
a
s
a
este vorba deci de un atac denial of service.
Contramsura, numit syn cookie, se realizeaz astfel. O main
a
a
a
s a
care ateapt cereri de conectare genereaz aleator un ir de biti, pe care
s
a
a
s
l
ine secret. La primirea unei cereri de conectare, maina alege, ca numr de
t
s
a
secvent initial (pentru sensul dinspre ea spre initiatorul conexiunii), valoarea
a
a
a
a
a
al pachetului primit concatenat cu un irul secret. Apoi, maina int a cos
s
t a
nexiunii trimite pachetul de rspuns, acceptnd numrul de secvent proa
a
a
a
pus de initiatorul conexiunii i continnd numrul de secvent astfel generat.
s
a
a
a
Maina int nu
s
t a
nregistreaz a, tabela de conexiuni, conexiunea astfel
a nc n
deschis. cazul unei conexiuni reale, la trimiterea urmtorului pachet de
a In
a
ctre initiatorul conexiunii, maina int veric numrul de secvent folosind
a
s
t a
a
a
a
aceeai functie de dispersie, dup care memoreaz conexiunea tabelul de cos
a
a
n
nexiuni. acest fel, o conexiune creat dintr-un atac syn ooding 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 trimitnd inia
iatorului un pachet TCP cu agul 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 agul synchronize setat), modulul TCP trebuie s trimit
s
a
a
napoi un pachet cu agul reset setat. Ideea este ca, dac nodul curent a czut
a
a
i a fost repornit, pierznd evidenta conexiunilor deschise, s informeze toti
s
a
a
despre comunicatie au fost pierdute.
a
a
la urmtoarea operatie privind conexiunea.
a
325
reface tabelele de dirijare pentru a folosi acel drum alternativ i acest lucru se
s
ampl sucient de repede pentru ca modulul TCP s nu declare conexiunea
nt
a
a
czut, atunci conexiunea TCP continu s functioneze normal, cu pachetele
a a
a a
a
ndelungat
a
pe o conexiune TCP deschis, cderea legturii sau a unuia din capete nu este
a a
a
detectat de cellalt capt dect momentul care acesta are de transmis
a
a
a
a n
n
date. Dac acel capt nu are de transmis date vreme
a
a
ndelungat, de exemplu
a
cteva ore sau chiar zile, conexiunea rmne deschis din punctul de vedere al
a
a a
a
modulului TCP local. Pentru a evita o astfel de situatie, modulul TCP poate
s
alive (rom. mentine viata ), dei mai degrab ar trebui numit testeaz c
s
a
a
a a
mai este viat. Utilizarea optiunii keep alive are i un dezavantaj: cderea
n
a
s
a
temporar a retelei are anse mai mari s duc la abandonarea conexiunii.
a
s
a
a
10.3.1.6. Identicarea aplicatiei destinatie
a
i
conexiunile TCP sunt identicate printr-un cvadruplet format din adresele IP
ale celor dou capete i porturile celor dou capete. Porturile sunt numere
a
s
a
n
intervalul 165535 utilizate pentru a deosebi conexiunile stabilite
ntre aceleai
s
adrese IP.
Sistemul de operare ine evidenta conexiunilor deschise. Pentru ecare
t
a
capt i portul de la cellalt capt. De asemenea, sistemul retine aplicatia
a s
a
a
din antetul IP i portul surs i destinatie din antetul TCP. Pe baza acestora
s
as
a
pon, numere de secvent, etc) i pe de alt parte aplicatia creia sunt desa
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 arta
n
a
legtura dintre apelarea de ctre o aplicatie a functiilor socket i actiunile
a
a
a
deschiderea unei noi conexiuni. cazul care nu se ateapt deschiderea
In
n
s
a
unei conexiuni, modulul TCP trimite un pachet cu agul reset.
Dac, adresa local dat functiei bind(), s-a specicat constanta
a n
a
a
a
INADDR ANY, este acceptat un pachet de deschidere de conexiune ce specic ca
adres destinatie oricare dintre adresele nodului curent. Dac apelul bind()
a
a n
s-a specicat o anumit adres a nodului curent, este acceptat deschiderea
a
a
a
conexiunii doar dac adresa destinatie a pachetului de deschidere este adresa
a
a
n
caz defavorabil semnalizeaz eroarea survenit.
a
a
327
ns
tajul c determin emittorul s retrimit octetii respectivi, genernd trac
a
a
a
a
a
a
inutil.
Metoda utilizat de TCP este ca receptorul s semnalizeze emittoa
a
a
rului, prin valoarea cmpului dimensiune fereastr din antetul TCP, numrul
a
a
a
de octeti pe care receptorul este capabil s-i receptioneze acel moment.
n
Emittorul nu va trimite mai multi octeti dect dimensiunea ferestrei trimis
a
a
a
de receptor. Exist o singur exceptie: dac receptorul a semnalizat dimena
a
a
siunea ferestrei 0, emittorul 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 mrirea ferestrei s-a
a
pierdut.
Pe lng mecanismul sus-mentionat, emittorul 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 e ca urmare a erorilor la nivel zic, e ca urmare
a congestiei nodurilor intermediare. Cu exceptia transmisiei radio, erorile
a
s a
ntoarc i s se
as a
receptioneze conrmarea. Acest timp se numete timp dus-
s
ntors (engl. roundtrip time, RTT ). Timpul dus-
ntors nu este x, ci depinde de perechea emittorreceptor considerat i de arcarea retelei momentul considerat.
a
as
nc
n
Modulul TCP estimeaz statistic media i dispersia timpului dus-
a
s
ntors pentru
ecare conexiune deschis i xeaz timpul dup care se retrimit pachetele
a s
a
a
neconrmate la o valoare ceva mai mare dect media timpului dus-
a
ntors.
send(), modulul TCP poate trimite imediat un pachet sau poate atepta;
s
ateptarea este util dac astfel se pot plasa mai multe date acelai 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 neconrmate, sau dac datele noi sunt sua
s
a
cient de mari pentru a umple un pachet, datele se trimit imediat;
altfel, modulul TCP ateapt pn la primirea conrmrii sau expirarea
s
a a a
a
timpului de retransmitere, i abia atunci trimite datele primite
s
ntre
timp de la aplicatie.
a
trimiterea conrmrii pentru un pachet TCP primit. Ideea este c, dac
a
a
a
aplicatia care receptioneaz datele din acel pachet are de trimis date ca rspuns
a
a
la datele primite, datele ce constituie rspunsul s e trimise acelai pachet
a
a
n
s
cu conrmarea datelor primite.
10.3.1.11. Trimiterea datelor speciale (out of band)
TCP prevede un mecanism de transmitere, cadrul uxului normal
n
de date, a unor date cu un marcaj special. Mecanismul este
ntructva echivaa
lent cu a avea dou uxuri de date ataate conexiunii, unul pentru datele
a
s
,,obinuite i cellalt pentru date ,,speciale. Datele speciale poart denus
s
a
a
mirea, terminologia angloamerican, out of band data (OOB ).
n
a
O posibil utilizare este urmtoarea: presupunem o aplicatie care
a
a
a
a
s
(s zicem civa gigaocteti) i apoi se rzgndete i dorete s abandoneze
a
at
s
a a
s s
s
a
operatia, partea de emittor a aplicatiei nu poate semnaliza receptorului
n
nici un fel abandonarea transmiterii. Aceasta deoarece octetii transmii sunt
s
interpretati de receptor ca ind continutul ierului. Aici intervin datele cu
s
marcajul special (out of band ): emittorul trimite continutul 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 e livrate ct 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 fr a precedate de date
aa
normale;
329
a
de transmis ( pachetul curent i urmtoarele).
n
s n
a
De principiu un pachet continnd date speciale va avea setat i agul
a
s
push, care indic faptul c modulul TCP receptor ar trebui s livreze datele
a
a
a
ctre aplicatia destinatie ct mai repede.
a
a
Pentru acestea, nivelul transport trebuie s rezolve doar problema gsirii
a
a
aplicatiei creia este destinat datagrama. Aceast problem este rezolvat
a
i
a
a
a
a
de protocolul UDP.
Fiecrei aplicatii ce utilizeaz UDP i se acord, de ctre modulul
a
a
a
a
UDP al sistemului de operare local, un port UDP . Un port UDP alocat unei
aplicatii nu va acordat i altei aplicatii dect dup ce este eliberat de prima.
a
a
O datagram UDP poart ca adrese surs i destinatie perechi fora
a
as
mate din cte o adres IP i un numr de port. Adresa IP este adresa nodului
a
a
s
a
pe care ruleaz aplicatia surs, respectiv destinatie, iar portul este portul aloa
a s
tul destinatie. Adresele IP surs i destinatie sunt cele plasate cmpurile
as
n a
corespunztoare ale pachetului IP.
a
Deoarece o datagram UDP trebuie s e 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 specice
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 numr de port liber.
a
a
a
Deoarece, conform protocolului UDP, receptia datagramei trimise nu
a
a
nainte ca
pachetul s e efectiv livrat.
a
Functiile sistem recvfrom() i recvmsg() ateapt receptia unei
s
s
a
ment. Functia returneaz datele utile din datagram precum i adresa surs
a
a
s
a
a datagramei.
s
a
a
spre exemplu, dac o rm schimb furnizorul de Internet folosit, adresele
a
a
a
statiilor rmei 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 identicarea unui nod de retea printr-un nume
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 rspund la o cerere dat).
a a
a
a
DNS este proiectat ideea c informatiile se citesc frecvent i se
n
a
s
modic rar. Cu ocazia modicrilor se admite s existe temporar incoerente
a
a
a
a n
veche.
a
as
a
331
a
domenii fr punctul nal. lipsa punctului nal, interpretarea este a
aa
In
ns
diferit. Anume, dac numele nu este terminat cu punct, aplicatia va
a
a
ncerca
s adauge la nume iruri de componente superioare ierarhic dintr-o list cona
s
a
gurat de administratorul sistemului. Primul nume de domeniu, astfel cona
struit, care exist DNS este considerat ca ind semnicatia numelui dat de
a n
utilizator.
Exemplul 10.13: Presupunem c lista de cutare congurat de adminisa
a
a
trator pentru un sistem contine, ordine, scs.ubbcluj.ro, cs.ubbcluj.ro
n
i ubbcluj.ro. O cutare pentru numele www va duce la cutarea numelui
s
a
a
www.scs.ubbcluj.ro. care va gsit i vor returnate informatiile dea
s
a
s
nume de domeniu poate crea i administra dup voie numele formate prin
s
a
adugare de componente ierarhic inferioare. De exemplu, Universitatea Babea
s
Bolyai din Cluj-Napoca a obtinut numele ubbcluj.ro. . Crearea numelui
s
a
institutia care administreaz domeniul printe i s cear alocarea unui nume.
a
a
s a
a
a
ntretinerea unui
server de nume (vezi 10.4.3 i 10.4.4) pentru domeniul ce i-a fost alocat.
s
Adesea rmele care ofer acces Internet ofer gratuit clientilor nume
a
a
a
nume al site-ului rmei.
De remarcat c, dei organizarea ierarhic a numelor de domeniu
a
s
a
seamn cu organizarea numelor de iere i directoare, nu exist o restrictie
a a
s
s
a
similar cu aceea c
a
a ntr-un director nu e permis s aib acelai nume un ier i
a
a
s
s s
un subdirector. Anume, ca exemplu, numele ubbcluj.ro. i cs.ubbcluj.ro.
s
pot desemna simultan noduri retea.
n
tru a putea pune DNS i alte informatii afar de adrese IP. Inregistrrile
n
s
n
a
a
corespunztoare adreselor IP au tipul A (de la address=adres) i clasa IN (de
a
a s
la Internet). Cmpul valoare a unei
a
nregistrri cu tipul A i clasa IN contine
a
s
mai multe adrese IP pentru un nume dat poate folosi oricare din adrese; acestea se presupune c sunt ale aceluiai calculator sau ale unor calculatoare ce
a
s
furnizeaz servicii echivalente.
a
O list a tipurilor de
a
nregistrri DNS mai des utilizate este dat
a
a n
tabelul 10.7.
Remarcm mod deosebit tipul CNAME (nume canonic). O
a n
nregistrare avnd numele nume1, tipul CNAME i valoarea nume2 denete
a
s
s
nume1 ca pseudonim pentru nume2. acest caz, nume2 este considerat
In
numele canonic al acelui obiect. Dac pentru un nume exist o
a
a nregistrare
CNAME, nu este permis s mai existe vreo alt
a
a nregistrare pentru acel nume.
Tip
A
AAAA
Valoare
adres IPv4
a
adres IPv6
a
CNAME
nume
de
domeniu
nume
de
domeniu
date de identicare ale
informatiilor
despre zon
a
nume
de
domeniu
nume
de
domeniu i
s
prioritate
PTR
SOA
NS
MX
333
Observatii
a a
a
s a
ar fost gsit pentru numele original.
a a
mp a n
zon exist unul sau mai multe servere de nume sau server DNS care detin
a
a
toate
nregistrrile corespunztoare numelor din acea zon.
a
a
a
Privim spatiul de nume ca un arbore care rdcina este domeniul
n
a a
rdcin i ecare nume are ca printe numele obtinut din el prin aturarea
a a as
a
nl
celei mai din stnga componente. O zon este o submultime de nume care,
a
a
a n
t
a
nseamn c numele
a a
respectiv nu exist.
a
Din motive de tolerant la pene, pentru ecare zon exist de regul
a
a
a
a
cel putin dou servere responsabile. De principiu, tabelele despre o zon dat
a
a
a
ale serverelor responsabile de acea zon trebuie s e identice; pot exista a
a
a
ns
temporar incoerente
ntre tabele cu ocazia modicrilor unor informatii.
a
Pe lng
a a nregistrrile despre zonele pentru care este responsabil, un
a
server de nume trebuie s mai detin
a
a nregistrri care s permit regsirea
a
a
a
a
serverelor de nume ale zonelor adiacente zona imediat superioar ierarhic
a
i zonele imediat subordonate, dac exist i a serverelor de nume pentru
s
a
a
s
zona rdcin. Aceste
a a a
nregistrri se numesc glue records
a
nregistrri lipici
a
deoarece creaz legtura cu zonele
a
a
nvecinate.
Pentru numele rdcin al ecrei zone trebuie s existe urmtoarele
a a a
a
a
a
nregistrri:
a
O
nregistrare SOA (Start Of Authority), care contine nite date admin
s
istrative despre zon (vezi 10.4.5);
a
Una sau mai multe
nregistrri NS (Name Server ) care contin numele
a
s
s
nregistrri, artite trei categorii:
a mp n
335
la
ntrebarea clientului. Inregistrrile gsite sunt plasate categoria a
a
a
n
treia alte
nregistrri.
a
Un server recursiv poate congurat s retin
a a nregistrrile astfel
a
obtinute, astfel at la o interogare ulterioar s poat rspunde direct,
nc
a a
a a
fr a mai cuta un server responsabil pentru numele cerut de client. O
aa
a
nregistrare astfel memorat este inut un timp cel mult egal cu tera
t
a
menul de valabilitate al
nregistrrii, dup care se consider c informatia
a
a
a a
a
gethostbyname(). Aceste functii de bibliotec trebuie s gseasc un prim
a
a a
a
server de nume pe care s-l interogheze. Pentru aceasta, sistemul de opera
n
are exist un loc standardizat unde administratorul scrie adresele IP ale unuia
a
sau mai multor servere de nume. sistemele de tip Unix, locul este ieru
In
s
/etc/resolv.conf, iar Windows este registry.
n
n
nregistrrile dintr-o anumit zon ([RFC 1035, 1987], [RFC 1995, 1996]).
a
a
a
Acest lucru se utilizeaz pentru a putea
a
ntretine uor mai multe servere re
s
sponsabile de o anumit zon. Toate
a
a
nregistrrile privind zona se scriu
a
n
baza de date a unuia dintre servere, denumit master . Celelalte servere, numite slave, sunt congurate s copieze periodic informatiile de pe master.
a
De notat c,
a ntr-o astfel de conguratie, att serverul master ct i
a
a s
serverele slave sunt considerate responsabile de zon; mecanismul este invizibil
a
pentru cineva care face o interogare DNS pentru un nume din zon.
a
Momentele la care un server slave copiaz datele de pe serverul master
a
depind de urmtorii parametri din
a
nregistrarea SOA a zonei:
serial este numrul de ordine al datelor; administratorul zonei trebuie s
a
a
creasc numrul serial oridecteori modic vreo
a
a
a
a
nregistrare din zon.
a
a
se creaz domeniul 128/28.40.226.193.in-addr.arpa., asociat blocului
a
337
s
spunztoare ca o component separat.
a
a
a
Ordinea ierarhic a componentelor astfel obtinute este aceea care coma
n
ponentele corespunztoare bitilor mai semnicativi din adresa IP sunt
a
nicativi.
Exemplul 10.14: Pentru adresa 4321:0:1:2:3:4:567:89ab, numele de domeniu asociat este
b.a.9.8.7.6.5.0.4.0.0.0.3.0.0.0.2.0.0.0.1.0.0.0.0.0.0.0.1.2.3.4.
ip6.arpa
de alt tip, de exemplu o retea IEEE 802. O astfel de retea joac rolul nivelului
a
legturii de date contextul protocolului Internet i ca urmare o vom numi
a
n
s
aici retea de nivel inferior.
a
anterior.
a
A trimite reteaua de nivel inferior un pachet de difuziune (broadcast)
n
continnd adresa IP a lui B. Acest pachet este un fel de
a
ntrebare ,,cine
are adresa IP cutare?.
La un astfel de pachet rspunde doar nodul cu adresa IP specicat
a
a n
pachet adic doar nodul B cazul de fat. Pachetul de rspuns 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. Pachetul are semnicatia
s
a
semnalizeze situatia:
a
a
a n
comenzii arping.
339
Sunt situatii care este util ca un nod s-i determine propria adres
n
as
a
IP,
mpreun cu alti civa parametri (masca de retea, default gateway, servere
a
at
a
functie de reteaua la care este conectat;
n
s
mai detaliu protocolul DHCP, celelalte dou nemaiind utilizate prezent.
n
a
n
De notat a c protocolul DHCP este conceput ca o extensie a protocolului
ns a
BOOTP.
Un nod care dorete s-i determine parametrii de retea (adresa IP
s
as
DNS) se numete client DHCP. Clientul DHCP trimite o cerere, la care rspunde
s
a
un server DHCP stabilit pentru reteaua respectiv. Rspunsul contine parametrii
a a
n
cum se transmit cererea i rspunsul DHCP, conditiile care mods a
n
n
ulul IP al clientului nu este congurat i ca urmare nu este complet
s
functional;
a
67. Adresa IP surs este 0.0.0.0 (valoarea standard pentru adres necunosa
a
cut). Pachetul IP este
a
ncapsulat
ntr-un pachet Ethernet destinat adresei
de broadcast (FF:FF:FF:FF:FF:FF) i purtnd ca adres surs adresa plcii
s
a
a
a
a
de retea locale. Serverul DHCP trebuie s e aceeai subretea cu clientul
a
n
s
(sau s existe aceeai subretea un server proxy DHCP care s preia cererea
a
n
s
a
clientului i s-o retrimit serverului).
s
a
Rspunsul DHCP este plasat la rndul lui
a
a
ntr-un pachet UDP purtnd ca adres surs adresa serverului DHCP i ca adres destinatie adresa
a
a
a
s
a
ncapsulat
ntrun pachet Ethernet destinat adresei MAC a clientului. Asocierea IP MAC
pentru transmiterea pachetului de ctre server nu se face prin mecanismul
a
ARP (care ar eua deoarece clientul DHCP nu poate a rspunde la cererea
s
nc a
ARP) ci este setat de ctre serverul DHCP prin intermediul unui apel sistem.
a
a
Determinarea parametrilor de ctre server. Pentru ecare subretea
a
pentru care actioneaz, un server DHCP trebuie s aib dou categorii de date:
a
a
a
a
parametrii comuni tuturor nodurilor din subretea (masca de retea, gateway
a
a
folosite:
Alocare manual: Adresa ecrui nod este xat manual de ctre ada
a
a
a
ministratorul serverului DHCP. Nodul client este identicat prin adresa
MAC sau prin nume. primul caz administratorul trebuie s scrie
In
a
ntrun ier de congurare al serverului toate adresele MAC ale plcilor de
s
a
retea i adresele IP corespunztoare. al doilea caz, pe serverul DHCP
s
a
In
se scriu numele statiilor i adresele corespunztoare iar pe ecare statie
s
a
a
toare fr harddisc).
aa
Alocare dinamic: Serverul dispune de o multime de adrese pe care le
a
s
eliberate la cererea explicit a clientului sau la expirarea perioadei de
a
alocare (vezi mai jos).
Adresele se atribuie de regul pe o durat determinat. Perioada de
a
a
a
alocare poate prelungit la solicitarea clientului printr-o cerere DHCP de
a
prelungire. Dup expirarea perioadei de alocare, clientul nu mai are voie s
a
a
utilizeze adresa.
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, dac clientul este scos din retea fr
a
a
aa
341
n
Vom studia paragraful de fat anumite procedee mai deosebite utin
a
lizate dirijarerea pachetelor. Aceste procedee se aplic
n
a ndeosebi retelele
n
interne ale unor institutii.
n
functie de anumite reguli, ignor complet sau trimite pachete ICMP de eroare
a
pentru anumite pachete.
Scopul unui ltru de pachete este de-a interzice anumite actiuni
n
retea, special pentru a contracara anumite
n
ncercri de spargere a unui
a
calculator.
Congurarea unui ltru de pachete const stabilirea unui ansamblu
a n
de reguli de ltrare. Prezentm continuare posibilitile oferite de mecanisa n
at
mul iptables din sistemul Linux, cu mentiunea c facilitile de baz se regsesc
a
at
a
a
toate sistemele.
n
O regul de ltrare este o pereche format dintr-o conditie i o actiune.
a
a
s
Regulile sunt grupate iruri numite lanturi. Exist trei lanturi predenite:
n s
a
Pentru ecare pachet ajuns la modulul IP, acesta aplic prima regul, din
a
a
lantul corespunztor traseului pachetului, pentru care pachetul
a
ndeplinete
s
conditia specicat regul. Aplicarea regulii
a n
a
nseamn executarea actiunii
a
specicate de regul.
a
Principalele actiuni ce pot specicate sunt:
REJECT se trimite
napoi un pachet semnalnd o eroare implicit
a
ICMP destination unreachable.
Conditiile specicate
s
retea, conditia ind satisfcut de pachetele ce au adres
a a
a ncepnd cu
a
acel prex sau, eventual, pachetele ce au adres ce nu
a
ncepe cu acel
prex),
adresa MAC surs sau destinatie (pentru pachete ce intr, respectiv ies,
a
a
prin interfete ce au conceptul de adres MAC),
a
protocolul (TCP, UDP, ICMP),
portul surs sau destinatie (pentru protocoale care au notiunea de port),
a
chet invalid.
Este adevrat, acest lucru
a
nseamn o alcare a principiului separrii
a nc
a
nivelelor: TCP este un protocol de nivel transport, deasupra nivelului retea.
343
a
- pachete ce au ca surs o adres de broadcast (clasa D) sau de clas
a
a
a
E,
- 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
a
S e interzise conexiunile din afara retelei locale ctre servicii care sunt
a
a
oferite doar pentru reteaua local. De exemplu, accesul la un share
a
Windows este adesea de dorit s nu e posibil din afara retelei locale.
a
a
- pentru conexiun TCP, se permit pachetele asociate unei conexiuni
deja deschise, se permit pachetele ctre exterior, se permit paa
chetele destinate serviciilor publice i se interzic toate celelalte
s
pachete.
s
(127.0.0.1) sau o adres privat.
a
a
Exemplul 10.15: Fie un ruter avnd spate o retea intern avnd adrese cu
a n
a a
prexul 193.226.40.128/28. Ruterul are interfata eth0 cu adresa 193.0.225.20
cal.
a
Din reteaua local dorim s se poat deschide orice fel de conexiuni
a
a
a
TCP ctre exterior; din exterior dorim s nu se poat deschide alte conexiuni
a
a
a
dect ctre serverul http i https de pe 193.226.40.130 i ctre serverele ssh de
a a
s
s a
pe toate mainile din reteaua local.
s
a
Din reteaua local dorim s putem accesa servicii DNS i NTP. Aces
a
a
s
tea le furnizm astfel:
a
pe ruter instalm un server DNS i un server NTP, accesibile din reteaua
a
s
a
permitem cererile emise de serverele DNS i NTP de pe ruter, precum i
s
s
rspunsurile corespunztoare. Cererile NTP provin de pe portul UDP
a
a
123 al ruterului i sunt adresate portului UDP 123 al unui nod din
s
exterior, 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.
s
Pentru diagnosticarea functionrii retelei vom mai permite trecerea
a
l
aa
Blocm toate
a
ncercrile de spoong detectabile.
a
# blocare spoofing detectabil si alte pachete dubioase
iptables -A FORWARD -i eth0 -s 193.226.40.128/28 -j DROP
iptables -A FORWARD -i eth0 -s 193.0.225.20 -j DROP
iptables -A FORWARD -i eth0 -s 127.0.0.0/8 -j DROP
345
346
a
a
calculatoare nu pot comunica direct cu calculatoarele din Internet.
O utilizare tipic este cea prezentat gura 10.7. O institutie A
a
a n
are o retea proprie de calculatoare. Din aceast retea proprie, o parte dintre
a
calculatoare s le numim publice trebuie s comunice nerestrictionat cu
a
a
a
Internet-ul ,,public
Furnizor Internet
Noduri publice
193.226.40.128/28
Noduri private
192.168.1.0/24
Noduri publice
193.0.225.0/24
Noduri private
192.168.1.0/24
Reteaua institutiei B
Reteaua institutiei A
Figura 10.7: Dou retele locale avnd ecare aceleai adrese private pentru o parte
a
a
s
din calculatoare.
a
De fapt, general, o adres trebuie s e unic doar multimea nodurilor
n
a
a
a
n
a
s e unice, adresele din reteaua local s e unice i s nu existe suprapuneri
a
a a
s a
ntre adresele din Internet i adresele din reteaua local. Cerinta din urm
s
a
este determinat de cerinta ca nodurile cu adrese publice din reteaua proprie
a
a
a
de ctre rutere astfel:
a
dac ruterul face parte dintr-o retea local care exist acea adres,
a
a n
a
a
347
pachetul este dirijat ctre unicul nod din reteaua local purtnd adresa
a
a
a
respectiv;
a
altfel, ruter-ul declar pachetul nelivrabil.
a
Aa cum am vzut 10.2.4.1, urmtoarele blocuri de adrese IP sunt
s
a
n
a
alocate pentru astfel de utilizri retele private: 10.0.0.0/8, 172.16.0.0/12 i
a n
s
192.168.0.0/16.
De cele mai multe ori, calculatoarelor private li se ofer posibiliti
a
at
limitate de-a comunica cu calculatoare din Internet, prin intermediul unor
mecanisme descrise paragrafele urmtoare.
n
a
a
adresa surs sau adresa destinatie a unor pachete.
a
a
Presupunem c avem o retea privat i dorim ca de pe calculatoarele
a
as
cu adrese private s se poat deschide conexiuni ctre calculatoare din Internet
a
a
a
spre exemplu, pentru a putea accesa pagini web. Fr vreun mecanism
aa
special, acest lucru nu este posibil, din urmtorul motiv: Un calculator C cu
a
adres privat care dorete s deschid o conexiune ctre un calculator S din
a
a
s
a
a
a
Internet trimite un pachet IP avnd ca adres surs adresa proprie (privat) C,
a
a
a
a
ca adres destinatie adresa serverului S (adres care este public) i continnd
a
a
a s
a
o cerere de deschidere de conexiune TCP. Pachetul ajunge la destinatie, iar
a
n
n
Internet
S 193.226.40.130
193.0.225.20
G
192.168.0.1
C
192.168.0.123
Retea privat
sei surs
a
dup care trimite mai departe pachetul ctre C acest lucru este acum posia
a
bil deoarece G este reteaua intern, i ca urmare adresa lui C indic singurul
n
a s
a
nod din reteaua proprie avnd acea adres.
a
a
Pentru ca mecanismul de mai sus s e realizabil, este necesar ca
a
ruterul G s poat determina crui nod privat este destinat mod real
a
a
a
i
n
ecare pachet avnd ca adres destinatie adresa G. De regul, acest lucru
a
a
a
necesit identicarea ecrui pachet venit din Internet ca rspuns la un pachet
a
a
a
dinspre un nod privat spre Internet.
Acest lucru este cel mai simplu de fcut pentru conexiunile TCP.
a
Pentru o conexiune TCP, ruterul G urmrete pachetele de deschidere a coa s
nexiunii. La primirea unui pachet de deschiderea conexiunii dinspre un nod
privat C, de pe un port pc , ctre un server S, ruterul G aloc un port TCP
a
a
local pg (de preferint pg = pc , a dac pc nu este liber se poate aloca un pg
a
ns
a
diferit). Pachetul de deschidere a conexiunii este modicat de G astfel at
nc
adresa surs s e G i portul surs s e pg . G pstreaz asocierea (C, pc , pg ).
a a
s
a a
a
a
La sosirea unui pachet cu adresa destinatie G i portul destinatie pg , ruterul
a n
a
clientul C avnd adresa (privat) 192.168.0.123 deschide o conexiune TCP
a
a
de pe portul efemer 3456 ctre serverul S, avnd adresa 193.226.40.130, pe
a
a
Sens
CS
CS
Intre C i G
s
surs
a
destinatie
192.168.0.123 193.226.40.130
port 3456 (pc )
port 80
193.226.40.130 192.168.0.123
port 80
port 3456 (pc )
349
Intre G i S
s
surs
a
destinatie
193.0.225.20
193.226.40.130
port 7890 (pg )
port 80
193.226.40.130
193.0.225.20
port 80
port 7890 (pg )
ntre clientul C
i serverul S exemplul 10.16
s
n
a
deschiderea unei conexiuni de la un nod cu adres privat ctre un nod public
a
a a
din Internet. Nodul privat ,,are impresia c comunic direct cu serverul din
a
a
Internet. Serverul din Internet ,,are impresia c comunic cu ruterul G pe
a
a
portul alocat de acesta.
Fat de utilizarea adreselor publice, utilizarea adreselor private i a
a
s
translatiei adresei surs are dou limitri majore:
a
a
a
nu permite deschiderea conexiunilor sens invers, dinspre Internet ctre
n
a
un nod privat;
dac pe conexiune sunt trimise, sub forma de date utile pentru protocolul
a
TCP, informatii privind adresa IP i portul de pe client, vor constatate
s
incoerente
ntre IP-ul i portul clientului vzute de ctre server (acess
a
a
tea ind G i respectiv pg ) i IP-ul i portul clientului vzute de client
s
s
s
a
(acestea ind C i respectiv pc ).
s
Cea de-a doua limitare poate eliminat dac G cunoate protocolul
a
a
s
de nivel aplicatie dintre C i S i modic datele despre conexiune schimbate
s
s
a
s
s a
la adresa i portul pe care clientul ateapt conexiune dinspre server.
s
s
a
10.7.3.2. Translatia adresei destinatie
a
a
a
un ruter G situat reteaua proprie dar avnd adres public i un client C
n
a
a
as
din Internet. Clientul C dorete s deschid o conexiune ctre serverul S.
s
a
a
a
Desigur, comunicarea ,,normal nu este posibil deoarece contextul lui C
a
a
n
adresa privat a lui S nu este unic.
a
a
Este posibil a ca adresa publicat ( DNS-ul public) pentru serverul
ns
a n
S s e adresa lui G. acest caz, C deschide conexiunea ctre G. Printr-un
a
In
a
mecanism similar cu cel din paragraful precedent, G modic de data aceasta
a
adresa destinatie, punnd, locul propriei adrese, adresa privat a lui S. Pa
a
n
a
chetul de rspuns de la S este de asemenea modicat de ctre G, care pune
a
a
ca adres surs adresa proprie G loc de S. Astfel, S ,,are impresia c
a
a
n
a
comunic direct cu C, iar C ,,are impresia c comunic cu G.
a
a
a
Translatia adresei destinatie poate util urmtoarele 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, servere ce nu pot functiona pe aceeai main.
s
s a
Putem furniza astfel un server HTTP i un server SMTP care apar din
s
Internet ca ind la aceeai adres IP dar sunt gzduite realitate pe
s
a
a
n
calculatoare distincte. Necesitatea utilizrea calculatoarelor distincte
a
pentru aceste servicii poate rezulta din motive de securitate sau din
motive legate de performantele calculatoarelor utilizate.
dac dorim totui acces din afar ctre calculatoarele din reteaua intern.
a
s
a a
a
De exemplu, pe ecare calculator ruleaz un server SSH. Fiecrui cala
a
culator vom asocia un port pe ruterul G. O conexiune din afar, prin
i
a
protocolul SSH, ctre un anumit port de pe G va redirectionat ctre
a
a a
serverul SSH de pe calculatorul privat corespunztor.
a
pentru a distribui cererile ctre un server foarte solicitat. acest caz,
a
In
serverul va avea ca adres publicat DNS adresa lui G, a vor exista
a
a n
ns
de fapt mai multe servere pe calculatoare S1 , S2 , . . . , Sn reteaua
n
intern. Conexiunile deschise din Internet ctre G vor redirectionate
a
a
a
conexiune. Orice pachet ulterior de pe acea conexiune va redirectionat
351
10.7.4. Tunelarea
Prin tunelare se elege, general, transmiterea unor date aparnt
n
innd unui anumit protocol ca date utile cadrul unui protocol de acelai
t a
n
s
nivel sau de nivel superior.
Ne vom ocupa cele ce urmeaz de tunelarea pachetelor IP, adic de
n
a
a
transmiterea pachetelor IP prin protocoale de nivel retea sau de nivel aplicatie.
dou sedii i are o retea privat in ecare sediu. Exist mai multe solutii
a
s
a
a
a
a a
a
10.7.3.
n
Unicarea zic a celor dou retele private, ducnd o legtur zic
a
a
a
a a
a
ntre ele (g. 10.9), ofer conectivitate complet, a ducerea unui cablu
a
a ns
specual pentru aceasta poate extrem de costisitor.
Retea privat
a
Retea sediu A
Retea sediu B
192.168.1.0/24
192.168.1.1
192.168.2.0/24
Legtur direct
a a
a
(subretea 192.168.0.0/24)
192.168.0.1
192.0.225.20
192.168.2.1
192.168.0.2
193.226.40.130
Internet
a a
a
a
352
a n
nexiuni (de exemplu TCP)
ntre dou rutere cu adrese publice din cele
a
dou retele interne (g. 10.10). Conexiunea dintre rutere este un ,,cablu
a
virtual ce preia rolul conexiunii zice.
Retea privat virtual (VPN)
a
a
Retea sediu A
Retea sediu B
192.168.1.0/24
192.168.2.0/24
192.168.1.1
192.168.2.1
192.168.0.2
192.168.0.1
192.0.225.20
193.226.40.130
Legtur virtual (tunel)
a a
a
(subretea 192.168.0.0/24)
Internet
s a
a a
zic. Ca urmare, ecare capt al tunelului este o interfat de retea, avnd o
a
a
a
a
adres IP i o masc de retea.
a
s
a
Capitolul 11
Aplicatii retele
n
n
a
transferul mesajului s dureze cteva ore, pentru a putea functiona pe sisteme
a
a
a
pentru a-l asista compunerea mesajului i stabilirea adresei destin
s
natarului. La nal, mail user agent-ul trimite mesajul unui proces de
tip mail transfer agent (MTA). Transferul este initiat de MUA-ul uti
lizatorului expeditor i utilizeaz protocolul SMTP ( 11.1.2.1).
s
a
O serie de procese de tip mail transfer agent care trimit ecare urmtoa
rului mesajul. Transferul este initiat de MTA-ul emittor i utilizeaz
a
s
a
tot protocolul SMTP.
De ecare adres destinatie este rspunztor un mail transfer agent care
a
a
a
memoreaz mesajele destinate acelei adrese. Odat mesajul ajuns la
a
a
354
Expeditor
Destinatar
Mail user
agent (MUA)
Mail user
agent (MUA)
SMTP
Mail transfer
agent (MTA)
SMTP
Mail transfer
agent (MTA)
responsabil de
adresa dest.
SMTP
n
se transfer mesajul de pot electronic.
a
sa
a
rat local (afar de cazul care are loc aici o rescriere de adres, vezi
a
n
a
11.1.2.3).
Utilizatorul destinatie citete mesajul cu ajutorul unui proces de tip mail
s
user agent. Acesta contacteaz mail transfer agent-ul responsabil de
a
adresa utilizatorului destinatie i recupereaz mesajul de la el. Trans s
a
ferul este initiat de MUA (adic de receptor). Exist dou protocoale
a
a
a
utilizate pentru transfer: POP3 i IMAP.
s
Intreg mesajul este de tip text ASCII. Rndurile sunt delimitate prin
a
secvente formate din caracterul carriage return (cod 13) urmat de line feed
(cod 10). Rndurile 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. Caracterele de control (cu
a a
a
codul
ntre 0 i 31 sau egal cu 127) nu sunt permise, cu exceptia secventelor
s
355
mesajelor:
nici un rnd s nu constea doar dintr-un caracter punct;
a
a
un rnd ce urmeaz dup un rnd vid s nu
a
a
a
a
a
nceap cu cuvntul From.
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, independente de cele plasate antetul mesajului. Aceste
n
informatii formeaz aa-numitul plic (engl. envelope) al mesajului. Expedi
a s
torul i destinatarul date antetul mesajului sunt informatii pentru utilizas
n
n
mesajului.
11.1.1.1. Antetul mesajelor
Antetul mesajelor este constituit dintr-un numr de cmpuri, ecare
a
a
cmp avnd un nume i o valoare. De principiu, ecare cmp este un rnd
a
a
s
a
a
separat continnd numele, caracterul dou puncte (:) i valoarea; secventa
a
a
s
a
ntre cmpuri. Ana
tentul se termin cu dou secvente carriage return line feed consecutive.
a
a
s
nceputul
rndurilor urmtoare se consider ca fcnd parte din cmp.
a
a
a
a a
a
Exemplul 11.1: Un posibil document (vezi mai jos explicatiile privind sem
nicatiile diverselor cmpuri):
a
From: Radu Lupsa <rlupsa@cs.ubbcluj.ro>
To: Test User <test@example.com>
Date: Sat, 1 Sep 2007 10:12:20 +0300
Message-ID: my-emailer.20070901101220.53462@nessie.cs.ubbcluj.ro
Subject: Un mesaj dat ca
exemplu
Salut,
Mesajul acesta este doar un exemplu.
a ntre un
angajat al unei rme i un client al rmei, angajatul va pune adresa
s
clientului cmpul To (deoarece acestuia este destinat mesajul), iar
n a
i
cmpul Cc va pune adresa efului (care trebuie informat cu privire la
n a
s
comunicatie).
a
Bcc este completat de ctre mail user agent i este eliminat de ctre
a
s
a
primul mail transfer agent de pe traseu.
From, Sender i Reply-to reprezint adresa expeditorului i adresa la
s
a
s
care trebuie rspuns.
a
conditii obinuite, un mesaj contine doar cmpul From, reprezentnd
In
a
a
adresa expeditorului mesajului i totodat adresa la care trebuie trimis
s
a
un eventual rspuns.
a
Cmpul Sender este utilizat atunci cnd o persoan trimite un
a
a
a
mesaj numele altei persoane sau numele unei organizatii pe care o
n
n
Dac mesajul provine de la ef, dar este scris i trimis efectiv de secrea
s
s
tara efului, atunci adresa efului este pus cmpul From, iar adresa
s
s
a n a
secretarei cmpul Sender. Dac o persoan trimite un mesaj nun a
a
a
n
mele unei organizatii, atunci adresa organizatiei va trecut cmpul
a n a
From i adresa persoanei ce scrie mesajul va plasat cmpul Sender.
s
a n a
ne, cmpul Reply-to reprezint adresa la care trebuie trimis
In
a
a
un eventual rspuns la mesaj, dac aceast adres este diferit de adresa
a
a
a
a
a
din cmpul From. Dac destinatarul rspunde la un mesaj primit, utia
a
a
liznd functionalitatea de reply a mail user agent-ului su, MUA-ul ofer
a
a
a
implicit, ca adres destinatie a mesajului de rspuns, adresa preluat din
a
a
a
cmpul Reply-to a mesajului original. lipsa unui cmp Reply-to,
a
In
a
MUA-ul ofer adresa din cmpul From. De asemenea, chiar prezenta
a
a
n
357
a
un cmp Reply-to indicnd adresa listei. Astfel, mesajul primit de
a
a
abonat are From autorul mesajului, To adresa listei i Reply-to tot
s
adresa listei. Abonatul listei va rspunde foarte uor pe adresa listei
a
s
deoarece mail user agent-ul su va prelua adresa listei din Reply-to i
a
s
o va pune ca adres destinatie mesajul de rspuns. Totui, e bine ca
a
n
a
s
utilizatorul s nu foloseasc orbete aceast facilitate,
a
a
s
a
ntruct uneori
a
rspunsul este bine s ajung doar la autorul mesajului original, nu la
a
a
a
toat lista. . .
a
Received i Return-path au ca rol diagnosticarea sistemului de livrare a
s
mesajelor. Fiecare mail transfer agent de pe traseul mesajului adaug
a
fata mesajului un cmp Received care scrie numele mainii sale,
n
a
n
s
numele i adresa IP a mail transfer agent-ului care i-a trimis mesajul,
s
data i ora curent i emittorul i destinatarul mesajului conform cererii
s
as
a
s
mail transfer agent-ului care transmite mesajul (cei indicati pe ,,plicul
i
nc
caracter dou puncte urmat de secund i nal indicativul fusului
a
a s n
orar. Indicativul fusului orar cuprinde diferenta, ore i minute,
n
s
ntre
ora local i ora universal coordonat (UTC ; vezi 7.3.1 pentru dea s
a
a
talii). Faptul c ora local este or de var sau nu apare indicativul
a
a
a
a
n
de fus orar. Romnia are timpul iernii ora local egal cu UTC+2h,
a
n
a
a
358
a
a
valoare Message-ID-ul mesajului la care se rspunde. Valoarea cmpului
a
a
Reference se creaz din cmpurile Reference i Message-ID ale mesajua
a
s
lui la care se rspunde. Cmpurile Reference i Message-ID pot
a
a
s
folosite de exemplu pentru aarea, de ctre mail user agent-ul destinatie,
s
a
a
aceste cmpuri Resent-. . . este identic cu semnicatia cmpului fr
a
a
a
aa
Resent- corespunztor, dar se refer la retransmitere, nu la mesajul
a
a
original.
359
s n
sunt: text/plain (text normal), text/html (document HTML), image/jpeg
(imagine format JPEG), etc.
n
De regul, partea din fata caracterului slash (/) arat tipul de docua
a
ment, iar partea a doua arat formatul (codicarea) utilizat. Astfel, o imaga
a
ine va avea Content-type de forma image/format; de exemplu, image/gif,
image/jpeg, etc.
Mesajele ce contin doar text obinuit trebuie s aib Content-type:
s
a
a
text/plain. Acesta este dealtfel tipul implicit cazul absentei cmpului
n
a
Content-type.
Mesajele cu ataamente au Content-type: multipart/mixed.
s
In
general, un mesaj de tip multipart/subtip este format de fapt din mai multe
,,iere (oarecum ca un ier arhiv zip).
s
s
a
Intr-un mesaj multipart/mixed,
de obicei una dintre prti este mesajul propriu-zis, iar ecare dintre celelalte
a
prti este cte un ier ataat.
a
a
s
s
Fiecare parte a unui mesaj multipart are un antet i un corp, similar
s
cu un mesaj de sine stttor. Antetul prtii poate contine doar cmpuri
aa
a
a
specice MIME. Astfel, ecare parte are propriul tip, care poate particular
n
chiar un multipart.
Cele mai importante subtipuri ale tipului multipart sunt:
multipart/mixed
nseamn pur i simplu mai multe componente puse
a
s
n
a
lui. Textul utilizat ca separator este plasat cmpul Content-type dup
n a
a
multipart/subtip. Este scris sub forma (utilizabil i alte cmpuri i pena s n
a
s
s
s
as
i separat prin punct i virgul fat de aceasta. Exemplu:
s
s
a a
Content-type: multipart/mixed; boundary="abcdxxxx"
n
gsete acest antet. Valori posibile sunt:
a s
inline arat c mesajul sau partea de mesaj trebuie s e aat utia a
a
s a
lizatorului;
attachment arat c mesajul sau partea de mesaj nu trebuie aat
a a
s a
dect la cerere. Un astfel de cmp poate avea continuare o informatie
a
a
n
a
s
extras din mesaj, ci s cear mai ai permisiunea utilizatorului. caz
a
a
nt
In
contrar, un adversar poate s trimit un ier avnd ataat un anumit
a
a
s
a
s
ier, cu care s suprascrie un ier al destinatarului.
s
a
s
a
gurele caractere de control (cele cu codurile
ntre 0 i 31) admise sunt carriage
s
return (cod 13) i line feed (cod 10), utilizate pentru separarea rndurilor din
s
a
mesaj. De asemenea, se recomand s nu se utilizeze caracterele cu coduri
a a
361
mesajele apar, fat de mail transfer agent-uri, identice cu cele conforme fora
matului original. Un mail user agent vechi, conform standardului original, nu
va capabil s transmit un mesaj cu extensii MIME, iar cazul primirii unui
a
a
n
astfel de mesaj va aa
l
s ntr-un mod mai putin inteligibil pentru utilizator.
a
a crui valoare arat dac i ce recodicare s-a aplicat asupra continutului.
a
a
a s
a
ntre 0
i 127).
s
8bit arat c mesajul nu a fost recodicat, dar poate contine orice
a a
--qwertyuiop
Content-type: text/plain
Content-transfer-encoding: 7bit
Content-disposition: inline
Acesta este mesajul propriu-zis.
--qwertyuiop
Content-type: application/octet-stream
Content-disposition: attachment; filename="test.dat"
Content-transfer-encoding: base64
eAAXLRQ=
--qwertyuiop
Content-type: text/plain; charset=utf-8
Content-disposition: attachment; filename="test.txt"
Content-transfer-encoding: quoted-printables
=C8=98i =C3=AEnc=C4=83 un text.
qwertyuiop
s
deschide o conexiune TCP ctre portul 25 al serverului.
a
Dup deschiderea conexiunii, serverul trimite un mesaj continnd un
a
a
cod de rspuns urmat de numele serverului. continuare, clientul trimite cte
a
In
a
o cerere, la care serverul rspunde cu un cod ce arat dac cererea a fost exea
a
a
cutat cu succes sau nu, urmat de un text explicativ. Cererile sunt formate de
a
regul dintr-un cuvnt-cheie urmat de eventuali parametri i se
a
a
s
ncheie printro secvent carriage return line feed. Rspunsurile sunt formate dintr-un
a
a
numr, transmis ca secvent de cifre, urmat de un text explicativ. Numrul
a
a
a
363
arat,
a ntr-o form uor de procesat de ctre calculator, dac cererea s-a exea s
a
a
cutat cu succes sau nu i cauza erorii. Textul cuprinde informatii suplimentare
s
cerere RCPT TO: poate acceptat sau refuzat de ctre server independent
a
a
a
de celelalte. Serverul va transmite mesajul ecreia dintre adresele destinatie
a
as
a
a
n s
corespunztor cutiei potale a destinatarului.
a
s
De notat c trimiterea mai departe, livrarea local sau trimiterea
a n
a
unui mesaj de eroare, MTA-ul utilizeaz doar informatiile de pe plic, adic
a
a
parametrii comenzilor MAIL FROM: i RCPT TO:, i nu valorile cmpurilor From
s
s
a
sau To din antetul mesajului.
Exemplul 11.3: Fie mesajul din exemplul 11.1. Transmiterea lui de la MTAul de pe cs.ubbcluj.ro ctre example.com decurge astfel (rndurile transa
a
mise de la cs.ubbcluj.ro la example.com sunt precedate de o sgeat la
a
a
dreapta, iar rndurile transmise sens invers de o sgeat la stnga):
a
n
a
a
a
220 example.com
HELO nessie.cs.ubbcluj.ro
250 example.com
MAIL FROM: <rlupsa@cs.ubbcluj.ro>
250 Ok
RCPT TO: <test@example.com>
250 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
From: Radu Lupsa <rlupsa@cs.ubbcluj.ro>
To: Test User <test@example.com>
Date: Sat, 1 Sep 2007 10:12:20 +0300
Message-ID: my-emailer.20070901101220.53462@nessie.cs.ubbcluj.ro
Subject: Un mesaj dat ca
exemplu
Salut,
Mesajul acesta este doar un exemplu.
.
250 Ok: queued
QUIT
221 Bye
365
11.1.2.3), dac are vreo regul privind adresa destinatie. Dac MTAa
a
a
ul este responsabil de adresa destinatie a mesajului, memoreaz lo
l
a
cal. Dac MTA-ul este poart de intrare a mesajelor pentru MTA-urile
a
a
din reteaua local, transmite mesajul ctre MTA-ul determinat conform
a
a
congurrii.
a
2. Dac nu exist informatii de congurare pentru adresa destinatie, MTAa
a
ul caut DNS o
a n
nregistrare cu tipul MX pentru numele de domeniu din adresa destinatie. O astfel de
adic dac toate cele trei variante de mai sus eueaz, atunci MTA-ul
a
a
s
a
declar c mesajul este nelivrabil i transmite
a a
s
napoi spre emittor un
a
mesaj de eroare.
Un MUA lucreaz, de obicei, mult mai simplu. Acest lucru duce la
a
simplicarea MUA-ului prin separarea clar a rolurilor: MUA-ul trebuie s
a
a
ofere faciliti de editare i s prezinte utilizatorului o interfat prietenoas,
at
s a
a
a
iar MTA-ul are toate complicatiile legate de livrarea mesajelor. Pentru trans
miterea oricrui mesaj, un MUA contacteaz un acelai MTA, a crui adres
a
a
s
a
a
este congurat optiunile MUA-ului. Pe sistemele de tip UNIX, MUA-urile
a n
contacteaz implicit MTA-ul de pe maina local (localhost).
a
s
a
a In
a
local mesajele adresate acestor utilizatori i le ofer acestora posibilitatea de
s
a
a le citi prin IMAP sau POP3. De asemenea, MTA-ul preia i transmite spre
s
exterior mesajele utilizatorilor, generate de MUA-urile ce ruleaz pe calculaa
toarele din reteaua local.
a
conguratii mai complicate, 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. El preia mesajele de la toate MTA-urile din reteaua local
a n
scopul retransmiterii lor ctre exterior. De asemenea, preia mesajele din extea
rior destinate tuturor adreselor din reteaua local i le retrimite MTA-urilor,
as
din reteaua local, responsabile. Un astfel de MTA este numit mail gateway.
a
Un mail gateway poate util ca unic ltru contra viruilor i spam-urilor pens
s
tru o
ntreag retea local ( opozitie cu a congura ecare MTA din reteaua
a
a n
local ca ltru).
a
Un MTA trebuie congurat cu privire la urmtoarele aspecte:
a
care sunt adresele locale i cum se livreaz mesajele destinate acestor
s
a
adrese;
care sunt mainile ( principiu, doar din reteaua local) de la care se
s
n
a
accept mesaje spre a trimise mai departe spre Internet;
a
ce transformri trebuie aplicate mesajelor.
a
Implicit, un MTA consider ca ind adrese locale acele adrese care
a
au numele de domeniu identic cu numele mainii pe care ruleaz MTA-ul i
s
a
s
avnd partea de utilizator identic cu un nume de utilizator al mainii locale.
a
a
s
Pe sistemele de operare de tip UNIX, un mesaj adresat unui utilizator local
este adugat la nalul unui ier avnd ca nume numele utilizatorului i situat
a
s
a
s
directorul /var/mail.
n
MTA-ul responsabil de o anumit adres destinatie poate congurat
a
a
s
mesajul loc s e livrat local /var/mail/user.
n
a
n
Fiierul .procmailrc cuprinde instructiuni mai complexe de proces
sare a mesajelor primite: functie de aparitia unor iruri, descrise prin exn
s
presii regulare, mesajul primit, mesajul poate plasat iere specicate
n
n s
367
as
destinate adreselor locale, dar s nu accepte trimiterea mai departe a
a
mesajelor provenite din exterior i destinate exterior. Un MTA care
s
n
accept spre livrare orice mesaje este numit mod curent open relay.
a
n
Un open relay este privit de obicei ca un risc pentru securitate, deoarece
este adesea utilizat de utilizatori ru-voitori pentru a trimite mesaje
a
ascunzndu-i identitatea.
a
s
369
a
a s s
a a
autorului unui mesaj a dus la proliferarea excrocheriilor. Adesea excrocheriile
constau trimiterea de mesaje unui numr mare de utilizatori (acest fapt
n
a
sine este spam) speranta de-a gsi printre acetia unii care s se lase
n
n
a
s
a
pcliti.
a a
Spam-urile duneaz deoarece consum mod inutil timpul destia
a
a n
plus, exist riscul ca un mesaj legitim, ,,
natarului. In
a
ngropat
ntre multe
spam-uri, s e ters din greeal.
a
s
s a
Exist detectoare automate de spam-uri, bazate pe diferite metode
a
din domeniul inteligentei articiale. Astfel de detectoare se instaleaz pe
a
MTA-uri i resping sau marcheaz prin antete speciale mesajele detectate ca
s
a
spam-uri. Un MTA care detecteaz i respinge sau marcheaz spam-urile se
as
a
numete ltru anti-spam.
s
De mentionat ltrele anti-spam nu pot fcute 100% sigure deoarece
a
nu exist un criteriu clar de diferentiere. Ca urmare, orice ltru anti-spam va
a
a
a
s
s
acest scop, ei primesc sesizri i
autorilor. In
a s ntretin liste cu adresele de la
o
In
utilizeaz, de obicei, adrese extrase din lista, inut de MUA, a adreselor
a
t
a
partenerilor de corespondent ai utilizatorului care primete mesajul virusat.
a
s
Indiferent de forma de propagare (infectarea ierelor locale sau transs
miterea de mesaje spre alti utilizatori), pentru a-i realiza scopul, un virus
s
trebuie s ajung s determine executia, cu drepturile utilizatorului victim, a
a
a a
a
unei secvente de instructiuni aleas de autorul virusului. Acest lucru se poate
a
ampla dou moduri:
nt
n
a
Virusul se gsete
a s ntr-un program executabil, pe care utilizatorul exel
cut.
a
Virusul este un document astfel construit at, exploatnd o eroare din
nc
a
programul utilizat pentru vizualizarea documentului, s determine proa
gramul de vizualizare s execute actiunea dorit de autorul virusului.
a
a
Pentru a pcli destinatarul i a-l determina s execute sau s vizuala a
s
a
a
izeze ierul atat, corpul mesajului este construit astfel at s ctige
s
s
nc a as
ncrederea
utilizatorului. Astfel, mesajul este adesea construit ca i cnd ar proveni de
s a
la administratorul de sistem sau de la un prieten al destinatarului.
Metodele de prevenire a viruilor de pot electronic sunt aceleai
s
sa
a
s
ca i metodele de prevenire a viruilor general. Pentru programele exes
s
n
cutabile, dac utilizatorul are
a
ncredere autorul declarat al programului (de
n
exemplu, autorul este o rm de soft de
a
ncredere), atunci programul poate
semnat electronic, iar utilizatorul poate verica aceast semntur pentru a se
a
a a
convinge de autenticitatea programului. Pentru programe provenite din surse
ce nu sunt de
ncredere, executia lor se poate face
a
din urm abordare este utilizat de applet-urile Java.
a
a
Pe lng aceste metode de prevenire, exist cteva actiuni care micoa a
a a
s
reaz riscul sau consecintele executiei unui virus. Una dintre ele este reducerea
a
371
a
direct la calculatorul pe care se desfoar sesiunea utilizatorului. Conectarea
as a
este realizat printr-o interfat hardware de conectare a dispozitivelor pera
a
iferice (RS232, PS/2, VGA, USB, DVI), care permite legturi pe distante de
a
cel mult cteva zeci de metri. Un dispozitiv (tastatur, ecran, etc.) este coneca
a
tat la un singur calculator, mutarea lui de la un calculator la altul putndu-se
a
face e prin mutarea zic a conectorului, e prin comutatoare speciale (KVM
a
switch).
login bash
S. O.
driver
terminal
hard
Terminal
zic
n
sistemele ind numite cu time-sharig. PC-urile au repetat, pn la un punct,
a a
istoria calculatoarelor mari: au
nceput ca sisteme monoutilizator, monotasking (sistemul DOS), au continuat cu un multitasking primitiv, bazat pe solutii
ad-hoc (deturnarea
ntreruperilor DOS, sistemul Windows pn la versiun
a a
nile 3.x), sisteme multitasking fr protectie
aa
ntre utilizatori (Windows 9x i
s
ME) i nal sisteme multitasking propriu-zise (Windows NT/2000/XP i
s n
s
sistemele de tip UNIX Linux i porturile FreeBSD, Solaris, etc).
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 acelai ansamblu tastaturecran, pentru acelai utilizator sau
s
a
s
pentru utilizatori distincti. O singur sesiune poate activ la un moment
a
a
dat, celelalte ind ,,
nghetate. Sistemul permite comutarea
ntre sesiuni.
372
Calculator
server
client
telnet
S. O.
driver
terminal
hard
Retea
Calculator
client
Terminal
zic
as
s a
pe ecran ceea ce trimite sistemul de la distant. Aarea se poate face pe
a
s
tot ecranul sau
ntr-o fereastr. Aceast aplicatie deschide mod activ
a
a
n
conexiunea la deschiderea sesiunii, motiv pentru care este un client.
Pe sistemul de la distant, pe care are loc sesiunea, ruleaz o aplicatie
a
a
s
a
proceselor ce ruleaz cadrul sesiunii. De asemenea, preia datele de
a n
ieire ale acestor procese datele care cazul unei sesiuni locale s-ar
s
n
aa pe ecran i le trimite prin retea clientului. Aceast aplicatie este
s
s
a
dup care ( cazul unei autenticri cu succes) lanseaz procesele care
a
n
a
a
sunt lansate mod normal la deschiderea unei sesiuni. De exemplu,
n
373
a
a
fat de procesele din sesiunea utilizatorului ca i cnd ar tastatura
a
s a
i ecranul adevrate. cazul sistemelor de tip UNIX, acest mecanism
s
a
In
este mecanismul pseudoterminalelor . De notat c mecanismul pipe nu
a
este adecvat deoarece un pipe nu apare procesului ca un terminal i
s
nu permite, de exemplu, unui editor de texte, ce ar rula sesiunea
n
utilizatorului, s solicite primirea ecrui caracter tastat parte. De
a
a
n
notat c, mod normal, un proces primete cte o linie momentul
a n
s
a
n
care utilizatorul apas enter ; pn atunci nucleul sistemului permite
n
a
a a
utilizatorului editarea liniei.
Protocolul ssh este construit pe mai multe nivele. Nivelul cel mai
de jos [RFC 4253, 2006] realizeaz protejarea criptograc a conexiunii i se
a
a
s
bazeaz pe serviciile de conexiune TCP oferite de sistemul de operare. Nivelul
a
urmtor realizeaz multiplexarea conexiunii protejate criptograc. Nivelul cel
a
a
mai de deasupra cuprinde aplicatia propriu-zis i permite sesiuni de lucru,
a s
interactive sau nu, mod text, ctre sisteme de tip UNIX, tunelarea unor
n
a
conexiuni TCP arbitrare, transferul de iere i transmiterea informatiilor de
s
s
a
clientul i serverul stabilesc un identicator de sesiune i, pentru ecare
s
s
sens, o cheie de criptare i o cheie de autenticare. De asemenea, se stabilesc
s
algoritmii de criptare simetric, compresie i dispersie cu cheie utilizati pentru
a
s
n
dou sensuri.
a
n
lor se adaug un octet reprezentnd lungimea irului aleator. Apoi,
a
a
s
n
fata irului astfel obtinut, se adaug lungimea total a irului, reprezen s
a
a s
tat pe patru octeti. Numrul de octeti aleatori adugati trebuie astfel
a
n
a
s
utile s rezulte blocuri criptate diferite. Lungimea completrii aleatoare este
a
a
i ea criptat, fcnd dicil determinarea lungimii datelor utile din blocul
s
a a a
a
criptat. Pe de alt parte, dispersia criptograc cu cheie se calculeaz dintra
a
a
un bloc continnd datele utile i numrul de ordine al blocului, fapt ce permite
a
s
a
receptorului s verice c datele sunt autentice i c sunt proaspete numrul
a
a
s a
a
de ordine al blocului primit este cel ateptat. Numrul de ordine al blocului
s
a
ind cunoscut receptorului, nu este nevoie s e trimis efectiv.
a
cazul vreunei nepotriviri privitoare la dispersia criptograc cu
In
a
cheie a unui bloc, conexiunea este abandonat. Remarcm faptul c o astfel
a
a
a
de nepotrivire poate cauzat doar de o tentativ de modicare a datelor
a
a
de ctre un adversar activ, nivelul TCP i nivelele inferioare corectnd erorile
a
s
a
de transmisie la nivel zic i eventualele pierderi de pachete IP datorate unei
s
congestii retea.
n
La deschiderea conexiunii ssh, compresia, criptarea i dispersia cu
s
cheie sunt dezactivate. Negocierea primului set de chei i a algoritmilor de
s
compresie, criptare i dispersie cu cheie se face clar. O dat alese cheile
s
n
a
375
s
a
dintre prti (clientul sau serverul) o solicit.
a
a
Negocierea cheilor i algoritmilor se face dup cum urmeaz. Fiecare
s
a
a
parte trimite liste, ordinea descresctoare a preferintei, cu algoritmii de
n
a
aa
secrete pentru criptare i pentru autenticare pentru ecare sens.
s
Mai rmne de autenticat schimbul Die-Hellman, despre care am
a a
vzut c, singur, este vulnerabil la atacul unui adversar activ. Autentia
a
carea cheii fat de client (adic autenticarea, fat de client, a serverului cu
a
a
a
care comunic acesta) se face dup cum urmeaz. Serverul are o pereche de
a
a
a
chei pentru semntur electronic. Clientul trebuie s aib cheia public a
a a
a
a
a
a
serverului. Dup realizarea schimbului Die-Hellman, serverul trimite cliena
tului o semntur, calculat cu cheia sa secret, asupra
a a
a
a
ntregului schimb de
informatie de pn atunci adic listele de algoritmi suportati i pachetele
a a
a
s
corespunztoare protocolul Die-Hellman, emise de ambele prti. Prin vera
a
icarea semnturii, clientul se asigur c negocierea a avut loc
a
a a
ntr-adevr
a
cu serverul autentic. Autenticarea clientului fat de server se face ulterior,
a
existnd acest scop mai multe mecanisme posibile (vezi 11.2.1.2).
a n
Pentru facilitarea rspndirii utilizrii protocolului ssh, serverul transa a
a
mite la deschiderea conexiunii cheia sa public ctre client. Notm c, deoarece
a a
a
a
transmisia cheii publice a serverului nu poate a autenticat, utilizarea de
nc
a
ctre client a cheii publice transmise de server prezint riscul ca un adversar
a
a
activ s se dea drept serverul autentic. Dac a adversarul n-a modicat
a
a ns
cheia public transmis de server, restul comunicatiei este sigur. Mai mult,
a
a
a
a
telefon cu administratorul mainii server), dispersia criptograc a cheii
s
a
publice a serverului. La prima conectare, utilizatorul compar dispersia
a
astfel obtinut cu dispersia cheii trimise de server (aceasta este aat
a
s a
de clientul ssh
mpreun cu mesajul de avertisment prin care anunt
a
a
imposibilitatea vericrii cheii). Dac cele dou dispersii coincid, cheia
a
a
a
trimis de server este autentic.
a
a
Pe sistemele de tip UNIX, cheile publice ale serverului (pentru diferitele
protocoale de semntur) se gsesc directorul /etc/ssh, ierele ssh_host_rsa_key.pub,
a a
a
n
n s
respectiv ssh_host_dsa_key.pub. Aceste iere pot citite de orice utilizator
s
al sistemului. Amprenta cheii dintr-un astfel de ier se determin cu comanda
s
a
ssh-keygen -l -f ier. Cleintul ssh memoreaz cheile serverelor ierul
s
a
n s
~/.ssh/known_hosts.
11.2.1.2. Metode de autenticare ssh
n
ssh, exist autenticare reciproc
In
a
a ntre client i server.
s
Aa cum am vzut, serverul se autentic fat de client cu ajutorul
s
a
a a
unui mecanism cu cheie privat i cheie public.
as
a
Dup initializarea mecanismului de protectie criptograc a conexiua
a
nii, este rndul clientului s-i declare identitatea (numele de utilizator) i s
a
as
s a
se autentice.
Clientul poate autenticat de server prin mai multe metode. Cele
mai comune sunt autenticarea prin parol i autenticarea prin semntur
a s
a a
digital (numit i autenticare cu cheie public).
a
as
a
Autenticarea prin parol presupune trimiterea de ctre client a parolei.
a
a
Este esential faptul c serverul este deja autenticat i condentialitatea, in
a
s
a a
a
legitim.
a
Autenticarea prin semntur digital presupune ca faza de initia a
a
n
377
a
a
a
cheia public ce a fost congurat.
a
a
Congurarea autenticrii cu cheie public, pe sistemele de tip UNIX
a
a
avnd server OpenSSH, este descris continuare.
a
a n
Perechile de chei se genereaz cu ajutorul utilitarului ssh-keygen.
a
Cheia public admisibil pentru conectarea contul unui utilizator
a
a
n
se scrie ierul ~/.ssh/authorized_keys (sub directorul personal al utin s
lizatorului). Deoarece acest ier poate modicat doar de ctre posesorul
s
a
contului, doar posesorul contului poate stabili cheia admisibil pentru auta
enticare. Fiierul ~/.ssh/autthorized_keys poate contine mai multe chei.
s
acest caz, oricare dintre cheile secrete corespunztoare este valid pentru
In
a
a
autenticare. Este posibil ca, pentru anumite chei, s se congureze lansarea
a
unei anumite aplicatii; acest caz, dac clientul utilizeaz cheia pereche pen n
a
a
tru autenticare, i se va lansa automat aplicatia respectiv i nu o sesiune
a s
nerestrictionat.
a
Pentru schimbarea cheii, de exemplu cazul compromiterii cheii sen
crete, utilizatorul trebuie s genereze o nou pereche de chei, s scrie noua
a
a
a
cheie public ierul ~/.ssh/authorized_keys, s tearg vechea cheie
a n s
a s
a
public din acest ier i s furnizeze noua cheie secret clientului ssh la
a
s
s a
a
conectrile ulterioare. Deoarece cheia public nu este o informatie secret,
a
a
a
compromiterea sistemului server nu duce la compromiterea, i deci la neces
sitatea schimbrii, cheii. Acesta este un avantaj fat de cazul autenticrii
a
a
a
prin parole, unde compromiterea serverului duce la compromiterea parolei i
s
la necesitatea schimbrii parolei nu numai pe acel sistem ci i pe alte sisteme
a
s
pe care utilizatorul avea aceeai parol.
s
a
Pentru furnizarea cheii secrete ctre clientul ssh, exist dou posia
a
a
biliti. Prima posibilitate este ca ierul cu cheia secret s e fcut disponiat
s
a a
a
bil clientului ssh. Dac ierul contine cheia secret ca atare, conectarea se
a s
a
face fr ca utilizatorul s mai dea vreo parol. Dac utilizatorul dorete s
aa
a
a
a
s
a
se conecteze de pe maini (client) diferite, trebuie e s poarte cheia cu el pe
s
a
un suport amovibil, e s pun copii ale cheii secrete pe ecare sistem, e s
a
a
a
utilizeze chei diferite pentru conectarea de pe ecare sistem. Ultima solutie
s
autenticare se face printr-un socket de tip UNIX, al crui nume este pus
a
n
variabila de mediu SSH_AUTH_SOCK. Comunicatia ind local, ea nu poate
a
interceptat sau modicat. Autenticarea clientului (ssh sau ssh-add ) se face
a
a
prin aceea c drepturile de acces la socket-ul corespunztor sunt acordate doar
a
a
proprietarului agentului de autenticare.
Protocolul ssh permite constructia unei conexiuni securizate dinspre
a s
autenticare. Cererile de semntur primite de serverul ssh sunt trimise prin
a a
conexiunea ssh ctre client, iar clientul le trimite agentului local (de pe maina
a
s
client). Prelungirea nu se poate face lipsa unui agent de autenticare pe
n
maina client.
s
Analiznd securitatea prelungirii conexiunii la agentul de autentia
care, observm c serverul nu obtine efectiv cheia secret, a, pe durata
a
a
a ns
379
conexiunii, poate deschide sesiuni numele clientului ctre orice main care
n
a
s a
accept cheile stocate agentul de autenticare. Din acest motiv, clientul
a
n
ssh nu face prelungirea conexiunii la agentul de autenticare dect la cererea
a
explicit a utilizatorului.
a
11.2.1.3. Multiplexarea conexiunii, tunelarea i aplicatii
s
a
server i prelungite prin conexiunea securizat ctre client. Redirectionnd pe
s
a a
a
client intrarea sau ieirea standard a comenzii ssh, se realizeaz, per ansams
a
blu, redirectionarea intrrii sau ieirii standard ctre iere sau pipe-uri de pe
a
s
a
s
maina local pentru comanda executat la distant.
s
a
a
a
Exemplul 11.5: Comanda
ssh rlupsa@nessie.cs.ubbcluj.ro ls -l > lista
are ca efect nal crearea, pe maina local, a unui ier lista, continnd
s
a
s
a
lista numelor de iere de pe maina nessie.cs.ubbcluj.ro din directorul
s
s
personal al utilizatorului rlupsa.
n
a
din faptul c sistemul X Window are i scopul de-a asigura proceselor acces la
a
s
ecranul grac local.
O prim component a sistemului este serverul X. Acesta este un
a
a
proces, avnd de regul acces privilegiat la sistem, care gestioneaz tastatura
a
a
a
i ecranul local. O aplicatie ce are nevoie de acces la un ecran grac i la
s
toare diferite.
Serverul ine evidenta unor ferestre, ecare operatie de desenare at
n
s
a
desenul efectuat
ntr-o fereastr este vizibil i trebuie desenat pe ecran.
a
s
Un client autenticat are acces deplin la tastatura i ecranul gestions
ate de server. Asta
nseamn, de exemplu, 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. De principiu, sunt admise la un moment dat s
n
a
a
se conecteze doar aplicatii rulnd contul aceluiai utilizator.
a n
s
Pentru ca aplicatii distincte s nu se
a
ncurce reciproc, exist nite
a s
linii mari, acestea
conventii pe care aplicatiile se recomand s le respecte. In
a a
prevd ca o aplicatie s nu deseneze ferestrele deschise de alt aplicatie i
a
a
n
a
s
s nu capteze tastele cnd nu este activ.
a
a
a
Comutarea
ntre aplicatii, precum i mutarea i redimensionarea fer
s
s
estrelor principale ale aplicatiilor, cad sarcina unui client mai special numit
n
window manager . Window manager -ul se conecteaz i se autentic ca un
a s
a
client obinuit, dup care solicit serverului s e informat de cererile de des
a
a
a
schidere de ferestre trimise de ceilalti clienti. La ecare fereastr principal de
a
a
schis, window manager -ul adaug bara de titlu i marginile. Deoarece oricum
a
a
s
nu exist protectie
a
ntre clientii conectati la un server X, un client nu are nevoie
381
s
n
transferul ierelor unui utilizator de pe o main pe alta, conditiile care
s
s a
n
n
utilizatorul are cont pe ambele maini. Protocoalele construite pentru aceasta
s
sunt ftp i ssh. De notat c i pota electronic poate servi ca mecanism de
s
as
s
a
transfer de iere.
s
O a doua categorie privete transferul ierelor publice de la un cals
s
culator ce stocheaz astfel de iere la calculatorul unui utilizator ce dorete
a
s
s
s citeasc ierele respective. Initial se utiliza protocolul ftp acest scop.
a
a s
n
Protocolul utilizat mod curent este a http.
n
ns
O a treia categorie pivete accesul proceselor de pe un calculator la
s
iere stocate pe alt calculator ca i cnd ierele ar locale. De principiu
s
s a
s
ierele respective sunt private, ca i pentru prima categorie de protocoale.
s
s
Protocoalele din aceast categorie trebuie s satisfac dou cerinte specice
a
a
a
a
(fat de prima categorie): s permit transferul doar a unei prti mici dintra
a
a
a
un ier i s permit controlul partajrii ierului
s s a
a
a
s
ntre procese. Protocoalele
utilizate aici sunt SMB (utilizat retelele Windows) i NFS.
n
s
a a
a s ntre
ei. Serverul rspunde tot format text, ecare rspuns
a
n
a
ncepnd cu un cod
a
care arat dac comanda s-a executat cu succes sau ce erori s-au produs, dup
a
a
a
care urmeaz un text ce descrie, limbaj natural, rezultatul executiei comena
n
zii. Cu o singur exceptie ( cazul comenzii PASV, descris mai jos), textul
a
n
a
din rspuns nu este interpretat de ctre aplicatia client. El este a aat, de
a
a
ns s
obicei, pe ecran utilizatorului aplicatiei client.
Autenticarea se face la solicitarea clientului. Clientul trimite succesiv dou comenzi, USER i PASS, avnd ca parametrii respectiv numele utia
s
a
lizatorului i parola acestuia. Serverul refuz executia majoritii comenzilor
s
a
at
clientului
nainte de autenticarea cu succes a acestuia. Dup autenticare,
a
serverul accept s efectueze operatiile cerute de client doar dac utilizatorul
a a
a
contul cruia s-a fcut autenticarea are dreptul la operatiile respective.
n
a
a
a
Acesta este singurul caz care clientul interpreteaz din rspunsul
n
a
a
serverului i altceva dect codul returnat.
s
a
Listarea ierelor de pe server este solicitat de client prin comanda
s
a
LIST. Trasnferul listei de iere se face tot printr-o conexiune de date, ca i
s
s n
cazul comenzii RETR.
383
public. El
nlocuiete protocolul ftp utilizat cu conectare ca utilizator anonys
mous. Dei numele protocolului face referire la hipertext, el poate utilizat
s
pentru a transfera orice fel de continut.
a
s
a
contine nite informatii despre ier i continutul efectiv al ierului. Implicit,
s s
s
conexiunea se
nchide dup transferul unui ier. Dac clientul dorete mai
a
s
a
s
multe iere de pe acelai server, va trebui s deschid cte o conexiune pentru
s
s
a
a a
ecare ier.
s
Protocolul a fost a extins, ajungnd s e folosit ca protocol de
ns
a
a
transfer de date pentru aplicatii de orice tip.
a
a s
a
Partea de
nceput este text, iar continutul ierului este binar.
s
Cererea cuprinde, pe prima linie, un cuvnt reprezentnd numele
a
a
operatiei cerut. Pentru solicitarea unui ier public de pe server, numele este
a
s
GET. Dup numele operatiei urmeaz numele ierului i apoi identicarea
a
a
s
s
versiunii de protocol conformitate cu care este format cererea. Cele trei
n
a
elemente sunt separate prin cte un spatiu.
a
In
caz, una dintre liniile din antet are numele Content-length i are ca valoare
s
lungimea continutului, dat ca ir de cifre zecimale.
a
s
Rspunsul este structurat similar cu cererea. Pe prima linie se a
a
a
identicatorul versiunii HTTP, numr de trei cifre i un text. Numrul arat
a
s
a
a
dac cererea a fost satisfcut cu succes sau nu, iar textul, neinterpretat
a
a a
de client, este o descriere cuvinte a semnicatiei codului de trei cifre.
n
s
solicitat. Dup ultima linie de antet urmeaz o linie vid i apoi continutul
a
a
as
propriu-zis de ctre client trebuie fcut prin numrea octetilor din partea de
a
a a
a
continut.
Adesea, mai multe servere HTTP sunt gzduite zic pe acelai cala
s
culator. acest caz, e numele serverelor corespund, prin DNS, unor adrese
In
IP diferite, dar apartinnd aceluiai calculator, caz care serverul este con a
s
n
gurat s rspund functie de IP-ul ctre care a fost deschis conexiunea,
a a
a n
a
a
e numele serverelor corespund aceleiai adrese IP, caz care este necesar ca
s
n
cererea HTTP s e specicat serverul dorit. Acest lucru se realizeaz prin
n
a
a
aceea c, cererea clientului, se plaseaz un antet cu numele Host i avnd
a n
a
s
a
ca valoare numele de server dorit.
11.3.2.2. URL-urile
O pagin web este general un ier scris HyperText Markup
a
n
s
n
Language (HTTP) i oferit acces public prin protocolul HTTP.
s
n
O pagin web const, de obicei, din mai multe iere. Exist un ier
a
a
s
a
s
de baz, scris limbajul HTML, i alte iere, continnd anumite elemente ale
a
n
s
s
a
paginii: imagini ( iere separate formate specice JPEG, PNG, GIF),
n s
n
applet-uri (Java), specicri de formatare a paginii (iere Cascading Style
a
s
Sheet CSS). De asemenea, o pagin contine general legturi (link -uri)
a
n
a
spre alte pagini. Toate acestea necesit referiri dintr-un ier HTML ctre alte
a
s
a
iere disponibile acces public. Referirea acestor iere se face prin nume
s
n
s
care s permit regsirea lor uoar.
a
a
a
s a
Un Universal Resource Locator (URL) este un nume prin care se
poate identica i cu ajutorul crora se potate regsi o resurs disponibile
s
a
a
a
n
Internet. URL-urile au aprut ca un format standard de scriere a numelor
a
ierelor referite din paginile web; ele permit a utilizri mult mai vaste.
s
ns
a
Un URL este alctuit general din trei componente:
a
n
Tipul identic protocolul utilizat. Exemple mai cunoscute sunt: http,
a
ftp, https, mailto.
Numele mainii este numele de domeniu sau adresa IP a mainii pe care
s
s
se gsete resursa (ierul).
a s
s
Pe lng numele mainii, cadrul acestei componente se poate
a a
s
n
aduga numele de utilizator contul cruia trebuie s se autentice un
a
n
a
a
client pentru a obtine accesul dorit la resurs. Numele de utilizator se
a
d fata numelui sau adresei mainii, separat de acesta prin caracterul
a n
s
@. Standardul original prevedea i posibilitatea de-a scrie URL parola
s
n
necesar conectrii. Aceast utilizare este nerecomandat.
a
a
a
a
Calea identic resursa (ierul) cadrul serverului care o gzduiete.
a
s
n
a
s
In
principiu, ea este calea complet a ierului cerut, relativ la un director
a
s
a
de baz, xat, al documentelor publice.
a
URL-urile se pot utiliza i se utilizeaz efectiv multe alte scopuri
s
a
n
dect identicarea paginilor web. De exemplu, sistemul SubVersion (SVN)
a
utilizeaz URL-uri de forma svn://main /cale pentru a referi ierele dintra
s a
s
un repository.
385
s
returnat:
Tipul continutului ierului este specicat de ctre 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 pota electronic. Tot ca i cazul lui
s
a
s n
Mime-type, tipul continutului poate urmat de specicarea codicrii
a
utilizate pentru text; de exemplu,
Content-type: text/html; charset=utf-8
n
a
a selectiona varianta dorit, clientul poate anunta posibilitile i preferintele
at s
De exemplu,
Accept-language: ro,en,fr
a
a
a
transmit clientului ierul numai dac este
a
s
a
ndeplinit o anumit conditie, cel
a
a
mai adesea dac a fost modicat mai recent dect o anumit dat specicat
a
a
a
a
a
a
a
doar din antet, fr continutul propriu-zis. Aceast facilitate este util dac
aa
a
a
a
clientul detine o copie a unui ier i dorete
s s
s mprosptarea acesteia. Cererea
a
partial se specic de ctre client prin intermediul antetului Range; cererea
a
a
a
conditionat se specic prin antetul If-modified-since.
a
a
Pentru optimizarea tracului, cazul care un client dorete mai
n
n
s
multe iere de pe acelai server (aceasta se ampl adesea cazul care
s
s
nt
a
n
n
clientul aduce un ier html, iar apoi are de adus imaginile i eventual alte
s
s
obiecte din document), este prevzut posibilitatea de-a pstra conexiunea
a a
a
acest scop, clientul cere pstrarea
deschis pe durata mai multor cereri. In
a
a
conexiunii deschise, plasnd cerere antetul
a n
Connection: keep-alive
n
a
a
a
corespunztoare din noua organizare. Aceast redirectionare se face prin trima
a
iterea de ctre server a unui antet cu numele Location i avnd drept continut
a
s
a
In
client nu aeaz continutul returnat de server (continut care mod normal
s a
n
lipsete complet), ci cere i aeaz continutul de la URL-ul indicat antetul
s
s
s a
n
Location.
11.3.2.4. Proxy HTTP
Un proxy HTTP este un proces care, fat de un client HTTP, actioa
a a
Un proxy HTTP este utilizat mod normal pentru urmtoarele
n
a
functii:
dac dintr-o retea local exist anse mari ca mai multi utilizatori s
a
a
a s
a
acceseze aceleai pagini web: acest caz, clientii HTTP ai calculas
In
a a
s
din reteaua local. Dac exist mai multe cereri pentru aceeai pagin,
a
a
a
s
a
la prima cerere proxy-ul memoreaz pagina adus, iar la urmtoarele
a
a
a
cereri o servete clientilor din memoria local.
s
387
dac
a ntr-o retea se utilizeaz adrese IP locale (vezi 10.2.4.1 i 10.7.2) i
a
s
s
nu se dorete congurarea unui mecanism de translatie de adrese (NAT,
s
a
a
s
a
a
a
proxy-ul prin reteaua local, iar proxy-ul, avnd adres public, poate
a
a
a
a
accesa fr restrictii serverul dorit.
aa
Apoi, pentru a
mpiedica accesul direct, prin evitarea proxy-ului, pe
ruterul ce leag reteaua intern la Internet se congureaz un ltru de
a
a
a
pachete ( 10.7.1) care s blocheze pachetele adresate portului TCP 80
a
al serverelor exterioare.
O diferenta
ntre protocolul de comunicatie dintre un client i un
s
proxy fat de protocolul client-server este c, dup o cerere (de exemplu, GET),
a
a
a
la protocolul client-server urmeaz calea local din URL, iar la protocolul
a
a
client-proxy urmeaz URL-ul solicitat (inclusiv numele protocolului i numele
a
s
serverului).
O a doua diferent este dat de existenta unei cereri, CONNECT, ce
a
a
poate adresat doar unui proxy. La primirea unei cereri CONNECT, proxya
ul deschide o conexiune ctre serverul specicat comanda CONNECT i apoi
a
n
s
retrimite datele dinspre client direct spre server i, reciproc, dinspre server
s
napoi spre client. cazul unei cereri CONNECT, proxy-ul nu se implic mai
In
a
departe comunicatia dintre client i server. Ca urmare, acest caz proxy-ul
n
s
n
nu mai memoreaz paginile aduse i nu permite ltrarea cererilor dect dup
a
s
a
a
serverul i portul la care se conecteaz, schimb permite tunelarea oricrui
s
a n
a
protocol (nu numai a protocolului HTTP)
ntre un client dintr-o retea cu
comunic prin conexiuni s-l foloseasc. TLS [RFC 4346, 2006] Transport
a
a
a
Layer Security, rom. securitate la nivel transport este derivat din SSL versiunea 3, dar dezvoltat de IETF (Internet Engineering Task Force). cele ce
In
urmeaz, vom discuta doar despre TLS, a toate chestiunile prezentate sunt
a
ns
valabile i pentru SSL.
s
Protocolul TLS presupune existenta unei legturi nesecurizate
a
ntre
un client (entitatea care initiaz activ comunicatia) i un server (entitatea
a
s
care ateapt s e contactat de ctre client). Legtura nesecurizat este,
s
a a
a
a
a
a
mod obinuit, o conexiune TCP. Protocolul TLS ofer un serviciu de tip
n
s
a
conexiune. TLS asigur condentialitatea i autenticitatea datelor utile transa
s
portate. Datele utile transportate de TLS pot apartine oricrui protocol. Pro
a
tocolul ale crui date sunt transportate ca date utile de ctre TLS este numit
a
a
tunelat prin TLS.
cadrul initierii unei conexiuni TLS, se realizeaz stabilirea unei
In
a
chei de sesiune care este utilizat continuare pentru securizarea transportua n
lui datelor utile. Autenticarea stabilirii cheii poate unilateral, doar cliena
tul autenticnd serverul cu care a realizat negocierea cheii de sesiune, sau
a
bilateral. cazul autenticrii unilaterale, se poate utiliza o autenticare a
a In
a
clientului fat de server cadrul protocolului tunelat. acest caz, deoarece
a
n
In
serverul este deja autenticat, autenticarea clientului poate fcut prin
a a
parol, fr riscul ca parola s e transmis unui adversar.
a aa
a
a
Autenticarea stabilirii cheii de sesiune se face printr-un mecanism
de semntur digital. Pentru distribuirea sigur a cheilor publice, utilizate
a a
a
a
cadrul autenticrii, se utilizeaz certicate ( 6.3.4).
n
a
a
Serverul trebuie s aib o pereche de chei pentru semntur digital
a
a
a a
a
i un certicat, semnat de o autoritate care clientul are
s
n
ncredere, pentru
cheia public. La initierea conexiunii TLS, serverul transmite clientului certia
389
a
s
URL-urile resurselor accesibile prin conexiuni securizate au, ca nume
al protocolului, irul de caractere https ( loc de http).
s
n
Un navigator web care are de adus o pagin a crei URL are,
a
a
n
partea de protocol, https, execut urmtoarele:
a
a
Afar de cazul care URL-ul specic explicit un numr de port, clientul
a
n
a
a
deschide conexiunea ctre portul 443 al serverului ( loc de portul 80,
a
n
implicit pentru HTTP).
Dac, locul contactrii directe a serverului web, se utilizeaz un proxy,
a n
a
a
clientul trimite serverului proxy o cerere CONNECT pentru stabilirea conexiunii spre server. Prin aceast conexiune, stabilit prin intermediul
a
a
proxy-ului, se transmit mesajele SSL sau TLS, cadrul crora se transn
a
mit datele HTTP.
La deschiderea conexiunii (e conexiune TCP direct, e un lant de coa
at
Deoarece autenticarea serverului, prin mecanismul TLS, se face
naintea
trimiterii cererii HTTP, certicatul trimis de server nu poate depinde
de antetul Host transmis de ctre client. Ca urmare, dac mai multe
a
a
390
11.4. PGP/GPG
Preety Good Privacy (PGP) este un program pentru criptarea i
s
semnarea digital a mesajelor de pot electronic i a ierelor general.
a
sa
as
s
n
Gnu Privacy Guard, abreviat GPG sau GnuPG, este o reimplementare
a PGP, cu statut de soft liber.
Prezentm continuare principalele concepte legate de constructia
a n
i functionarea GnuPG.
s
391
a
a
a
s
extrem de mici, astfel at identicatorul lung este sucient pentru a
nc
identica unic orice cheie. Totui, identicatorul lung nu este utilizabil,
s
locul amprentei cheii, pentru vericarea autenticitii acesteia.
n
at
Identicatorul scurt (engl. short key ID) este format din ultimele 8 cifre
hexa ale identicatorului lung. Dac,
a ntr-un anumit context, nu exist
a
dou chei cu acelai identicator scurt, el poate folosit pentru a ne
a
s
referi la o cheie.
Identicatorul unei perechi de chei este calculat, printr-o functie de dispersie,
gpg --list-keys
11.4. PGP/GPG
utilizatorul poate crea o nou cheie primar creia s-i asocieze acelai nume
a
a a
a
s
complet.
11.4.1.3. Generarea i modicarea cheilor
s
Generarea unei chei primare se face cu comanda
gpg --gen-key
393
a
a
nc
a
nimnui. Nu exist o metod simpl de a propaga tergerea asupra cpiilor
a
a
a
a
s
o
subcheii respective. Ca urmare, dac proprietarul dorete ca o subcheie, deja
a
s
transmis partenerilor si, s nu mai e utilizat, solutia este revocarea suba
a a
a
11.4. PGP/GPG
ntr-un loc sigur. cazul care pierde cheia sau bnuiete c acea cheie
In
n
a
s
a
secret a fost aat de un adversar, proprietarul transmite partenerilor si
a
a
a
certicatul de revocare.
Inainte de revocare, certicatul de revocare trebuie s
a
nu poat citit de nimeni; caz contrar, un adversar care obtine certicatul
a
n
de revocare poate provoca neplceri proprietarului revocndu-i cheia.
a
a
Revocarea unei subchei const adugarea la subcheie a unui mara n a
caj, semnat de proprietarul subcheii, prin care se anunt c acea subcheie
a a
trebuie s nu mai e utilizat. O subcheie revocat este tratat similar cu o
a
a
a
a
subcheie sau cheie expirat: dac se
a
a
ncearc utilizarea ei, gpg d un mesaj
a
a
de avertisment.
Revocarea unei subchei se face cu ajutorul comenzii
gpg --edit-key cheie
cu subcomenzile key i revkey.
s
De notat c, dup revocarea sau schimbarea perioadei de valabilitate
a
a
a unei subchei, subcheia modicat trebuie s ajung la partenerii propria
a
a
etarului cheii (vezi 11.4.2.1).
395
l
a
In
calculatorul mai nesigur pentru transmite mesaje semnate i primi mesaje
s
criptate utiliznd subcheile, fr a a risca compromiterea cheii primare
a
a a ns
n
cazul care cineva ar sparge acel calculator. Pentru o astfel de utilizare,
n
subcheile se creaz cu durat de valabilitate scurt i se revoc la nevoie.
a
a
a s
a
Cheia primar este bine s aib durat lung de utilizare pentru a benecia
a
a
a
a
a
de semnturile obtinute de la alti utilizatori asupra ei (vezi 11.4.2.2).
a
11.4. PGP/GPG
n
Exportul unei chei publice primare,
mpreun cu toate identitile,
a
at
subcheile publice, semnturile i certicatele de revocare asociate, se face prin
a
s
comanda
gpg -a -o ier --export cheie
s
unde parametrul cheie este identicatorul cheii sau a uneia dintre subchei
sau numele utilizatorului creia apartine, iar parametrul ier reprezint
a
i
s
a
ierul care se vor scrie datele. Parametrul cheie poate lipsi sau poate s
s
n
a
nu identice o unic cheie primar; acest caz, toate cheile primare respective
a
a n
sunt exportate.
Importarea unei chei dintr-un ier se face prin comanda
s
gpg --import ier
s
Prin operatia de import, cheile i celelalte obiecte din ierul importat
s
s
sunt adugate celor locale sau, eventual, le modic pe acestea. Niciodat a
a
a
a ns
nu sunt terse obiecte locale pe motiv c nu se regsesc ierul importat. Din
s
a
a
n s
acest motiv, tergerea unei chei primare, subchei, identiti sau semnturi nu
s
at
a
poate transmis asupra partenerilor de comunicatie. Invalidarea unei chei,
a
identiti sau semnturi se poate face doar prin revocarea acesteia i apoi
at
a
s
transmiterea certicatului de revocare.
La transmiterea prin servere de chei, primul utilizator
ncarc, pe un
a
server de chei, cheile i celelalte obiecte de transmis, iar cellalt utilizator le
s
a
descarc de pe serverul de chei.
a
Transmiterea unei chei primare i a obiectelor asociate ctre un server
s
a
de chei se face prin comanda
gpg --keyserver server --send-key cheie
Descrcarea unei chei i a obiectelor asociate de pe un server de chei
a
s
se face prin comanda
gpg --keyserver server --recv-key cheie
397
unde cheie este identicatorul unei chei (nu poate numele posesorului cheii).
Aarea identicatorului cheii unui utilizator se poate face prin comanda
gpg --keyserver server --search-key nume-utilizator
Este important de notat c, implicit, GnuPG nu consider o cheie
a
a
proaspt importat ca ind autentic. La utilizarea unei chei publice a crei
a
a
a
a
autenticitate nu a putut vericat, GnuPG d un mesaj de avertizare. Vera
a
icarea autenticitii este descris paragraful urmtor.
at
a n
a
11.4.2.2. Vericarea autenticitii cheilor
at
GnuPG veric automat,
a
nainte de utilizarea unei chei publice, autenticitatea acesteia. Autenticitatea cheilor se veric cu ajutorul certicatelor
a
(vezi 6.3.4). terminologia GnuPG, un certicat este numit semntur
In
a a
asupra unei chei.
O sub-cheie este mod normal semnat cu cheia primar creia
n
a
a a
i
este subordonat. O sub-cheie a crei semntur este valid este considerat
a
a
a a
a
a
autentic dac i numai dac cheia primar coresunztoare este considerat
a
a s
a
a
a
a
autentic. consecint, dac se import noi sub-chei pentru o cheie primar
a In
a
a
a
a
declarat autentic, sub-cheile respective sunt imediat considerate autentice.
a
a
Restul paragrafului de fat trateaz doar cheile primare. Reamintim
a
a
c o cheie primar este
a
a
ntotdeauna o cheie de semntur.
a a
O cheie public pentru care GnuPG dispune de cheia secret corea
a
spunztoare este automat considerat autentic. De asemenea, este consida
a
a
erat autentic orice cheie specicat printr-o optiune
a
a
a
--trusted-key cheie
e la executia comenzii gpg, e ierul cu optiunile implicite. afara
n s
In
acestor dou cazuri, GnuPG consider o cheie autentic numai dac dispune
a
a
a
a
de un certicat valid pentru ea i mai sunt
s
ndeplinite urmtoarele conditii:
a
11.4. PGP/GPG
a
semneze un set de chei fr s-i verice mai ai autenticitatea. Autenticitatea
aa a
nt
setului de chei se poate asigura dou moduri:
n
a
Fiierul din care se import setul de chei este adus pe o cale sigur, de
s
a
a
exemplu printr-o dischet dat personal de ctre proprietarul cheii sau
a
a
a
este descrcat de pe un sait web securizat (https) i de
a
s
ncredere.
ai, amprenta cheii primare este transmis pe o cale sigur, de exemInt
a
a
plu pe un bilet scris de ctre proprietarul cheii sau printr-o convorbire
a
telefonic cu proprietarul cheii. Apoi, la importarea i semnarea setului
a
s
de chei, utilizatorul veric amprenta cheii primare din set.
a
399
Cea de-a doua variant produce un ier text ASCII, prin recodicare baza
a
s
n
64.
Un mesaj poate adresat mai multor destinatari; pentru aceasta,
se pot da, comanda gpg, mai multe optiuni -r, ecare urmat de numele
n
a
unui utilizator destinatie. Oricare dintre destinatarii astfel specicati poate
GnuPG cripteaz, pentru ecare destinatar, cte o copie a cheii efemere, utia
a
liznd cheia public a acelui destinatar.
a
a
Decriptarea unui mesaj se face prin comanda
gpg -o -ieire --decrypt -intrare
s s
s
unde -intrare este ierul semnat i criptat, iar -ieire este ierul care
s
s
s
s s
s
n
comanda gpg va pune rezultatul decriptrii. Comanda veric i semntura
a
as
a
i aeaz pe ecran rezultatul vericrii.
s
s a
a
Se pot genera mesaje numai criptate sau numai semnate.
Transmiterea unui mesaj criptat dar nesemnat nu este recomandabil,
a
deoarece destinatarul nu poate avea nici un fel de certitudine asupra autenticitii mesajului. Comanda de criptare este similar cu cea pentru criptare
at
a
i semnare, dar cu -e loc de -se. Comanda de decriptare este identic cu
s
n
a
cea pentru un mesaj criptat i semnat.
s
Pentru generarea unui mesaj semnat dar necriptat exist trei posia
biliti: semntur inclus mesaj, semntur detaat i semntur clar.
at
a a
a n
a a
s as
a a n
Semntura inclus se genereaz similar cu generarea unui mesaj cripa
a
a
tat i semnat, dar lipsesc destinatarii (optiunile -r) i loc de -se se d doar
s
s n
a
-s. Fiierul generat contine datele originale i semntura. Extragerea datelor
s
s
a
11.4. PGP/GPG
ierului -date. Fiierul produs, -sign, este mic i contine doar semntura;
s
s
s
s
s
a
datele utile nu pot recuperate din el. Vericarea semnturii se face prin
a
comanda:
gpg --verify -sign -date
s
s
Semntura detaat este util deoarece pstreaz intact ierul de
a
s a
a
a
a
s
date, neind nevoie de gpg pentru recuperarea datelor. De asemenea, permite
mai multor utilizatori s semneze un acelai ier de date.
a
s s
ne, semntura clar se poate utiliza doar dac datele sunt text
In
a
n
a
ASCII. Semntura se genereaz prin comanda:
a
a
gpg -o -ieire --clearsing -intrare
s s
s
Fiierul astfel produs este un ier text, care poate citit uor de ctre utis
s
s
a
lizatorul uman. Textul original este pus
ntre nite marcaje, iar semntura
s
a
este adugat la sfrit. Vericarea semnturii se face prin comanda:
a
a
as
a
gpg --verify
s
Semntura clar este util pentru semnarea documentelor text.
a
n
a
Acestea rmn uor de citit de ctre om i, spre deosebire de semntura
a a
s
a
s
a
detaat, datele utile i semntura sunt puse
s a
s
a
ntr-un singur ier.
s
Dac GnuPG are mai multe chei secrete (inclusiv subchei, 11.4.1.1)
a
utilizabile pentru semntur, se poate specica ce cheie trebuie utilizat pentru
a a
a
crearea semnturii. Specicarea cheii se face adugnd optiunea
a
a a
-u cheie
GnuPG se utilizeaz curent pentru autenticarea softului liber.
a
In
acest scop, alturi de programul distribuit, se distribuie un ier ce contine
a
s
Bibliograe
Bibliografie
403
Bibliografie
[RFC 793, 1981] Transmission Control Protocol DARPA Internet Program Protocol Specication, 1981.
[RFC 822, 1982] Standard for the format of ARPA Internet text messages,
1982.
[Rogaway 1995] P. Rogaway. Problems with Proposed IP Cryptography,
1995. http://www.cs.ucdavis.edu/~rogaway/papers/
draft-rogaway-ipsec-commen% ts-00.txt.
[S/MIME, ] S/MIME Mail Security (smime).
http://www.ietf.org/html.charters/smime-charter.html.
Index
Speciale
0.0.0.0, 303, 341
0.0.0.0/8, 303
10 Base T, 268
10.0.0.0/8, 303, 349
100 Base Tx, 271
1000 Base T, 272
127.0.0.0/8, 303
127.0.0.1, 303
172.16.0.0/12, 303, 349
192.168.0.0/16, 303, 349
224.0.0.0/4, 303
240.0.0.0/4, 303
A
access point, 286
ACK, Vezi conrmare
acknowledge, Vezi conrmare
ad hoc (wireless), Vezi IBSS
adres
a
zic, 98, 266
a
Internet, 294, 297, 300
IP, Vezi adres, Internet
a
MAC, 98, Vezi adres zic, 340
a
a
privat, 303, 348, 349
a
de retea, 119
,
subretea, 297
n
,
unei subretele, 302
,
translatie, 349
,
adversar, O entitate care intercepteaz sau
a
modic mesajele schimbate
a
ntre alte
dou entitti, cu scopul obtinerii sau
a
a,
,
modicrii informatiei transmise. Vezi
a
,
pg. 149
wireless, 285
certicat, 182
cheie, 152
de durat lung, 175
a
a
efemer, 175
a
de sesiune, Vezi cheie efemer
a
stabilire, 150, 174
CIDR, 304
cifrare, Vezi criptare
cifru, 151
bloc, 157
ux, 157
ciphertext, Vezi text cifrat
clas
a
DNS, 334
IP, 303, 303
clear to send, 288
cod, 25
corector de erori, 52
detector de erori, 52
instantaneu, 31
de lungime x, 28
a
prex, 27
unic decodabil, 27
codicare
baza 64, 231
n
big endian, 255
binar-zecimal (pentru numere),
a
216
binar (pentru numere), 255
a
hexazecimal, 230
a
little endian, 255
retea (pentru numere), 255
,
text (pentru numere), 216
coliziune, 266, 277
comutator, 267
condentialitate, 149
,
conrmare, 102
si retransmitere, 103, 318
,
congestie, 308
controlul uxului, 114
corectarea erorilor, 51
criptare, 151
cryptographic hash function, Vezi dispersie criptograc, functie de
a
,
CSMA, 100
CSMA/CA, 101, 287
CSMA/CD, 101, 277
407
legtur Ethernet, 268
a
a
E
D
date
de control, 22
speciale (TCP), 330
utile, 21, 59
dB, Vezi decibel
dBm, Vezi decibel-miliwatt
debit, 17
decibel, Pseudo-unitate de msur avnd ca
a a a
valoare o zecime de bel. Are simbolul
dB. Vezi pg. 62
decibel-miliwatt,
Pseudo-unitate
de
msur pentru logaritmul puterii unui
a a
semnal, indicnd logaritmul, decia
n
beli, ai raportului dintre puterea semnalului msurat si o putere de 1 mW.
a
,
Vezi pg. 62
decriptare, 151
decryption, Vezi decriptare
descifrare, Vezi decriptare
destinatie, 25, 59
,
detectarea erorilor, 51
diafonie, Zgomot ce are ca provenient un
,a
semnal transmis pe un mediu apropiat
zic de mediul ce transmite semnalul
considerat. Vezi pg. 62
difuziune, 17
complet, 17, 140
a
selectiv, 17, 140
a
dirijare, 126, 298
dispersie, 166
criptograc
a
functie de, 166
,
functie de, 166
,
intermodal, 92
a
distorsiune, Modicare determinist a sema
nalului receptionat fat de cel emis,
a
,
,
diferit de arziere si atenuare.
a
nt
,
Distorsiuniea se manifest la fel
a
oridecteori se transmite un acelasi
a
,
semnal prin acelasi dispozitiv,
n
,
opozitie cu zgomotul care este aleator.
,
Vezi pg. 62
distribution system, 286
DS, Vezi Distribution System
duplex
echo
reply, Vezi ecou, rspuns
a
request, Vezi ecou, cerere
ecou
cerere, 307
rspuns, 307
a
ecran, 73
ecient
,a
unui cod, 42
emittor, 25, 59
,a
encryption, Vezi criptare
envelope, Vezi plic
F
fals
ales, 165
existent, 165
br
a
monomod, 92
multimod, 91
ltru
anti-spam, 371
IP, 315, 343
MAC, 282
rewall, Vezi ltru IP
ow control, Vezi controlul uxului
FM, Vezi modulatie de frecvent
,
,a
forgery
choosen, Vezi fals ales
existential, Vezi fals existent
format, Vezi codicare
frecvent, 77
,a
purttoare, 69
a
FTP, 383
G
gateway, 299
default, 300
H
hash function, Vezi dispersie, functie de
,
host, Vezi nod nal
htonl, 255
htons, 255
HTTP, 384
Index: HTTPSnetwork
HTTPS, 391
hub, 267
I
IBSS, 286
ICMP, Vezi Internet Control Message Protocol
ICMPv4, 304
ICMPv6, 304
IMAP, 356
impedant
,a
caracteristic, 74
a
de iesire, 75
,
de intrare, 75
informatie, 25
,
cantitate de, 40
infrastructur (wireless), 286
a
arziere, 61
nt
integritate
vericare, 150
interfat
,a
de retea, 265, 296
,
Internet, 1. Protocol de comunicatie de
,
nivel retea. 2. Retea la scar mona
,
,
dial construit pe baza protocolului
a
a
internet Vezi pg. 293
Internet Control Message Protocol, 304
intrus, Vezi adversar
IP, Vezi protocolul Internet
IPv4, 294
IPv6, 294
K
key, Vezi cheie
ephemeral, Vezi cheie efemer
a
long-term, Vezi cheie de durat lung
a
a
session, Vezi cheie efemer
a
L
ltime
a,
de band, Vezi band, ltime
a
a a,
lob
al antenei, 81
lungimea de und, Vezi und, lungime de
a
a
M
magistral, 75, 265
a
mail
transfer agent, 355, 364
user agent, 355
managed (wireless), Vezi infrastructur
a
masc
a
de retea, 302
,
master
DNS, 337
mediu
de transmisie, Dispozitiv capabil s
a
transmit la distant o actiune
a
,a
,
zic de la emittor la receptor.
a
,a
Vezi pg. 59
mesaj, 27
microunde, 77
MIME, 360
mod
de propagare (bre optice), 91
modulatie, 68
,
de amplitudine, 69
cuadratur, 70
n
a
de faz, 70
a
de frecvent, 70
,a
MTA, Vezi mail transfer agent, 367
MUA, Vezi mail user agent
multicast, Vezi difuziune selectiv
a
multimod (bra optic), Vezi br multia
a
mod
multiplexare
frecvent, Procedeu prin care mai
n
,a
multe comunicatii simultane pot
,
partaja acelasi mediu zic prin
,
transmiterea semnalelor corespunztoare comunicatiilor prin
a
,
modulatie utiliznd frecvente
a
,
,
purttoare diferite.
a
lungimea de und, Procedeu de muln
a
tiplexare care mai multe semn
nale optice utiliznd lungimi de
a
und diferite sunt transmise prin
a
aceeasi br optic. Vezi pg. 93
a
a
,
timp, 117
n
MX, 367, 369
N
NAT, Vezi adres, translatie
a
,
nerepudiabilitate, 149
network
409
prospetime
,
vericare, Vezi vericare prospetime
,
protocol, 16, 22
punct la punct, 16
purttoare, Vezi frecvent, purttoare
a
a
,a
R
raport semnal/zgomot, 62
receptor, 25, 59
redundant, 42
,a
regul
a
de dirijare, 298
reliable
transmission, Vezi transmisie sigur
a
repeater, Vezi repetor
repetor, 266
reprezentare
a informatiei, 25
,
request to send, 288
retea
,
privat, 348
a
RJ45, 269
round-trip time, Vezi timp dus-
ntors
router, Vezi nod intermediar
RTS, Vezi request to send
RTT, Vezi timp dus-
ntors
rut, 119
a
ruter, Vezi nod intermediar
S
securizare, 149
semi-duplex, 97
semnal, Mrimea zic ce msoar actiunea
a
a
a
a ,
produs de emittor si transmis de
a
a
,a
,
ctre mediu pn la receptor si care
a
a a
,
este utilizat efectiv ca purttoare a
a
a
informatiei. Vezi pg. 25, 59
,
modulat, 69
sinusoidal, 63
simbol de cod, 26
slave
DNS, 337
SMTP, 355, 364
socket, 233
spectru, 64
spoong, 346
blind, 326
Index: SSHzona
410
IP, 325
SSH, 375
SSID, 286
SSL, 389
statie, Vezi nod nal
,
subretea, 136
,
IP, 296
sux
subretea, 297
n
,
surs, 25, 59
a
switch, Vezi comutator
T
tabel
a
de dirijare, 126, 298
TCP, 317
terminator, 76
text cifrat, 151
text clar, 151
time
to live, Vezi timp, de viat
,a
timp
dus-
ntors, 18, 329
de propagare, 18
de valabilitate (DNS), 334, 337
de viat (pachet IP), 308
,a
tip
uint32 t, 255
und
a
electromagnetic, 77
a
lungime de, 77
radio, 77
unicast, 16
unshielded twisted pairs, Vezi pereche
torsadat neecranat
a
a
UTP, Vezi perechi torsadate neecranate
V
vecin, 119
vector de initializare, 154
,
vericare
integritate, Vezi integritate, vericare
prospetime, 150
,
VLAN, 283
VLAN-ID, 283
W
wavelength division multiplexing, Vezi
multiplexare lungimea de und
n
a
WDM, Vezi multiplexare lungimea de
n
und
a
window manager, 382
Z
zgomot, Modicare nedeterminist a sema
nalului receptionat fat de cel emis.
,
,a
Pentru comparatie, vezi si distorsiune.
,
,
Vezi pg. 62
zon
a
DNS, 335