3 ms·
Guacamole is "clientless" at following cost: ("SS": Session Server (where the session is running), "GS": Gateway Server (where the protocol translation is perf
by faragon 9y ago
Guacamole is "clientless" at following cost:
("SS": Session Server (where the session is running), "GS": Gateway Server (where the protocol translation is performed from RDP -or VNC- to custom HTML5), "WC": web client)
- At SS, compress images using the RDP -or VNC- protocol. Cost: CPU, RAM, and RAM bandwidth, because of desktop render, delta analyzer, image compression for the RDP -or VNC- protocol, image-specific compression (e.g. RLE in if a old protocol is negotiated), lossless compression ("bulk"), encapsulation, bandwidth/frame control, transfer.
- TCP transport between the SS and the GS. Cost: LAN traffic.
- At GS, decompress the RDP -or VNC- protocol in the "gateway" server (bulk lossless decompressor, and image decompressor -e.g. RLE for basic protocol negotiation-). Cost: mainly CPU.
- At GS, compress the the images in a format suitable for the web client. Cost: mainly CPU.
- Send the images via websocket from the GS to the WC. Cost: WAN traffic.
- Decompress and render the images in the web client. Cost: client CPU and RAM.
Then, you have to dimension how many GS you need per SS, routing between the WAN the GS, how do you balance both the SS and the GS, high availability setup, etc.
TL;DR: data is compressed and decompressed twice, because of the protocol conversion, involving extra latency because of more time for compression/decompression and more hops.