1.4 Relationship to Other Protocols

The RPC over HTTP Protocol is used in conjunction with the Remote Procedure Call (RPC) Protocol Extensions, as specified in [MS-RPCE] and relies on HTTP 1.0 and keep-alive connections from HTTP 1.1 [RFC2616]. It also relies on HTTPS [RFC2818] for data protection services. The following diagram illustrates the protocol layering for this protocol on the client.

Protocol layering on the client

Figure 4: Protocol layering on the client

For RPC over HTTP, the mixed, inbound, and outbound proxies use the protocol layering shown in the following diagram for their client-facing part.

Protocol layering on client-facing proxy

Figure 5: Protocol layering on client-facing proxy

For the server-facing part of the mixed, inbound, and outbound proxy, the protocol layering is as shown in the following diagram.

Protocol layering on server-facing proxy

Figure 6: Protocol layering on server-facing proxy

The server uses the protocol layering shown in the following diagram.

Protocol layering on server

Figure 7: Protocol layering on server

A consequence of this protocol layering is that an RPC client using RPC over TCP (ncacn_ip_tcp) predecessor RPC protocol sequence cannot interoperate with an RPC server using RPC over HTTP (ncacn_http) RPC protocol sequence and vice versa.

RPC over HTTP v1 can run on HTTP only. RPC over HTTP v2 can run over either HTTP or HTTPS. The decision on whether to use HTTP or HTTPS is made by the client based on information provided by higher-layer protocols.

RPC over HTTP v2 transmits error information encoded using the ExtendedError Remote Data Structure, as specified in [MS-EERR].