外部数据表示法

外部数据表示法(,縮寫為XDR)是一种标准数据序列化格式,主要用于计算机网络协议。在OSI模型的表示层中实现。XDR允许把数据包装在独立于介质的结构中,使得数据可以在异构的计算机系统之间传输。从本地表示转换到XDR称为编码,从XDR转换到本地表示称为解码。XDR使用软件来完成变换,所以在不同的操作系统中可以灵活的运用,同样的,XDR独立于传输层。

XDR使用4字节为基本单位,以大端字节序序列化;更小的数据类型在编码后仍占据4字节。变长类型比如字符串和不透明类型被填充为整体上可被4字节整除。浮点数用IEEE 754格式表示。

历史和应用
XDR在1980年代中期由Sun Microsystems开发,并在1987年首次广泛发表,在1995年成为IETF標準協定。

XDR数据格式用于了很多系统,包括:

  • 网络文件系统
  • ZFS文件系统
  • NDMP网络数据管理协议
  • 开放网络计算远程过程调用
  • Legato NetWorker备份软件
  • NetCDF (一种科学数据格式)
  • R语言
  • [http://www.w3.org/Protocols/HTTP-NG/http-ng-status.html HTTP-NG]二进制线路协议
  • SpiderMonkey JavaScript引擎,用来序列化/解序列化编译的JavaScript代码
  • Ganglia分布式监控系统
  • sFlow网络监控标准
  • libvirt虚拟化库,API和UI
  • Firebird (数据库)用作远程二进制线路协议
  • Stellar支付网络

XDR 数据类型
XDR定义了以下数据类型:

  • 布尔
  • int – 32-bit整数,unsigned int – 无符号32-bit整数
  • hyper – 64-bit整数,unsigned hyper – 无符号64-bit整数
  • IEEE浮点数,IEEE 双精度浮点数,四精度浮点数 (新出现在RFC1832)
  • 枚举,结构,字符串
  • 定长数组,变长数组
  • 联合 – 可辨别的联合
  • 定长不透明数据,变长不透明数据
  • void – 零字节量
  • optional – 可选数据的记号类似于C指针,但是表示为“指向”布尔“存在与否”标记的数据类型。语义上这是可选类型。

参见

  • 结构化数据交换格式(SDXF)
  • 远程过程调用
  • 抽象语法记号一
  • 数据格式描述语言
  • 数据序列化格式比较

引用
外部链接
XDR标准存在三个不同版本的RFC中:

评论 (0)

  • 还没有评论,来抢沙发吧。