找回密码
 注册
搜索
查看: 4100|回复: 25

ASN.1 Complete(ASN.1大全)

[复制链接]
发表于 2008-1-8 14:11:17 | 显示全部楼层 |阅读模式
目录:
Contents
Contents 3
Foreword 13
Introduction 15
1 The global communications infrastructure 15
2 What exactly is ASN.1? 16
3 The development process with ASN.1 18
4 Structure of the text. 18
SECTION I ASN.1 OVERVIEW 21
Chapter 1 Specification of protocols 22
1 What is a protocol? 22
2 Protocol specification - some basic concepts 24
2.1 Layering and protocol "holes" 25
2.2 Early developments of layering 26
2.3 The disadvantages of layering - keep it simple! 28
2.4 Extensibility 28
2.5 Abstract and transfer syntax 30
2.6 Command line or statement-based approaches 32
2.7 Use of an Interface Definition Language 32
3 More on abstract and transfer syntaxes 32
3.1 Abstract values and types 32
3.2 Encoding abstract values 33
4 Evaluative discussion 35
4.1 There are many ways of skinning a cat - does it matter? 35
4.2 Early work with multiple transfer syntaxes 35
4.3 Benefits 36
Efficient use of local representations 36
Improved representations over time 36
Reuse of encoding schemes 36
Structuring of code 37
Reuse of code and common tools 38
Testing and line monitor tools 38
Multiple documents requires "glue" 38
The "tools" business 39
5 Protocol specification and implementation - a series of case studies 39
5.1 Octet sequences and fields within octets 39
5.2 The TLV approach 40
5.3 The EDIFACT graphical syntax 41
5.4 Use of BNF to specify a character-based syntax 42
5.5 Specification and implementation using ASN.1 - early 1980s 43
5.6 Specification and implementation using ASN.1 - 1990’s 44
Chapter 2 Introduction to ASN.1 47
4 © OSS,31 May 1999
1 Introduction 47
2 The example 48
2.1 The top-level type 49
2.2 Bold is what matters! 49
2.3 Names in italics are used to tie things together 49
2.4 Names in normal font are the names of fields/elements/items 50
2.5 Back to the example! 50
2.6 The BranchIdentification type 52
2.7 Those tags 54
3 Getting rid of the different fonts 55
4 Tying up some lose ends 56
4.1 Summary of type and value assignments 56
4.2 The form of names 57
4.3 Layout and comment 57
5 So what else do you need to know? 58
Chapter 3 Structuring an ASN.1 specification 60
1 An example 61
2 Publication style for ASN.1 specifications 62
2.1 Use of line-numbers. 63
2.2 Duplicating the ASN.1 text 64
2.3 Providing machine-readable copy 64
3 Returning to the module header! 65
3.1 Syntactic discussion 65
3.2 The tagging environment 67
3.2.1 An environment of explicit tagging 68
3.2.2 An environment of implicit tagging 68
3.2.3 An environment of automatic tagging 68
3.3 The extensibility environment 69
4 Exports/imports statements 71
5 Refining our structure 73
6 Complete specifications 76
7 Conclusion 77
Chapter 4 The basic data types and construction mechanisms - closure 78
1 Illustration by example 79
2 Discussion of the built-in types 80
2.1 The BOOLEAN type 80
2.2 The INTEGER type 80
2.3 The ENUMERATED type 82
2.4 The REAL type 83
2.5 The BIT STRING type 84
2.6 The OCTET STRING type 87
2.7 The NULL type 88
2.8 Some character string types 88
2.9 The OBJECT IDENTIFIER type 89
2.10 The ObjectDescriptor type 90
2.11 The two ASN.1 date/time types 91
3 Additional notational constructs 93
3.1 The selection-type notation 93
3.2 The COMPONENTS OF notation 94
3.3 SEQUENCE or SET? 95
3.4 SEQUENCE, SET, and CHOICE (etc) value-notation 96
4 What else is in X.680/ISO 8824-1? 97
© OS, 31 May 1999 5
Chapter 5 Reference to more complex areas 99
1 Object identifiers 100
2 Character string types 100
3 Subtyping 102
4 Tagging 103
5 Extensibility, exceptions and version brackets 104
6 Hole types 105
7 Macros 106
8 Information object classes and objects and object sets 107
9 Other types of constraints 108
10 Parameterization 108
12 The ASN.1 semantic model 109
13 Conclusion 109
Chapter 6 Using an ASN.1 compiler 110
1 The route to an implementation 110
2 What is an ASN.1 compiler? 111
3 The overall features of an ASN.1-compiler-tool 113
4 Use of a simple library of encode/decode routines 113
4.1 Encoding 114
4.2 Decoding 115
5 Using an ASN.1-compiler-tool 116
5.1 Basic considerations 116
5.2 What do tool designers have to decide? 116
5.3 The mapping to a programming-language data structure 117
5.4 Memory and CPU trade-offs at run-time 118
5.5 Control of a tool 119
6 Use of the "OSS ASN.1 Tools" product 120
7 What makes one ASN.1-comiler-tool better than another? 121
8 Conclusion 122
Chapter 7 Management and design issues for ASN.1 specification and implementation 123
1 Global issues for management decisions 124
1.1 Specification 124
1.1.1 To use ASN.1 or not! 124
1.1.2 To copy or not? 124
1.2 Implementation - setting the budget 125
1.2.1 Getting the specs 125
1.2.2 Training courses, tutorials, and consultants 126
1.3 Implementation platform and tools 126
2 Issues for specifiers 127
2.1 Guiding principles 127
2.2 Decisions on style 128
2.3 Your top-level type 128
2.4 Integer sizes and bounds 129
2.5 Extensibility issues 130
2.6 Exception handling 131
2.6.1 The requirement 131
2.6.2 Common forms of exception handling 131
2.6.2.1 SEQUENCE and SET 131
2.6.2.2 CHOICE 131
2.6.2.3 INTEGER and ENUMERATED 132
2.6.2.4 Extensible strings 132
2.6.2.5 Extensible bounds on SET OF and SEQUENCE OF 132
6 © OSS,31 May 1999
2.6.2.6 Use of extensible object sets in constraints 133
2.6.2.7 Summary 133
2.6.3 ASN.1-specified default exception handling 133
2.6.4 Use of the formal exception specification notation 134
2.7 Parameterization issues 134
2.8 Unconstrained open types 135
2.9 Tagging issues 136
2.10 Keeping it simple 136
3 Issues for implementors 137
3.1 Guiding principles 137
3.2 Know your tool 138
3.3 Sizes of integers 138
3.4 Ambiguities and implementation-dependencies in specifications 139
3.5 Corrigenda 139
3.6 Extensibility and exception handling 139
3.7 Care with hand encodings 140
3.8 Mailing lists 140
3.9 Good engineering - version 2 **will** come! 140
4 Conclusion 141
SECTION II FURTHER DETAILS 142
Chapter 1 The object identifier type 143
1 Introduction 143
2 The object identifier tree 145
3 Information objects 146
4 Value notation 147
5 Uses of the object identifier type 148
Chapter 2 The character string types 149
1 Introduction 150
2 NumericString 150
3 PrintableString 151
4 VisibleString (ISO646String) 151
5 IA5String 152
6 TeletexString (T61String) 152
7 VideotexString 152
8 GraphicString 153
9 GeneralString 153
10 UniversalString 153
11 BMPString 153
12 UTF8String 154
13 Recommended character string types 154
14 Value notation for character string types 155
15 The ASN.1-CHARACTER-MODULE 157
16 Conclusion 158
Chapter 3 Subtyping 159
1 Introduction 159
2 Basic concepts and set arithmetic 160
3 Single value subtyping 162
4 Value range subtyping 162
5 Permitted alphabet constraints 163
© OS, 31 May 1999 7
6 Size constraints 164
7 Contained sub-type constraints 166
8 Inner Subtyping 166
8.1 Introduction 166
8.2 Subsetting Wineco-Protocol 168
8.3 Inner subtyping of an array 170
9 Conclusion 171
Chapter 4 Tagging 172
1 Review of earlier discussions 172
2 The tag name-space 173
3 An abstract model of tagging 176
4 The rules for when tags are required to be distinct 179
5 Automatic tagging 180
6 Conclusion 180
Chapter 5 Extensibility, Exceptions, and Version Brackets 181
1 The extensibility concept 181
2 The extension marker 182
3 The exception specification 183
4 Where can the ellipsis be placed? 183
5 Version brackets 184
6 The {...} notation 185
7 Interaction between extensibility and tagging 185
8 Concluding remarks 187
Chapter 6 Information Object Classes, Constraints, and Parameterization 188
1 The need for "holes" and notational support for them 189
1.1 OSI Layering 189
1.2 Hole support in ASN.1 190
2 The ROSE invocation model 190
2.1 Introduction 190
2.2 Responding to the INVOKE message 192
3 The use of tables to complete the user specification 193
3.1 From specific to general 195
4 From tables to Information Object Classes 196
5 The ROSE OPERATION and ERROR Object Class definitions 198
6 Defining the Information Objects 199
7 Defining an Information Object Set 201
8 Using the information to complete the ROSE protocol 203
9 The need for parameterization 205
10 What has not been said yet? 208
Chapter 7 More on classes, constraints, and parameterization 209
1 Information Object Class Fields 209
1.1 Type fields 210
1.2 Fixed type value fields 211
1.3 Variable type value fields 212
1.4 Fixed type value set fields 213
1.5 Variable type value set fields 213
1.6 Object fields 214
1.7 Object set fields 214
1.8 Extended field names 215
2 Variable syntax for Information Object definition 216
8 © OSS,31 May 1999
3 Constraints re-visited - the user-defined constraint 220
4 The full story on parameterization 221
4.1 What can be parameterized and be a parameter? 222
4.2 Parameters of the abstract syntax 224
4.3 Making your requirements explicit 225
4.3.1 The TYPE-IDENTIFIER class 225
4.3.2 An example - X.400 headers 225
4.3.3 Use of a simple SEQUENCE 226
4.3.4 Use of an extensible SEQUENCE 227
4.3.5 Moving to an information object set definition 227
4.3.6 The object set "Headers" 228
4.4 The (empty) extensible information object set 229
5 Other provision for "holes" 230
5.1 ANY 230
5.2 ANY DEFINED BY 231
5.3 EXTERNAL 231
5.4 EMBEDDED PDV 232
5.5 CHARACTER STRING 233
5.6 OCTET STRING and BIT STRING 233
6 Remarks to conclude Section II 234
SECTION III ENCODINGS 235
Chapter 1 Introduction to encoding rules 236
1 What are encoding rules, and why the chapter sub-title? 236
2 What are the advantages of the encoding rules approach? 238
3 Defining encodings - the TLV approach 239
4 Extensibility or "future proofing" 240
5 First attempts at PER - start with BER and remove redundant octets 241
6 Some of the principles of PER 243
6.1 Breaking out of the BER straight-jacket 243
6.2 How to cope with other problems that a "T" solves? 244
6.3 Do we still need T and L for SEQUENCE and SET headers? 245
6.4 Aligned and Unaligned PER 246
7 Extensibility - you have to have it! 246
8 What more do you need to know about PER? 247
9 Experience with PER 248
10 Distinguished and Canonical Encoding Rules 250
11 Conclusion 251
Chapter 2 The Basic Encoding Rules 252
1 Introduction 252
2 General issues 253
2.1 Notation for bit numbers and diagrams 253
2.2 The identifier octets 254
2.3 The length octets 256
2.3.1 The short form 256
2.3.2 The long form 257
2.3.3 The indefinite form 258
2.3.4 Discussion of length variants 259
3 Encodings of the V part of the main types 260
3.1 Encoding a NULL value 260
3.2 Encoding a BOOLEAN value 261
© OS, 31 May 1999 9
3.3 Encoding an INTEGER value 261
3.4 Encoding an ENUMERATED value 262
3.5 Encoding a REAL value 262
3.5.1 Encoding base 10 values 262
3.5.2 Encoding base 2 values 263
3.5.3 Encoding the special real values 265
3.6 Encoding an OCTET STRING value 266
3.7 Encoding a BIT STRING value 266
3.8 Encoding values of tagged types 267
3.9 Encoding values of CHOICE types 268
3.10 Encoding SEQUENCE OF values 268
3.11 Encoding SET OF values 269
3.12 Encoding SEQUENCE and SET values 269
3.13 Handling of OPTIONAL and DEFAULT elements in sequence and set 270
3.14 Encoding OBJECT IDENTIFIER values 270
3.15 Encoding character string values 273
3.16 Encoding values of the time types 275
4 Encodings for more complex constructions 275
4.1 Open types 275
4.2 The embedded pdv type and the external type 276
4.3 The INSTANCE OF type 276
4.4 The CHARACTER STRING type 276
5 Conclusion 277
Chapter 3 The Packed Encoding Rules 278
1 Introduction 279
2 Structure of a PER encoding 279
2.1 General form 279
2.2 Partial octet alignment and PER variants 280
2.3 Canonical encodings 281
2.4 The outer level complete encoding 281
3 Encoding values of extensible types 282
4 PER-visible constraints 284
4.1 The concept 284
4.2 The effect of variable parameters 285
4.3 Character strings with variable length encodings 286
4.4 Now let's get complicated! 286
5 Encoding INTEGERs - preparatory discussion 288
6 Effective size and alphabet constraints. 289
6.1 Statement of the problem 289
6.2 Effective size constraint 290
6.3 Effective alphabet constraint 290
7 Canonical order of tags 291
8 Encoding an unbounded count 291
8.1 The three forms of length encoding 292
8.2 Encoding "normally small" values 295
8.3 Comments on encodings of unbounded counts 296
9 Encoding the OPTIONAL bit-map and the CHOICE index. 296
9.1 The OPTIONAL bit-map 296
9.2 The CHOICE index 297
10 Encoding NULL and BOOLEAN values. 297
11 Encoding INTEGER values. 297
11.1 Unconstrained integer types 298
11.2 Semi-constrained integer types 298
10 © OSS,31 May 1999
11.3 Constrained integer types 299
11.4 And if the constraint on the integer is extensible? 300
12 Encoding ENUMERATED values. 301
13 Encoding length determinants of strings etc 302
14 Encoding character string values. 304
14.1 Bits per character 304
14.2 Padding bits 305
14.3 Extensible character string types 306
15 Encoding SEQUENCE and SET values. 306
15.1 Encoding DEFAULT values 307
15.2 Encoding extension additions 307
16 Encoding CHOICE values. 310
17 Encoding SEQUENCE OF and SET OF values. 311
18 Encoding REAL and OBJECT IDENTIFIER values. 312
19 Encoding an Open Type 312
20 Encoding of the remaining types 313
21 Conclusion 313
Chapter 4 Other ASN.1-related encoding rules 315
1 Why do people suggest new encoding rules? 315
2 LWER - Light-Weight Encoding Rules 316
2.1 The LWER approach 317
2.2 The way to proceed was agreed 317
2.3 Problems, problems, problems 317
2.4 The demise of LWER 319
3 MBER - Minimum Bit Encoding Rules 319
4 OER - Octet Encoding Rules 320
5 XER - XML (Extended Mark-up Language) Encoding Rules 321
6 BACnetER - BAC (Building Automation Committee) net Encoding Rules 321
7 Encoding Control Specifications 322
SECTION IV HISTORY AND APPLICATIONS 323
Chapter 1 The development of ASN.1 324
1 People 325
2 Going round in circles? 326
3 Who produces Standards? 327
4 The numbers game 328
5 The early years - X.409 and all that 329
5.1 Drafts are exchanged and the name ASN.1 is assigned 329
5.2 Splitting BER from the notation 330
5.3 When are changes technical changes? 331
5.4 The near-demise of ASN.1 - OPERATION and ERROR 331
6 Organization and re-organization! 333
7 The tool vendors 334
8 Object identifiers 334
8.1 Long or short, human or computer friendly, that is the question 334
8.2 Where should the object identifier tree be defined? 336
8.3 The battle for top-level arcs and the introduction of RELATIVE OIDs 336
9 The REAL type 337
10 Character string types - let's try to keep it short! 338
10.1 From the beginning to ASCII 338
10.2 The emergence of the international register of character sets 338
© OS, 31 May 1999 11
10.3 The development if ISO 8859 340
10.4 The emergence of ISO 10646 and Unicode 340
10.4.1 The four-dimensional architecture 340
10.4.2 Enter Unicode 342
10.4.3 The final compromise 343
10.5 And the impact of all this on ASN.1? 343
11 ANY, macros, and Information Objects - hard to keep that short (even the heading has gone to two
lines)! 345
12 The ASN.1(1990) controversy 348
13 The emergence of PER 349
13.1 The first attempt - PER-2 349
13.2 The second attempt - PER-1 352
14 DER and CER 353
15 Semantic models and all that - ASN.1 in the late 1990s 354
16 What got away? 355
Chapter 2 Applications of ASN.1 357
1 Introduction 357
2 The origins in X.400 358
3 The move into Open Systems Interconnection (OSI) and ISO 359
4 Use within the protocol testing community 360
5 Use within the Integrated Services Digital Network (ISDN) 361
6 Use in ITU-T and multimedia standards 361
7 Use in European and American standardization groups 362
8 Use for managing computer-controlled systems 363
9 Use in PKCS and PKIX and SET and other security-related protocols 364
10 Use in other Internet specifications 365
11 Use in major corporate enterprises and agencies 366
12 Conclusion 366
APPENDICES 367
1 The Wineco protocol scenario 368
2 The full protocol for Wineco 369
3 Compiler output for C support for the Wineco protocol 372
4 Compiler output for Java support for the Wineco protocol 374
5 ASN.1 resources via the Web 384
INDEX 385
发表于 2009-12-14 11:42:13 | 显示全部楼层
[em13]怎么只有目录没有书呢?

点评

游客
bunadisisj nsjjsjsisjsmizjzjjzjzz zumzsert  发表于 2022-10-12 12:43
游客
bunadisisj nsjjsjsisjsmizjzjjzjzz zumzsert  发表于 2022-9-5 13:53
点评回复

使用道具 举报

52RD网友  发表于 2022-8-27 20:29:02
Thanks
回复

使用道具

52RD网友  发表于 2022-8-30 16:10:46
22Thanks585
52RD网友  发表于 2022-8-30 16:53:32
xxbunadiminacumzsertyy
52RD网友  发表于 2022-9-14 07:18:59
bunadisisj nsjjsjsisjsmizjzjjzjzz zumzsert
52RD网友  发表于 2022-10-31 02:47:32
Hello! This publish couldn_t be published any better! Examining this article jogs my memory of my aged area mate! He usually saved speaking about this. I will forward this put up to him. Reasonably certain he will have an excellent study. Many thanks for sharing!
52RD网友  发表于 2022-10-31 05:39:48
Many thanks _ Loved this article, how can I make is so that I get an warn email once you come up with a fresh new publish?
52RD网友  发表于 2022-11-28 20:06:46
Place on with this particular compose-up, I absolutely sense This great site wants a great deal extra focus. I_ll most likely be returning to go through far more, many thanks for the information!
52RD网友  发表于 2022-12-13 11:49:56
Greetings! Extremely useful information in just this article! It is the tiny alterations that will make the most important adjustments. Many thanks for sharing!
52RD网友  发表于 2022-12-13 21:58:56

Almost everything is very open up with a extremely apparent clarification of the problems. It was surely informative. Your site may be very practical. Numerous many thanks for sharing!
52RD网友  发表于 2023-1-9 17:43:30
I_d should really analyze along with you listed here. Which is not one thing I Generally do! I take pleasure in reading through a article that may make men and women Consider. Moreover, many thanks for enabling me to remark!
52RD网友  发表于 2023-1-9 19:03:33
Amazing Website. A great deal of helpful data in this article.<br />I_m sending it to some buddies ans also sharing in mouth watering.<br />And Obviously, as a result of your sweat!
52RD网友  发表于 2023-1-9 19:10:43
Great compose-up. I absolutely value this Web page. Thanks!
52RD网友  发表于 2023-1-9 19:48:54

A formidable share! I've just forwarded this on to a colleague who has actually been undertaking a little bit investigate on this. And he actually purchased me breakfast on account of The truth that I stumbled upon it for him_ lol. So enable me to reword this_. Thanks for the meal!! But yeah, thanx for investing time to debate this concern in this article on your blog.
52RD网友  发表于 2023-1-10 10:37:25
Terrific function! This can be the style of data that needs to be shared about the internet. Disgrace on Google for not positioning this post greater! Arrive on about and stop by my Web page . Many thanks =)
52RD网友  发表于 2023-1-10 10:54:16

Spot on with this produce-up, I Totally feel this site needs a fantastic deal more focus. I_ll almost certainly be returning to study extra, thanks for the data!
52RD网友  发表于 2023-1-10 10:57:13
Many thanks for your own marvelous posting! I really relished looking at it, you could be an excellent creator.I'll make sure you bookmark your web site and will eventually return later in life. I would like to really encourage that you just continue your terrific work, Possess a awesome weekend!
52RD网友  发表于 2023-1-10 11:00:10

Oh my goodness! Remarkable post dude! A lot of many thanks, Nonetheless I am enduring troubles along with your RSS. I don_t know why I am able to_t be part of it. Is there any one else receiving similar RSS troubles? Any one that appreciates The solution will you kindly reply? Thanks!!
52RD网友  发表于 2023-1-10 11:01:00

It_s nearly difficult to uncover expert people With this individual subject matter, having said that, you seem like you know what you_re talking about! Thanks
高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-22 20:29 , Processed in 0.048983 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表