当前位置:首页 > 工业控制 > 工业控制
[导读] 虚拟网络计算VNC[1](Virtual Network Computing)是由AT&T剑桥研发中心研发的一种瘦客户计算[2]体系,是一个强大的远程桌面共享工具,能够让多个客户端通过互联网查看服务器端实时桌面状况并可以进行远程操作。本

 虚拟网络计算VNC[1](Virtual Network Computing)是由AT&T剑桥研发中心研发的一种瘦客户计算[2]体系,是一个强大的远程桌面共享工具,能够让多个客户端通过互联网查看服务器端实时桌面状况并可以进行远程操作。本文首先分析了低速网络环境下VNC在远程视频会议系统中应用的技术难点,并提出了一种在低速网络下利用VNC实现应用程序共享的解决方案。
1 VNC协议特点
    VNC由VNC Server和VNC Client两部分组成。VNC Server产生本地显示,通过VNC协议实现VNC Server和VNC Client之间的通信。VNC协议中实现了一种远程图形用户界面访问协议RFB[2](Remote Frame Buffer)协议,RFB协议是基于帧缓存(Frame Buffer)层级,因此适用于所有操作系统平台及应用,例如X Windows、MS Windows和Macintosh等。VNC在TCP/IP协议基础上通过一个简单的图形界面传输协议实现在远程客户端上显示服务器端的桌面实时数据。
    协议的显示方面是基于一个很简单的原理,即将一个矩形区域的像素点放置在一个特定的位置上。通过采用不同的图像编码方法,可以在传输速度、图像质量、服务器处理速度、终端显示速度和网络带宽之间达到平衡。通过每次的窗口更新,可以得到最新的窗口内容。在某些方面,这看上去更像是一种视频图像流。每次窗口更新的消息是通过客户端发送给服务器端的,每接收到一个消息,服务器端对其发生响应,这样就使得协议本身可以控制自己的刷新速度。如果客户端或者由于网络的原因比较慢,同样地刷新率也会比较低,这样可以完成速度的自适应。
    输入协议是基于标准工作站的键盘响应消息和鼠标设备的。当客户端接收到这些输入消息后,被简单地以事件形式传送给服务器端,并产生对应的动作。
2 VNC在低带宽网络环境中应用存在的问题
    在大规模视频会议中,当需要对其中一个会议成员的桌面或者某个应用程序进行共享时,此时VNC服务器的计算性能和网络接入的条件都比较差,这样就对共享机制提出了很高的要求,其必须具备高效、延时小,又要求架构轻盈、占系统资源少、节省带宽等性能。由于在国外网络带宽足够,采用VNC机制的多点应用程序共享能够流畅地运行,但在国内目前低带宽的网络条件下,VNC机制采用的是星型直连结构,如果直接采用VNC默认的星型直连机制,在多点远程视频会议中实现应用程序共享会很困难,VNC Server与各VNC Client以直连方式进行通信,此种情况下由于VNC Server端的出口带宽受到限制,VNC Server端的数据发送压力会呈线性增长,在2 MHz的ADSL出口带宽条件下,当会议成员达到10个后,将导致严重的网络拥塞,致使应用程序共享实时性大大降低,因而其不具备在远程视频会议系统中的实际可用性。
3 VNC共享机制改进方案
3.1 VNC共享通信机制
    VNC机制默认采用直连的方式同VNC Client通信,本文将提出一种新的实现方案,通过在远程视频会议系统[4]中采用中转服务器转发模式实现共享,具体结构如图1所示。此时VNC Server端只需上传数据给中转服务器,VNC Client只与中转服务器建立连接,由中转服务器向每个客户端发送数据,通常中转服务器的网络出口带宽都比较大,因此网络带宽不会成为性能瓶颈。这样就大大减轻了VNC Server端的网络传输压力,在应用程序共享时系统的反应速度也将得到提升。

3.2 屏幕变化检测算法
    屏幕变化检测算法性能的好坏将直接影响到VNC Server端发送的数据量,一种高效的屏幕检测算法将大大降低传输的数据量,节省网络带宽,从而提高系统的实时效果。VNC默认的屏幕变化检测机制是通过消息钩子机制获取区域的坐标信息后,再将坐标区域的屏幕像素数据发送给各VNC Client。此检测方法使得大量没有发生改变的屏幕数据也被发送,增加了网络发送的数据量,在低速网络环境中容易造成网络拥塞,影响系统的性能。因此,本文在此基础上提出了一种新的屏幕变化区域检测算法。
    VNC机制通过采用消息钩子机制截获系统屏幕重绘区域信息,将得到的区域拆分成一个矩形链表(遍历链表)来存储区域坐标信息,记为array_list,定义一个变化区域记为vnc_rgn,专门保存需要重新发送的区域位置信息,对array_list每个成员矩形调用此检测算法进行变化区域检测。具体的算法流程图如图2所示。

    (1)假设其中一个成员矩形为arri,如果arri的长宽都小于32×32,则直接作为需重新发送的变化区域,保存到vnc_rgn中,否则对arri进行分析检测。
    (2)首先定义一个新的矩形arrj(arri.left,0,arri.right,0),在arri中找到发生变化的行,记录该行的y坐标,记arrj.top=y,同时y+=16递增找到未发生变化行,暂时记arrj.bottom=y;然后从arrj底部y-=1进行比较,寻找内容发生变化的行,找到后将此行的y坐标设置成arrj.bottom=y。至此确定了变化矩形arrj的最终的top、bottom坐标。同时将arri的值设为arri(arri.left,arrj.bottom,arri.right,arri.bottom)。在对arrj分析完毕后接着对arri遍历分析直至结束。
    (3)确定矩形arrj后,对矩形arrj进行分析。首先定义一个矩形arrn(0,0,0,0),在arrj中寻找最先发生改变的列,找到后记录发生变化的区域的left、top坐标,arrn.left=x,arrn.top=y,分别对x、y轴方向循环遍历进行分析(记为x+=32,y+=32),如果此列屏幕像素数据改变,则x+=32继续比较;否则将记录arrn.right=x,对y轴方向进行同样的比较,y+=32,并记录arrn.bottom=y,最终得到需要发送的变化区域矩形坐标,并将此矩形保存到最终发送的矩形链表中,同时记录下arrk(arrn.right,arrn.top,arrj.right,arrn.bottom)、arrm(arrn.left,arrn.bottom,arrj.right,arrj.bottom),分别将arrk、arrm赋值给arrj进行类似分析检测,依次循环遍历整个arrj,直到结束。
    通过此屏幕变化区域检测算法,对整个array_list链表的成员矩形进行遍历后得到需要重新发送的变化区域坐标信息。
4 实验结果
    此改进方案已经应用于VcomOffice远程视频会议系统中。实验环境为:局域网内,中转服务器采用Linux操作系统,VNC Server和VNC Client端均采用Windows XP操作系统,具体的软硬件配置如表1所示。

    为了验证调用屏幕变化区域检测算法前后,VNCServer端对同一操作生成的数据量的变化,实验在100 M的局域网内进行,VNC Server采用的是VNC默认的tight编码[5],编码后经过zlib压缩[5]后发送给中转服务器,主要进行以下场景的测试:
    (1)打开一个Word文档,剪切、复制、粘贴一段文字,图片保存到Word,在Word中输入一些内容;
    (2)打开IE浏览器登录www.sina.com.cn主页;
    (3)打开一个PDF文档后,拖动滚动条至底部;
    (4)打开资源管理器,在屏幕上做拖动操作,之后将其最大化。
    调用检测算法前后VNC Server发送数据量如图3所示。通过对比可以看到,在调用屏幕区域变化检测算法前后,VNC Server端发送的数据量都会有一定程度的下降。当执行相同的Word操作时,VNC Server端发送的数据量降低了12.21%,登录新浪网主页的过程中数据发送量只降低了4.82%,打开PDF文档并拖动滚动条至最底端的过程中,发送的数据总量降低了14.63%,在资源管理器的缩放过程中,数据发送量下降了22.19%。

    测试结果表时,当VNC系统调用屏幕区域变化检测算法后,VNC Server端的发送数据量平均会有10%左右的下降。这在远程多点应用程序共享中,会大大减轻VNC Server端的发送压力,减少网络拥塞现象出现的概率,从而提高了应用程序共享时远程客户端响应速度。
    本文介绍了在低速网络环境下远程视频会议系统中通过VNC协议进行应用程序共享时存在的问题,提出了一种新的改进方案,并结合新方案提出了一种新的屏幕区域变化检测算法。此外,对系统在调用新的屏幕区域变化检测算法前后进行了测试比较。该方案已经应用于大连浩视数字技术有限公司的VcomOffice远程视频会议系统。通过多个实验场景的测试,实验结果表明,采用新的屏幕变化区域检测算法后,VNC Server端的发送数据量出现了较大程度的下降,为低速网络环境下远程视频会议系统节省了网络带宽,提高了应用程序共享系统的实时性,从而实现了VNC在低速网络环境下的应用,应用程序共享使地理位置分散的用户通过计算机网络的连接共享某一应用程序,在互联网办公、远程视频会议系统、远程协助等方面有着不可替代的作用,具有相当广阔的发展前景。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

慕尼黑2024年5月9日 /美通社/ -- TÜV南德意志集团(以下简称"TÜV南德")持续保障安全、可靠及可持续发展。作为全球化的服务提供商,TÜV南德2023年全年营收达约31亿欧元,首次突破30亿欧元大关,同比增长...

关键字: BSP 可持续发展 数字化 人工智能

凭借深度学习技术和SmartBid产品,百度国际MediaGo获得美国商业奖认可 旧金山2024年5月6日 /美通社/ -- 第22届美国商业奖(American Business Award®)近日发布获奖名...

关键字: MEDIA GO SMART BSP

上海2024年4月17日 /美通社/ -- 在2024 F1中国站即将拉开帷幕之际,高端全合成润滑油品牌美孚1号今日举办了品牌50周年庆祝活动。三届F1年度车手总冠军马克斯•维斯塔潘也亲临现场,共同庆祝这一里程...

关键字: BSP 汽车制造 行业标准 产品系列

北京2024年4月17日 /美通社/ -- 2024年4月13日,由北京康盟慈善基金会主办的"县域诊疗,规范同行"——肿瘤诊疗学术巡讲项目首站在广州隆重召开。本次会议邀请全国多位肺癌领域专家和县域同道...

关键字: AI技术 医疗服务 BSP 互联网

海口2024年4月16日 /美通社/ -- 4月14日,在中法建交60周年之际,科学护肤先锋品牌Galenic法国科兰黎受邀入驻第四届中国国际消费品博览会(以下简称"消博会")法国馆。Galenic法...

关键字: NI IC BSP ACTIVE

上海2024年4月17日 /美通社/ -- 每年4月17日是世界血友病日。今年,世界血友病日以"认识出血性疾病,积极预防和治疗"为主题,呼吁关注所有出血性疾病,提升科学认知,提高规范化诊疗水平,让每一位出血性疾病患者享有...

关键字: VII 动力学 软件 BSP

伦敦2024年4月16日 /美通社/ -- ATFX宣布任命Siju Daniel为首席商务官。Siju在金融服务行业拥有丰富的经验和专业知识,曾在全球各地的高管职位上工作了19年以上。Siju之前担任FXCM首席商务官...

关键字: NI AN SI BSP

全球领先的科技公司默克推出了同类产品中首个经验证的全新一体化遗传稳定性分析。 Aptegra™ CHO遗传稳定性检测利用全基因组测序和生物信息学,显著加快了客户的生物医药安全性测试,从而帮助加快了客户进入商业生产的步伐。...

关键字: 稳定性分析 BSP 人工智能

C语言是一种广泛应用于软件开发领域的编程语言。它是由贝尔实验室的Dennis Ritchie在20世纪70年代初创建的,旨在为UNIX操作系统的开发提供一种高级编程语言。C语言具有简洁、高效、可移植性强等特点,因此成为了...

关键字: C语言 操作系统 应用程序
关闭
关闭