X compression techniques (was Re: VNC server based on kdrive using damage extension?)

Kurt Pfeifle kpfeifle@danka.de
Thu, 19 Feb 2004 03:27:29 +0100


> Egbert Eich eich@xfree86.org
> Wed, 18 Feb 2004 14:48:41 +0100
> 
> It will become interesting once one thinks about integrating this
> technology directly into the client lib/Xserver. It contains a lot 
> of good ideas to reduce the traffic and especially the round trips 
> on the wire.
> 
> After reaching an almost unanimous consent that lbx is more or less
> useless (the author himself claims it's entirely useless) all we are
> left with right now is doing wire compression by going thru ssh.
> Other plans exist to reduce wire round trips however from all what
> I know about NX's solution it is doing a lot more - like persistent
> caching of pixmaps even between X sessions.
> 
> Kurt's email may have been written a little bit from a salesperson's 
> point of view, but that doesn't negate the idea behind this software.
> 

Egbert, I need to shiver off that bad reputation of being
likened to a salesperson. You don't know how much I often
hate salespersons! I am not one myself, and I hope I can
be restored as a sane human with some sensible credit in
your valued eyes by providing this little drawing of mine
about how NX works:

a> the "agents" do with the remote proxy a protocol
    translation.

b) the remote applications to to their own agents in
    their native language (X, RFB and RDP)

c) local and remote proxies talk the bandwidth-optimized
    and round-trip zeroing "NX"

d) local proxy talks to local X server the unmodified
    X protocol

e) NX improvement is on avarage 60:1 (as an effective
    compression) as compared to uncompressed X on the wire

f) for RDP and RFB you'll get a 2- to 10fold increase
    in effectiveness if it is tunnelled through NX.

g) NX is an actual protocol translation from X, RFB and
    RDP to NX and back.

h) local protocol is always X (requires a local X Server
    or FrameBuffer)

i) local proxies ("NX Clients") are available for Linux,
    Windows, Mac OS X, Sharp Zaurus, HP iPAQ, Sony
    Playstation MS X-Box (the Windows Client includes
    its own X server based on cygwin).


##########################################################################################################################

###########################################
    NX-Proxies Overview (with all agents)
###########################################
                                                   .                                                  +--------------+
                                                    .                       +-----------+         RDP | Windows Ter- |
                                                   .                        | nxdesktop |   ,-------->| minal Server,|
                             +------------+        .             +----------|   (agent) |  /          |  or XP Prof. |
                             |            |         .            |          |           | /           +--------------+
                             |            |        .             |          |         <--'
   +-------------+           |            |        .             |          +-----------+                  +-------------+
   |             |           |            |         .            |            |                            |             |
   |             |           |            |   NX "Protokoll"     |          +-----------+                  |   remote X  |
   |             |     X     |   locale   | (Internet, Modem)    |  remote  |   nxagent |                X | application |
   |   local X   |<--------->|  nxproxy   |<-------------------->|  nxproxy |         <------------------->|(or complete |
   |   display   |           |            |    "roundtrips"      |          |           |                  | KDE / GNOME |
   |             |           |            |  (nearly at zero)    |          +-----------+                  |  session)   |
   |             |           |            |        .             |            |                            |             |
   +-------------+           |            |        .             |          +-----------+                  +-------------+
                             |            |       .              |          |         <--.
                             |            |  ("long" distance)   |          |           | \           +--------------+
                             +------------+       .              +----------|   (agent) |  \      RFB |  (Tight)VNC- |
                              Decompression       .            Compression  | nxviewer  |   `-------->|    Server    |
                              + Caching             .           + Caching   +-----------+             |              |
                                                     .                                                +--------------+

(c) Kurt Pfeifle, Danka Deutschland GmbH ("Free Usage Allowed")
##########################################################################################################################


If I really were a salesperson, I'd asy:


j) remote proxy systems ("NX Servers") are available for
    Linux and Solaris.

k) there is no fundmental problem to build local proxies
    (NX Clients) into any embedded device with a display:
    mobile phones, PDAs, MP3-players.

l) there is no problem to pack the NX client onto a Knoppix
    CD and by this means carry "your own personal desktop"
    (even if it runs on a machine in your home or in your
    office") always with you, whereever you roan on the
    gloabe

> Egbert.
> 

Cheers,
Kurt