外部數據表示法
外部數據表示法(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數據格式用於了很多系統,包括:
- 網絡文件系統
- ZFS文件系統
- NDMP網絡數據管理協議
- 開放網絡計算遠程過程調用
- Legato NetWorker備份軟件
- NetCDF (一種科學數據格式)
- R語言
- HTTP-NG(頁面存檔備份,存於互聯網檔案館)二進制線路協議
- SpiderMonkey JavaScript引擎,用來序列化/解序列化編譯的JavaScript代碼
- Ganglia分佈式監控系統
- sFlow網絡監控標準
- libvirt虛擬化庫,API和UI
- Firebird (數據庫)用作遠程二進制線路協議
- Stellar支付網絡
XDR 數據類型
XDR定義了以下數據類型:
參見
引用
- ^ Sun Microsystems. XDR: External Data Representation Standard. RFC 1014. Network Working Group. 1987 [July 11, 2011]. (原始內容存檔於2019-03-21).
外部連結
XDR標準存在三個不同版本的RFC中:
- RFC 4506 2006版本,這個文檔對RFC 1832沒有技術變更,出版目的是提示IANA的關注,補充安全考慮,並區分規範的和非正式的引用。
- RFC 1832 1995版本。向RFC 1014增加四倍精度浮點數。
- 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)