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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

comunicatie a a ¸ ¸ posibil˘ doar pentru un singur proces aplicatie la un moment dat. Introducere Nod final Aplicatie ¸ Modul transport Modul de retea ¸ Modul legatur˘ a de date Modul leg˘tur˘ a a fizic˘ a Modulul de retea ¸ Modul legatur˘ a de date Modul leg˘tur˘ a a fizic˘ a Modul legatur˘ a de date Modul leg˘tur˘ a a fizic˘ a Nod intermediar Nod final Aplicatie ¸ Modul transport Modul de retea ¸ Modul legatur˘ a de date Modul leg˘tur˘ a a fizic˘ a Nivelul aplicatie ¸ Nivelul transport Nivelul retea ¸ Nivelul leg˘turii a de date 21 Nivelul fizic Mediu fizic Mediu fizic Figura 1. fibre optice sau leg˘turi radio prin satelit). web. 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).1). Sunt figurate a¸ ¸ doar componentele implicate ˆ comunicatia dintre dou˘ aplicatii. dar ˆ a neadeca ¸ ınc˘ vate utiliz˘rii directe de c˘tre aplicatii (lipsa transmisiei sigure. Cele dou˘ aplicatii ın ¸ a ¸ a ¸ se execut˘ pe dou˘ calculatoare ˆ a a ıntre care nu exist˘ o leg˘tur˘ direct˘. a a similare celor oferite de retea aplicatiilor (a¸a cum am v˘zut ˆ § 1. nivelul fizic ofer˘ nivelului leg˘turii de a a date servicii de transfer de date. de pe acela¸i nivel. ˆ proiectarea ın nivelului retea. 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˘. din noduri diferite ˆsi transmit unul s ı¸ altuia (utilizˆnd ˆ acest scop serviciile oferite de nivelul inferior) dou˘ tipuri a ın a . ¸ ¸ s a telefonie prin Internet ¸i videoconferinte).2: Componentele unei p˘rti dintr-o retea de calculatoare. dar ser¸ ¸ s a ın viciile oferite sunt mai primitive.c 2008. etc. dar exist˘ o a a a a a leg˘tur˘ printr-un nod intermediar. Nivelul retea ofer˘ nivelului transport servicii ¸ a de transfer de date ˆ ıntre orice dou˘ calculatoare din retea. Astfel. a Modulele. Radu-Lucian Lup¸a s Capitolul 1.). De exemplu. dar ˆ continuare cu restrictia c˘ transferul este posibil doar ˆ ın ¸ a ıntre calculatoare conectate direct. 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. nici cum este construit nivelul fizic s ¸ (perechi de conductoare. Nivelul leg˘turii de date ofer˘ nivelului retea servicii de transfer de date a a ¸ mai sigure.

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

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

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

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

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

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

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

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

c 2008. Radu-Lucian Lup¸a s 30 2. . sl ):=c(m) x:=r pentru i:=1. 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 . 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. l execut˘ a dac˘ nu exist˘ muchie descendent˘ de la x etichetat˘ cu si atunci a a a a dac˘ x are asociat un mesaj atunci a eroare: c nu este cod este prefix sfˆr¸it dac˘ as a creaz˘ y descendent al lui x ¸i eticheteaz˘ (x. . .1: Generarea arborelui asociat unui cod prefix .

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

. . . Coduri cu proprietatea de prefix Algoritmul Decodeaz˘ a intrarea: T arborele unui cod prefix c : M → S ∗ s = (s1 .2. . . s2 . sl ) ∈ S ∗ un ¸ir finit de simboluri de cod s ie¸irea: m = (m1 . .2: Decodificarea unei reprezent˘ri printr-un cod prefix a . 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. . . . m2 . . . Radu-Lucian Lup¸a s 32 2. .c 2008. 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. debitul maxim de informatie ce poate fi transmis este proportional ¸ ¸ cu ∆f · log(s/n + 1). fmax ) nu poate purta mai mult˘ informatie decˆt e¸antioanele sema ¸ a s 1 nalului luate la interval 2fmax unul de altul. ˆ acela¸i fel a ın ¸ ın s ˆ care cunoa¸terea principiului conserv˘rii energiei ne folose¸te pentru a nu ın s a s ˆ ıncerca constructia unui perpetuum mobile — ˆ ¸ ıncercare din start sortit˘ e¸ea s cului. Radu-Lucian Lup¸a s Capitolul 3. Acest rezultat provine din urm˘toarele dou˘ observatii: a a ¸ 1. 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˘).4. fmax ) este unic determinat de 1 valorile sale la momente de timp situate la intervale egale cu ∆t = 2fmax unul de altul. a ¸a a 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. a a Este util s˘ avem ˆ vedere existenta acestei limite. Pentru un mediu cu l˘¸imea de band˘ ∆f ¸i cu raportul semnal/zgoat a s mot s/n.3.3. Limitarea a a a este independent˘ de schema de codificare utilizat˘ pentru transmisie ¸i ca a a s urmare este valabil˘ pentru orice schem˘ de codificare ne-am putea imagina. ¸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. const˘ ˆ transmiterea mai multor semnale ın a ın independente prin acela¸i mediu de transmisie. un semnal al c˘rui spectru este inclus ˆ intervalul a ın [0. 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.c 2008. 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. ˆ general. Ca urmare. 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. . ın Emit˘toarele produc semnale cu spectre disjuncte prin modulatie uti¸a ¸ lizˆnd frecvente purt˘toare diferite.3. Multiplexarea ˆ frecvent˘ ın ¸a Multiplexarea.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

a cu conectoare gata ata¸ate. Din acest motiv. . se comercializeaz˘ cabluri. De aceea. Radu-Lucian Lup¸a s 94 ˘ 3. Transmisia optica las˘ s˘ treac˘ lumina vizibil˘. conectoarele necuplate se acoper˘ cu capace a protectoare.c 2008.6. 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. dar blocheaz˘ infraro¸iile transmise prin fibre. de diferite lungimi.

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

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

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

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

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

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

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

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

4). cˆt timp nu a primit confirmare de la receptor. 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. 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.1.c 2008. a a ¸a s trece la urm˘torul pachet. fie trece un timp egal cu durata dus-ˆ a a a s ıntors normal˘. a .3. Dac˘ emit˘torul nu prime¸te confirmarea unui a a ¸a s pachet ˆ timpul dus-ˆ ın ıntors normal. Dac˘ emit˘torul 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. a ¸ ıi Algoritmul emit˘torului este urm˘torul: pentru fiecare pachet al sur¸a a sei. Radu-Lucian Lup¸a s ˘ Capitolul 4. dat˘ de acele informatii care ˆ sunt accesibile.4: Retransmiterea pachetelor pierdute S˘ examin˘m acum protocolul din punctul de vedere al fiec˘rui para a a ticipant (emit˘torul ¸i receptorul) ¸i s˘ nu uit˘m c˘ fiecare are viziunea lui ¸a s s a a a despre sistem. Nivelul legaturii de date 103 Aceste trei conditii ˆ ¸ ımpreun˘ formeaz˘ dezideratul de transmitere sigur˘ (engl. a a a reliable).

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

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

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

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. Radu-Lucian Lup¸a s ˘ Capitolul 4. ¸ a .

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

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

s se ignor˘ a 2 doi nu e pachetul a¸teptat.c 2008. ¸ s ¸ .8: Functionarea ferestrei glisante ˆ cazul ˆ care dimensiunea ferestrei de ¸ ın ın receptie este 1 ¸i dimensiunea ferestrei de emisie este cel putin 3. Radu-Lucian Lup¸a s 110 4. 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.3. s se ignor˘ a 3 trei ACK=2 4 patru ACK=3 doi trei patru ACK=4 Figura 4.

a dar ˆ a nu-l livreaz˘ ınc˘ a destinatiei ¸ memoreaz˘ pachetul. ¸ ¸ s a . a dar ˆ a nu-l livreaz˘ ınc˘ a destinatiei ¸ doi ACK=2 trei patru Figura 4. Nivelul legaturii de date 111 Surs˘ a Unu Emit˘tor ¸a 1 Unu Receptor Destinatie ¸ doi 2 doi ACK=1 Unu trei 3 trei patru 4 patru ACK=3 2 doi ACK=4 memoreaz˘ pachetul.c 2008. 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.

c 2008.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.3. Retransmiterea pachetelor pierdute Surs˘ a Unu Emit˘tor ¸a 1 Unu Receptor Destinatie ¸ doi 2 doi Unu trei 3 trei ACK=2 doi confirm˘ dou˘ pachete a a printr-o singur˘ confirmare a patru 4 patru memoreaz˘ pachetul. De remarcat a a a ¸a ¸ ın posibilitatea de optimizare a num˘rului de pachete de confirmare prin combinarea a mai multor confirm˘ri ˆ a ıntr-un singur pachet (confirmarea cu num˘rul 2). a . Radu-Lucian Lup¸a s 112 4. a dar ˆ a nu-l livreaz˘ ınc˘ a destinatiei ¸ 3 trei trei ACK=4 patru Figura 4.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

3 2.c 2008.2 3.1 (b) Reprezentarea (mic¸orat˘) s a doar a subretelei r˘d˘cin˘.6 2.3 2.7: O retea cu dirijare ierarhic˘ pe dou˘ nivele.2 2. Algoritmi de dirijare 1.1 1.4 1.5 1.2 2.4 (a) Toat˘ reteaua.1 3.5 3.1 4.1 3. a 1.3 4.4 3.2.3 3.2 2. Reteaua de pe nivelul ¸ a a ¸ r˘d˘cin˘ are nodurile reprezentate prin cercuri pline (mici) ¸i leg˘turile reprezentate a a a s a cu linii ˆ ıngro¸ate.3 4.3 1. Radu-Lucian Lup¸a s 138 5. Subretelele de pe nivelul 1 sunt ˆ a ¸ ¸ ıncercuite cu linie punctat˘. s .3 3.1 3.1 1. ¸ a a a Figura 5.2 4.

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

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

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

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

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

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

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

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

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

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

c 2008, Radu-Lucian Lup¸a s
149

Capitolul 6

Metode ¸i protocoale criptografice s

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

a 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. ınc˘ ¸a a a¸ receptorul r˘spunde trimitˆnd num˘rul aleator ¸i. Utilizarea orei la verificarea prospetimii necesit˘ un mecanism ¸ a sigur care s˘ mentin˘ sincronismul ceasurilor dispozitivelor care comua ¸ a nic˘. 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. ˆ cazul unui schimb de mai multe mesaje. emit˘torul a ¸a a s ın ¸a trimite mesajul propriu-zis). ceea ce necesit˘ a s a a a a a adesea ˆ a un mesaj (emit˘torul spune vezi c˘ vreau s˘-ti spun ceva. Pentru corectarea acestei probleme. de exemplu o sesiune In . Ca ¸i pentru varianta cu a s num˘r de ordine.2. dac˘ mesajul este trimis la ora 08:12:45 ¸i ¸ a s testul de prospetime accept˘ un decalaj de 10 secunde. 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. Receptorul memoreaz˘ numerele unice ale mesajelor primite. In ale mesajului. mecanismul se face astfel: Emit˘torul se asigur˘ c˘ dou˘ mesaje distincte vor avea num˘rul unic ¸a a a a a distinct. 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. Radu-Lucian Lup¸a s 172 6. Pentru aceasta. a a Neajunsul principal al metodei este necesitatea de-a transfera num˘rul aleator dinspre receptor spre emit˘tor. Autentificarea mesajelor perfect sincronizate ¸i deoarece transportul mesajului nu este instantas ˆ interiorul acestui decalaj admis. fie rezolutia marcajului de timp se face mai ¸ fin˘ decˆt timpul necesar emiterii unui mesaj. ˆ final. ˆ plus. a a a ın este suficient s˘ participe la calculul semn˘turii mesajului.c 2008. La primirea unui mesaj. este necesar ca a ¸a In receptorul s˘ ¸tie c˘ urmeaz˘ s˘ primeasc˘ un mesaj. 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). adversarul poate trimite copii neu. copii ce vor fi acceptate ca proaspete de destinatar. Num˘rul ¸a a a a aleator trebuie s˘ aib˘ cel putin 64–80 biti. num˘rul aleator nu este necesar s˘ fie inclus ˆ mesaj. Emit˘torul adaug˘ num˘rul la mesajul trimis. a pe durata cˆt marcajul de timp din mesaj este acceptabil de c˘tre testul a a de prospetime (de exemplu. num˘rul unic al ¸ a a mesajului va fi p˘strat pˆn˘ la ora 08:12:55). pentru ca s˘ nu se repete a a ¸ ¸ a (decˆt cu probabilitate neglijabil de mic˘) ¸i s˘ nu poat˘ fi prezis de a a s a a c˘tre adversar.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.

.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Codificari de interes practic 219 Caracter ˘ A ˘ a ˆ A ˆ a ˆ I ˆ ı S . motiv pentru care multe documente utilizeaz˘ ˆ a forma a a ınc˘ cu sedil˘. a . Not˘: caracterele S. Radu-Lucian Lup¸a s ˘ Capitolul 7. Conform normelor stabilite de Academia a a a Romˆn˘. s .c 2008. cealalt˘ cu sedil˘. 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.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. ¸. t . T .

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

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

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

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

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

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

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

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

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

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

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

proces utilizator nucleul S. ın Termenul socket se utilizeaz˘ atˆt pentru a numi ansamblul functiilor a a ¸ sistem legate de comunicatia prin retea. ın ¸ proces utilizator socket nucleul S. leg˘tur˘ logic˘ a a a retea ¸ Figura 8. Interfata socket este disponibil˘ ¸ a ˆ aproape toate sistemele de operare actuale. Interfata de programare socket BSD ¸ Interfata socket este un ansamblu de functii sistem utilizate de pro¸ ¸ grame (de fapt.O. Interfata socket a fost dezvoltat˘ ˆ cadrul ¸ ¸ a ın sistemului de operare BSD (sistem de tip UNIX.1.1: Comunicatia ˆ ¸ ıntre dou˘ procese prin retea a ¸ Prezent˘m ˆ continuare principiile de baz˘ ale interfetei socket (vezi a ın a ¸ .c 2008. de procese) pentru a comunica cu alte procese. 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. Radu-Lucian Lup¸a s 231 Capitolul 8 Programarea ˆ retea — introducere ın ¸ 8.O. aflate ˆ ın executie pe alte calculatoare.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Protocolul IP Exemplul 10. mai compact. este instructiv de citit ¸i a s s s [RFC 1700. trebuie precizat˘ atˆt ¸ a a a valoarea efectiv˘ a prefixului cˆt ¸i lungimea acestuia. 192.192.2.0/24.2.225. . ˆ notatia cu ın ¸ adres˘ de retea ¸i masca.c 2008.4.0. ¸ s a a Notatia cu adres˘ ¸i masc˘ se utilizeaz˘ numai pentru IP versiunea ¸ as a a 4. ˆ notatia cu ın ¸ adres˘ de retea ¸i lungime (notatie cu slash) 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.168.168.0/19. Mai multe despre aloa care se g˘se¸te la [IANA.0/255. avˆnd ˆ total lungimea unei adrese IP. se scrie mai ˆ ai In ¸ a ¸ s a ¸ ıntˆ adresa de retea. rezultatul se nume¸te adresa de retea. ]. De¸i nu este actualizat. Masc˘ de s ¸ a ın a retea.168.192.224. 10. 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. 1994].0. a ˆ notatia cu adres˘ de retea ¸i masc˘ de retea. Radu-Lucian Lup¸a s 300 10. Scrierea prefixelor de retea ¸ Prefixele de retea fiind de lungime variabil˘. De remarcat importanta ¸ specific˘rii lungimii.255. a a ın Exemplul 10.0. Prefixul 1100a ¸ s ¸ 0000-1010-1000-1100-0000 se scrie 192. ın s a ¸ Masca de retea const˘ dintr-un ¸ir de biti 1 de lungimea prefixului de retea ¸ a s ¸ ¸ urmat de un ¸ir de biti 0.7: Prefixul 1100-0000-1010-1000-110 se scrie. se scrie ca ¸i cˆnd ar fi o adres˘ IP.225. t s ¸ ˆ notatia cu adres˘ ¸i lungime.168.192.255.0/255. ::193. 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). dup˘ care se scrie ¸ s ın as a (cu un slash ˆ ıntre ele sau ˆ rubrici separate) a¸a-numita masc˘ de retea.2.34 sau. ca ¸i ˆ cazul scrierii cu adres˘ ¸i lungime.2.0.192.255.6: Prefixul IPv4 1100-0000-1010-1000-110 se scrie. 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). Adresa de retea se s ¸ ¸ scrie ca ¸i cˆnd ar fi o adres˘ IP normal˘. Exemplul 10.34 10.3. Prefixul 1100-0000a ¸ s 1010-1000-1100-0000 se scrie 192.5: Adresa 0:0:0:0:0:0:c100:e122 se poate scrie ¸i s 0:0:0:0:0:0:193.

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

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

40.0.255.9 ¸ .238 E2 Subretea experimental˘ ¸ a eth2: 193.227.0.0.4 L4 eth1: 193. • Pe toate nodurile subretelei se configureaz˘ ca default gateway nodul ¸ a ales ca default gateway al subretelei. Pentru nodurile care fac parte din ¸ mai multe subretele.192/27 S1 193.222 Subretea laboratoare ¸ 193.224/28 G eth0: 193.254 eth0: 193.0. a a pentru tolerant˘ la pene.193 193.224.224.3 L3 193. a a ¸ a Mai not˘m c˘ ˆ a a ıntr-o tabel˘ de dirijare static˘ nu se pot configura.227.4: Retea pentru exemplul 10.224. Subretea secretariat ¸ 193.255.227.din subordine“ — subretelele mai dep˘rtate de a ¸ ¸ a leg˘tura spre exterior dec˘t subreteaua considerat˘.226 E1 193. mai multe c˘i spre o aceea¸i destinatie.225 193.130/255.227.224.0.227.2 L2 193.0. 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/23 L1 193.0.0. 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).c 2008.227.0.227.225. Protocolul IP fiind nodul din subretea cel mai apropiat de ie¸irea spre restul Internet¸ s ului. ınsu¸ • Pe nodul ales ca default gateway pentru o subretea se vor configura ¸ rutele c˘tre subretelele .224.226. Radu-Lucian Lup¸a s 310 10.194 S2 193.0.0.0.2.227.. 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).240 Spre reteaua furnizorului ¸ Figura 10.1 eth1: 193.0.0.

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

• 193. Pentru nodul G avem 5 reguli: trei reguli de livrare direct˘ prin cele a trei interfete.224. dou˘ fiind pentru a livrarea direct˘ prin cele dou˘ interfete. 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˘. ¸i o regul˘ a a ¸ ¸a ¸ s a implicit˘. a a Pentru nodul L4 . • 0. 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).c 2008.0.40. Radu-Lucian Lup¸a s 312 10.40. trebuie activat explicit. Comanda ifconfig seteaz˘ parametrii legati de s a a ¸ interfetele de retea. anume adresa IP ¸i masca de retea. dac˘ este dorit.226.2.128/28 → eth0 . • 193. Configurarea parametrilor de retea pe diverse sisteme de ¸ operare Pe sistemele Windows. ¸ a dar ¸i mult mai flexibil˘.1 (prin eth1 ). • 193.0/23 → eth0 .227.224/28 → 193.224.subordonat˘“ s a ¸ a 193. • 0.192/27 → eth1 . Pentru a statii.227.0.0/0 → 193.2.1 (prin eth0 ). care asociaz˘ prefixului vid adresa default gateway-ului.2.0/23 → eth2 .224/28: • 193.129 (prin eth0 ).0/0 → 193.0. iar a treia este regula implicit˘: a a ¸ a • 193.0. 10. a Pe sistemele de tip Linux configurarea este putin mai complicat˘.0.0. tabela de dirijare are trei reguli.226. tabelele sunt formate din cˆte dou˘ reguli: o regul˘ pentru livrarea ¸ a a a direct˘.0. De remarcat c˘ oprirea unei interfete de retea cu ifconfig duce a ¸ ¸ automat la eliminarea din tabela de dirijare a tuturor regulilor ce au ca ¸int˘ t a .. o regul˘ implicit˘ indicˆnd default gateway-ul retelei furnizorului ¸ a a a ¸ de acces Internet ¸i o regul˘ pentru dirijarea spre subreteaua .0.0.0.224. Comportamentul de ruter.0.0.224/28 → eth1 .7. a doua este mai complex˘ ¸i serve¸te ¸i altor a s a s s s scopuri). • 193. care asociaz˘ prefixului subretelei unica interfat˘ de retea.227. 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.224.227. 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. Protocolul IP S˘ vedem acum cum trebuie configurate tabelele de dirijare.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

. De principiu. 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. ˆ artite ˆ trei categorii: a ımp˘ ¸ ın ˆ ınregistr˘ri din zonele pentru care este responsabil.5). tipul ¸i clasa. 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.4. 1987]. ˆ Inregistr˘rile NS ale r˘d˘cinii unei zone ˆ a a a ımpreun˘ cu ˆ a ınregistr˘rile A a ale acelor nume sunt . Dac˘ r˘spunsul este prea lung pentru a ˆ a a a ıncape ˆ ıntr-o datagram˘ UDP atunci clientul repune ˆ a ıntrebarea printr-o conexiune TCP. dac˘ exist˘ — ¸i a serverelor de nume pentru s a a s zona r˘d˘cin˘. 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). a • Una sau mai multe ˆ ınregistr˘ri NS (Name Server ) care contin numele a ¸ serverelor de nume responsabile de zon˘. Mecanismul de interogare a serverelor Protocolul utilizat pentru interogarea serverelor de nume este descris ˆ [RFC 1035.ˆ ınregistr˘rile lipici“ ce trebuie ¸inute de un server cu a t privire la zonele vecine. ˆ a ınregistr˘ri de leg˘tur˘ ¸i a a as alte ˆ ınregistr˘ri. a Din motive de tolerant˘ la pene. 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. a . ˆ afar˘ de ˆ a ın a ınregistr˘rile din a zonele pentru care este responsabil ¸i de ˆ s ınregistr˘rile de leg˘tur˘.c 2008. a a a 10. De remarcat c˘ serverele de a a nume nu este obligatoriu s˘ fie ele ˆ a ınsele membre ale zonei. R˘sa s a punsul contine interogarea ¸i un ¸ir de ˆ ¸ s s ınregistr˘ri. a Dac˘ numele din interogare este dintr-o zon˘ pentru care serverul a a este responsabil.4. Radu-Lucian Lup¸a s 334 ˘ 10. pentru fiecare zon˘ exist˘ de regul˘ ¸a a a a cel putin dou˘ servere responsabile.4. Identificarea nodurilor dupa nume: sistemul DNS apartine zonei nu figureaz˘ ˆ tabela ¸inut˘ de acel server ˆ ¸ a ın t a ınseamn˘ c˘ numele a a respectiv nu exist˘. ı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 ¸ Pe lˆng˘ ˆ a a ınregistr˘rile despre zonele pentru care este responsabil.4. Interogarea cuprinde numele de domeniu c˘utat. Clientul trimite cererea ˆ ai s ıntˆ ca datagram˘ UDP. care contine ni¸te date admin¸ s istrative despre zon˘ (vezi § 10. Aceste ˆ a a a ınregistr˘ri se numesc glue records — ˆ a ınregistr˘ri lipici a — deoarece creaz˘ leg˘tura cu zonele ˆ a a ınvecinate. pot exista ˆ a a a ıns˘ temporar incoerente ˆ ¸ ıntre tabele cu ocazia modific˘rilor unor informatii.

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

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

1.226. ˆ cadrul retelei de nivel inferior ıntˆ a ın ¸ (adic˘ adresa MAC.in-addr.128/28. pˆn˘ la a a 143.0. este de fapt o leg˘tur˘ ˆ a a a a a ıntre dou˘ noduri ˆ a ıntr-o retea ¸ de alt tip.0.128/28.6. Radu-Lucian Lup¸a s Capitolul 10.0. ¸ Transmiterea unui pachet IP de la un nod A c˘tre un nod B.0.0.0. de exemplu o retea IEEE 802. Exemplul 10.0.5.226. Internetul 337 193.in-addr.8. . a c˘rui administrare este delegat˘ firmei X.arpa 10. sub form˘ de date utile ˆ cadrul a ın unui pachet al retelei de nivel inferior.1.3.40.193. fiec˘rei adrese IPv6 i se asociaz˘ un nume ˆ ın a a ın domeniul ip6.0.0.193.40. ceea ce.3.0. pentru IEEE 802).in-addr.9.40. Rezolvarea adresei — ARP ˆ multe cazuri. nodul A determin˘ adresa.193. a nodului B.5. a • apoi A trimite pachetul IP nodului B.in-addr. pachet destinat adresei g˘site ¸ a anterior.0. Leg˘turile directe ˆ a ıntre nodurile IP 10.4. definit s a a ˆ [RFC 3596. se definesc ca pseudonime (CNAME ) pentru numele de la 128. 2003].2.7.arpa . ip6.c 2008. 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. ˆ cadrul a ın aceleia¸i retele de nivel inferior.0.226.1.0.arpa. Anume.arpa. Numele se construie¸te astfel: s • Se iau grupuri de cˆtre 4 biti din adresa IPv6 ¸i se scrie cifra hexa corea ¸ s spunz˘toare ca o component˘ separat˘.0.0.a.arpa.193. numele de domeniu asociat este b. Pentru adresele IPv6 se folose¸te un mecanism asem˘n˘tor.128/28. din punctul de vedere al unei retele Internet In ¸ este o leg˘tur˘ direct˘.2.4. pˆn˘ la a a 143.5.40. 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.40.226.0.226.14: Pentru adresa 4321:0:1:2:3:4:567:89ab. a a • numele de domeniu de la 128.arpa. se face astfel: s ¸ • mai ˆ ai.0.

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

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

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

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

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

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

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

0.0/12 -j DROP iptables -A INPUT -i eth0 -s 192.255.0.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 .40.226.225.255.0/3 -j DROP iptables -A FORWARD -i eth0 -s 10.0.0.40.255.0/16 -j DROP iptables -A FORWARD -i eth1 -s ! 193.40.0.128/28 -j DROP iptables -A INPUT -i eth0 -s 193.255.0.255 -j DROP iptables -A INPUT -i eth0 -d 193.226.40.40.226.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.255 -j DROP iptables -A FORWARD -i eth0 -d 193. Internetul 345 iptables -A FORWARD -i eth0 -s 0.168.30. Radu-Lucian Lup¸a s Capitolul 10.130 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -d 193.40.168.130 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -d 193.0/8 -j DROP iptables -A INPUT -i eth0 -s 0.16.20 -j DROP iptables -A INPUT -i eth0 -s 127.128/28 -j DROP iptables -A INPUT -d 255.0/12 -j DROP iptables -A FORWARD -i eth0 -s 192.0.40.0/8 -j DROP iptables -A FORWARD -i eth0 -s 224.0/16 -j DROP iptables -A INPUT -i eth1 -s ! 193.226.159 -j DROP iptables -A INPUT -i eth0 -s 193.226.40.0.128/28 -j DROP iptables -A FORWARD -d 255.0.16.c 2008.0.0.0.0.0/8 -j DROP iptables -A FORWARD -i eth0 -s 172.226.0/8 -j DROP iptables -A INPUT -i eth0 -s 224.226.0/8 -j DROP iptables -A INPUT -i eth0 -s 172.30.226.0.0.0.0.0/3 -j DROP iptables -A INPUT -i eth0 -s 10.

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

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

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

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

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

ofer˘ conectivitate complet˘.168. ducˆnd o leg˘tur˘ fizic˘ a a ¸ a a a a ˆ ıntre ele (fig.225. Conexiuni noi pot fi redirectionte c˘tre alte servere. ¸ a a a a .0/24) ¸ 192.c 2008. Exist˘ mai multe solutii a s ¸ a a ¸ pentru a realiza leg˘tura: a • Translatia adreselor realizeaz˘ o leg˘tur˘ supus˘ unor restrictii. De exemplu. Tunelarea Prin tunelare se ˆ ¸elege. Retea privat˘ ¸ a Retea sediu A ¸ Retea sediu B ¸ 192.9: Unificarea retelelor private printr-o leg˘tur˘ fizic˘ direct˘.226. Ne vom ocupa ˆ cele ce urmeaz˘ de tunelarea pachetelor IP.168.130 Internet Figura 10.2.1 192.168. ˆ general.0.7.168.2 192.9).168. a ¸ a 10. adic˘ de ın a a transmiterea pachetelor IP prin protocoale de nivel retea sau de nivel aplicatie.2.0/24 192.20 193.1 Leg˘tur˘ direct˘ a a a (subretea 192.0.4.0. ¸ ¸ 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.1. studiate ¸ a a a a ¸ ˆ § 10.7.0.1.0/24 192. 10.3. ˆ a ducerea unui cablu a a ıns˘ specual pentru aceasta poate fi extrem de costisitor. 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.40.168. avem o institutie care are ¸ dou˘ sedii ¸i are o retea privat˘ in fiecare sediu. Radu-Lucian Lup¸a s Capitolul 10. Internetul 351 c˘tre Sk .1 192. ın • Unificarea fizic˘ a celor dou˘ retele private.168.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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