Re: spice udp support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]