XGEN: ASN.1 및 BER에 대한 간단한 소개

기술 자료 번역 기술 자료 번역
기술 자료: 252648 - 이 문서가 적용되는 제품 보기.
모두 확대 | 모두 축소

이 페이지에서

요약

이 문서에서는 ASN.1(Abstract Syntax Notation One) 및 BER(Basic Encoding Rules)를 설명하며 둘 사이의 차이점을 분명하게 설명합니다.

숙련된 전문가를 비롯한 많은 정보 기술 종사자들이 종종 ASN.1과 BER를 혼동하고 있으며 둘 사이의 차이점이나 구분이 중요한 이유를 잘 모르고 있습니다. ASN.1과 BER를 잘 알고 있는 사람들조차 해당 용어를 잘못 사용하는 경우가 종종 있으므로 이러한 혼동이 있는 것은 당연합니다.

ASN.1은 표준 언어이기 때문에 ASN.1로 작성된 표준 권고안을 발견하는 것은 매우 일반적입니다. 지원 전문가, 컨설턴트 및 정보 기술 전문가 모두 ASN.1을 알고 있을 경우 표준을 심도 있게 검토하고 문제 해결할 데이터의 내용을 해독하고 이해할 수 있는 이점이 있습니다. ASN.1로 작성된 가장 일반적인 표준은 CCITT(International Telegraph and Telephone Consultative Committee)와 ITU(International Telecommunications Union)에서 만든 표준입니다. 그러나 IETF(Internet Engineering Task Force) 회원들이 ASN.1을 점점 더 많이 사용하여 권고안을 간결하게 표현하고 있습니다. ASN.1은 다른 형식으로는 5, 6 페이지에 작성할 내용을 한 페이지에 작성합니다.

다음은 ASN.1로 작성되어 일반적으로 사용되는 표준 목록입니다.
  • X.400(전자 메시징)
  • X.500(디렉터리 서비스)
  • X.200(네트워크 통신)
  • RFC(Request for Comment) 2251-2256(Lightweight Directory Access Protocol 또는 LDAP)
  • 기타 많은 RFC
컴퓨터 또는 데이터 통신 전문가가 뛰어난 능력을 발휘하려면 최소한 ASN.1과 BER를 기본적으로 이해하고 있어야 합니다. Microsoft Windows 2000과 Microsoft Exchange 2000 Server 모두 위에서 언급한 표준을 여러 양식으로 구현하기 때문에 ASN.1과 BER에 대해 많은 자료를 읽고 이해하면 이러한 두 제품의 문제를 훨씬 쉽게 해결할 수 있습니다.

추가 정보

ASN.1

ASN.1(Abstract Syntax Notation One)은 구현에 관계없이 표준을 정의하는 언어이며 표준 작성자가 사용하는 언어입니다. CalTech의 John Smith는 한 구성 요소가 다른 구성 요소와 의사 소통하는 데 필요한 절차를 표준화하는 권고안을 만들기 위해 ASN.1 표기법으로 권고안을 작성하여 ITU 같은 표준 기구에 권고안을 제출합니다. ASN.1은 표준을 설명하는 공용 언어를 제공하여 전문가와 위원회 회원 간의 의사 소통을 원활하게 합니다. ASN.1은 ITU-T 권고안 X.209 및 X.690에 정의되어 있습니다.


예를 들어, ASN.1은 다음을 정의합니다.
  • "형식" 정의
  • "모듈" 정의 및 표시 방법
  • INTEGER 정의
  • BOOLEAN 정의
  • "구조체 형식" 정의
  • 특정 키워드(예: BEGIN, END, IMPORT, EXPORT, EXTERNAL 등)의 의미
  • 적절히 인코딩할 수 있도록 형식을 "태그"하는 방법
ASN.1은 특정 표준, 인코딩 방법, 프로그래밍 언어 또는 하드웨어 플랫폼에 관계없이 적용되며, 단순히 표준을 정의하는 언어입니다. 즉, 표준이 ASN.1로 작성됩니다.

BER

BER("버르"로 발음)는 ASN.1의 기본 인코딩 규칙(Basic Encoding Rules)을 나타내는 일반적인 이름입니다. BER는 ITU-T 권고안 X.209 및 X.690에 정의되어 있습니다. BER는 통신 링크를 통해 전송할 수 있는 옥텟의 스트림으로 ASN.1 데이터를 인코딩하는 하나의 규칙 집합입니다. ASN.1 데이터를 인코딩하는 다른 방법으로는 DER(Distinguished Encoding Rules), CER(Canonical Encoding Rules) 및 PER(Packing Encoding Rules)가 있습니다. 각 인코딩 방법마다 해당 응용 프로그램이 있지만 BER는 가장 일반적으로 사용되고 가장 일반적으로 거론되는 인코딩 방법입니다.

BER는 다음을 정의합니다.
  • ASN.1 값을 인코딩하는 방법
  • 특정 방법을 사용할 때를 결정하는 규칙
  • 데이터에 있는 특정 옥텟의 형식

ASN.1과 BER의 비교

ASN.1은 프로그래밍 언어(예: C)와 비슷한 반면, BER는 해당 언어의 컴파일러와 비슷합니다. 컴파일러는 플랫폼마다 다르지만 대부분의 고수준 프로그래밍 언어는 플랫폼에 독립적입니다. C는 프로그램 작성 규칙과 언어를 정의합니다. 프로그램은 C가 아니며 C로 작성된 것입니다. 프로그램은 특정 플랫폼(예: Intel x86)에서 컴파일될 때까지는 유용하지 않습니다. ASN.1과 BER의 관계도 이와 비슷합니다. ASN.1은 표준을 작성하는 언어입니다. 표준은 ASN.1이 아니며 ASN.1로 작성된 것입니다. 표준으로 컴파일되는 프로그램에서 생성된 데이터는 넓은 의미에서 "ASN.1 데이터"라고 할 수 있습니다. ASN.1 데이터는 대상에서 쉽게 해독할 수 있는 옥텟의 스트림으로 인코딩될 때까지 유용하지 않습니다. 즉, LAN을 통해 전송할 수 없습니다. 다음은 이러한 개념을 설명하기 위해 ITU-T 권고안 X.209, 부록 I에서 가져온 예제입니다. 이 예제는 직원 데이터 레코드에 대한 비공식적 설명입니다.
   Name:             John P Smith
   Date of Birth:    17 July 1959
   (other data)
					
직원 레코드에 대한 ASN.1 설명(표준)은 다음과 같을 수 있습니다.
   PersonnelRecord ::= [APPLICATION 0] IMPLICIT SET {
       Name,
       title [0]       VisibleString,
       dateOfBirth [1]          Date,
       (other types defined)          }

   Name ::= [APPLICATION 1] IMPLICIT SEQUENCE {
       givenName       VisibleString,
       initial         VisibleString, 
       familyName      VisibleString  }
					
이 ASN.1 설명은 PersonnelRecord가 표시되는 방법을 설명합니다. 그러나 더 중요한 것은 인코딩이 이루어지기 전에 ASN.1 데이터가 되도록 응용 프로그램 데이터의 형식을 지정하는 방법을 설명합니다.

다음에 응용 프로그램은 직원 데이터를 직원 레코드 구조(ASN.1 데이터 형식)에 매핑한 다음 ASN.1 데이터에 BER(Basic Encoding Rules)를 적용합니다. 이름이 ASCII로 변환된다는 것을 제외하고 다음과 같이 표시될 수 있습니다.
  Personnel
  Record     Length   Contents
  60         8185
                      Name     Length  Contents
                      61       10
                                       VisibleString  Length  Contents
                                       1A             04      "John"
                                       VisibleString  Length  Contents
                                       1A             01      "P"
                                       VisibleString  Length  Contents
                                       1A             05      "Smith"

                       DateofBirth     Length  Contents
                       A0              0A
                                               Date    Length  Contents
                                               43      08      "19590717"
					
모든 것이 표현되고 완료되면 실제로 전송되는 것, 또는 보다 엄밀하게 표현하여 다음 하위 계층에서 패킷의 데이터 부분이 되는 것은 아래와 같습니다.
60 81 85 61 10 1A 04 ....
....  0A 43 08 19 59 07 17
					

참조

ASN.1에 대한 자세한 내용은 ITU-T 권고안 X.680부터 683까지 참조하십시오.
BER에 대한 자세한 내용은 권고안 자체(ITU-T 권고안 X.690 또는 X.691)를 참조하십시오.

자세한 내용은 ITU-T Study Group 17 웹 페이지의 "ASN.1:1988에서 ASN.1:2002로 변경(Changing from ASN.1:1988 to ASN.1:2002)"을 읽으십시오.
http://www.itu.int/ITU-T/studygroups/com17/changing-ASN/




Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹에 참여하시기 바랍니다.

속성

기술 자료: 252648 - 마지막 검토: 2004년 9월 20일 월요일 - 수정: 5.0
본 문서의 정보는 다음의 제품에 적용됩니다.
  • Microsoft Exchange Server 5.5 Standard Edition
  • Microsoft Exchange 2000 Server Standard Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
키워드:?
kbhowto kbinfo KB252648

피드백 보내기

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com