xpra icon
Bug tracker and wiki

http://xpra.org/icons/connect.png

Network Connection


See also:

  • Multicast DNS: by default, xpra publishes session on the network using mdns
  • Data Flow: an overview of the data that flows over the network connection
  • Packet Encoding: the encoding of the data exchanged over the connection
  • Network Protocol: the actual packet format
  • network tracker ticket: #1590


Types of connections

Xpra supports many different types of connections:

  • unix domain socket connections using the bind option. From the same machine only - potentially as a different user. This is obviously restricted to Unix like systems. When using this type of direct connection locally, you should also be using "mmap" for maximum speed (which should be enabled by default). For connecting to a different user, you may need to use the "socket-dir" option to place the socket in a public location, and maybe also "mmap-group" to make the socket accessible to other users. When starting a server, a socket is automatically created for it by default.
  • named-pipes: MS Windows only (#1150)
  • VSOCK using the bind-vsock option, for host - guest virtual machines connections, see #983
  • TCP connections using the "bind-tcp" option. May be specified more than once to bind to multiple ports or IPs, supports IPv6. These can be secured with authentication modules, in which case you probably want to enable encryption too to prevent some MITM attacks.
  • SSL connections using the "bind-ssl" option, or TCP sockets with the ssl=on option.
  • SSH connections: this type of connection uses a SSH as transport to connect to the unix domain socket. (forwarded using the hidden xpra sub-command "_proxy"). On Unix-like systems you may need an "SSH_ASKPASS" utility to be able to enter your password or passphrase.

Examples

Socket TypeServer Start Command Line ArgumentsClient Command Line ArgumentOptional Authentication Option
unix --bind=/path/to/socket socket:/path/to/socket auth=module
named-pipesn/anamed-pipe:name auth=module
vsock --bind-vsock=auto:1234 vsock:host:1234 vsock-auth=module
TCP --bind-tcp=0.0.0.0:2345 tcp:127.0.0.1:2345 tcp-auth=module
SSL --bind-ssl=0.0.0.0:443 ssl:127.0.0.1:443 ssl-auth=module
SSH n/a ssh:HOST auth=module (usually redundant)

The server arguments can be used with any server ("xpra start", "xpra shadow", "xpra upgrade", ..) and likewise the client arguments can be used with any client ("xpra attach", "xpra info", "xpra version", etc). Beware that some protocols are platform specific (unix vs named-pipes). The named-pipes and unix domain sockets currently available can be listed using "xpra list".

General Network Information

The performance of xpra may well be limited by your network connection speed, and will be affected by any bufferbloat. You can see how much bandwidth is used and how good the picture latency is using the "Graphs" tab of the "Session Info" dialog found in Xpra's system tray menu:
/raw-attachment/wiki/Network/session-info-graphs.png


More network information is available in the "Session Info" dialog or via the "xpra info" command:

$ xpra info | egrep -i "network|latency"
(..)
client.latency.50p=3
client.latency.80p=3
client.latency.90p=3
client.latency.absmin=1
(..)


Investigating network performance and bottlenecks in detail is beyond the scope of this document.

For Linux system, Queueing in the Linux Network Stack is recommended reading.

Last modified 3 days ago Last modified on 07/21/17 08:03:28

Attachments (1)

Download all attachments as: .zip