Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia...

27
Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San Diego

Transcript of Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia...

Page 1: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Proximal Workspace and VNC

Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San Diego

Page 2: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

  Introduction   Workspace   The Problem with Supporting Video   Server Push   Client Pull   Virtual Network Computing   Defining Performance

  Adding a Message Accelerator   Experimental Design & Results   Conclusion

2

Page 3: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Workspace Architecture

3

Page 4: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Workspace Utilities

4

Page 5: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

The Problem with Supporting Video   Video is hard for Thin Client Systems

  Frequent updates   Many pixel changes per update   All server generated   Becomes drastically worse over high latency

5

Page 6: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Server Push

  X-Windows is a server push system

Robert W. Scheifler and Jim Gettys. The x window system. ACM Trans. Graph., 5(2):79-109, 1986.

client server update

Server Push

6

Page 7: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Client-Pull

  VNC is a client-pull system.

T. Richardson, Q. Stafford-Fraser, K.R. Wood, and A Hopper. Virtual network computing. Internet Computing, 2(1):33-38, 1998."

client server

update

request

Client Pull

7

Page 8: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Virtual Network Computing   VNC is a widely-used thin client system.   It is cross-platform and has several available open-

source implementations.   It was developed by Tristan Richardson at the Olivetti

Research Lab.

T. Richardson, Q. Stafford-Fraser, K.R. Wood, and A Hopper. Virtual network computing. Internet Computing, 2(1):33-38, 1998. "

Tristan Richardson. The RFB Protocol. Technical report, RealVNC Ltd, 2007. "

8

Page 9: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

How VNC Works

  It runs at the application layer and reads updates from the framebuffer.

VNC server

application

VNC client

frame buffer requests

updates

internet

9

Page 10: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Defining Performance

client server request

client server

update client server

client server

2. Client waits

3. Server sends update 4. Client processes update

1. Client requests new update

10

Page 11: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

  Introduction   Adding a Message Accelerator

  VNC with High Network Latency   The Message Accelerator and VNC   Pipelining Updates   Message Accelerator with High Network Latency

  Experimental Design & Results   Conclusion

11

Page 12: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

VNC with High Network Latency

  Client sends request - 200 ms   Server sends update - 200 ms

Update Rate = 2.5 updates/second More Generally, Update Rate = 1/RTT

server client 200 ms

12

Page 13: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Two Approaches   Adding a proxy, unmodified client and server   Modify the client

13

Page 14: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

The Message Accelerator and VNC

  The Message Accelerator sends requests to the server at the rate the client is processing them, and quickly receives updates from the server.

  This lets the Message Accelerator adjust for latency between the client and server

VNC server VNC

client

requests

updates

internet

Message Accelerator slow fast

requests

updates

14

Page 15: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Pipelining Updates

  The proxy sends requests to the client at the rate the client is processing, without waiting for a request.

VNC server VNC

client

requests

updates

internet

Message Accelerator slow fast

requests

updates

15

Page 16: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Message Accelerator - High Network Latency

  Client reads pipelined update from proxy - 75 ms

Update Rate = 13 updates/sec

server client

Message Accelerator

200 ms

update every 75 ms

16

Page 17: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

  Introduction   Adding a Message Accelerator   Experimental Design & Results   Conclusion

17

Page 18: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Experimental Design

  We use NetEm to add network delays to both client and server to simulate network latency

n e t e m VNC

server

video application VNC

client

n e t e m Mess

Acc

18

Page 19: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Results: Message Accelerator Outperforms Unmodified System

19

Page 20: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Modify the Client (Taurin Tan-atichat)   Goal: Have a request arrive just after the frame buffer (at

server) is updated   Have client send pre-requests

  too many requests could overload network or server   too few results in suboptimal performance

20

Page 21: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Our Approach: VNC-HL   Send a pre-request periodically

  PRP is pre-request period

  Client: upon receiving an update and processing it (including rendering), send a request and set timer to PRP

  If timer expires, send another request (and set timer)   If update is received, process/render, and then send

request and reset timer

21

Page 22: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Pipelining of Requests

22

Page 23: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Goal   Reach a steady state where enough frame buffer requests

have been injected into the system that not many more additional requests are needed

23

Page 24: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Implementation   Modified RealVNC for Unix   Very simple change to request loop

24

Page 25: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

VNC vs. VNC-HL

25

Page 26: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

FPS Improves over Time

26

Page 27: Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia Taylor, Taurin Tan-atichat, Joe Pasquale, Amin Vahdat University of California, San

Conclusions

  We can improve VNC performance by   having a Message Accelerator mediate the update rate

over network latency   modifying the client to aggressively send pre-requests

  By using the Message Accelerator, we do not have to modify an existing code, avoiding issues of parallel code maintenance and source code availability

  In the VNC-HL approach, we achieved high performance by adding a very simple modification to the client

27