Replace HTTP with TCP #378
Labels
client-code
Something related to client code for interacting with Veracruz
enhancement
New feature or request
server
Something related to the untrusted Veracruz servers
trusted-veracruz-runtime
Something related to the trusted Veracruz runtime
Requested feature
We propose to replace the HTTP layer with TCP between Veracruz-Client and the runtime manager.
In practice the HTTP client (on Veracruz-Client) and server (on Veracruz-Server) will be replaced with a TCP client and a TCP repeater (client & server) respectively. The stack on the runtime manager is not affected as it doesn't use HTTP.
This will reduce latency within the system by stripping down the network stack (i.e. less packet processing and no base64 encoding/decoding in particular) and using TCP's congestion control to transmit batches of TLS records more efficiently between Veracruz-Client and Veracruz-Server.
Motivation
Clients currently communicate with the runtime manager via TLS over HTTP. As a result protobuf messages are encrypted in 16KB TLS records, sent one by one to the other endpoint. The overall round-trip latency is hence subject to the processing time on the runtime manager side. This will become a major bottleneck when the latency between Veracruz-Client and Veracruz-Server increases.
#277 made some strides towards reducing the overall latency between Veracruz-Client and runtime manager but hasn't addressed this bottleneck.
The text was updated successfully, but these errors were encountered: