P. 1
retele

retele

|Views: 17|Likes:
Published by Gabriel Diaconescu

More info:

Published by: Gabriel Diaconescu on Oct 17, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

10/17/2011

pdf

text

original

Sections

  • Prefat¸˘a
  • Introducere
  • 1.1. Serviciile oferite de ret¸ea
  • 1.2. Principalele elemente ale unei ret¸ele de calcula-
  • Not¸iuni de teoria informat¸iei
  • 2.1. Problema codific˘arii informat¸iei pentru un canal
  • 2.2. Coduri cu proprietatea de prefix
  • 2.2.1. Reprezentarea arborescent˘a a codurilor prefix
  • 2.2.2. Decodificarea ˆın cazul codurilor prefix
  • 2.2.3. Lungimile cuvintelor unui cod prefix
  • 2.3. Coduri optime
  • 2.3.1. Cantitatea de informat¸ie
  • 2.3.2. Lungimea medie a cuvintelor de cod
  • 2.3.3. Generarea codului optim prin algoritmul lui Huffman
  • 2.3.4. Compresia fi¸sierelor
  • 2.4. Coduri detectoare ¸si corectoare de erori
  • 2.4.1. Modelul erorilor
  • 2.4.2. Principiile codurilor detectoare ¸si corectoare de erori
  • 2.4.3. Cˆateva coduri detectoare sau corectoare de erori
  • 2.4.3.1. Bitul de paritate
  • 2.4.3.2. Paritate pe linii ¸si coloane
  • 2.4.3.3. Coduri polinomiale
  • 2.4.4. Coduri detectoare ¸si corectoare de erori ˆın alte domenii
  • Nivelul fizic
  • 3.1. Problema transmisiei informat¸iei la nivelul fizic
  • 3.2. Transmiterea semnalelor
  • 3.2.1. Modific˘arile suferite de semnale
  • 3.3. Codificarea informat¸iei prin semnale continue
  • 3.3.1. Scheme de codificare
  • 3.3.2. Modulat¸ia
  • 3.3.3. Multiplexarea ˆın frecvent¸˘a
  • 3.3.4. Capacitatea maxim˘a a unui canal de comunicat¸ie
  • 3.4. Transmisia prin perechi de conductoare
  • 3.4.1. Construct¸ia cablului
  • 3.4.2. Propriet˘at¸i ale mediului
  • 3.4.3. Leg˘atur˘a magistral˘a
  • 3.4.4. Considerente practice
  • 3.5. Transmisia prin unde radio
  • 3.5.1. Propagarea undelor
  • 3.5.1.1. Polarizarea
  • 3.5.1.2. Absorbt¸ia ¸si reflexia
  • 3.5.1.3. Difract¸ia
  • 3.5.1.4. Interferent¸a undelor
  • 3.5.1.5. Divergent¸a undelor
  • 3.5.2. Antene
  • 3.5.2.1. Directivitatea
  • 3.5.2.2. Polarizarea
  • 3.5.2.3. Tipuri de antene
  • 3.5.3. Raza de act¸iune a unei leg˘aturi radio
  • 3.5.3.1. Obstacolele
  • 3.5.3.2. Linia orizontului
  • 3.5.3.3. Utilizarea satelit¸ilor artificiali ai P˘amˆantului
  • 3.5.3.4. Zgomotul
  • 3.5.3.5. Sc˘aderea puterii cu distant¸a
  • 3.5.3.6. Emisia direct¸ionat˘a ¸si polarizat˘a
  • 3.5.4. Spectrul radio ¸si alocarea lui
  • 3.5.5. Particularit˘at¸i ale sistemelor de comunicat¸ie prin radio
  • 3.5.5.1. Topologia leg˘aturii
  • 3.5.5.2. Fiabilitatea
  • 3.5.5.3. Securitatea
  • 3.6. Transmisia optic˘a
  • 3.6.1. Construct¸ia mediului
  • 3.6.1.1. Conectarea fibrelor optice
  • 3.6.2. Propagarea semnalului optic
  • 3.6.2.1. Moduri de propagare
  • 3.6.2.2. Caracteristici ale mediului
  • 3.6.2.3. Multiplexarea ˆın lungimea de und˘a
  • 3.6.3. Considerente practice
  • Nivelul leg˘aturii de date
  • 4.1. Detectarea ¸si corectarea erorilor
  • 4.2. Controlul accesului la mediu
  • 4.2.1. Protocoale bazate pe asigurarea unui interval exclusiv de emisie
  • 4.2.2. Protocoale bazate pe coliziuni ¸si retransmitere
  • 4.2.3. Protocoale mixte
  • 4.3. Retransmiterea pachetelor pierdute
  • 4.3.1. Principiul confirm˘arilor pozitive ¸si retransmiterilor
  • 4.3.2. Trimiterea ˆın avans a mai multor pachete
  • 4.3.3. Spat¸iul numerelor de confirmare
  • 4.4. Controlul fluxului
  • 4.4.1. Cereri de suspendare ¸si de continuare
  • 4.4.2. Mecanismul pas cu pas
  • 4.4.3. Mecanism combinat cu retransmiterea pachetelor pier- dute
  • 4.5. Multiplexarea ˆın timp
  • Nivelul ret¸ea ¸si nivelul transport
  • 5.1. Retransmiterea datelor de c˘atre nodurile inter-
  • 5.1.1. Retransmiterea ˆın ret¸ele bazate pe datagrame
  • 5.1.2. Retransmiterea ˆın ret¸ele bazate pe conexiuni
  • 5.2. Algoritmi de dirijare
  • 5.2.1. Calculul drumurilor cu informat¸ii complete despre graful ret¸elei
  • 5.2.2. Calculul drumurilor optime prin schimb de informat¸ii de distant¸˘a
  • 5.2.3. Dirijarea ierarhic˘a
  • 5.2.4. Metode particulare de dirijare
  • 5.2.4.1. Inundarea
  • 5.2.4.2. ˆInv˘at¸area rutelor din adresele surs˘a ale pachetelor
  • 5.2.5. Metode de difuziune
  • 5.3. Funct¸ionarea la trafic ridicat
  • 5.3.1. Alegerea pachetelor de transmis
  • 5.3.2. Controlul congestiei
  • 5.3.3. Formarea (limitarea) traficului
  • 5.3.4. Rezervarea resurselor
  • 5.4. Nivelul transport
  • 5.5. Interconectarea ret¸elelor
  • Metode ¸si protocoale criptografice
  • 6.1. Asigurarea confident¸ialit˘at¸ii
  • 6.1.1. Introducere
  • 6.1.2. Refolosirea cheilor
  • 6.1.3. Problema spargerii unui cifru
  • 6.1.4. Algoritmi de criptare utilizat¸i ˆın practic˘a
  • 6.1.5. Criptografie asimetric˘a (cu cheie public˘a)
  • 6.1.5.1. Utilizarea criptografiei asimetrice
  • 6.2. Autentificarea mesajelor
  • 6.2.1. Funct¸ii de dispersie criptografice
  • 6.2.1.1. Utilizarea funct¸iilor de dispersie
  • 6.2.2. Funct¸ii de dispersie cu cheie
  • 6.2.3. Semn˘atura digital˘a
  • 6.2.4. Verificarea prospet¸imii mesajelor
  • 6.2.5. Combinarea cript˘arii, autentific˘arii ¸si verific˘arii prospe- t¸imii
  • 6.3. Stabilirea cheilor
  • 6.3.1. Stabilirea cheilor ˆın prezent¸a unui adversar pasiv
  • 6.3.1.1. Stabilirea cheilor prin criptografie asimetric˘a
  • 6.3.1.2. Stabilirea cheii prin metoda Diffie-Hellman
  • 6.3.1.3. Atacul man-in-the-middle
  • 6.3.2. Stabilirea cheilor ˆın prezent¸a unui adversar activ
  • 6.3.3. Stabilirea cheilor cu ajutorul unui tert¸ de ˆıncredere
  • 6.3.4. Certificarea cheilor publice
  • 6.3.5. Transportul prin utilizatori umani
  • 6.4. Numere aleatoare
  • 6.4.1. Generatoare fizice
  • 6.4.2. Generatoare de numere pseudoaleatoare
  • 6.4.3. Generatoare utilizate ˆın practic˘a
  • 6.5. Autentificarea utilizatorilor
  • ˆın autentificarea utilizatorilor
  • 6.5.1. Stocarea parolelor
  • 6.5.2. Parole de unic˘a folosint¸˘a
  • Cuprins
  • Cuprins 5
  • Codific˘ari de interes practic
  • 7.1. Probleme privind reprezentarea numerelor ˆın-
  • 7.1.1. Reprezent˘ari pe bit¸i
  • 7.1.1.2. S¸iruri de bit¸i
  • 7.1.1.3. Reprezentarea pe bit¸i a numerelor ˆıntregi
  • 7.1.2. Reprezent˘ari pe octet¸i
  • 7.1.2.1. Octet¸i
  • 7.1.2.2. S¸iruri de octet¸i
  • 7.1.2.3. Reprezentarea numerelor pe un num˘ar ˆıntreg de octet¸i
  • 7.1.2.4. Reprezentarea numerelor pe un ¸sir arbitar de bit¸i
  • 7.1.3. Probleme privind reprezentarea lungimii ¸sirurilor
  • 7.1.4. Alte metode de reprezentare a numerelor ˆıntregi
  • 7.2. Codificarea textelor
  • 7.2.1. Codificarea ASCII
  • 7.2.2. Codific˘arile ISO-8859
  • 7.2.3. Codific˘arile Unicode
  • 7.2.3.1. Codificarea UTF-8
  • 7.2.3.2. Codific˘arile UTF-16
  • 7.2.3.3. Codific˘arile UTF-32
  • 7.3. Reprezentarea datei ¸si orei
  • 7.3.1. M˘asurarea timpului
  • 7.3.2. Obiectivele ˆın alegerea reprezent˘arii timpului ˆın calcula- tor
  • 7.3.3. Formate utilizate ˆın practic˘a
  • 7.3.3.1. Formatul utilizat de po¸sta electronic˘a
  • 7.3.3.2. ISO-8601 ¸si RFC-3339
  • 7.3.3.3. Timpul POSIX
  • 7.4. Recodific˘ari
  • 7.4.1. Codificarea hexazecimal˘a
  • 7.4.2. Codificarea ˆın baza 64
  • 7.4.3. Codific˘ari bazate pe secvent¸e de evitare
  • Programarea ˆın ret¸ea — introducere
  • 8.1. Interfat¸a de programare socket BSD
  • 8.1.1. Comunicat¸ia prin conexiuni
  • 8.1.1.1. Deschiderea conexiunii de c˘atre client
  • 8.1.1.2. Deschiderea conexiunii de c˘atre server
  • 8.1.1.3. Comunicat¸ia propriu-zis˘a
  • 8.1.1.4. ˆInchiderea conexiunii
  • 8.1.2. Comunicat¸ia prin datagrame
  • 8.1.3. Principalele apeluri sistem
  • 8.1.3.1. Funct¸ia socket()
  • 8.1.3.2. Funct¸ia connect()
  • 8.1.3.3. Funct¸ia bind()
  • 8.1.3.4. Funct¸ia listen()
  • 8.1.3.5. Funct¸ia accept()
  • 8.1.3.6. Formatul adreselor
  • 8.1.3.7. Interact¸iunea dintre connect(), listen() ¸si accept()
  • 8.1.3.8. Funct¸iile getsockname() ¸si getpeername()
  • 8.1.3.9. Funct¸iile send() ¸si recv()
  • 8.1.3.10. Funct¸iile shutdown() ¸si close()
  • 8.1.3.11. Funct¸iile sendto() ¸si recvfrom()
  • 8.1.4. Exemple
  • 8.1.4.1. Comunicare prin conexiune
  • 8.1.4.2. Comunicare prin datagrame
  • 8.2. Formatarea datelor
  • 8.2.1. Formate binare
  • 8.2.1.1. Tipuri ˆıntregi
  • 8.2.1.2. S¸iruri de caractere ¸si tablouri
  • 8.2.1.3. Variabile compuse (struct-uri)
  • 8.2.1.4. Pointeri
  • 8.2.2. Formate text
  • 8.2.3. Probleme de robustet¸e ¸si securitate
  • 8.2.4. Probleme privind costul apelurilor sistem
  • 8.3. Probleme de concurent¸˘a ˆın comunicat¸ie
  • Ret¸ele IEEE 802
  • 9.1. Ret¸ele IEEE 802.3 (Ethernet)
  • 9.1.1. Leg˘aturi punct la punct prin perechi de conductoare
  • 9.1.2. Leg˘aturi prin fibre optice
  • 9.1.3. Leg˘aturi prin cablu magistral˘a
  • 9.1.4. Repetoarele ¸si comutatoarele
  • 9.1.5. Dirijarea efectuat˘a de comutatoare (switch-uri)
  • 9.1.6. Facilit˘at¸i avansate ale switch-urilor
  • 9.1.6.1. Switch-uri configurabile
  • 9.1.6.2. Filtrare pe baz˘a de adrese MAC
  • 9.1.6.3. Trunking
  • 9.1.6.4. Leg˘aturi redundante
  • 9.1.6.5. Ret¸ele virtuale (VLAN)
  • 9.1.7. Considerente privind proiectarea unei ret¸ele
  • 9.2. Ret¸ele IEEE 802.11 (Wireless)
  • 9.2.1. Arhitectura ret¸elei
  • 9.2.2. Accesul la mediu
  • 9.2.3. Generarea pachetelor beacon
  • 9.2.4. Securitatea ret¸elelor 802.11
  • Internetul
  • 10.1. Arhitectura ret¸elei
  • 10.2. Protocolul IP
  • 10.2.1. Structura pachetului IP
  • 10.2.2. Bazele dirij˘arii pachetelor IP
  • 10.2.2.1. Subret¸ele ¸si interfet¸e
  • 10.2.2.2. Prefixul de ret¸ea
  • 10.2.2.3. Tabela de dirijare
  • 10.2.3. Scrierea ca text a adreselor ¸si prefixelor
  • 10.2.3.1. Scrierea adreselor IP
  • 10.2.3.2. Scrierea prefixelor de ret¸ea
  • 10.2.4. Alocarea adreselor IP ¸si prefixelor de ret¸ea
  • 10.2.4.1. Alocarea pe utiliz˘ari
  • 10.2.4.2. Alocarea adreselor ¸si dirijarea ierarhic˘a
  • 10.2.5. Erori la dirijare ¸si protocolul ICMP
  • 10.2.5.1. Pachete nelivrabile
  • 10.2.5.2. Diagnosticarea funct¸ion˘arii rutelor
  • 10.2.5.3. Ciclarea pachetelor IP
  • 10.2.5.4. Congestia
  • 10.2.5.5. Redirect¸ionarea
  • 10.2.6. Alte chestiuni privind dirijarea pachetelor
  • 10.2.6.1. Dimensiunea maxim˘a a pachetelor ¸si fragmentarea
  • 10.2.6.2. Calitatea serviciului
  • 10.2.7. Configurarea ¸si testarea unei ret¸ele IP locale
  • 10.2.7.1. Alegerea parametrilor
  • 10.2.7.3. Testarea ¸si depanarea ret¸elelor
  • 10.3. Nivelul transport
  • 10.3.1. Conexiuni cu livrare garantat˘a: protocolul TCP
  • 10.3.1.1. Principiul conexiunii TCP
  • 10.3.1.2. Comunicat¸ia bidirect¸ional˘a
  • 10.3.1.3. Deschiderea ¸si ˆınchiderea conexiunii
  • 10.3.1.4. Alegerea num˘arului init¸ial de secvent¸˘a
  • 10.3.1.5. ˆInchiderea fort¸at˘a a conexiunii
  • 10.3.1.6. Identificarea aplicat¸iei destinat¸ie
  • ului TCP
  • 10.3.1.8. Controlul fluxului
  • 10.3.1.9. Stabilirea time-out-ului pentru retransmiterea pachetelor
  • 10.3.1.10. Algoritmul lui Nagle ¸si optimizarea num˘arului de pachete
  • 10.3.1.11. Trimiterea datelor speciale (out of band)
  • 10.3.2. Datagrame nesigure: UDP
  • 10.4. Identificarea nodurilor dup˘a nume: sistemul
  • 10.4.1. Numele de domeniu
  • 10.4.2. Structura logic˘a a bazei de date DNS
  • 10.4.3. ˆImp˘art¸irea ˆın domenii de autoritate
  • 10.4.4. Mecanismul de interogare a serverelor
  • 10.4.5. Sincronizarea serverelor pentru un domeniu
  • 10.4.6. C˘autarea numelui dup˘a IP
  • 10.5. Leg˘aturile directe ˆıntre nodurile IP
  • 10.5.1. Rezolvarea adresei — ARP
  • 10.6. Configurarea automat˘a a stat¸iilor — DHCP
  • 10.7. Situat¸ii speciale ˆın dirijarea pachetelor
  • 10.7.1. Filtre de pachete (firewall)
  • 10.7.2. Ret¸ele private
  • 10.7.3. Translat¸ia adreselor (NAT)
  • 10.7.3.1. Translat¸ia adresei surs˘a
  • 10.7.3.2. Translat¸ia adresei destinat¸ie
  • 10.7.4. Tunelarea
  • Aplicat¸ii ˆın ret¸ele
  • 11.1. Po¸sta electronic˘a
  • 11.1.1. Formatul mesajelor
  • 11.1.1.1. Antetul mesajelor
  • 11.1.1.2. Extensii MIME
  • 11.1.1.3. Ata¸sarea fi¸sierelor ¸si mesaje din mai multe p˘art¸i
  • 11.1.1.4. Codificarea corpului mesajului ¸si a ata¸samentelor
  • 11.1.2. Transmiterea mesajelor
  • 11.1.2.1. Protocolul SMTP
  • 11.1.2.2. Determinarea urm˘atorului MTA
  • 11.1.2.3. Configurarea unui MTA
  • 11.1.3. Securitatea po¸stei electronice
  • 11.2. Sesiuni interactive la distant¸˘a
  • 11.2.1. Protocolul ssh
  • 11.2.1.1. Conexiunea ssh protejat˘a criptografic
  • 11.2.1.2. Metode de autentificare ˆın ssh
  • 11.2.1.3. Multiplexarea conexiunii, tunelarea ¸si aplicat¸ii
  • 11.2.2. Sistemul X-Window
  • 11.3. Transferul fi¸sierelor ˆın ret¸ea
  • 11.3.1. Protocolul ftp
  • 11.3.2. Protocolul HTTP
  • 11.3.2.1. Structura cererilor ¸si a r˘aspunsurilor
  • 11.3.2.2. URL-urile
  • 11.3.2.3. Alte facilit˘at¸i HTTP
  • 11.3.2.4. Proxy HTTP
  • 11.3.2.5. Conexiuni securizate: SSL/TLS
  • 11.3.2.6. Utilizarea TLS pentru web
  • 11.4. PGP/GPG
  • 11.4.1. Structura cheilor GnuPG
  • 11.4.1.1. Chei primare ¸si subchei
  • 11.4.1.2. Utilizatori ¸si identit˘at¸i
  • 11.4.1.3. Generarea ¸si modificarea cheilor
  • 11.4.1.4. Controlul perioadei de valabilitate a cheilor
  • 11.4.1.5. Gestiunea cheilor secrete
  • 11.4.2. Transmiterea ¸si certificarea cheilor publice
  • 11.4.2.1. Transmiterea cheilor publice
  • 11.4.2.2. Verificarea autenticit˘at¸ii cheilor
  • 11.4.3. Transmiterea mesajelor criptate sau semnate
  • Bibliografie
  • Index

Retele de calculatoare ¸

Principii

Radu-Lucian Lup¸a s

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

c 2008, Radu-Lucian Lup¸a s
5

Cuprins

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

2

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

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

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

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

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

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

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

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

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

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

5

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

6

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

5 3. ¸ a a a Figura 5.1 1. a 1.1 3.3 4.2 4.1 (b) Reprezentarea (mic¸orat˘) s a doar a subretelei r˘d˘cin˘.c 2008. Reteaua de pe nivelul ¸ a a ¸ r˘d˘cin˘ are nodurile reprezentate prin cercuri pline (mici) ¸i leg˘turile reprezentate a a a s a cu linii ˆ ıngro¸ate.2 3.4 3.3 4.7: O retea cu dirijare ierarhic˘ pe dou˘ nivele.2 2. s .3 2.4 (a) Toat˘ reteaua.3 3.1 3.2. Radu-Lucian Lup¸a s 138 5. Subretelele de pe nivelul 1 sunt ˆ a ¸ ¸ ıncercuite cu linie punctat˘.3 3.2 2.1 3.3 1. Algoritmi de dirijare 1.3 2.1 4.2 2.4 1.5 1.6 2.1 1.

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

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

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

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

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

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

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

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

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

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

c 2008, Radu-Lucian Lup¸a s
149

Capitolul 6

Metode ¸i protocoale criptografice s

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.

.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Tip 3 — Destination unreachable

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

Ce semnalizeaz˘ a pachet nelivrabil, conform § 10.2.5.1

11 — time exceeded

0 — TTL exceeded

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

0 1 2 3

— — — —

network host TOS & network TOS & host

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

8 — echo request 9 — echo reply

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

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

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

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

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

192.168.7.7 192.168.7.1

192.168.1.3 192.168.1.1

192.168.1.9

Spre exterior

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

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

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

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

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

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

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

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

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

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

227.224.2.4 L4 eth1: 193.0. Se obi¸nuie¸te ca nodul ales ca default gateway s˘ primeasc˘ adresa s s a a IP cea mai mic˘ din subretea (adic˘ adresa ˆ care sufixul are valoarea a ¸ a ın 1).0.0.224..0.225 193.224/28 G eth0: 193.0.0.255.din subordine“ — subretelele mai dep˘rtate de a ¸ ¸ a leg˘tura spre exterior dec˘t subreteaua considerat˘. mai multe c˘i spre o aceea¸i destinatie.222 Subretea laboratoare ¸ 193.227.227. ınsu¸ • Pe nodul ales ca default gateway pentru o subretea se vor configura ¸ rutele c˘tre subretelele .1 eth1: 193.2 L2 193. Pentru nodurile care fac parte din ¸ mai multe subretele.227.224.4: Retea pentru exemplul 10. • Pe toate nodurile subretelei se configureaz˘ ca default gateway nodul ¸ a ales ca default gateway al subretelei.9 ¸ .40.192/27 S1 193.227.3 L3 193. a a ¸ a Mai not˘m c˘ ˆ a a ıntr-o tabel˘ de dirijare static˘ nu se pot configura. Subretea secretariat ¸ 193.0.227.240 Spre reteaua furnizorului ¸ Figura 10. Protocolul IP fiind nodul din subretea cel mai apropiat de ie¸irea spre restul Internet¸ s ului.0.255.0.0/23 L1 193.225.0.0.238 E2 Subretea experimental˘ ¸ a eth2: 193.193 193.227. Dac˘ se ¸a a s ¸ a dore¸te a¸a ceva este necesar˘ instalarea unui program de calcul automat al s s a tabelei de dirijare.0.224.254 eth0: 193. a a pentru tolerant˘ la pene.227.194 S2 193. se ia default gateway-ul din subreteaua cea mai ¸ ¸ apropiat˘ de exterior (astfel un nod nu va avea ca default gateway pe el a ˆ si).0.c 2008.0.130/255.226.226 E1 193. Radu-Lucian Lup¸a s 310 10.224.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0/8 -j DROP iptables -A INPUT -i eth0 -s 172.0.0.255 -j DROP iptables -A INPUT -i eth0 -d 193.128/28 -j DROP iptables -A INPUT -d 255.0.0/8 -j DROP iptables -A FORWARD -i eth0 -s 172. Internetul 345 iptables -A FORWARD -i eth0 -s 0.0.0.0/8 -j DROP iptables -A FORWARD -i eth0 -s 224.0/16 -j DROP iptables -A FORWARD -i eth1 -s ! 193.0.0.226.255. Radu-Lucian Lup¸a s Capitolul 10.0/16 -j DROP iptables -A INPUT -i eth1 -s ! 193.0.226.40.16.40.40.0.0.30.40.30.226.0.0.0.40.128/28 -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT iptables -A INPUT -p icmp --icmp-type destination-unreachable \ -j ACCEPT iptables -A INPUT -p icmp --icmp-type time-exceeded -j ACCEPT iptables -A FORWARD -p icmp --icmp-type echo-request -j ACCEPT iptables -A FORWARD -p icmp --icmp-type echo-reply -j ACCEPT iptables -A FORWARD -p icmp --icmp-type destination-unreachable \ -j ACCEPT iptables -A FORWARD -p icmp --icmp-type time-exceeded -j ACCEPT iptables -A INPUT -j DROP iptables -A FORWARD -j DROP .128/28 -j DROP iptables -A INPUT -i eth0 -s 193.226.255 -j DROP iptables -A FORWARD -i eth0 -d 193.226.130 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -d 193.0.0/8 -j DROP iptables -A INPUT -i eth0 -s 224.c 2008.226.159 -j DROP iptables -A INPUT -i eth0 -s 193.255.130 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -d 193.0.226.255.0/12 -j DROP iptables -A FORWARD -i eth0 -s 192.0/12 -j DROP iptables -A INPUT -i eth0 -s 192.16.0/3 -j DROP iptables -A INPUT -i eth0 -s 10.40.0.168.40.0/8 -j DROP iptables -A INPUT -i eth0 -s 0.0/3 -j DROP iptables -A FORWARD -i eth0 -s 10.168.40.0.255.225.159 -j DROP # celelalte restrictii iptables -A INPUT -i eth1 -j ACCEPT iptables -A FORWARD -i eth1 -j ACCEPT iptables -A INPUT -m state --state ESTABLISHED -j ACCEPT iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p udp --dport 1-1023 -j DROP iptables -A INPUT -i eth0 -p udp --sport 53 -j ACCEPT iptables -A INPUT -i eth0 -p udp --sport 123 --dport 123 -j ACCEPT iptables -A FORWARD -d 193.128/28 -j DROP iptables -A FORWARD -d 255.226.20 -j DROP iptables -A INPUT -i eth0 -s 127.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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