Proximal Workspace and VNC - cs.oberlin.eductaylor/vnc.pdf · Proximal Workspace and VNC Cynthia...
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/1.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/2.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/3.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/4.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/5.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/6.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/7.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/8.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/9.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/10.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/11.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/12.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/13.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/14.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/15.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/16.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/17.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/18.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/19.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/20.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/21.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/22.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/23.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/24.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/25.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/26.jpg)
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](https://reader034.fdocuments.in/reader034/viewer/2022050602/5fa9c7008870954ff94f883d/html5/thumbnails/27.jpg)
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