Fast decoding of tagged message formats

Many important protocols, such as Q.2931 or any protocol based on the ASN.1 basic encoding rules, are transmitted using tagged message formats, in which a message can be considered as a sequence of interleaved tag and data fields, where tag fields define the meaning of subsequent fields. These messages are computationally expensive to decode, partly because decoding each data field requires resting one or more tag fields. Evidence suggests that in some applications, although the potential space of message encodings may be very large, only a small number of message layouts are seen frequently, and thus some of the work required in decoding can be amortized over many messages. This paper analyzes the use of run-time code generation to generate optimized decoding instruction sequences for received messages matching previously observed layouts, and describes a prototype system that applies the techniques to decoding the Q.2931 and ASN.1 BER protocols. In the average case, substantial performance gains are seen.

[1]  Eduardo Tovar,et al.  Defining more efficient transfer syntax for application layer PDUs in field bus applications , 1992, CCRV.

[2]  Nilotpal Mitra Efficient encoding rules for ASN.1-based protocols , 1994, AT&T Technical Journal.

[3]  Craig Chambers,et al.  An efficient implementation of SELF a dynamically-typed object-oriented language based on prototypes , 1989, OOPSLA 1989.

[4]  David D. Clark,et al.  Architectural considerations for a new generation of protocols , 1990, SIGCOMM '90.

[5]  Christian Huitema,et al.  Automatic Generation of Optimized Code for Marshalling Routines , 1994, ULPAA.

[6]  E. D. b. Edwards,et al.  The dragon book , 1979 .

[7]  Behcet Sarikaya,et al.  Performance comparison of ASN.1 encoder/decoders using FTAM , 1993, Comput. Commun..

[8]  Calton Pu,et al.  The Synthesis Kernel , 1988, Comput. Syst..

[9]  C. Huitema,et al.  Defining faster transfer syntaxes for the OSI presentation protocol , 1989, CCRV.

[10]  Rick Macklem,et al.  Lessons Learned Tuning the 4.3BSD Reno Implementation of the NFS Protocol , 1991, USENIX Winter.

[11]  T. V. Lakshman,et al.  High-speed protocol processing using parallel architectures , 1994, Proceedings of INFOCOM '94 Conference on Computer Communications.

[12]  Susan J. Eggers,et al.  A case for runtime code generation , 1993 .

[13]  David A. Patterson,et al.  Computer Architecture: A Quantitative Approach , 1969 .

[14]  Huai-An Lin,et al.  Estimation of the optimal performance of ASN.1/BER transfer syntax , 1993, CCRV.

[15]  Kenji Suzuki,et al.  Efficient Packed Encoding Rules (EPER) for ASN. 1 and Its Evaluation , 1995 .

[16]  Dawson R. Engler,et al.  DCG: an efficient, retargetable dynamic code generation system , 1994, ASPLOS VI.

[17]  David Grove,et al.  Selective specialization for object-oriented languages , 1995, PLDI '95.

[18]  J. R. Pimentel Efficient encoding of application layer PDU's for fieldbus networks , 1988, CCRV.

[19]  Jozsef A. Toth Specification of an object to object protocol in Abstract Syntax Notation One (ASN.1) , 1990, IEA/AIE '90.

[20]  M. Loper,et al.  Performance Tests and Flexible Decoding for Transfer Syntax in Real-time Applications , 1994, Proceeding of 13th IEEE Annual International Phoenix Conference on Computers and Communications.

[21]  Jeffrey C. Mogul,et al.  The packer filter: an efficient mechanism for user-level network code , 1987, SOSP '87.

[22]  Craig Chambers,et al.  An efficient implementation of SELF, a dynamically-typed object-oriented language based on prototypes , 1991 .

[23]  Martin Bever,et al.  Coding Rules for High Speed Networks , 1992, Upper Layer Protocols, Architectures and Applications.

[24]  Rob Pike,et al.  Hardware/software trade‐offs for bitmap graphics on the blit , 1985, Softw. Pract. Exp..

[25]  Harry R. Lewis,et al.  Data Structures and Their Algorithms , 1991 .