#1
April 6th, 2017, 11:48 AM
| |||
| |||
DCE RPC Header Format
Hi I would like to have information about DCE/RPC as well as the details of the RPC PDU Encodings including header Encodings?
|
#2
April 6th, 2017, 01:47 PM
| |||
| |||
Re: DCE RPC Header Format
DCE/RPC, another way to say "Conveyed Computing Environment/Remote Procedure Calls", is the remote method call framework created for the Distributed Computing Environment (DCE). This framework permits developers to compose circulated programming as though it were all chipping away at a similar PC, without worrying about the hidden system code. DCE/RPC was charged by the Open Software Foundation in a "Demand for Technology" (1993 David Chappell).[when?] One of the key organizations that contributed was Apollo Computer, who acquired NCA - "Arrange Computing Architecture" which moved toward becoming Network Computing System (NCS) and after that a noteworthy piece of DCE/RPC itself. The naming tradition for transports that can be outlined (as compositional modules) and afterward made accessible to DCE/RPC echoes these starting points, e.g. ncacn_np (SMB Named Pipes transport); ncacn_tcp (DCE/RPC over TCP/IP) and ncacn_http to name a modest number. RPC PDU Encodings This part determines the encodings of the Protocol Data Units (PDUs) utilized by the connectionless and association arranged RPC conventions. The main area gives regular data to the two conventions. Resulting areas give connectionless and association arranged convention particular data. Non specific PDU Structure A RPC PDU contains up to three sections: A PDU header that contains convention control data. A header is available in all PDUs. A PDU body that contains information. For instance, the body of a demand or reaction PDU contains information speaking to the info or yield parameters for an operation. A body is available just in a few sorts of PDUs. A confirmation verifier that contains information particular to a validation convention. For instance, a validation convention may guarantee the respectability of a parcel by means of incorporation of an encoded checksum in the verification verifier. The nearness of a validation verifier relies on upon the PDU sort and whether verification is being utilized. Encoding Conventions The encodings are given here as IDL information sort assertions. The real announcements of PDU information sorts are usage subordinate. The run-time framework regards PDU headers as byte streams that are encoded by the Network Data Representation (NDR, see Transfer Syntax NDR ) encoding rules. In PDUs containing stub information, the stub information might be encoded by any of the arranged introduction grammar. PDU-particular header fields distinguish the stub information introduction sentence structure. The run-time framework recognizes the introduction linguistic structure from the PDU-particular header fields and deciphers the stub information in like manner. So as to encode and translate the header fields, usage must bolster the accompanying subset of NDR: integers: 1, 2 and 4 octet unsigned octet string record constructor for the preceding types conformant array constructor. Header Encoding The connectionless header can be defined as a structure in Interface Definition Language (IDL): typedef struct { unsigned small rpc_vers = 4; /* RPC protocol major version (4 LSB only)*/ unsigned small ptype; /* Packet type (5 LSB only) */ unsigned small flags1; /* Packet flags */ unsigned small flags2; /* Packet flags */ byte drep[3]; /* Data representation format label */ unsigned small serial_hi; /* High byte of serial number */ uuid_t object; /* Object identifier */ uuid_t if_id; /* Interface identifier */ uuid_t act_id; /* Activity identifier */ unsigned long server_boot;/* Server boot time */ unsigned long if_vers; /* Interface version */ unsigned long seqnum; /* Sequence number */ unsigned short opnum; /* Operation number */ unsigned short ihint; /* Interface hint */ unsigned short ahint; /* Activity hint */ unsigned short len; /* Length of packet body */ unsigned short fragnum; /* Fragment number */ unsigned small auth_proto; /* Authentication protocol identifier*/ unsigned small serial_lo; /* Low byte of serial number */ } dc_rpc_cl_pkt_hdr_t; |
|