外部数据表示法(External Data Representation,縮寫為XDR)是一种标准数据序列化格式,主要用于计算机网络协议。在OSI模型的表示层中实现。XDR允许把数据包装在独立于介质的结构中,使得数据可以在异构的计算机系统之间传输。从本地表示转换到XDR称为编码,从XDR转换到本地表示称为解码。XDR使用软件来完成变换,所以在不同的操作系统中可以灵活的运用,同样的,XDR独立于传输层。
XDR使用4字节为基本单位,以大端字节序序列化;更小的数据类型在编码后仍占据4字节。变长类型比如字符串和不透明类型被填充为整体上可被4字节整除。浮点数用IEEE 754格式表示。
历史和应用
XDR在1980年代中期由Sun Microsystems开发,并在1987年首次广泛发表[1],在1995年成为IETF標準協定。
XDR数据格式用于了很多系统,包括:
XDR 数据类型
XDR定义了以下数据类型:
- 布尔
- int – 32-bit整数,unsigned int – 无符号32-bit整数
- hyper – 64-bit整数,unsigned hyper – 无符号64-bit整数
- IEEE浮点数,IEEE 双精度浮点数,四精度浮点数 (新出现在RFC1832)
- 枚举,结构,字符串
- 定长数组,变长数组
- 联合 – 可辨别的联合
- 定长不透明数据,变长不透明数据
- void – 零字节量
- optional – 可选数据的记号类似于C指针,但是表示为“指向”布尔“存在与否”标记的数据类型。语义上这是可选类型。
参见
引用
外部链接
XDR标准存在三个不同版本的RFC中: