정보기술에서 헤더란, 일반적으로 어떤 것의 판에 나오는 것으로서, 보통 어떤 단위들이 표준적으로 반복되는 부분에 사용됨. 헤더는 각각 고유의 값을 가지고 있는 여러 개의 필드로 구성될 수 있으며, 일반적인 용례는 아래와 같음
1. 문서에서 헤더는 각 페이지의 맨 위에 출력되도록 만든 텍스트나 이미지 등의 조합임
2. 전자우편에서 헤더는 발신자, 수신인 주소, 수신자, 메시지 우선 순위 등이 적힌 메시지의 한 부분을 말함
3. 컴퓨터 파일에서 헤더는 파일의 본 내용에 앞서 맨 앞에 붙어 있어서, 내용의 길이라든가 파일의 다른 특성들을 기술하고 있는 필드임
4. 네트웍 전송 단위에서 해더는 데이터나 제어신호 등에 앞서서 파일 또는 전송단위에 대해 그것의 길이, 논리적이나 물리적으로 그것과 관계있는 다른 파일이나 전송단위의 존재여부 등을 나타냄
출처 : [텀즈] http://terms.co.kr/header.htm
이 블로그 검색
2012년 4월 22일 일요일
2012년 4월 4일 수요일
인코딩과 디코딩, 코덱
인코딩
- 아날로그 신로를 디지털 신호로 변환
- 10진수나 알파벳 문자와 같은 정보를 코드화된 형태로 변환시키는 것. 즉, 2진 코드로 변환해주는 것
디코딩
- 디지털 신호를 아날로그로 변환
- 2진수 등의 코드화 된 정보를 10진수와 같은 비코드화 된 형태로 변환시키는 것
메시지 오브젝트 표현 표준은 ASN.1 이지만, ASN.1은 추상적인 자료 표현 방식이므로 통신 채털로 ASN.1 메시지를 전송할 때는 바이너리 데이터로 변환하여야 하는데 ASN.1의 기본 인코딩 방식은 BER임. BER은 모든 ASN.1 메시지, 구조체 및 변수를 Tag-Length-Value Triple로 인코딩 한다.
즉, BER로 인코딩 된 데이터는 Tag-Length-Value 형태로 구성된다. 예를 들어 OID 1.3.6.1.2.1.1.1의 BER 인코딩 결과는 06 07 2B 06 01 02 01 01 01 이다. 06은 Universal Class Object Identifier의 Tag이다. 07은 Length Byte이다. 뒤이은 뒤이은 옥텟 열의 길이가 7바이트이기 때문이다. OID의 첫번째 바이트와 두번째 바이트는 40a+b의 규칙에 의해 1바이트로 인코딩되므로 OID 1.3.6.1.2.1.1.1은 옥텟열 2B 06 01 02 01 01 01가 되며 길이는 7바이트이다.
- 아날로그 신로를 디지털 신호로 변환
- 10진수나 알파벳 문자와 같은 정보를 코드화된 형태로 변환시키는 것. 즉, 2진 코드로 변환해주는 것
디코딩
- 디지털 신호를 아날로그로 변환
- 2진수 등의 코드화 된 정보를 10진수와 같은 비코드화 된 형태로 변환시키는 것
메시지 오브젝트 표현 표준은 ASN.1 이지만, ASN.1은 추상적인 자료 표현 방식이므로 통신 채털로 ASN.1 메시지를 전송할 때는 바이너리 데이터로 변환하여야 하는데 ASN.1의 기본 인코딩 방식은 BER임. BER은 모든 ASN.1 메시지, 구조체 및 변수를 Tag-Length-Value Triple로 인코딩 한다.
즉, BER로 인코딩 된 데이터는 Tag-Length-Value 형태로 구성된다. 예를 들어 OID 1.3.6.1.2.1.1.1의 BER 인코딩 결과는 06 07 2B 06 01 02 01 01 01 이다. 06은 Universal Class Object Identifier의 Tag이다. 07은 Length Byte이다. 뒤이은 뒤이은 옥텟 열의 길이가 7바이트이기 때문이다. OID의 첫번째 바이트와 두번째 바이트는 40a+b의 규칙에 의해 1바이트로 인코딩되므로 OID 1.3.6.1.2.1.1.1은 옥텟열 2B 06 01 02 01 01 01가 되며 길이는 7바이트이다.
그런데 BER은 재귀적으로 적용되므로 Value 필드는 또다시 Tag-Length-Value Triple로
인코딩된다. Nesting의 깊이는 제한이 없다. 아래의 예제는 BER 인코딩된 SNMP 메시지의 일부이다. 메시지를 분석해 보면 3단계로
네스팅되어 재귀적인 TLV구조로 인코딩 되어 있음을 알 수 있다.
30 1E ; Sequence (30 Bytes)
| 02 01 00 ; Integer (2 Bytes)
| 04 06 70 75 62 6C 69 63 ; Octet string (6 Bytes)
| 31 11 ; SET (17 Bytes)
| | 02 01 01 ; Integer (2 Bytes)
| | 30 0C ; Sequence (12 Bytes)
| | | 06 07 2B 06 01 02 01 01 01 ; OBJECT_ID (7 Bytes)
| | | 02 01 01 ; Integer (1 Byte)
| 02 01 00 ; Integer (2 Bytes)
| 04 06 70 75 62 6C 69 63 ; Octet string (6 Bytes)
| 31 11 ; SET (17 Bytes)
| | 02 01 01 ; Integer (2 Bytes)
| | 30 0C ; Sequence (12 Bytes)
| | | 06 07 2B 06 01 02 01 01 01 ; OBJECT_ID (7 Bytes)
| | | 02 01 01 ; Integer (1 Byte)
피드 구독하기:
글 (Atom)