�� ���� (3� ��)

  1. ��: XDR (External Data Representation)� �� �� ���� � ��� ��� �� ��� �� ��� ��� ����, � ��� ��� ��� ��� ��� �� ��� �� ��� ���� ����.
  2. ��: RPC (Remote Procedure Call)� �� �� ����� ��� ��� �� ��� � �� ��� ��� ���� ��, ���� ���� ��� �� ��� ��.
  3. ��: XDR� � ��� ��� ��� ���� ���� ��� ��� �����, �� ���� ���� ��� OSI ��� �� ��(Presentation Layer) ���� ���� ���� ���.

. �� � ��� (Context & Necessity)

  • ��: XDR (External Data Representation)� Sun Microsystems�� ��� ��� ��� ����, �� �� ���� ����(� ��� vs �� ���, �� �� �� �) �� ���� ��� � ���� �� ��� ���� �� �����. XDR� ��� ��� ����� ����, � ��� ��� ��� ���� ��� ���� ��� ��� ����.

  • ���: �� ���� ������ � ���� ���� �� ��� �� ��� ���� ���, �� �� �� �� �� ��� ���� ��� �� � ��� ��� �� �� �� ��� � ��� �� ��� �� ���� ���� ��� ����. XDR� ��� �� ��� ��� ����, RPC� �� �� ����� ��� ��� �� ��� � �� ��� ���� ��.

  • � ��: XDR� �� ����� �� ���� ��. ���� ��� �� ��� ������(�� ���, � ��� �), ���� �� ��� �� ��� ��� ��� � ��� ����� �� ��.

  • �� �� � �� ��:

    1. �� RPC� �� �� ��: 1980�� � Sun RPC �� �, �� �� ������ �� ���� ��� � ���� ��� ��� ��� �� ��� �� ��� �����.
    2. XDR ��� (1980�� ��): Sun� � ��� ���� �� XDR� �����, �� RFC 1014� ��������
    3. �� � ��: 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 �� ��� ��

�� ��XDRJSONProtocol Buffers
��� ������, � ������ ������, ��� ���
��� ������ (��� ���� ��)���� (.proto ��)
������ (�� ��� ���)�� (� �� �� ��)�� (�� �� ��)
���� ���� (��� ��)�� (�� ���� ��)
� ���legacy RPC, NFS� API, �� ����� RPC, �� ��

XDR� �� RPC ����� ��� ��� ���, � modern� ��� ���� �� � �� ���� ��. �� ��� �� ���� JSON�� Protocol Buffers� � ����. ��� XDR� ���� � ��� �� ��� �� ��� ��� � ���� ������ ��� ��� ��.


. �� �� � ���� ��

�� ����

  1. ���� -- ��� NFS v2/v3 ����� ��� ��: ��� NFS v2/v3 �� ���� XDR� ���� ������ ���� �����. ��� �� ��� ��� � XDR ���/��� ��� ��� ���� ���, ��� ������� ���� �� �� �� ��� ����. ��� RFC 1014 ��� ��� ���, ��� �� ��� ��� ����� ��.

  2. ���� -- �� �� ������ ��� ��� ��: �� ���� �� �� ������ �� �� ����� �� �� ��� ���� ��. XDR� ���� �� ���� �����, �� ���� �� �� ��� ��� ��� �� ��� ���� �� ��� � ��. �� ���� �� � ��� � �� �� ��� ���� �� ���� ���� �� ��.

  3. ���� -- ���� ����� ��� ��: ��� ����� �� ���� ���� �� �� ��� ����� �����, �� ��� � ��� ����� ��� � ��. 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� �� ��

  1. XDR� �� �� �� ��� ���� ��� � �� �� �� ���� ��. ��� �� � everybody� �� ���� ���� ���� ��.
  2. ��� ���� ��� ��� ��� ������ ��� ��� �� � ���, XDR��� �� ��� ��� �� ��� ��� � ��.
  3. ��� ����� ������ ��� ���� �, XDR��� �� ��� �� ���� �� �� �� ���.

(End of file - total lines will be around 300)