Home Inginerie Engineering Links Links Feedback Site Map MultiMedia
Prezentare
Home | Introducere | Nivelul Aplicatie | PAI | Prezentare | Nivelul Transport | Nivelul Retea | Nivelul Legatura Date | Nivelul Fizic | Securitatea Retelei | Managementul retelei | Sistemul Calitatii | Perspective | Bibliografie

EN RO

Home
Up

Home > Inginerie > Calculatoare > Ghid retele > Prezentare

4. Servicii de prezentare

Motivaţie
Rezolavrea problemei de reprezentare
ASN.1: Notaţia 1 pentru sintaxa abstractă
Servicii de Prezentare: intenţia de închidere

Motivaţie

Esenţa problemei:
  • avem de-a face cu semnificaţia informaţiei, nu cu reprezentarea

  • diferite calculatoare, SO, compilere au convenţii diferite pentru datele de reprezentare

    • arhitectura: numere mari la sfârşit, faţă de numere mici la sfârşit

    • format de punct flotant

    • dimensiunea tipului de date: 16, 32, 64 bit

    • dimensiuni şi layout diferite ale structurilor de date

struct{
  char code;
  int x;
  } test;
test. x = 259;
test.code = 'a';

test.code

test.x

a
00000001
00000011
 

masina X

test.code
 

test.x

a
 
00000011
00000001

masina Y

Rezolavrea problemei de reprezentare

  • expeditorul codează în formatul destinatarului

  • destinatarul decodează din formatul expeditorului

  • metodă independentă pentru maşină + SO + limbaj, de descriere a structurii de date

    • gazda traduce în/din limbajul de descriere universal din/în formatul propriu


 

ASN.1: Notaţia 1 pentru sintaxa abstractă

Standardul ISO

Sintaxa abstractă: "limbaj" pentru descrierea structurii de date

  • este limbaj pentru descrierea datelor, nu limbaj de programare

  • defineşte tipuri universale de date

  • permite tipuri de date definite pentru utilizator

Reguli de bază pentru încodare:
  • converteşte specificaţia de sintaxă abstractă a structurii de date în serii de octeţi (pentru transmisie)

ASN.1: Tipuri universale

Tipuri predefinite cu valori date ale tagurilor:

Tagul Tip Comanda
1 BOOLEAN valoarea este adevărată sau falsă
2 INTREG poate fi arbitrar de mare
3 ŞIR DE BIT lista unui sau mai multor biţi
4 ŞIR DE OCTET lista unuia sau mai multor octeţi
5 NUL nici o valoare
6 IDENTIFICATOR DE OBIECT se referă la un "obiect", de ex., număr de protocol
9 REAL punct flotant

Exemplu: gândeşte-te la ::= ca definind tipuri noi de date în termeni de tipuri universale de date

Married ::= BOOLEAN

SSN ::= INTEGER

Lname ::= OCTETSTRING

Salary ::= REAL

IPAddress ::= OCTETSTRING (SIZE 4)

Sintaxa ASN.1: constructori

ASN.1 defineşte tipul de constructor pentru construcţia tipurilor mai complexe de date din tipuri de date "mai simple":

Tag Tip Comentariu
16 SECVENŢĂ listă ordonată, fiecare element este un tip ASN.1
17 SET la fel ca la secvenţă, dar neordonat
11 ALEGERE un tip luat din listele specificate

Exemplu de tip de date construite:

studentRecord ::= SEQUENCE {

Lname OCTETSTRING,

Fname OCTETSTRING,

Mname OCTETSTRING,

Married BOOLEAN DEFAULT FALSE,

SSN INTEGER

}

Sintaxa ASN.1: realizarea tagurilor şi codarea

Datele ASN.1 sunt autoidentificabile.

  • BER: Basic Encoding Rules (Reguli pentru Încodarea de Bază) (PER: Packed Encoding Rules (Reguli pentru Încodarea Împachetată))

    • fiecare valoare transmisă este încodată folosind încodarea tag/lungime/valoare (TLV):

Tag Lungime Valoare

Tagul de 8-bit

  • tipul tagului, 2 biţi. (00 este UNIVERSAL)
  • primitivă versus construită, 1 bit
  • valoarea tagului (5 biţi)

Lungimea de 8-bit: lungimea datelor încodate.

Valoarea: datele însăşi încodate

  • întregii sunt încodaţi în al 2-lea complement, de lungime arbitrară
  • boolean, este încodat în un octet, 0 este FALS
  • şir de octeţi: transmite valorile bytului
  • real: sunt posibile mai multe încodări.

ASN.1 Exemplu de încodare:

Definiţia ASN.1:

Attendee ::= SEQUENCE {

name OCTET STRING,

paid BOOLEAN }

Data {"Smith",T} trebuie încodată:

De notat structura de cuib a TLV în exemplul de mai sus.

ASN.1: Cum se foloseşte?

"Compilerele" ASN.1 iau modulul de sintaxă abstractă a lui ASN.1 şi produc

  • definiţii de tipuri de date C (de ex., typedef) pe care utilizatorul poate să le includă pentru a crea structuri de date conţinând aceste tipuri

  • bioblioteca de rutine C - apelabile (de ex., una pentru fiecare tip de date) pentru a încoda/decoda fiecare  typedef în/din încodarea TLV.

Servicii de Prezentare: intenţia de închidere

Consumuri cu procesarea prezentării:

  • până la 90% timp de procesare pe stiva ethernet/IP/TCP/prezentare

  • costul de încodare a distribuţiei este de 5-20 ori mai mare decât copierea acesteia

Alt "nivel" popular de prezentare este xdr al lui SUN (reprezenare de date externe)

  • este similar ca şi concept cu ASN.1

Referinţe:

  • John Larmouth's book "Understanding OSI" : chapter 8: ASN.1 , role of ASN.1 in next generation http

  • Neufeld and Y. Yang, "An ASN.1 to C compiler," IEEE Trans. Software Engineering, Oct. 1990

  • C. Huitema and A. Doghri, "Defining Faster Transfer Syntaxes for the OSI Presentation Protocol," ACM Computer Communication Rev. Oct. 1989

Web Site Info

Google

Tip-Top-Hot Web Sites


Back Home Up Next

Enter to Top 100 Sites and Vote for this Site!!! Best Electronics Award

 

Privacy Policy | Terms of Service
© 1999 - 2007, MultiMedia SRL
Send articles and materials to be published on this website to: Publishing
If you see unauthorized or illegal materials on this website, please send an e-mail to: Abuse