It consists of an envelope, a set of encoding rules, and a convention for representing remote procedure calls.