| #### Protocol Sequence A protocol sequence is a character string identifying the network protocols used to establish a relationship between a client and server. The protocol sequence contains a set of options that the RPC runtime must know about. The following options are in this set: · The RPC protocol used for communications (choices are ncacn and ncadg). · The format used in the network address supplied in the binding (choice is ip). · The transport protocol used for communications (choices are tcp and udp). Because only certain combinations of these options are valid (are useful for interoperation), RPC provides predefined strings that represent the valid combinations. RPC applications use only these strings. The following table contains predefined strings representing valid protocol sequences. In the descriptions NCA is an abbreviation of Network Computing Architecture.
Valid Protocol Sequences
Protocol Sequence | Description
ncacn_ip_tcp | NCA Connection over Internet Protocol: Transmission Control Protocol
ip or ncadg_ip_udp | NCA Datagram over Internet Protocol: User Datagram Protocol
A server application can use a particular protocol sequence only if the operating system software supports that protocol. A server chooses to accept remote procedure calls over some or all of the supported protocol sequences. Client and server applications can determine if a protocol sequence is supported by both the RPC runtime and the operating system. The applications make this determination by calling the following routines: · rpc_network_inq_protseqs( ) · rpc_network_is_protseq_valid( ) The following routines allow server applications to register protocol sequences with the runtime: · rpc_server_use_all_protseqs( ) · rpc_server_use_all_protseqs_if( ) · rpc_server_use_protseq( ) · rpc_server_use_protseq_ep( ) · rpc_server_use_protseq_if( ) Those routines requiring a protocol sequence argument show a data type of unsigned_char_t *. A client can use the protocol sequence strings to construct a string binding using the rpc_string_binding_compose( ) routine. ####