Support for Google Remote Procedure Call Protocol (gRPC)
gRPC is a high-performance general RPC open-source software framework running over HTTP2 protocols. Both communication parties perform secondary development based on the framework, so that they focus on services and do not need to pay attention to bottom-layer communication implemented by the gRPC software framework.
Telemetry uses the gRPC protocol to report the data encoded in GPB format to the collector.
The gRPC protocol applies to telemetry static subscription and dynamic subscription.
Figure 1 shows the gRPC protocol stack layers.
Table 1 describes the layers.
Layer |
Description |
|
---|---|---|
TCP layer |
This is a bottom-layer communication protocol, which is based on TCP connections. |
|
TLS layer |
This layer is optional. It is based on the TLS–encrypted channel. |
|
HTTP2 layer |
The HTTP2 protocol carries gRPC, using HTTP2 features such as bidirectional streams, flow control, header compression, and multiplexing request of a single connection. |
|
gRPC layer |
This layer defines the protocol interaction format for remote procedure calls. |
|
Data model layer NOTE:
The data model layer is divided into three layers, which are defined in different .proto files. To establish a gRPC connection between the collector and a network device, use the .proto files for interconnection. The .proto files on the two ends must be the same, which facilitates decoding. |
RPC layer |
|
Telemetry layer |
|
|
Service data layer |
|
For details about gRPC fundamentals, see Understanding gRPC.
Support for User Datagram Protocol (UDP)
UDP is a datagram-oriented simple transport-layer protocol. It does not provide reliability, flow control, or error recovery functions for IP. UDP is applicable to networks with low reliability requirements and economical transmission.
Telemetry uses the UDP protocol to report the data collected to the collector.
The UDP protocol applies to telemetry static subscription.
Figure 2 shows the UDP protocol stack layers.
Table 2 describes the layers.
Layer |
Description |
|
---|---|---|
UDP layer |
UDP-based communications protocol. |
|
Data model layer NOTE:
The data model layer is divided into three layers, which, except the message header layer, are defined in different .proto files. To establish a UDP connection between the collector and a network device, use the .proto files for interconnection. The .proto files on the two ends must be the same, which facilitates decoding. For description of the .proto files, see the relevant content of gRPC. |
Message header |
For the definition of message header architecture, see UDP based Publication Channel for Streaming Telemetry. |
Telemetry layer |
|
|
Service data layer |
|