Dismiss
InnovationQ/InnovationQ Plus content will be updated on Sunday, June 25, 10am ET, with new patent and non-patent literature collections. Click here to learn more.
Browse Prior Art Database

XDR: External Data Representation standard (RFC1014)

IP.com Disclosure Number: IPCOM000001818D
Original Publication Date: 1987-Jun-01
Included in the Prior Art Database: 2000-Sep-12
Document File: 16 page(s) / 35K

Publishing Venue

Internet Society Requests For Comment (RFCs)

Related People

Sun Microsystems: AUTHOR

Abstract

XDR is a standard for the description and encoding of data. It is useful for transferring data between different computer architectures, and has been used to communicate data between such diverse machines as the SUN WORKSTATION*, VAX*, IBM-PC*, and Cray*. XDR fits into the ISO presentation layer, and is roughly analogous in purpose to X.409, ISO Abstract Syntax Notation. The major difference between these two is that XDR uses implicit typing, while X.409 uses explicit typing.

This text was extracted from a ASCII Text document.
This is the abbreviated version, containing approximately 8% of the total text.

Network Working Group Sun Microsystems, Inc.

Request for Comments: 1014 June 1987

XDR: External Data Representation Standard

STATUS OF THIS MEMO

This RFC describes a standard that Sun Microsystems, Inc., and others

are using, one we wish to propose for the Internet's consideration.

Distribution of this memo is unlimited.

1. INTRODUCTION

XDR is a standard for the description and encoding of data. It is

useful for transferring data between different computer

architectures, and has been used to communicate data between such

diverse machines as the SUN WORKSTATION*, VAX*, IBM-PC*, and Cray*.

XDR fits into the ISO presentation layer, and is roughly analogous in

purpose to X.409, ISO Abstract Syntax Notation. The major difference

between these two is that XDR uses implicit typing, while X.409 uses

explicit typing.

XDR uses a language to describe data formats. The language can only

be used only to describe data; it is not a programming language.

This language allows one to describe intricate data formats in a

concise manner. The alternative of using graphical representations

(itself an informal language) quickly becomes incomprehensible when

faced with complexity. The XDR language itself is similar to the C

language [1], just as Courier [4] is similar to Mesa. Protocols such

as Sun RPC (Remote Procedure Call) and the NFS* (Network File System)

use XDR to describe the format of their data.

The XDR standard makes the following assumption: that bytes (or

octets) are portable, where a byte is defined to be 8 bits of data.

A given hardware device should encode the bytes onto the various

media in such a way that other hardware devices may decode the bytes

without loss of meaning. For example, the Ethernet* standard

suggests that bytes be encoded in "little-endian" style [2], or least

significant bit first.

2. BASIC BLOCK SIZE

The representation of all items requires a multiple of four bytes (or

32 bits) of data. The bytes are numbered 0 through n-1. The bytes

are read or written to some byte stream such that byte m always

precedes byte m+1. If the n bytes needed to contain the data are not

a multiple of four, then the n bytes are followed by enough (0 to 3)

residual zero bytes, r, to make the total byte count a multiple of 4.

We include the familiar graphic box notation for illustration and

comparison. In most illustrations, each box (delimited by a plus

sign at the 4 corners and vertical bars and dashes) depicts a byte.

Ellipses (...) between boxes show zero or more additional bytes where

required.

+--------+--------+...+--------+--------+...+--------+

| byte 0 | byte 1 |...|byte n-1| 0 |...| 0 | BLOCK

+--------+--------+...+--------+--------+...+--------+

|<-----------n bytes---------->|<------r bytes------>|

|<-----------n+r (where (n+r) mod 4 = 0)>-----...