External Data Representation

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search

External Data Representation (XDR) is a technical standard format for data serialization, for uses such as computer network protocols. It allows data to be transferred between different kinds of computer systems. Converting from the local representation to XDR is called encoding. Converting from XDR to the local representation is called decoding. XDR is implemented as a software library of functions which is portable between different operating systems and is also independent of the transport layer.

XDR uses a base unit of 4 bytes, 32 bits, serialized in big-endian order; smaller data types still occupy four bytes each after encoding. Variable-length types such as string and opaque are padded to a total divisible by four bytes. Floating-point numbers are represented in IEEE 754 format.

History

[edit | edit source]

XDR was developed in the mid 1980s at Sun Microsystems, and first widely published in 1987.[2] XDR became an Internet Engineering Task Force (IETF) Internet Standard in 1995.

The XDR data format is in use by many systems, including:

XDR data types

[edit | edit source]

See also

[edit | edit source]

References

[edit | edit source]
  1. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
  2. ^ Lua error in Module:Citation/CS1/Configuration at line 2172: attempt to index field '?' (a nil value).
[edit | edit source]

The XDR standard exists in three different versions in the following RFCs:

  • RFC 4506 2006 This document makes no technical changes to RFC 1832 and is published for the purposes of noting IANA considerations, augmenting security considerations, and distinguishing normative from informative references.
  • RFC 1832 1995 version. Added quadruple precision floating point to RFC 1014.
  • RFC 1014 1987 version.
  • Cisco's XDR: Technical Notes
  • jsxdrapi.c, the main source file of SpiderMonkey that uses XDR
  • protocol.cpp main xdr source file used in Firebird remote protocol
  • The GNU Libc implementation of rpcgen, the XDR parser.
  • Mu Dynamics Research Labs racc grammar for XDR
  • IvmaiAsn ASN1/ECN/XDR Tools (a collection of tools containing an XDR/RPC-to-ASN.1 converter)