1 / 20

Abstract Syntax Notation

Abstract Syntax Notation. Computer Networks courses Villanova University. Platform and language independence.

liam
Download Presentation

Abstract Syntax Notation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Abstract Syntax Notation Computer Networks courses Villanova University

  2. Platform and language independence • The purpose of ASN.1 is to allow specification of an information exchange between cooperating parts of a distributed application, independent of the platform and language used for implementation

  3. ASN.1 Shared Representation Site A Site B Abstract Specification ASN.1 Application Source Code C Application Source Code Java Compiler Compiler Compiler Compiler Application Process in System A Compatible information flow Application Process in System B

  4. Abstract Syntax • Represent the data types and structures • Separate definition of the transfer syntax allows interaction

  5. Modules and Assignments • Module is the fundamental unit • name a collection of type definitions and/or value definitions (assignments)

  6. Example module (A type definition)InventoryList {1 2 0 0 6 1} DEFINITIONS ::= BEGIN { ItemId ::= SEQUENCE { partnumber IA5String, quantity INTEGER, wholesaleprice REAL, saleprice REAL } StoreLocation ::= ENUMERATED { Baltimore (0), Philadelphia (1), Washington (2), } } END The words Baltimore, Philadelphia, and Washington are used to represent the values 0, 1, 2 for this type.

  7. Type Assignment • Type reference (name of the type) • ::= • type • comments begin with -- and end with EOL or --

  8. Value Assignment • Value reference (name of the value) • ::= • valid value notation • value reference must begin with lower case letter

  9. Simple types • BOOLEAN (true or false) • INTEGER (any positive or negative whole number or zero) • REAL (mantissa, base, exponent) • BIT STRING (ordered string of bits) • OCTET STRING (ordered string of octets) • NULL (null is the only allowed value) • OBJECT IDENTIFIER (identifies a place in a tree) • ENUMERATED (a list of names of values) • CHARACTER STRING (several are defined)

  10. Structured Types • SEQUENCE/SEQUENCE OF • An ordered collection; “of” indicates all entries are the same type • SET/SET OF • an unordered collection; “of” indicates entries are the same type • CHOICE • collection of types from which one is chosen • SELECTION • references a CHOICE type

  11. Tagging • When one of several types might be transmitted at a particular time, tagging allows the receiving system to decode correctly • UNIVERSAL (predefined and standard Example Integer is universal tag 1, etc.) • APPLICATION (defined within an application) • PRIVATE (defined within an organization) • CONTEXT-SPECIFIC (locally defined)

  12. Basic Encoding Rules • ASN.1 definitions made concrete by specific rules for encoding. • Basic structure: Tag, Length, Value • Tag: Class, simple or constructed, code • Integer: 00000001 • Class universal = 00, simple type = 0, code for integer tag = 1 • Integer value 27, shown in hexadecimal: • 01011B • Nesting works to encode complex types tag length

  13. Time • GeneralizedTime • Local: YYYYMMDDHHMMSS.fff • Universal:YYYYMMDDHHMMSS.fffZ • Difference: • YYYYMMDDHHMMSS.fff+-HHMM • (fractions of seconds are optional) • Time shift from UTCTime • UTCTime • same formats as above • no fff; seconds optional • So what time is it? Express the current time in the Generalized Time format

  14. Coordinated Universal Time (UTC) Based on the second (SI). For most practical purposes UTC is equivalent to mean solar time at the prime meridian (0° longitude), formerly expressed in GMT. The second was formerly defined in terms of astronomical phenomena. The change to atomic resonance phenomena ("atomic time") to define the second more precisely.led to need for occasional adjustments in the "atomic" time scale to coordinate it with the workaday mean solar time scale, UT-1. Rotational irregularities usually result in a net decrease in the Earth's average rotational velocity, and ensuing lags of UT-1 with respect to UTC. Adjustments to the atomic, i.e., UTC, time scale consist of an occasional addition or deletion of one full second, which is called a leap second. Twice yearly, during the last minute of June 30 and December 31, Universal Time, adjustments may be made to ensure that the accumulated difference between UTC and UT-1 will not exceed 0.9 s before the next scheduled adjustment. The last minute of the UTC time scale, on the day when an adjustment is made, will have 59 or 61 seconds. Synonyms World Time, Z Time, Zulu Time. Source: http://www.its.bldrdoc.gov/fs-1037/dir-009/_1277.htm January 2001

  15. Use of time standards UTC - Coordinated Universal Time Weather observations and forecasts are usually reported in UTC, which used to be known as Greenwich Mean Time (GMT), i.e. the local time at the Greenwich meridian (zero degrees longitude). This allows weather observations the world over to have the same time stamp. Since UTC is ahead of local time in the United States, sometimes weather data will have tomorrow's date, but it still represents today's data (we are not THAT good at forecasting the weather). UTC is 8 hours ahead of Pacific Standard Time (e.g. 0000 UTC is 4 p.m. PST the previous day, 1200 UTC is 4 a.m. PST the same day), 7 hours ahead of Pacific Daylight Time (e.g. 0000 UTC is 5 p.m. PDT the previous day, 1200 UTC is 5 a.m. PDT the same day). P.S. it is UTC instead of CUT to make the abbreviation language independent. Source: http://www.atmos.washington.edu/utc.html January 2001 What time is it here, as an offset from UTC?

  16. If you really want to know what time it is • Check this site: http://www.greenwich2000.com/time/

  17. SubtreeSpecification ::= SEQUENCE { base [0] LocalName DEFAULT { }, COMPONENTS OF ChopSpecification, specificationFilter [4] Refinement OPTIONAL } -- empty set specifies whole administrative area LocalName ::= RDNSequence ChopSpecification ::= SEQUENCE { specificExclusions [1] SET OF CHOICE { chopBefore [0] LocalName, chopAfter [1] LocalName } OPTIONAL, minimum [2] BaseDistance DEFAULT 0, maximum [3] BaseDistance OPTIONAL } BaseDistance ::= INTEGER (0 .. MAX) Refinement ::= CHOICE { item [0] OBJECT-CLASS.&id, and [1] SET OF Refinement , or [2] SET OF Refinement, not [3] Refinement } Source ( January 2001): ftp://ftp.bull.com/pub/OSIdirectory/2ndEditionSpecifications/ASN.1modules/compilableASN.1 Part of an example specification in ASN.1

  18. Current uses of ASN.1 • Every call placed on a cellular telephone in North America, Europe, and Japan results in TCAP protocol messages. These messages, described using ASN.1 and encoded using one its predefined encoding rules (e.g., The Basic Encoding Rules (BER) • Also, routing of 800- number calls, reverse charging, other special phone services all are defined using ASN.1 messages See http://www.oss.com/asn1/overview.html for further information

  19. Java classes for ASN.1 Class iaik.asn1.ASN java.lang.Object | +----iaik.asn1.ASN public class ASN extends java.lang.Object implements java.lang.Cloneable The ASN class represents the ASN.1 types. These types are represented at the Java level with ASN.XXX literals. This class also acts as an factory for creating ASN.1 OBJECT subclasses for various kinds of Java objects. Each new created ASN.1 type has to be registered in the factory by specifying the class that implements the particular ASN.1 type. Source: (January 2001) http://www.cs.utexas.edu/users/dragon/cs378/f98/resources/iaikdocs/iaik.asn1.ASN.html

  20. Exercises • Chapter 3 of Cassel/Austing Computer Networks • page 103-104, # 10, 11

More Related