맨위로가기

외부 데이터 표현

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

외부 데이터 표현(XDR)은 1980년대 썬 마이크로시스템즈에서 개발되어 1987년에 공개된 데이터 형식이다. XDR은 네트워크 파일 시스템, ZFS, ONC RPC 등 다양한 시스템에서 사용되며, 정수, 부동 소수점, 문자열 등을 일관된 형식으로 정규화하여 표현한다. rpcgen 스텁 컴파일러를 통해 정렬화/비정렬화 프로그램을 자동 생성하며, 불리언, 정수, 부동 소수점, 문자열, 배열 등 다양한 데이터 타입을 지원한다.

더 읽어볼만한 페이지

  • 네트워크 표준 - RS-232
    RS-232는 데이터 단말 장치와 데이터 회선 종단 장치 간 직렬 통신을 위한 표준 인터페이스로, 터미널-모뎀 연결을 위해 개발되었으나 현재는 일부 산업 장비 및 시스템 콘솔 포트 등에 사용되며 전기적 신호 특성, 인터페이스 기계적 특성, 회로 기능 등을 정의하고 25핀 또는 9핀 D-서브미니어처 커넥터를 사용한다.
  • 네트워크 표준 - WirelessHD
    WirelessHD는 60 GHz 대역을 사용하는 무선 통신 규격으로, 고화질 비디오, 오디오, 데이터를 압축 없이 전송하며, 빔 형성을 통해 가시선 제약을 완화하고 최대 10미터 거리에서 작동하도록 설계되었다.
  • 데이터 모델링 언어 - 임베디드 SQL
    임베디드 SQL은 호스트 프로그래밍 언어 내에 SQL 문을 삽입하여 데이터베이스와 상호 작용하는 기술로, 데이터베이스 액세스를 표준화하지만 보안 취약점과 이식성 저하의 단점도 가진다.
  • 데이터 모델링 언어 - 데이터 정의 언어
    데이터 정의 언어(DDL)는 SQL에서 테이블, 열, 데이터 형식 등을 정의하고 데이터베이스 스키마를 수정하는 데 사용되는 명령어 집합이며, `CREATE`, `DROP`, `ALTER`, `TRUNCATE` 등의 명령어를 포함하고 데이터 구조를 정의하는 다양한 형식 언어들을 포괄하는 의미로도 사용된다.
  • 데이터 직렬화 포맷 - XML
    XML은 태그 중첩 방식 구문을 사용하는 범용 언어로서, 인터넷을 통한 구조화된 문서 및 데이터 공유를 용이하게 하고, 웰 폼 및 유효 XML 문서 개념을 통해 구문 정확성을 검사하며, 데이터 교환 등 다양한 분야에서 널리 사용된다.
  • 데이터 직렬화 포맷 - S-표현식
    S-표현식은 Lisp 구문에서 소스 코드와 데이터를 표현하는 기본 구조로, 원자와 `(x . y)` 형태의 표현식으로 정의되며, 이진 트리 표현, 다양한 데이터 형식 지원, 그리고 여러 분야에서 활용된다.
외부 데이터 표현

2. 역사

XDR은 1980년대 중반 썬 마이크로시스템즈에서 개발되었으며, 1987년에 처음으로 널리 공개되었다.[1] 1995년에 IETF 인터넷 표준이 되었다.

1987년에 썬 마이크로시스템즈는 RFC1014로, 1995년에는 RFC1832로 오픈 네트워크 컴퓨팅 원격 프로시저 호출(ONC RPC)과 함께 표준화했으며, 현재는 2006년의 RFC4506이 최신이다. (RFC4506은 RFC1832에서 기술적인 변경 사항이 없다)

3. 특징

DCE/RPC에서 사용되는 [http://pubs.opengroup.org/onlinepubs/9629399/chap14.htm DCE/NDR] (및 MS RPC/NDR)에 비해, 항상 통일된 표현 형식으로 정규화하는 점이 특징이다.


  • 정수(32/64비트)는 네트워크 바이트 순서(빅 엔디안)로 정규화된다. (DCE/NDR에서는 빅 엔디안과 리틀 엔디안의 두 형식을 모두 지원한다.)
  • 부동 소수점 수 (32/64/128비트)는 IEEE 형식으로 정규화된다. (DCE/NDR에서는 IEEE/VAX/Cray/IBM 형식이다.)
  • 문자열은 ASCII로 정규화된다. (DCE/NDR에서는 ASCII/EBCDIC의 2 형식, MS RPC/NDR에서는 UTF16도 지원한다.)
  • 32비트 단위로 정렬되도록 필요에 따라 패딩된다.


위와 같은 특징으로 인해, 개별 환경에서는 내부 형식과 통일된 정규화 형식 간의 변환 루틴만 준비하면 된다. (DCE/NDR에서는 각 지원 형식과 내부 형식 간의 변환 루틴이 필요하다.)

그 반면, 머신의 내부 형식과 정규화 형식이 다를 경우, 동일한 아키텍처 간의 데이터 교환에서도 항상 변환 오버헤드가 발생한다. 예를 들어 IA-32/64계(리틀 엔디안) 간의 통신에서는 항상 엔디안 변환이 발생한다. (Sun Workstation 간의 통신의 경우, 빅 엔디안이므로 엔디안 변환은 발생하지 않는다.) rpcgen이라는 스텁 컴파일러를 사용하면, 정렬화/비정렬화하는 프로그램이 자동으로 생성된다.

4. XDR 데이터 타입


  • 불리언
  • int – 32비트 정수
  • unsigned int – 부호 없는 32비트 정수
  • hyper – 64비트 정수
  • unsigned hyper – 부호 없는 64비트 정수
  • IEEE 부동 소수점
  • IEEE double
  • quadruple (RFC1832에서 새로 추가)
  • 열거
  • 구조체
  • 문자열
  • 고정 길이 배열
  • 가변 길이 배열
  • 유니온 – 차별적 유니온
  • 고정 길이 불투명 데이터
  • 가변 길이 불투명 데이터
  • void – 0바이트 양
  • 선택적 – 선택적 데이터는 C 포인터와 유사하게 표기되지만, "가리키는" 데이터 유형과 "존재 여부" 플래그인 불리언으로 표현됩니다. 의미론적으로 이것은 옵션 유형입니다.

5. XDR을 이용하는 프로토콜 및 시스템

XDR 데이터 형식은 다음과 같은 많은 시스템에서 사용된다.

프로토콜 및 시스템설명
네트워크 파일 시스템(프로토콜)
ZFS파일 시스템
NDMP네트워크 데이터 관리 프로토콜
오픈 네트워크 컴퓨팅 원격 프로시저 호출
레가토 넷워커백업 소프트웨어 (후에 EMC에 매각)
NetCDF과학 데이터 형식
R 언어 및 통계 컴퓨팅 환경
HTTP-NG이진 와이어 프로토콜
스파이더몽키자바스크립트 엔진, 컴파일된 자바스크립트 코드 직렬화/역직렬화
갱글리아분산 모니터링 시스템
sFlow네트워크 모니터링 표준
libvirt가상화 라이브러리, API 및 UI
파이어버드원격 이진 와이어 프로토콜용
스텔라결제 네트워크




본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com