Для одного rpc
gRPC необходимо сделать несколько вещей:
- Установить HTTP / 2
- (Необязательно) Установить TLS
- Заголовки Exchange для RPC (размер зависит от схемы)
- Обмен фактическими сообщениями RPC (размер зависит от схемы)
- Закрыть соединение
gRPC предназначен для множества RPC на одном соединении , поэтому наименьшее возможное сообщение rpc
- это байты, используемые для 4.
[Изменить]
Я проверил, и минимальный обмен данными для rpc
превышает 500 байтов , в терминах необработанных IP-пакетов.
Я использовал gRPC helloworld.proto
, изменил для отправки int32
.
Проверка пакетов в Wireshark показала следующие итоговые IP-пакеты:
- 1286 байт для установления соединения, обмена заголовками и выполнения первых
rpc
- 564 байта для каждого последующего
rpc
- 176 байт для клиента
Shutdown
Из этих 546 «минимальных» байтов:
- 67% - это издержки TCP / IP (подтверждения, заголовки пакетов)
- 10% были «трейлерными» данными, отправленными после
rpc