Research on the Application of Virtual Network Computing in Application Sharing

Publisher:qazwsx007Latest update time:2012-02-29 Source: eefocus Reading articles on mobile phones Scan QR code
Read articles on your mobile phone anytime, anywhere

With the development of network computing technology, thin client computing technology has become increasingly important in network applications such as remote sharing. This thin client computing architecture retains a large number of complex computing tasks on the server side, while the client does not perform complex computing, but simply maintains the state interaction between the client and the server, such as keyboard input, mouse clicks, etc., and is responsible for displaying the desktop data on the server in real time. Application sharing enables geographically dispersed users to share an application through computer network connections. It plays an irreplaceable role in Internet office, remote video conferencing systems, remote assistance, etc., and has a very broad development prospect.

Virtual Network Computing VNC[1] (Virtual Network Computing) is a thin client computing[2] system developed by AT&T Cambridge Research Center. It is a powerful remote desktop sharing tool that allows multiple clients to view the real-time desktop status of the server through the Internet and perform remote operations. This paper first analyzes the technical difficulties of applying VNC in remote video conferencing systems under low-speed network environments, and proposes a solution for using VNC to achieve application sharing under low-speed networks.

1 VNC protocol features

VNC consists of two parts: VNC Server and VNC Client. The VNC Server generates a local display and implements communication between the VNC Server and the VNC Client through the VNC protocol. The VNC protocol implements a remote graphical user interface access protocol RFB[2] (Remote Frame Buffer) protocol. The RFB protocol is based on the frame buffer layer and is therefore applicable to all operating system platforms and applications, such as X Windows, MS Windows, and Macintosh. VNC uses a simple graphical interface transmission protocol based on the TCP/IP protocol to display real-time desktop data on the server side on the remote client.

The display aspect of the protocol is based on a very simple principle, that is, placing pixels in a rectangular area at a specific position. By adopting different image encoding methods, a balance can be achieved between transmission speed, image quality, server processing speed, terminal display speed, and network bandwidth. With each window update, the latest window content can be obtained. In some ways, this looks more like a video image stream. Each window update message is sent from the client to the server. Each time a message is received, the server responds to it, so that the protocol itself can control its own refresh rate. If the client or the network is slow, the refresh rate will also be low, so that speed adaptation can be achieved.

The input protocol is based on the keyboard response messages and mouse devices of the standard workstation. When the client receives these input messages, they are simply transmitted to the server in the form of events, and corresponding actions are generated.

2 Problems with VNC application in low-bandwidth network environment

In large-scale video conferences, when it is necessary to share the desktop or an application of one of the conference members, the computing performance and network access conditions of the VNC server are relatively poor. This puts high demands on the sharing mechanism, which must have high efficiency, low latency, light architecture, low system resource usage, and bandwidth saving. Due to sufficient network bandwidth in foreign countries, multi-point application sharing using the VNC mechanism can run smoothly. However, under the current low-bandwidth network conditions in China, the VNC mechanism adopts a star-shaped direct connection structure. If the default star-shaped direct connection mechanism of VNC is directly adopted, it will be difficult to implement application sharing in multi-point remote video conferencing. The VNC Server communicates with each VNC Client in a direct connection mode. In this case, due to the limited export bandwidth of the VNC Server, the data transmission pressure on the VNC Server will increase linearly. Under the condition of 2 MHz ADSL export bandwidth, when the number of conference members reaches 10, it will cause serious network congestion, which will greatly reduce the real-time performance of application sharing. Therefore, it does not have the actual usability in the remote video conferencing system.

3 Improvement scheme of VNC sharing mechanism

3.1 VNC sharing communication mechanism

The VNC mechanism uses a direct connection to communicate with the VNC Client by default. This paper will propose a new implementation scheme to achieve sharing by adopting the relay server forwarding mode in the remote video conferencing system [4]. At this time, the VNC Server only needs to upload data to the relay server, and the VNC Client only establishes a connection with the relay server, which sends data to each client. Usually, the network export bandwidth of the relay server is relatively large, so the network bandwidth will not become a performance bottleneck. This greatly reduces the network transmission pressure on the VNC Server, and the system response speed will also be improved when the application is shared. [page]

3.2 Screen Change Detection Algorithm

The performance of the screen change detection algorithm will directly affect the amount of data sent by the VNC Server. An efficient screen detection algorithm will greatly reduce the amount of data transmitted, save network bandwidth, and thus improve the real-time effect of the system. The default screen change detection mechanism of VNC is to obtain the coordinate information of the area through the message hook mechanism, and then send the screen pixel data of the coordinate area to each VNC Client. This detection method causes a large amount of screen data that has not changed to be sent, which increases the amount of data sent by the network. In a low-speed network environment, it is easy to cause network congestion and affect the performance of the system. Therefore, this paper proposes a new screen change area detection algorithm based on this.

The VNC mechanism intercepts the system screen redrawing area information by using the message hook mechanism, splits the obtained area into a rectangular linked list (traversal linked list) to store the area coordinate information, recorded as array_list, defines a change area recorded as vnc_rgn, and specifically saves the area location information that needs to be resent. This detection algorithm is called for each member rectangle of array_list to detect the change area.

(1) Assume that one of the member rectangles is arri. If the length and width of arri are both less than 32×32, it is directly regarded as the changed area to be resent and saved in vnc_rgn. Otherwise, arri is analyzed and detected.
(2) First, a new rectangle arrj (arri.left, 0, arri.right, 0) is defined. The changed row is found in arri, and the y coordinate of the row is recorded. Arrj.top=y is recorded. At the same time, y+=16 is incremented to find the unchanged row. Arrj.bottom=y is temporarily recorded. Then, y-=1 is compared from the bottom of arrj to find the row whose content has changed. After finding it, the y coordinate of this row is set to arrj.bottom=y. At this point, the final top and bottom coordinates of the changed rectangle arrj are determined. At the same time, the value of arri is set to arri (arri.left, arrj.bottom, arri.right, arri.bottom). After the analysis of arrj is completed, arri is traversed and analyzed until the end.
(3) After determining rectangle arrj, analyze rectangle arrj. First, define a rectangle arrn(0, 0, 0, 0), and find the column that changes first in arrj. After finding it, record the left and top coordinates of the changed area, arrn.left=x, arrn.top=y, and loop through the x and y axis directions for analysis respectively (recorded as x+=32, y+=32). If the screen pixel data of this column changes, x+=32 continues to compare; otherwise, record arrn.right=x, make the same comparison in the y axis direction, y+=32, and record arrn.bottom=y. Finally, get the coordinates of the rectangle of the changed area that needs to be sent, and save this rectangle in the final rectangle linked list. At the same time, record arrk(arrn.right, arrn.top, arrj.right, arrn.bottom) and arrm(arrn.left, arrn.bottom, arrj.right, arrj.bottom), assign arrk and arrm to arrj respectively for similar analysis and detection, and loop through the entire arrj in sequence until the end.

Through this screen change area detection algorithm, the member rectangles of the entire array_list linked list are traversed to obtain the coordinate information of the change area that needs to be resent.

4 Experimental results

This improved solution has been applied to the VcomOffice remote video conferencing system. The experimental environment is: in the local area network, the transfer server uses the Linux operating system, and the VNC Server and VNC Client both use the Windows XP operating system.

In order to verify the change in the amount of data generated by the VNC Server for the same operation before and after calling the screen change area detection algorithm, the experiment was conducted in a 100 M local area network. The VNC Server used the VNC default tight encoding [5], which was compressed by zlib [5] before being sent to the transit server. The following scenarios were tested:
(1) Open a Word document, cut, copy, and paste a piece of text, save a picture to Word, and enter some content in Word;
(2) Open the IE browser to log in to the homepage of www.sina.com.cn;
(3) Open a PDF document and drag the scroll bar to the bottom;
(4) Open the resource manager, drag the screen, and then maximize it.
The amount of data sent by the VNC Server before and after calling the detection algorithm is shown in Figure 3. By comparison, it can be seen that the amount of data sent by the VNC Server will decrease to a certain extent before and after calling the screen area change detection algorithm. When performing the same Word operation, the amount of data sent by the VNC Server decreased by 12.21%. When logging into the Sina homepage, the amount of data sent only decreased by 4.82%. When opening a PDF document and dragging the scroll bar to the bottom, the total amount of data sent decreased by 14.63%. During the zooming process of the Explorer, the amount of data sent decreased by 22.19%.

[page]

The test results show that when the VNC system calls the screen area change detection algorithm, the amount of data sent by the VNC Server will decrease by about 10% on average. This will greatly reduce the sending pressure on the VNC Server in remote multi-point application sharing, reduce the probability of network congestion, and thus improve the response speed of the remote client when the application is shared.

This paper introduces the problems existing in the application sharing through the VNC protocol in the remote video conferencing system under the low-speed network environment, proposes a new improvement scheme, and proposes a new screen area change detection algorithm in combination with the new scheme. In addition, the system is tested and compared before and after calling the new screen area change detection algorithm. This scheme has been applied to the VcomOffice remote video conferencing system of Dalian Haoshi Digital Technology Co., Ltd. Through the test of multiple experimental scenarios, the experimental results show that after adopting the new screen change area detection algorithm, the amount of data sent by the VNC Server has decreased to a large extent, saving network bandwidth for the remote video conferencing system under the low-speed network environment, improving the real-time performance of the application sharing system, and thus realizing the application of VNC in the low-speed network environment.
Reference address:Research on the Application of Virtual Network Computing in Application Sharing

Previous article:Design and Implementation of Virtual Machine Room Based on VRML
Next article:Application of LabVIEW in HVAC Data Acquisition and Control System

Latest Test Measurement Articles
Change More Related Popular Components

EEWorld
subscription
account

EEWorld
service
account

Automotive
development
circle

About Us Customer Service Contact Information Datasheet Sitemap LatestNews


Room 1530, 15th Floor, Building B, No.18 Zhongguancun Street, Haidian District, Beijing, Postal Code: 100190 China Telephone: 008610 8235 0740

Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号