1.2.1 Protocols and Subprotocols

Topic Version1Published10/31/2016
For StandardETP v1.1

ETP is a communication protocol. Generically, a communication protocol can be thought of as a precise set of rules for the exchange of data between agents, usually in the form of messages. ETP messages:

  • Are transported using the WebSocket protocol.
  • Are defined in schemas and serialized using Avro (a system specifically designed for this purpose).

Like most modern communication protocols, ETP uses a layered approach and sits on top of the existing Transmission Control Protocol (TCP) layered model ( Figure 1.2.1-1 ). Thus, the concept of protocol is used in many contexts throughout this document, and the notion of a subprotocol is used to discuss protocols that sit (somewhat un-intuitively) just above another protocol in the stack.

Figure 1.2.1-1 : ETP Protocol Stack

We can see that ETP is itself a subprotocol of the WebSocket protocol and that ETP also has its own layers and subprotocols, each designed to carry specific data that follows a specific pattern (in terms of size, frequency, and variability). The Core protocol has a direct connection to WebSocket and is agnostic to the various kinds of messages that are carried in each of its own subprotocols. This layered approach allows for separation of concerns between the various parts of the stack and supports the adoption of future standards that may be developed lower in the stack.

IMPORTANT! In this document, the terms protocol and subprotocol are used interchangeably, about any layer, depending on context.