External Data Representation
Appearance
eXternal Data Representation (XDR) is an IETF standard from 1995 of the presentation layer in the OSI model. XDR allows data to be wrapped in an architecture independent manner so data can be transferred between heterogeneous 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 that is portable between different operating systems and is also independent of the transport layer.
The XDR data format is in use by many systems, including:
- Open Network Computing Remote Procedure Call
- EMC's NetWorker backup software (in its newer releases)
- NetCDF (a scientific data format)
- The R language and environment for statistical computing
- High Level Architecture (simulation)
- The SpiderMonkey JavaScript engine, to serialize/deserialize compiled JavaScript code
- The Ganglia distributed monitoring system
- The sFlow network monitoring standard
XDR data types
- boolean
- char (8 bit integer/character)
- int (32 bit integer)
- hyper (64 bit integer)
- float
- double
- enumeration
- structure
- string
- fixed length array
- variable length array
- union
- opaque data
- Optional data. It is notated similarly to C pointers, but is represented as the data type "pointed to" with a boolean "present or not" flag.
See also
- Structured Data eXchange Format (SDXF).
- Multipurpose Internet Mail Extensions (MIME) used on top of the SMTP and HTTP application protocols
External links
The XDR standard exists in three different versions in the following RFC's...
- RFC 4506 2006 Probably the current version.
- RFC 18321995 Probably the more widely implemented version.
- RFC 1014 1987 Probably the original version.
- jsxdrapi.c, the main source file of SpiderMonkey that uses XDR
- http://www.cs.rpi.edu/~hollingd/netprog/notes/xdr/xdr.pdf