Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Structura unui cadru de date

retele calculatoare



+ Font mai mare | - Font mai mic



Structura unui cadru de date

Corespunzator fiecarui standard de retea LAN, exista un tip de cadru. Totusi, exista cateva caracteristici comune. Cadrul este alcatuit din campuri, care sunt siruri de biti, fiecare avand un anumit scop. Toate tipurile de cadre, contin urmatoarele campuri:



campul de start;

campul de adresa;

campul de control (lungime sau tip)

campul de date;

campul de verificare;

campul de terminare.

Campul de adresa este o secventa de biti care, indifferent de tehnologie indica inceputul unui cadru de date. Toate cadrele contin informatii de identificare, cum sunt adresele MAC ale calculatoarelor sursa, respective destinatie. Multe cadre au anumite campuri specifice. Pentru anumite tehnologii, exista un camp lungime, pentru altele un camp ce specifica protocolul nivelului 3 care realizeaza transmiterea cererii. Exista, de asemenea anumite tehnologii care nu utilizeaza astfel de campuri. De asemenea, este adaugat un camp (de umplutura) cu scopul ca oricare cadru sa aiba o lungime cel putin egala cu una minima. Campul de de verificare (FCS - Frame Check Sequence ) contine un numar ce este calculat de catre calculatorul sursa, pe baza informatiilor continute in cadru. Cand calculatorul destinatie primeste cadrul, recalculeaza numarul FCS pe baza datelor primite si il compara cu cel inclus in cadru. Daca cele doua numere sunt diferite, se presupune ca exista o eroare, cadrul este distrus si sursei i se cere sa retransmita inca o data cadrul. Exista trei moduri de a calcula numarul FCS:

codul CRC (Cyclic Redundancy Check) - executa calcule polinomiale asupra datelor

bitul de paritate - adauga cel de-al 8-lea bit ce este 0 sau 1 dupa cum numarul bitilor 1 din secventa de date este par sau impar

suma de verificare Internet - calculeaza suma tuturor bitilor de date 

Sfarsitul cadrului transmis poate fi determinat din campul lungime, caz in care campul FCS este ultimul, sau prin campul de terminare al cadrului.

Detectarea erorilor. Datorita unor cauze(de obicei fizice) in unele situatii sunt introduse erori in sirurile de biti transmisi de la o gazda la alta. Rezolvarea acestei probleme se face prin doua tehnici: detectarea de erori si corectarea de erori.

Ideea de baza a oricarei tehnici de detectare a erorilor consta in adaugarea unei informatii redundante la orice cadru de date transmis, care poate fi folosita pentru a determina daca au fost introduse erori in transmiterea de date. Sa presupunem ca n este numarul bitilor transmisi iar k al celor redundanti, k<n. Cei k biti redundanti sunt determinati la gazda sursa pe baza unui algoritm; la gazda destinatie, se efectueaza acelasi calcul, utilizand acelasi algoritm pe baza celor n biti ai cadrului. Daca rezultatul calculului, coincide cu cei k biti redundanti primiti, atunci cadrul de date respectiv a fost transmis corect, altfel, cadrul respectiv este distrus si se cere retransmiterea lui.

Paritate bidimensionala se bazeaza pe paritatea uni-dimensionala, care consta in: pentru fiecare sir de sapte biti transmisi se adauga un al optulea bit, care este 1 daca numarul bitilor egali cu 1 din sirul transmis este impar, respectiv 0, in caz contrar. In cazul paritatii bi-dimensionale, un sir de biti este reprezentat ca o matrice binara cu sapte coloane, pentru care se determina si se compara atat bitii de paritate uni-dimensionali, atat pe linii, cat si pe coloane. In figura 3.2 este prezentat un exemplu cu 42 de biti de date transmisi.

Figura 3.2 Paritate bidimensionala

In exemplul prezentat, se observa ca bitii de paritate transmisi, sunt diferiti de cei care rezulta prin aplicarea algoritmului, pe linia 5 si pe coloana 4.

Algoritmul Internet de determinare a sumei de verificare(Checksum) consta in determinarea sumei datelor primite, la gazda destinatie si compararea ei cu sirul redundant de biti primiti, reprezentarea datelor fiind facuta in cod complementar fata de 2.

Codul de redundanta ciclica(CRC-Cyclic Redundancy Check)

Observam ca orice sir de n+1 biti poate fi reprezentat printr-un polinom de grad n. Mesajul este reprezentat considerand drept coeficient al lui xi valoarea binara a bitului i din sirul de cifre binare. De exemplu, pentru un mesaj care consta din 8 cifre binare 10011010, ii va corespunde polinomul

Putem gandi gazda sursa si cea destinatie, ca transmitand polinome de la una la alta. In scopul determinarii CRC-ului, gazdele sursa si destinatie se vor pune de acord asupra unui polinom C(x) de grad k (k fiind numarul bitilor redundanti), numit polinom generator, cu care se impart atat polinomul transmis, la gazda sursa cat si cel primit, la gazda destinatie. De exemplu, putem presupune ca , in acest caz k=3. Cand o gazda sursa transmite un mesaj M(x), care are o lungime egala cu n+1, el va transmite de fapt un mesaj de lungime n+k+1, k fiind lungimea sirului rendundant, reprezentat printrun polinom P(x) . Polinomul P(x) trebuie astfel construit astfel incat sa fie divizibil cu C(x). Daca P(x) este transmis peste un mediu de comunicatie si nu au fost introduse erori in timpul transmisiei, atunci gazda receptor va efectua calculul si va gasi restul zero; in caz contrar, datele au fost transmise cu erori. Efectuarea operatiilor cu astfel de polinoame se face tinand cont de proprietatile "aritmeticii modulo 2"si de algoritmul general de impartire a doua polinoame, adica:

Orice polinom B(x) poate fi impartit la un polinom C(x), daca B(x) are gradul mai mare sau egal decat C(x);

Daca B(x) si C(x) au acelasi grad, atunci restul impartirii lui B(x) la C(x) este obtinut scazand C(x) din B(x);

A efectua scaderea lui C(x) din B(x) este echivalent cu a efectua operatia "sau exclusiv" (XOR) pe fiecare coeficienti ai termenilor de acelasi grad.

De exemplu, polinomul poate fi impartit la polinomul , deoarece au acelasi grad, si restul va fi . In termeni de mesaje, putem spune ca 1001 poate fi impartit prin 1101 si restul obtinut este 0100.

Daca mesajul de transmis original este reprezentat prin polinomul M(x), atunci polinomul care va fi efectiv transmis va avea o lungime mai mare cu k decat M(x), si va trebui sa fie divizibil cu C(x). Se poate realiza acest lucru astfel:

  1. Se inmulteste M(x) cu xk, adica se adauga k zerouri la sfarsitul mesajului. Mesajul astfel obtinut se numeste mesajul extins, fiind reprezentat prin polinomul T(x).
  2. Se imparte T(x) la C(x) si se obtine un anumit rest.
  3. Se scade restul astfel obtinut din T(x).

Exemplu. Sa consideram mesajul 10011010, sau in reprezentare polinomiala . Daca consideram C(x) =, care corespunde sirului de biti 1101, atunci polinomul T(x) va fi , care corespunde mesajului 1001101010000. In figura 3.3 este prezentat modul de calcul al CRC-ului in acest caz.

Figura 3.3. Calculul CRC-ului

Putem vedea in figura 3.3 ca restul obtinut este 101, deci 1001101000 minus 101, reprezentat sub forma polinomiala, este divizibil cu C(x), deci rezultatul acestei scaderi, va fi transmis. Gazda destinatie va efectua impartirea intre polinomul primit si polinomul generator C(x); daca restul acestei impartiri este 0, atunci trage concluzia ca transmiterea cadrului de date s-a facut fara erori si va extrage primii n+1 biti din sirul de biti primit, corespunzator mesajului original; in caz contrar, distruge cadrul de date primit, si eventual transmite un mesaj prin care cere retransmiterea cadrului de date.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 1638
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved