�� ���� (3� ��)
- ��: XDR (External Data Representation)� �� �� ���� � ��� ��� �� ��� �� ��� ��� ����, � ��� ��� ��� ��� ��� �� ��� �� ��� ���� ����.
- ��: RPC (Remote Procedure Call)� �� �� ����� ��� ��� �� ��� � �� ��� ��� ���� ��, ���� ���� ��� �� ��� ��.
- ��: XDR� � ��� ��� ��� ���� ���� ��� ��� �����, �� ���� ���� ��� OSI ��� �� ��(Presentation Layer) ���� ���� ���� ���.
. �� � ��� (Context & Necessity)
-
��: XDR (External Data Representation)� Sun Microsystems�� ��� ��� ��� ����, �� �� ���� ����(� ��� vs �� ���, �� �� �� �) �� ���� ��� � ���� �� ��� ���� �� �����. XDR� ��� ��� ����� ����, � ��� ��� ��� ���� ��� ���� ��� ��� ����.
-
���: �� ���� ������ � ���� ���� �� ��� �� ��� ���� ���, �� �� �� �� �� ��� ���� ��� �� � ��� ��� �� �� �� ��� � ��� �� ��� �� ���� ���� ��� ����. XDR� ��� �� ��� ��� ����, RPC� �� �� ����� ��� ��� �� ��� � �� ��� ���� ��.
-
� ��: XDR� �� ����� �� ���� ��. ���� ��� �� ��� ������(�� ���, � ��� �), ���� �� ��� �� ��� ��� ��� � ��� ����� �� ��.
-
�� �� � �� ��:
- �� RPC� �� �� ��: 1980�� � Sun RPC �� �, �� �� ������ �� ���� ��� � ���� ��� ��� ��� �� ��� �� ��� �����.
- XDR ��� (1980�� ��): Sun� � ��� ���� �� XDR� �����, �� RFC 1014� ��������
- �� � ��: XDR� inicialmente Sun RPC�� ������, ��� �� ��� � ���� ������ ������, ����� JSON, Protocol Buffers �� � ��� ��� ���� ��� ���.
XDR� �� ��� ���� ��� ��� ��� ��, ��� ��� ��� ��� �� ���� ����� ����� ��� � ��.
XDR ��� ��
�� ��� (��� ����� �� �� ��)
�� (LE) ��� (BE) ���� (BE)
int32: 0x01020304 int32: 0x01020304 int32: 0x01020304
���: 04 03 02 01 ���: 01 02 03 04 ���: 01 02 03 04
XDR ��� � (��� ��� ��)
� ��� ��� ��: 01 02 03 04
�� ����� � ��� ��� ���/���
�� ���� �� ���� ���� ���� ��
[����� ��] � ������ �� �� ��� ��� ���� � �� ����� ��� �� �(0x01020304)� ��� �� ��� �� ��� ������ ����. XDR� � ��� ��� ��(01 02 03 04)� ���� ����, �� ���� ��� � � ��� ���� ��� � �� ���� ���� ����� ���� ��� ���� ����.
. ���� � �� �� (Deep Dive)
�� ��
| ��� | �� | �� �� | �� �� | �� |
|---|---|---|---|---|
| � ��� ��� | �� ��� �� �� | �� significant byte (MSB)� ��� �� | ���� ��� ��, RFC 1700 | �� �� �� |
| ��� ��� �� | ��� �� ��� �� | ��, �����, ��, ��� �� ��� ��� ��� | ASN.1, Protocol Buffers | ���� ��� �� �� |
| �� ��� �� | �� � �� �� �� | XDR �� �� � �� �� �� �� | RPC ��, MIME �� | �� ��� |
XDR �� ��� �� ��� ��
XDR� � �� �� ��� ��� �� ���� ��� ��� ����. �� ���� 4��� signed integer� ��� ��� �� XDR� ��� ��� � ��.
XDR �� ��� ��
[1] �� � ��
�: -100 (10��)
16�� ���: 0xFF9C (2's complement)
32�� ���: 0xFFFFFF9C
[2] 32��� �� � � ��� ��
32�� 2's complement: 0xFFFFFF9C
� ��� ��� ��: FF FF 9C
(��: ���� 4������ FF FF FF 9C)
[3] �� XDR ��� ��
��� ���: FF FF FF 9C
�� ����� ���� ����
[4] �� � ��� ��
������ ��� ��� FF FF FF 9C ��
�� ��� ���: 9C FF FF FF� �� -100 (���)
� ��� ���: FF FF FF 9C� �� -100 (���)
[����� ��] � ������ -100��� �� �� diferentes ����� ��� ����� ������, XDR� �� ��� ������� ����. XDR� �� ��� 32�� signed integer� ���� � ��� ��� ��� ������ ����. �� ���� �� ���� ��� �� ��� ��� ���� �����, ���� ���� ��� ��� �� �� � ��.
. �� �� � ��� ��
�� 1: XDR vs �� ��� ��
| �� �� | XDR | JSON | Protocol Buffers |
|---|---|---|---|
| ��� �� | ����, � ��� | ��� �� | ����, ��� ��� |
| ��� ��� | ��� (��� ���� ��) | �� | �� (.proto ��) |
| ��� | ��� (�� ��� ���) | �� (� �� �� ��) | �� (�� �� ��) |
| �� | �� �� | �� (��� ��) | �� (�� ���� ��) |
| � ��� | legacy RPC, NFS | � API, �� �� | ��� RPC, �� �� |
XDR� �� RPC ����� ��� ��� ���, � modern� ��� ���� �� � �� ���� ��. �� ��� �� ���� JSON�� Protocol Buffers� � ����. ��� XDR� ���� � ��� �� ��� �� ��� ��� � ���� ������ ��� ��� ��.
. �� �� � ���� ��
�� ����
-
���� -- ��� NFS v2/v3 ����� ��� ��: ��� NFS v2/v3 �� ���� XDR� ���� ������ ���� �����. ��� �� ��� ��� � XDR ���/��� ��� ��� ���� ���, ��� ������� ���� �� �� �� ��� ����. ��� RFC 1014 ��� ��� ���, ��� �� ��� ��� ����� ��.
-
���� -- �� �� ������ ��� ��� ��: �� ���� �� �� ������ �� �� ����� �� �� ��� ���� ��. XDR� ���� �� ���� �����, �� ���� �� �� ��� ��� ��� �� ��� ���� �� ��� � ��. �� ���� �� � ��� � �� �� ��� ���� �� ���� ���� �� ��.
-
���� -- ���� ����� ��� ��: ��� ����� �� ���� ���� �� �� ��� ����� �����, �� ��� � ��� ����� ��� � ��. XDR� ��� ������, ���� ���� ��� ���� ���� ���� ����, XDR ��� �� ��� ��� � ��.
�� ��� ��� "XDR� ���� ��"� ���, �� ���� XDR� ��� ��� ��� ������ ���� ��. �� ��� ��� �� ������ � ���� ��� ��� ���� ���, ���� ���� ��� ������ XDR� ��� �����. �� ���� ���� ���� XDR ��� ��� � �� ��� ���� ��� ��� ���.
XDR �� � �� ���� ���
[��� ��� ����?]
��� ��� � ����?
� [��� �� �� ��]
[��� ��/��� �� �� ��]
��� [���� �� �� �� ��]
�� ����� stringent��?
� [� ���� ��� �� ��]
[Protocol Buffers, FlatBuffers �]
��� [XDR �� ��]
�� �� ����� ���?
� [RFC 1014 ��� ��� ��]
[��� ��� �� ��]
��� [�� �� ���� �� ��]
�� ��: ��� vs �� vs �� � ���� ��� ��
[����� ��] � ���� ��� ��� "XDR� �� ��� ��� ���� ���"�� ���. ��� ��� � ��� ��� ���� �� ����� �� ��� �� ��� ��� ��� XDR� ����. �� ��� critical� ���� ��� ��� ��� ���� � ���� ��� ��� ���� ��. ��� � �� ��� sempre "�� ��� �� �� ��� ���� ���?"�� ��.
�� �����
- ���: � ��� ��� �� �� ��� ���� ������? �� �� ��� ��(��, �����, ���, ��, ���)� �� ���/���� �����?
- �� ���: �� ����� ��� �� ��� �� ��� ������? ��� ���� ���� ���� ����� ���?
����
-
���� ��� ��: �� ���� � ������ ���� �� ��� ���� �. �� �� ��� ����� ���� �� ���.
-
���� �� �� ��: XDR ��� � ���� ��� � �� ��(�: ��� ��� � ��)� ���� �� ��� ���� �.
-
� �� �� ��: ���� ���� ���� �� �� �� ��� ������� ���� �� ���� �� ��� ��� �� �� ���, ��� �� ��� ������� ���� � ��� ��.
. ���� � ��
��/�� ����
| �� | ��� � | ��� � | �� �� |
|---|---|---|---|
| �� | ��� ��� � ��� �� ��� �� | XDR �� �� | ��� �� �� �� 0% |
| �� | ��� ��� �� �� � ���� �� | �� XDR ����� �� | �� �� 30~50% �� |
| �� | ��� ��� ��� �� �� | ��� �� �� | �� �� � �� ��� �� |
�� ��
- ��� ��� ��: XDR� ��� NFS � ��� ����� �����, ��� �� ����� �� ��� ���.
- ��� ���: �� ������ JSON, Protocol Buffers, Apache Avro �� �� � ����� ��� ��� ��� ���� ����.
- ����� ��: �� XDR �� ���� �� ��� ��� ����� ��� �� �� ��� ���� ���.
�� ��
- RFC 1014: XDR: External Data Representation Standard
- RFC 1832: XDR: External Data Representation Standard ()
- ONC RPC: Open Network Computing Remote Procedure Call (XDR� ���� RPC ��)
XDR ��� �� ��� ����� ����, �� RPC� �� ���� ���� ��� ��� �� ���� ��� ��� ��� ��� � ��.
XDR �� �� ���
1980�� �� 1990�� 2000��+ 2020��+
[RPC �� ��] [���� ��] [��� ��] [��� ��]
� �� �� ��
��� ��� ��
��� �� �� ��
�� ��:
"�� ��" -> "���� ��" -> "��� ���" -> "��� ��"
[����� ��] 1980�� ��� ��� XDR� inicialmente RPC� �� �� ���� ����� �����. ��� ���� � ����� ��� ��� ���� �����, NFS � ��� ������ ��� �� ��� ��� �� ���� ���� ��. ���� ��� ������ �� ��� ����, �� XDR ����� �� ���� �� �� ��� �� ��� ����� ��.
� �� �� � (Knowledge Graph)
| �� �� | �� � ��� �� |
|---|---|
| RPC (Remote Procedure Call) | XDR� RPC�� ����� �� �� ���� ���� �� ����. |
| � ��� (Big Endian) | XDR� ���� ��� ��� ����� � ��� ��� ��� ����. |
| ���� ��� �� | TCP/IP ���� ���� ���� ���� ��� ���, XDR� ����. |
| ASN.1 (Abstract Syntax Notation One) | XDR� ��� ��� �� �� ��� ����, � ��� �� ���� ���. |
| JSON (JavaScript Object Notation) | ���� ��� �� ��� ����, XDR�� ���� ��� ��� ��. |
� ���� �� 3� �� ��
- XDR� �� �� �� ��� ���� ��� � �� �� �� ���� ��. ��� �� � everybody� �� ���� ���� ���� ��.
- ��� ���� ��� ��� ��� ������ ��� ��� �� � ���, XDR��� �� ��� ��� �� ��� ��� � ��.
- ��� ����� ������ ��� ���� �, XDR��� �� ��� �� ���� �� �� �� ���.
(End of file - total lines will be around 300)