[Spice-devel] spice udp support

Gerd Hoffmann kraxel at redhat.com
Tue Feb 2 15:03:50 CET 2016


On Di, 2016-02-02 at 10:24 +0100, Christophe Fergeau wrote:
> Hey,
> 
> On Tue, Feb 02, 2016 at 06:10:28PM +0900, Sunny Shin wrote:
> > I have a few questions about udp version of spice protocol.
> > 
> > Is there a plan to support udp in spice protocol?
> > 
> > If we support udp, what do we need to implement?
> > Is it enough to change tcp channels to udp ones?
> 
> Maybe that would be enough, maybe more changes would be needed, I cannot
> exactly tell you. My main worries with UDP would be packet drops as
> there is nothing guaranteeing you that the packets you send will arrive
> at all to the other end of the connexion.

That is exactly the problem.  Packets may get dropped.  Packets may also
arrive out-of-order.  So using UDP is fine if loosing data is fine[1].

For spice this is largely not ok.  Maybe for the audio channel, if you
are willing to accept sound dropouts in case of packet loss.  Loosing
display channel messages will lead to rendering gliches due to missing
data and render tree inconsistencies.  Not cool.  Loosing input channel
messages may mess up the keyboard state such as keys being stuck due do
keyup messages being lost.  That is even less funny.  Webdav file
sharing corrupting your files?  Have the backups ready!

cheers,
  Gerd

[1] In theory one could implement some scheme to track packet 
    status, resend lost packets etc to fix this.  In practice
    the better answer to that is "use TCP" which does exactly
    that.  And keep in mind that the TCP algorithms in todays
    OS kernels are the result of decades of network protocol
    research.  Coming up with an implementation which matches
    TCP in performance certainly is not trivial.



More information about the Spice-devel mailing list