外部数据流,在网络中断时,将外存数据作为数据源,通过执行外部连接来保证结果产生的无阻塞性,这种渐进式的连接方式还可以得到精确结果集。
数据流不是存储在磁盘上的有限数据集合,而是连续的、快速的、实时的,以流的形式出现的数据集合,这些数据一般规模庞大,增长迅速。数据流中一个数据单元是一个元组,元组的势(个数)与本地处理系统的内存大小相比是无穷的。
面向虚拟桌面内外部数据流的安全控制机制桌面虚拟化需要借助虚拟桌面协议来实现内部应用数据和外部操作平台的数据交互。然而该类协议中的数据流控制机制并不完善,存在数据非法交互的安全隐患。为解决该问题,基于网关模式提出了一种面向虚拟桌面内外部数据流的安全控制机制SCIED。它不仅能对协议中的虚拟通道进行全面管控,避免修改协议和大量的终端,还具有较高的兼容性、拓展性。将它部署于网关并用于防护边界攻击,能显著减少服务器端的负载和安全隐患 。实验表明,该SCIED能够有效保证数据流的安全交互,并且对现有桌面会话的性能影响较小。1
面向虚拟桌面数据流的安全控制机制虚拟桌面内外部数据流的安全控制更适合在客户端和服务器端之间实施。桌面虚拟化需要借助RDP、SPICE、ICA、PCoIP等协议实现用户操作平台和虚拟桌面之间的数据交互,因此可以通过控制协议来完成它们之间的数据流安全控制。协议控制通常有两种方式:1)修改传输协议本身;2)采用网关模式进行控制。通过研究发现,修改协议不仅工作量大,还存在标准兼容性问题;而网关模式更实际可行,它不仅能避免兼容性问题,还能满足用户对易用性 和拓展功能的需求。因此,在网关模式的基础上,提出 了 一种面向虚拟桌面内外部数据流的安全控制机制———SCIED。1
基于RDP协议的数据流控制实验为证明SCIED的可行性,以典型的虚拟桌面协议RDP为例展开了研究。在虚拟桌面连接时,当用户终端设备需要“映射”到服务器上时,RDP要为其建立不同的虚拟通道来实现不同类型的数据交互。通过分析RDP的开源客户端Rdesktop可知,各种虚拟通道都有各自的通信机制,并通过不同ID号进行标识,例如默认情况下的设备重定向通道1005。通过分析它们的数据包结构,可以确定其中各字段的含义,进而实现数据流控制。
以 RDP剪切板通道为例,将其部分数据包的解密、定位、控制过程记录于日志并截图。其中标识#319为来自服务端剪切板通道的数据确认包,在定位到需要控制的数据通道类型时,程序根据控制策略“control policy is clipboard:c->s”,对该数据包特定标识符进行修改,并将传递数据段置空;最后通过剪切板通道的测试,证明了SCIED能够有效完成数据流的单向传输控制。
在安全性方面,由于只有剪切板通道才支持数据的剪切、复制和粘贴,用户很难绕过此通道来实现数据的拷贝,除非通过第三方通道。然而SCIED具有明显的白名单控制特征,即只有符合访问控制策略的数据流才被允许通过,进而将其他数据拷贝途径进行了拦截。1
数据流的无阻塞连接算法对于内存有限时的数据流连接,可以借助于外存达到无阻塞的得到精确结果的目的。在网络中断时,将外存数据作为数据源,通过执行外部连接来保证结果产生的无阻塞性,这种渐进式的连接方式还可以得到精确结果集。2
数据流的简介数据流不是存储在磁盘上的有限数据集合,而是连续的、快速的、实时的,以流的形式出现的数据集合,这些数据一般规模庞大,增长迅速。数据流中一个数据单元是一个元组,元组的势(个数)与本地处理系统的内存大小相比是无穷的。
数据流上与磁盘或内存上的数据的访问方式不一样。传统的数据处理技术一般假设数据能够装载下全部数据,所以基于内存的数据库管理技术难以用于数据流的管理。数据流与传统存储关系模型的区别体现是:
(1)流上的数据是在线到达本地,而不是事先存放在本地;
(2)系统一般不能保证抵达本地的元组的时间顺序与实际处理顺序相一致,无论是同一个数据流还是多个数据流之间都是如此;
(3)数据流的势(元组个数)和到达本地的频率可能远远超过了本地系统的处理能力,包括内存大小和CPU的计算能力;
(4)某个元组被舍弃或存档,如果要启用此历史数据,使用代价将会很大,除非存放在内存中,但这要求内存很大或流的势较小才行。
数据流的处理更多的是涉及多个数据流,多个数据流的查询必然牵涉到流的连接问题。主要研究能够得到精确解的连接算法,主要应用在有限数据流和推流环境中。有限数据流的求精确解的方法可以推广到无限数据流中求近似精确解,所以此研究也可应用于无限数据流和拉数据流的连接。2
基于mdjoin的外连策略xinin将传统基于内存的对称哈希(Hash)连接方式拓展为基于内外存的三阶段连接,其中外部连接只有内存与外存的md-join。XJoin开始在内存中进行内部连接(mm-jnin),这类似于对称Hash连接,当内存满时,数据源A和B所对应的最大Hash桶被交换到外存disk中。当两个数据源同时阻塞时,xjoin将先前交换到disk中的A(B)数据块(parition)调入内存与已驻留内存中对应的 B(A)数据执行外部连接操作,即基于md-join阶段的外连策略,这样使得产生结果无中断,即结果产生的无阻塞。当所有数据流输入结束时,由于mm-join和md-join阶段可能只执行了部分数据的连接,所以XJoin最后需要进入清洗连接阶段clean一uP,即将双方disk中数据同时调入内存进行连接(dd-join)。XJoin为每一个tuPle设置时间戳ATS(数据到达内存时间),DTS(离开内存进入disk时间)的数据结构来判断可能在内部连接时己出现的重复连接。为了减小外部连接可能导致的对网络反映的延迟,同时避免清洗阶段重复在mdjnin阶段已连接过的结果,XJoin采用为disk中每个segment设置结构为DTSlast(md-join时外存块中参与连接的最后一个加tuple的DTS值),T(即ProbeTS,每次进入md-join的时间)的序列,这些序列表明所有DTS小于DTSlast的元组(tuPles)都在时刻T参与了外部连接。2
基于dd一join的外连策略HMJ是一种基于Hash归并的等值连接算法,它借鉴了XJoin的Hash分组和PMJ[6l]在外部连接所采用的排序归并的设计思想,其特点在于:
(1)外连策略没有采用XJoin的md-join,而是dd-join作为无输入源时的外部连接方式。这与PMJ类似,但HMJ考虑了网络的不稳定性,在网络阻塞时将两数据源存放的外存数据对称的调入内存连接(dd-join)。dd-join的外连方式对于内存远小于数据流总量,外存数据量远大于内存数据量的情况下,可以产生比基于md-join的策略更高的连接效率。
(2)在xjoin的最大块交换策略的基础上增加了平衡因子以防止不对称数据流的数据倾斜导致的效率降低。例如,内存中只能保存10个元组,两个数据流进行等值连接,其元组比率可以为5:5,8:2,9:1,产生结果数分别为25,16和9,显然保留平衡元组5:5可以得到更多的结果数。
(3)交换方式引入PMJ的同步对称式交换,所以避免连接结果重复的方法也使用了相同段号(segment)不做连接,只做不同段号间的连接,同时为降低随机连接的时间,外连的同时将参与连接的segment进行排序归并形成一个更长的新段,两个新段编为同号,以防止下次dd-join时产生重复数据。
(4)HMJ参考了XJoin的交换数据时机与外连启动时机:当内存满时将部分数据交换到外存,以保证mm-join的产出连续性;当网络拥塞的时间间隔超过一定阂值启动外部连接,以保证更快的产生结果。PMJ在每次内存装满时才做排序连接,排序后将内存数据一次性交换到外存,导致从内存空到装满数据这段时间的结果输出的阻塞。2
本词条内容贡献者为:
方正 - 副教授 - 江南大学