Abstract Syntax Notation One ASN.1



Relaterede dokumenter
Avancerede Datanet. Udviklingen i Netværksarkitekturer. Ole Brun Madsen Professor Department of Control Engineering University of Aalborg

Programmering i C Intro og grundlæggende C 5. marts 2007

Bits, bit operationer, integers og floating point

Netværksovervågning og -administration

SNMP Simple Network Management Protocol. Henrik Thomsen/EUC MIDT 2007

TCP & UDP. - de transportansvarlige på lag 4. Netteknik 1

Her kan du læse om OSI modellen, og de 7 forskellige lag. Der er en mindre detaljeret beskrivelse udfra hvert lag.

Software Construction 1 semester (SWC) Spørgsmål 1

SNMP ISO/OSI TMN NGOSS

Computer Networks Specielt om Infrastrukturer og Teknologi

SIP. Session Initiation Protocol TDC IP telefoni Scale. SIP design mål

SIP. Session Initiation Protocol. TDC IP telefoni Scale

ARP og ICMP. - service protokoller, som vi ikke kan undvære! Netteknik 1

Programmering og Problemløsning, 2017

Klasser og nedarvning

Få succesmed automatisering i producerende virksomheder

Opgradering og udskiftning af produktions it og automation

Programmering i C. Lektion december 2008

Håndbog Til CPR services. Bilag 8 GCTP-standard m.m. CPR-kontoret

Vejledning til anvendelse af MeMo og SMTP. Næste generation Digital Post Maj 2018, version 0.9

Route-tabellen. Routertabel R2. Routertabel R3. Routertabel R1. Routertabel R4 NETVÆRK SENDES TIL

AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007

2x50 ETHERNET MODUL. RS485 slave med Ethernet-IP. Gælder for: Program nr.: AUXSLAVE v1 Dokument nr.: 0422md2x50-2v1 Dato:

DK-Cartridge 1.0. Distributionsformat for digital læringsindhold VERSION: 1.0

Computer netværk og TCP/IP protokoller. dcomnet 1

Programmering og Problemløsning, 2017

WINDCHILL THE NEXT STEPS

#AlleKanKode. Lektion 2 - Konstanter og Variabler

Netværksmålinger. - en introduktion! Netteknik. TCP - IP - Ethernet

H.323. Protocol suite. En ITU standard til VoIP

Ethernet teknologi. - hvordan fungerer det? Netteknik 1

+ "&"' +,! ")& - )'.** /, )'.** 1 2 "&"' +,! 3 *4 5

Skriftlig eksamen i Datalogi

kv AC Station. Kontrolanlæg Relæbeskyttelse. Dataudveksling med SIMEAS SAFIR. ETS Rev. 1

IP version 6. Kapitel 3: IPv6 in Depth Baseret på bogen: Cisco Self-study: Implementing Cisco IPv6 Networks Henrik Thomsen V1.0.

DM507 Algoritmer og datastrukturer

OIOUBL Guideline. OIOUBL Guideline

OBJECT IDENTIFICERES OID PHMR

Privat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende

Automation Projektledelse Networking. Energi & forsyning. Automation Projektledelse Networking

SAX Simple API for XML.

Ethernets placering i OSI modellen

4 Basal Objekt-orienteret Programmering I.

TCP/IP stakken. TCP/IP Protokollen består af 5 lag:

TimePlan version Installationsvejledning

Web Services Light. Karen Thomsen. Silkeborg Bibliotek. Karen Thomsen

Network. Grundlæggende netværk. Region Syd Grundlæggende netværk

ADFS Opsætning til MODST SSO Moderniseringsstyrelsen

Encoding:...1 Et tegn sæt (character set):...1 UTF-8 og UTF-16 (Unicode):...2

Bilag 1. Tekniske Specifikationer

Dato Version Beskrivelse Applikation version Indsættes under CSC s dokstandard. Reference Forfatter Godkender. Brian Helmer Nielsen

Retningslinier for implementering af statistisk processtyring (SPC) Del 1: Forudsætninger og aktiviteter

D INTEGRATIONSDESIGN FOR DATAAFTAGERE

dcomnet-nr. 6 Talrepræsentation Computere og Netværk (dcomnet)

Computer netværk og TCP/IP protokoller. dcomnet 1

University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3

De forskellige måder man scanner på

DM507 Algoritmer og datastrukturer

1. INDLEDNING 3 2. FORSKELLE I FILERNE EFTER MIGRERING 3 3. LINUX FTP-SERVEREN MAINFRAME Instruks Eksempel 4

Network. Grundlæggende netværk. Region Syd Grundlæggende netværk

BILAG A KØBENHAVNS UNIVERSITET IKT-TEKNISK KOMMUNIKATIONSSPECIFIKATION

Transkript:

Udvalgte emner inden for datanet Abstract Syntax Notation One ASN.1 DIKU.PEH.415

ASN.1 - indhold Introduktion til Abstract Syntax Notation One (ASN.1) Præsentationslaget Forskelle i repræsentation Hvad er ASN.1 Notation (Abstract syntax) Indkodning (Transfer syntax) ASN.1 Notation ASN.1 typer Object Identifier (OID) ASN.1 tags ASN.1 indkodnings regler Eksempler på brug Notation Indkodning DIKU.PEH.41

OSI Basic Reference Model User A User B Application Layer Application Layer Presentation Layer Presentation Layer Session Layer Session Layer Transport Layer Transport Layer Network Layer Network Layer Network Layer Network Layer Data Link Layer Data Link Layer Data Link Layer Data Link Layer Physical Layer Physical Layer Physical Layer Physical Layer Communication media DIKU.PEH.416

Formålet med præsentationslaget at udligne forskelle i den måde data repræsenteres på internt i de maskiner, der udveksler data funktionerne i præsentationslaget vedrører derfor syntaksen af de udvekslede data DIKU.PEH.417

Forskelle i repræsentation (I) Repræsentation af tegn: Byte nummerering: ASCII Little endian : EBCDIC byte er loworder Repræsentation af tal: byte x byte 1 s komplement Big endian : 2 s komplement byte er highorder byte byte x DIKU.PEH.418

Forskelle i repræsentation (II) Little endian Big endian type end; dinosaur = record name: array [1..12] of char; length: integer; carnivorous: boolean; bones: integer; discovery: integer; g u e a s t s u 1 s o r 1 44 4 8 12 16 2 4 8 12 16 2 s o r 1 44 t s u 1 e a s g u { stegosaurus, 1, False, 3, 1877} 7 85 24 24 85 7 44* 2 24 16 8 + 1* 2 + * 2 + *2 = 44*16.777.216 + 1* 65.536 = 738.263.4 DIKU.PEH.419

Forskelle i repræsentation (III) struct QtxfHead { char qtxfversion; 1 1 CD CD char long long qtxfpdutype; qtxfseqno; qtxfsid; short qtxfdatalgth; char qtxfdata[1]; }; struct hellodata { 13 CD CD 58 A CD char long hellocid; hellofseqno; 51 54 58 46 short char }; hellohbvalue; hellodata[1]; 5F 6E 64 65 6D {1, 1,,, 19, X,, 1, QTXF_demo } DIKU.PEH.42

Konvertering mellem maskiner A A A A B B B B C C C ASN.1 C D D D D E E E E n (n -1) konverteringer 2n konverteringer DIKU.PEH.421

5 35 1 4 1 4 integer integer 4 bytes integer start of record 4 bytes integer Eksempel på indkodning 4 12 s t e g o s a u r u s 4 bytes integer 1 2 1 1 4 1 44 7 85 DIKU.PEH.422 boolean 1 byte boolean integer 35 bytes record string 12 bytes string

Hvad er ASN.1 et internationalt standardiseret værktøj til definition af application layer protokol syntakser et sådant værktøj er nødvendig, idet applikations protokoller ofte indeholder komplekse data strukturer behovet blev identificeret af ITU (CCITT) i forbindelse med standardiseringen af Message Handling (MHS) ITU standardiserede det i X.49 i 1984 ITU og ISO blev enig om den samme tekst ITU: X.28 og X.29 ISO: ISO/IEC 8824 og ISO/IEC 8825 anvendes også i TCP/IP verdenen (Managed Objects - SNMP) DIKU.PEH.423

Hvad er specificeret i ASN.1 der er to komponenter, en notationsform og et sæt indkodnings (encoding) regler notationen er Abstract Syntax Notation One (normalt omtalt ASN.1) indkodnings reglerne er ASN.1 Basic Encoding Rules (normal omtalt BER) ASN.1 optræder i protokol specifikationer for at beskrive de datastrukturer, der skal transmiteres (Abstract Syntax) BER specificerer hvorledes disse strukturer indkodes for transmission (Transfer Syntax) Notation -> Abstarct Syntax -> Protokol specifikation Indkodning -> Transfer Syntax -> Kommunikations forbindelsen DIKU.PEH.424

ASN.1 notation notationen (ASN.1) tillader design af komplekse datastrukturer udfra få simple typer de simple typer inkludere integer, real, boolean, forskellige typer af strings (bit string, octet string, character string) og object identifier designeren kan opbygge mere komplekse typer ud fra simple typer komplekse typer kan også opbygges på grundlag af typerne sets, sequences og choices of simpler types f.eks. kan en fil være struktureret som et antal records, der kan bestå af et antal fields, som kan være tal, tegn strenge eller komplekse strukturer af subfields DIKU.PEH.425

Eksempel på ASN.1 notation EventReportArgument ::= SEQUENCE { managedobjectclass ObjectClass, managedobjectinstance ObjectInstance, eventtime [5] IMPLICIT GeneralizedTime, eventtype EventTypeId, eventinfo [8] ANY DEFINED BY eventtype } ObjectClass ::= CHOICE { globalform [] IMPLICIT OBJECT IDENTIFIER, localform [1] IMPLICIT INTEGER } ObjectInstance ::= CHOICE { distinguishedname [2] IMPLICIT DistinguishedName, nonspecificform [3] IMPLICIT OCTET STRING, localdistinguishedname [4] IMPLICIT RDNSequence } DistinguishedName ::= RDNSequence RDNSequence ::= SEQUENCE OF RelativeDistinguishedName RelativeDistinguishedName ::= SET OF AttributeValueAssertion AttributeValueAssertion ::= SEQUENCE { attributetype AttributeType, attributevalue AttributeValue } AttributeType ::= OBJECT IDENTIFIER AttributeValue ::= ANY DIKU.PEH.42

Eksempler på simple ASN.1 typer integer heltal (positiv, negativ og ) boolean True og False bit string Liste af eller flere bits octet string Liste af eller flere oktetter real M * B E M mantise (integer) B base (2 eller 1) E exponent (integer) object identifier {1 2 3 4 5} DIKU.PEH.426

Object Identifier (OID) top ccitt () iso (1) joined ccitt-iso (2) org (3) dod (6) internet (1) directory (1) mgmt (2) mib-2 (1) system (1) sysdescr: sysdescr (1) iso org dod internet mgmt mib-2 system sysdescr ip (4) 1. 3. 6. 1. 2. 1. 1. 1. experimental (3) private (4) enterprises (1) DIKU.PEH.784

Object Identifier (OID) - cont. Der findes ingen steder, hvor man kan få et samlet overblik Men på http://www.alvestrand.no/objectid/top.html findes en hel del Internet ligger under DoD, der er en ISO Identified Organization OID= 1.3.6.1 Under Internet Private ligger Enterprices (1.3.6.1.4.1), som er firmaer m.m., f.eks.: Cisco (1.3.6.1.4.1.9) Sun (1.3.6.1.4.1.42) Stanford University (1.3.6.1.4.1.299) DIKU.PEH.43

ASN.1 tags en tag har en tag class og et tag number. To tags er forskellige, hvis enten tag class eller tag number er forskellig der er fire tag classes: universal context-specific application-wide private tag number er et ikke-negativt heltal alle typer defineret i ASN.1 (og kun disse typer) er universal DIKU.PEH.427

Basic Encoding Rules (BER) al information indkodes i en nested struktur al indkodning har det samme basale layout (denne ensartethed gør parsing let) hver indkodning består af en identifikation (I), en længde angivelse (L) og indholdet (contents (C)). Dette layout betegnes nogle gange også TLV (Type - Length - Value) identifikationen indeholder oplysning om datatypen længe angivelsen muliggør at afslutningen på indkodningen kan findes indholdet er de aktuelle data. Dette kan igen være en række af indkodninger. Dette tillader at rekursive datastrukturer afspejles i indkodningen DIKU.PEH.428

Basic Encoding Rules - Identifier Der findes to formater: single octet : CCFTTTTT multiple octest : CCF11111 1TTTTTTT... TTTTTTT CC er Tag Class ( = universal, 1 = application-wide, 1 = context-specific og 11 = private) F er Form ( = primitive og 1 = constructed) TTTTTT er Tag number og repræsenteret som et unsigned binary number DIKU.PEH.429

Basic Encoding Rules - Length Der findes tre formater: short: LLLLLLL long: 1[<n<127] LLLLLLLL... LLLLLLLL indefinite: 1, der afsluttes med DIKU.PEH.43

Eksempel på encoding (I) : 6 8 9 AD CF -24 31 45 29 8 45.`...$1E)..E. 1: 1 2D C 1 4 8 6-95 9 AC 19 3 AC 19.-..@... 2: 4 4 B 6 2D 27-41 4D 29 25 D9 5 18...-.'AM.)%.P. 3: 21 98 64 B4 3-1 5 2 F 8 1 1!.d... 4: 3 19 1 3 61 8 3 8-2 1 1 A 8 A1 8 2...a... 5: 1 2 2 1 3 8 8-8 3 92 4F A 3...O... 6: 5 A2 8 31 B 3 9 6-3 55 4 6 13 2 44 4B...1...U...DK 7: 31 C 3 A 6 3 55 4-A 13 3 54 44 4B 31 D 1...U...TDK1. 8: 3 B 6 3 55 4 B 13-4 55 54 54 4E 31 12 3...U...UTTN1. 9: 1 6 3 55 4 C 13 9-74 6D 6E 2D 6E 6F 74 65...U...tmn-note A: 31 31 14 3 12 6 5 59-3 2 7 4 19 9 73 74 11...Y...st B: 61 69 41 67 65 6E 74 31-19 3 17 6 7 D 98 aiagent1... C: 1C 7 1C 19 C 55 43-5 4D 49 4E 49 54 45 4B...UCPMINITEK D: 53 54 31 11 3 F 6 7- D 98 1C 7 26 19 ST1...&. E: 4 58 3 32 39 85-13 31 39 39 38 3 33 3.X29...19983 F: 39 31 34 33 35 34 3 2B-3 31 3 3 86 5 59 3 914354+1..Y. 1: 2 A 2 A8 2C 3 2A 6-6 59 3 2 4 A...,*..Y... 11: 1 1 1 1 83 1-85 1 2 19 14 58 2E 32...X.2 12: 35 2 63 6F 6E 6E 65 63-74 69 6F 6E 2 6C 6F 73 5 connection los 13: 74 - t... DIKU.PEH.55

Eksempel på encoding (II) 3 8 8 8 3 92 4E A 3 5....... 5 = 11 => 5 3 = 11 => 3 = => A = 11 => 1 = => 92 4E = 111 11111 => x11x11111 = 2383 3 = 4m + n => m =, n = 3 3 92 4E A 3 5 = Value = Object Identifier.3.2383..1..3.5 8 = Length: 1= 8 octets 8 = Identifier: 1 (CCFTTTTT)=> Class=Context-specific, Format=Primitive, Tag= (globalform, OID) 8 8 3 92 4E A 3 5.... = Value 8 = Length: 1= Indefinite, dvs. afsluttes med - 3 = Identifier: 11 (CCFTTTTT)=> Class=Universal, Format=Constructed, Tag=16 (SEQUENCE) DIKU.PEH.551

Eksempel på encoding (III) ISO ROSE ------------------------------------------ PDU 1 : ROIV ROSEapdus: roiv-apdu [C 1] IMPLICIT invokeid [U 2] INTEGER operation-value: localvalue [U 2] INTEGER Display of User Data has been turned off. ISO CMIP ------------------------------------------ PDU 1 : M-EVENT-REPORT REQ EventReportArgument SEQUENCE (OF) value... managedobjectclass: globalform [C ] IMPLICIT OBJECT IDENTIFIER value... { 3 2383 1 3 5 } managedobjectinstance: distinguishedname [C 2] IMPLICIT value... relativedistinguishedname [U 17] SET (OF) value... AttributeValueAssertion [U 16] SEQUENCE (OF) value... attributetype [U 6] OBJECT IDENTIFIER value... { 2 5 4 6 } attributevalue ANY DEFINED BY attributetype, USER DATA value... DK DIKU.PEH.552